フロー承認プロセスのエラー処理
エラー処理は、フロー承認プロセスの実行時に発生する可能性のある予期しない問題の管理方法に対応します。フェーズの障害パスを設定して、問題が発生した場合に実行するアクションを定義し、承認申請が失敗するのではなく承認または却下されるようにします。
必要なエディション
| フロー承認プロセスでサポートされるエディションを表示します。 |
全般
フロー承認プロセスに関連付けられたオーケストレーションの実行でエラーが発生すると、失敗します。この失敗により、関連付けられた親承認申請のステータスが [エラー] に設定されます。他のオーケストレーション実行とは異なり、フロー承認プロセスに関連付けられたオーケストレーション実行は再開できません。
フロー承認プロセスに関連付けられたオーケストレーションの実行が失敗すると、Salesforce は、フロー承認プロセスを最後に変更した管理者または Apex 例外メールの受信者にエラー メールを送信します。エラーメールには、実行された要素とそのステップで参照されるすべてのフローなど、フロー承認プロセスに関する詳細が表示されます。有効なフロー承認プロセスの場合、メールには Flow Builder で失敗したオーケストレーション実行の詳細を表示するためのリンクも記載されます。オーケストレーションの実行によってコールされたフローが失敗の原因である場合、受信者は 2 つのエラーメールを受信します。1 つはフロー承認プロセスの失敗、もう 1 つはコールされたフローの失敗です。
エラーを管理するには、フロー承認プロセスのフェーズの障害パスを設定します。これらのパスでは、フェーズまたはそのステップでエラーが発生したときに実行する代替アクションを定義します。これにより、プロセスの失敗を最小限に抑えることができます。
失敗した承認申請は以前のすべてのレコード変更をロールバックするとは限らないため、本番にリリースする前にサンドボックス環境でフロー承認プロセスを設計およびデバッグします。
未対応のエラーと承認申請状況
未対応のエラーは、オートメーションの実行中に問題が発生し、回復メカニズムが存在しない場合に発生します。フロー承認プロセスに関連付けられたオーケストレーション実行の場合、フェーズまたはそのフェーズ内のステップでエラーが発生し、そのフェーズに障害パスが設定されていないと、未対応のエラーが発生します。
| 関連付けられた項目 | 状態 | status |
|---|---|---|
| 承認申請 | エラーが発生しました | エラー |
| オーケストレーションの実行 | エラーが発生しました | エラー |
| ステージ実行 | オーケストレーション実行レベルのエラーが発生しました | 中止 |
| ステージ実行 | エラーの原因となったフェーズまたはフェーズ内のステップ | エラー |
| ステップ実行 | フェーズ内のステップでエラーが発生した | エラー |
| ステップ実行 | エラーが発生する前にフェーズ内のステップが開始されなかった | 未開始 |
| ステップ実行 | エラーが発生したときにフェーズ内のステップが進行中であった | 中止 |
| 承認作業項目 | エラーが発生する前に承認作業項目が完了していた |
|
| 承認作業項目 | 承認作業項目が割り当てられているが、エラーが発生する前に完了していない | 割り当て済み |
フロー承認プロセスのエラー処理戦略
フロー承認プロセスのエラー処理の主な目的は、関連付けられたオーケストレーションの実行の失敗を最小限に抑えて、親承認申請が承認または却下されるようにすることです。障害パスを使用して、フェーズやステップからエラーを管理します。フロー承認プロセスでは、個々の障害パスまたは一元化された障害パスを使用できます。
障害パスには、決定要素とフェーズ要素を含めることができます。障害パスのフェーズ要素には、バックグラウンドステップと承認ステップを含めることができます。障害パスでは Go To コネクタも使用できます。障害パスの Go To コネクタは、障害パスの別の要素、別の障害パスの要素、またはフロー承認プロセスのメインパスの要素に接続できます。
個々の障害パス。フロー承認プロセスのフェーズごとに個別の障害パスを設定します。これらの個々のパスには、各フェーズに固有のエラーを管理するステップを含む要素とフェーズが含まれます。このアプローチでは、高度にローカライズされたエラー解決が提供されます。たとえば、フェーズに 1 つの承認ステップのみが含まれている場合、障害パスによって承認ステップが承認されるか却下されるかが決まります。承認ステップが承認され、追加の承認が必要ない場合は、最終承認アクションを実行するフェーズに決定結果を接続します。承認ステップが承認されたが、さらに承認が必要な場合は、承認ステップが含まれる次のフロー承認プロセスフェーズに決定結果を接続します。承認ステップが却下された場合、最終却下アクションを実行するフェーズに決定結果を接続します。
一元化された障害パス。統合されたエラー処理メカニズムとして機能する 1 つの中央障害パスを設定します。通常、このアプローチは、オーケストレーション実行に関連する変数と自動出力を評価して、エラーが発生した特定のフェーズと、エラーに対処する方法を特定する決定要素から始めます。他のフェーズの障害パスを中央の障害パスの最初の決定要素に接続します。このアプローチでは、包括的なエラー解決が提供されます。たとえば、複数フェーズの承認プロセスでは、一元化された障害パスは決定要素から始まります。[初期レビューを実行] フェーズの状況が完了していない場合、決定結果のパスには、申請者に問題を自動的に通知するバックグラウンドステップがあるフェーズが含まれます。反対に、[財務承認を処理] フェーズの [最初の財務承認を取得] ステップが失敗した場合、決定結果のパスにはバックグラウンドステップと承認ステップの 2 つのステップを含むフェーズが含まれます。バックグラウンドステップで、失敗が財務部門に通知されます。承認ステップでは、代替承認が財務グループに割り当てられます。財務承認は、この承認プロセスで最後に必要な承認であるため、この結果パスは、最終承認アクションを実行するか最終却下アクションを実行するかを決定する決定要素に接続されます。
障害パスの自動承認の回避
障害パスのないフェーズまたはそのステップのいずれかが失敗すると、オーケストレーションの実行が失敗し、関連付けられた承認申請の状況がエラーに設定されます。もし障害パスが設定されたフェーズ、またはそのステップのいずれかが失敗し、かつその障害パスがエラーなく実行された場合、関連付けられた承認申請の状況は承認済みまたは却下済みになります。承認申請の最終状況はシナリオによって異なります。
| エラーのシナリオ | 最終承認申請状況 |
|---|---|
| エラーが発生したフェーズに障害パスが設定されていない。 | エラー |
| エラーが発生したフェーズには、エラーなしで実行される障害パスが設定されています。完了したすべての承認作業項目が承認されます。 | 承認済み |
| エラーが発生したフェーズには、エラーなしで実行される障害パスが設定されています。1 つ以上の完了した承認作業項目が却下された。 | 却下済み |
| エラーが発生したフェーズには、エラーなしで実行される障害パスが設定されています。完了した承認作業項目はありません。 | 承認済み |
完了した承認作業項目のない承認申請を自動的に承認しないようにするには、次のガイドラインに従ってください。
- フェーズの障害パスは、前のフェーズに 1 つ以上の承認ステップが含まれている場合にのみ設定します。たとえば、フロー承認プロセスは、レコードを承認対象としてロックするバックグラウンドステップのみを含むフェーズで開始されます。このフェーズの障害パスは設定しないでください。このフェーズが失敗する可能性が最も高い理由は、レコードがすでにロックされていることです。
- 承認作業項目が完了したかどうかを判断する承認ステップが含まれる最初のフェーズの障害パスを設定します。承認作業項目が完了していない決定結果パスに、承認ステップを含むフェーズを追加します。
エラー処理の制限事項
- フロー承認プロセスに関連付けられたオーケストレーション実行で未対応のエラーが発生すると、オーケストレーション実行を再開できません。
- 障害パスがエラーなしで完了し、承認作業項目が完了していない場合、承認申請を却下する方法はありません。
- オーケストレーション実行レベルのエラーにはエラー処理を追加できません。
- 失敗したオーケストレーション実行のデバッグの詳細は、失敗から 14 日以内にのみ表示できます。
- 承認申請が失敗した場合、関連付けられたオーケストレーションの実行が失敗する前に発生したレコードの追加、変更、削除がロールバックされるとは限りません。
