Workflow Finalization (ワークフローの最終処理)

[Workflow Initialization (ワークフロー初期化)] 要素と同様に、デフォルト設定では、各ワークフローの最後に [Workflow Finalization (ワークフロー最終処理)] アクションブロックが配置されます。これは、制御された方法でワークフローを終了するために使用されます。つまり、ワークフローが失敗したのか、正常に実行されたのかに応じて各種動作を定義できます。これは、ワークフローが失敗しても高次プロセスを継続して実行する場合などに重要になります。 [Workflow Finalization (ワークフロー最終処理)] アクションブロックには、任意のアクションステップを追加できます。ただし、Transaction、Exit Workflow、Measurement Points アクションステップは除きます。

「Workflow Finalization (ワークフロー最終処理)」 ウィンドウ

  • Workflow run succeeded (ワークフローの実行に成功)

    [Workflow Finalization (ワークフロー最終処理)] ブロックまでワークフローが正常に実行されると、[Workflow run succeeded (ワークフローの実行に成功)] セクションが自動的にトリガーされます。まず、ここにあるすべてのアクションステップの実行が試行されます。エラー (画像検索の失敗など) が発生すると、実行が終了します。どのようにプロセスが継続されるのかは、ワークフロー最終処理ウィザードで特定のエラーに選択した設定によって異なります。

  • Workflow run failed (ワークフローの実行に失敗)

    このセクションは、前のポイントで前のワークフローが失敗した場合に実行されます。[Workflow run failed (ワークフローの実行に失敗)] セクションでエラーに対処し、ワークフロー最終処理ウィザードで高次ビジネスプロセスの今後の動作を定義できます。

  • Common finalization handling (共通の最終処理)

    [Common finalization handling (共通の最終処理)] セクションは、ワークフローやブロック内でエラーが発生したかどうかに関係なく、実行ごとに [Workflow Finalization (ワークフロー最終処理)] ブロックの最後に実行されます。このセクションの実行はエラー状態に影響しません。セクションに入ったときに適用されているエラー状態は保持されます。

ウィザード

「Workflow Finalization Wizard (ワークフロー最終処理ウィザード)」 ウィンドウ

発生する可能性のあるケースと、ウィザードの設定で定義される対処方法を次に示します。

  • ワークフローの実行に成功した

    ワークフローの実行に成功したが、セクション内のアクションステップが失敗している。

    このシナリオでは、ウィザードで次の動作を定義できます。

    • Keep success state (成功状態を保持)

      エラーは無視されて、ワークフローの成功状態が保持され、ビジネスプロセスの実行が継続されます。

    • Proceed with Business Process execution (ビジネスプロセスの実行を続行)

      ワークフローのエラー状態は保持されてドキュメント化もされますが、高次ビジネスプロセスの実行は継続されます。

    • Terminate Business Process execution (ビジネスプロセスの実行を終了)

      ワークフローのエラー状態が保持されて、ワークフローも [Failed (失敗)] 状態で終了します。高次ビジネスプロセスの実行は終了します。

  • Workflow run failed (ワークフローの実行に失敗)

    ワークフローの実行が失敗し、[Workflow run failed (ワークフローの実行に失敗)] セクションで処理される。

    このシナリオでは、ウィザードで設定されるオプションに関係なく、ワークフローの状態は変わりません。ワークフローが失敗している場合、後で [Succeeded (成功)] に設定することはできません。​[Workflow run failed (ワークフローの実行に失敗)]​ セクション内のアクションステップが失敗していても、ウィザードで行われたビジネスプロセスの今後の実行に関連する設定には影響しません。

    このシナリオでは、ウィザードで次の動作を定義できます。

    • Ignore error, proceed with Business Process execution (エラーを無視して、ビジネスプロセスの実行を続行)

      エラーは認識され、エラーとしてドキュメント化されますが、高次ビジネスプロセスの実行は継続されます。

    • Keep error, terminate Business Process execution (エラーを保持して、ビジネスプロセスの実行を終了)

      ワークフローのエラー状態が保持されて、ワークフローも [Failed (失敗)] 状態で終了します。高次ビジネスプロセスの実行は終了します。

  • [Common finalization handling (共通の最終処理)] セクションのアクションステップが失敗した

    このケースでは、このセクション内のアクションステップが対処されますが、ワークフローの状態には影響しません。ワークフローが失敗している場合、[Failed (失敗)] 状態が保持されます。ワークフローが成功している場合、[Succeeded (成功)] 状態が保持されます。この動作は、​ニュートラル​と言い表すことができます。

    ワークフローが Exit Workflow アクションステップなどのユーザー終了で終了した場合、[Common finalization handling (共通の最終処理)] セクションのみが実行されます。

    [Proceed with Business Process (ビジネスプロセスを続行)]​ モードの利点は、ビジネスプロセスレベルでワークフローのエラー状態に対処できることです。たとえば、​LastActivityError​ アクティビティパラメーターを定義して値を入力する場合、何が起きたのかに関係なく、ビジネスプロセスレベルでゲートウェイを介して適切なエラー処理プロセスをモデル化できます。