n8n 非預期結果的 Retry,在沒有 Fail 時,再試一次

今天在處理資料時,發現 response 有異常,並不在預期裡。
原本已經有開啟 Error 的 Retry ,但這不是節點的 Error ,節點是正常執行完畢的。
那麼就要想個方法在遇到非預期結果時,重新執行。

改由迴圈以保持順序。
首先來看問題的 output 長什麼樣,可以看到正常應該是 有 sourceText , translatedText 兩個欄位,
今天不知道為什麼,有些是以 data 裡放 json 且為空值。

今天不太可能直接用 if 讓true false 正常和異常直接分兩邊,最後 merge 回來。這樣順序都亂掉。
所以為了保持順序,要在 Loop 裡進行重做。如果你問題不需要 Loop ,那可以跳過這步。

使用 Do No Thing 接值,取代 $json
原本使用 $json 來直接使用上一個 input 的 item ,現在改用直接指定之前節點的 output。
當然直接拿 Loop 節點也可以,但是除錯上不方便。
我會在 Loop 後面增加一個 Do No Thing,方便處理。

使用 IF 判斷非預期
最後就是把以此範例,當不該出現的 data 出現時,就要做重新嘗試。

最後就是享受成果

無限迴圈怎麼辦?
可以加個計數器,真的不幸遇到。只好終止這 workflow。
至於怎麼製作計數器,有機會再寫一篇。
工商時間
如果你有使用自動化的需要
歡迎透過 Facebook, IG, Threads 聯絡我:
Facebook: https://www.facebook.com/mason276752
IG, Threads: @mason276752