您位於此處:
協調流程中的錯誤處理
錯誤處理可管理在協調流程執行期間階段中發生的非預期問題。設定階段的錯誤路徑,以在發生階段錯誤時定義復原動作,確保協調流程成功完成,而非失敗。
必要版本
| 檢視「流程協調流程」支援的版本。 |
一般
當協調流程執行發生錯誤時,系統會將其狀態設定為「錯誤」。許多在階段內發生的錯誤是可復原的。針對這些錯誤,您最多有 14 天時間修正錯誤並恢復協調流程執行。如果在階段外發生錯誤,則協調流程執行會失敗,且您無法恢復。請參閱在 協調流程執行中恢復失敗的協調流程。
恢復需要管理員修正基本流程或錯誤,然後恢復協調流程執行。此方法與協調流程設計師在設計時設定的錯誤路徑不同。錯誤路徑可妥善處理錯誤,並為一般使用者提供復原機制或手動介入步驟。
協調流程執行失敗時,Salesforce 會將錯誤電子郵件傳送給上次修改協調流程的管理員,或傳送給 Apex 例外電子郵件收件者。錯誤電子郵件提供協調流程執行的詳細資料,包括執行的元素和參照步驟的流程。針對已啟用的協調流程,電子郵件也包含可在 Flow Builder 中檢視失敗協調流程執行的詳細資料連結。如果協調流程呼叫的流程造成失敗,則收件者會收到兩封錯誤電子郵件:一個用於協調流程,另一個用於呼叫流程。
當錯誤路徑處理錯誤並成功完成時,協調流程不會傳送錯誤通知。不過,您可以將背景步驟新增至錯誤路徑,以在發生失敗時通知利害關係人。
若要管理錯誤,請針對協調流程中的階段設定錯誤路徑。如果階段或其中任何步驟發生錯誤,這些路徑會定義替代動作,以將流程失敗降到最低。
在部署至生產環境之前,請先在 Sandbox 環境中設計和除錯協調流程,因為失敗的協調流程不一定會回復所有先前的記錄變更。
未處理的錯誤與狀態變更
當協調流程執行在執行期間遇到問題且沒有復原機制時,會發生未處理的錯誤。針對協調流程,當階段或步驟發生錯誤,且階段沒有設定的錯誤路徑時,會發生未處理的錯誤。
| 項目 | 條件 | 狀態 |
|---|---|---|
| 協調流程執行 | 發生任何錯誤 | 錯誤 |
| 階段執行 | 當協調流程執行層級錯誤發生時,階段正在進行中 | 已停用 |
| 階段執行 | 導致錯誤的階段或階段內的步驟 | 錯誤 |
| 步驟執行 | 階段內的步驟導致錯誤 | 錯誤 |
| 步驟執行 | 階段內的步驟未在發生錯誤之前開始 | 未開始 |
| 步驟執行 | 發生錯誤時,階段內的步驟正在進行中 | 已停用 |
協調流程的錯誤處理策略
協調流程中的錯誤處理可管理失敗,讓業務流程順利完成或順利復原。使用錯誤路徑可管理階段和步驟中的錯誤。您可以使用個別錯誤路徑進行目標復原,或使用集中錯誤路徑進行全方位錯誤管理。
錯誤路徑在一般使用者可在協調流程執行發生錯誤時提供手動介入的情境中很實用。例如,外部整合或 API 呼叫因為端點關閉而失敗。錯誤路徑可包含互動步驟,指派對象可在其中手動輸入必要資料。
錯誤路徑可以是空白的,或包含決策元素和階段元素。錯誤路徑中的每個階段都需要至少一個步驟,且可包含多個步驟。這些步驟包括背景步驟、互動步驟或兩者的組合。錯誤路徑也支援「移至」連結。「移至」連接器會連結至相同錯誤路徑、不同錯誤路徑或協調流程主要路徑中的另一個元素。
個別錯誤路徑。針對協調流程中的每個階段設定個別的錯誤路徑。這些個別路徑包含元素和階段,其中包含管理每個階段特有的錯誤步驟。此方法提供高度本地化的錯誤解決方案。例如,在訂單處理協調流程中,庫存驗證階段因連線逾時而發生錯誤。錯誤路徑可以重新執行驗證步驟、將通知傳送至作業,或路由至手動檢閱階段。
集中化錯誤路徑。設定一個作為合併錯誤處理機制的中央錯誤路徑。此方法通常會從評估與協調流程執行相關變數和自動輸出的決策元素開始。決策會識別發生錯誤的特定階段。相關聯成果路徑上的元素會解決失敗。將每個階段的錯誤路徑連接至中央錯誤路徑中的第一個決策元素。此方法提供全方位的錯誤解決方案。
例如,在客戶上線協調流程中,集中錯誤路徑會以決策元素開頭。此決策會評估發生錯誤的階段,並決定適當的復原動作。
如果「建立客戶帳戶」階段狀態不是 Completed,則決策結果的路徑會包含含背景步驟的階段。此步驟會通知帳戶管理員有關問題。如果「佈建系統」階段中的「設定服務存取」步驟失敗,則決策結果的路徑會包含包含兩個步驟的階段。背景步驟會建立支援票證。互動式步驟會將系統組態指派給 IT 小組。IT 完成組態後,協調流程會繼續到服務啟用階段。
錯誤處理限制
- 您無法新增協調流程執行層級錯誤的錯誤處理。
- 您只能在失敗的 14 天內檢視失敗協調流程執行的除錯詳細資料。
- 僅包含「結束」元素的錯誤路徑會透過將協調流程執行狀態變更為
Completed來處理錯誤。此方法會抑制錯誤,而不會解決錯誤。當協調流程執行狀態為「已完成」時,Salesforce 不會傳送錯誤通知電子郵件。不過,即使協調流程執行狀態為「已完成」,原始發生錯誤的步驟與階段仍會保持為「錯誤」狀態。

