フローエラーハンドラー
エラーを検出するフローを有効にします。一連のアクションとサブフローを実行して、問題を特定して修正します。たとえば、エラー発生時に、フローログ出力値を取得し、通知を送信し、修正サブフローを実行するようにします。
メリット
フローエラーハンドラーを有効にすると、次のメリットが得られます。
- フローエラーが発生したときにその特定を自動化できます。フローエラーに起因する問題を手動で検索するのではなく、フローエラー情報をキャプチャしてプッシュできます。
- フローエラーの解決を自動化できます。フローエラーの影響を受けるレコードを手動で更新するのではなく、アクションとサブフローを実行してレコードを更新できます。
- 独自のアクションエラー処理ロジックをビルドできます。アクションで毎回エラーを返すのではなく、エラーを返すタイミングを指定できます。
エラーハンドラーコンポーネント
フローエラー処理は、次のコンポーネントで構成されています。
- 1. エラーハンドラースイッチ
- フローエラー処理を有効または無効にするオプションです。有効にすると、フローに [エラーハンドラー] セクションが表示されます。
- 2. エラーハンドラーセクション
- フローでエラーが検出された場合に実行されるフローのセクションです。このセクションを使用して、フローエラーの特定と解決を自動化します。このセクションには最大 10 個のアイテムを追加できます。注:10 個のアイテムの制限には、アクション、フローロジック、またはサブフローの任意の組み合わせが含まれます。
- 3. エラーステータス
- フローによって検出されたエラーに関する詳細を含むオブジェクトデータピルです。
- 4. エラーステータス > コード
- フローでエラーが発生したかどうかを示す整数データピルです。デフォルトでは、値 1 はフローでエラーが生成されたことを示します。値 0 は、フローが正常に実行されたことを示します。カスタムアクションを作成する際に、独自のエラーコードを定義できます。
- 5. エラーステータス > メッセージ
- アクション、ステップまたはシステム操作によって生成されたエラーメッセージを含む文字列データピルです。
利用可能なエラー状況
エラーハンドラーを有効にすると、フロー実行の詳細でレポートされる状況が変更されます。エラーハンドラーでは、次のフロー状況を生成できます。
- 完了 (エラーを取得)
- フローがエラーを検出し、[イベントハンドラー] セクションのアイテムを正常に実行したときに生成されるステータスです。フローは、[イベントハンドラー] セクションが空の場合でもこのステータスを生成します。このステータスは、フローのエラーハンドラーを有効にした場合にのみ使用できます。このステータスは、フロー実行の詳細ページからのみ表示されます。フローコンテキストレコードでは、代わりにステータスを [完了] として表示します。
- 完了 (エラーをスキップ)
- ステップが失敗した後もカスタムアクションが実行を継続する場合に生成されるステータスです。アクションがこのステータスを生成すると、親フローに渡されます。このステータスは、フローのエラーハンドラーを有効にした場合にのみ使用できます。このステータスは、フロー実行の詳細ページからのみ表示されます。フローコンテキストレコードでは、代わりにステータスを [完了] として表示します。
- エラー
- エラーが未取得の場合に生成されるステータスです。
- エラーハンドラーが無効になっている間にフローでエラーが発生しました
- [エラーハンドラー] セクションでエラーが発生しました
エラーが発生したとき
アクティブなエラーハンドラーを含むフローでエラーが発生すると、フローはそれ以降のアクションとフローロジックの実行を停止し、代わりに [エラーハンドラー] セクションのアイテムを実行します。[エラーハンドラー] セクションのアイテムが実行された場合、フローは完了 (エラーをキャッチ) 状態で停止します。エラーハンドラー自体がエラーを生成した場合、フローはエラーステータスで停止します。
フローは、エラーを生成したアイテムを再実行したり、エラーを生成したステップから再開したりすることはできません。Try フローロジック を使用して、try ブロック内でエラーが発生したフローの実行を続行することができます。
フローとアクションのエラー処理リソース
アクションとフローでのエラー処理の使用の詳細については、 ServiceNow® コミュニティの投稿 「フローとアクションのエラー処理の概要:エラーをテストする理由と方法 - Worfklow Automation CoE」を参照してください。
一般的なガイドライン
フローエラー処理によるメリットを得るには、次の一般的なガイドラインに従います。
- エラー処理アイテムをフローのメインセクションに追加しないようにする
- 通常、アクションまたはサブフローがメインセクションでエラーを返すと、フローは実行を停止します。停止したフローは、エラーが返された時点を過ぎてアクションまたはサブフローを実行することはできません。エラー処理アクションとサブフローを [エラーハンドラー] セクションに追加すると、エラーが発生した場合にエラー処理アクションとサブフローが確実に実行されるようになります。
- エラーステータス情報をキャプチャする
- エラーステータスオブジェクトには、エラーを生成したアクションに関する情報が含まれています。この情報を使用して、エラーの原因や、修正が必要な可能性があるレコードデータを特定することができます。
- サブフローエラーメッセージを非表示にする
- サブフローのエラーハンドラーを有効にして、エラーが親フローにカスケードされないようにすることができます。サブフローの [エラーハンドラー] セクションを空のままにすると、常に [完了 (エラーを取得)] ステータスが生成されます。
- サブフローを使用して 10 個のアイテム制限を回避する
- エラー処理プロセスを強制的に 10 個のアイテム制限内に収まるようにするのではなく、さらに多くのアイテムを含めることができるサブフローを呼び出します。サブフロー出力を使用して、他のフローの自動化をトリガーすることもできます。
- サブフローを使用して是正処置を行う
- 複数のフローで同じ一連のアクションを再作成するのではなく、再利用可能なサブフローを作成して、レコードデータのエラーを修正します。フローエラーによってレコードデータが望ましくない状態になった場合は、サブフローを使用してこれらのレコードを修正します。エラーハンドラーを使用して、そのようなレコードデータをサブフロー出力として特定することができます。