ページの先頭行へ戻る
Systemwalker Runbook Automation Studio利用ガイド
Systemwalker

11.1.7 Java Actionのエラー処理

Java Actionの実行中にエラーが発生した場合は、例外がスローされます。Systemwalker Runbook Automationでは、Java Actionのエラーに対して独自のエラー処理を定義できます。これにより、例外がスローされたときにプロセスインスタンスがエラー状態になることを防止できます。

また、トランザクションがロールバックされてプロセスインスタンスがエラー状態に設定される前にクリーンアップを実行するJava Actionを定義することもできます。これには、Java Actionセット内のすべてのJava Actionのロールバックが含まれます。プロセスインスタンスがエラー状態に設定される前に、エラー発生時の通知メールの送信などの一般的なアクションを実行したり、何らかの特別なアクションを実行することができます。

Systemwalker Runbook Automationには、Java Actionのエラーを処理する以下のオプションが用意されています。

通常のJava Actionに対してエラーアクションまたは補償アクションを定義するには、以下の手順に従います。

  1. [プロパティ]ビューを表示するために、プロセス定義エディタ内の空のスペースをクリック、または、Java Actionを設定するノードを選択します。

  2. [アクションセット]タブを選択します。

    選択したプロセス定義またはノードで使用できるすべてのJava Actionが表示されます。通常のJava Actionに対するエラーまたは補償Java Actionがまだ定義されていない場合は、エラーおよび補償Java Action用の空のフォルダが表示されます。以下の図は、2つのJava Actionで構成されるActivityノードの[開始アクション]フォルダを示しています。

    図11.5 [プロパティ]ビューに表示された開始アクション

  3. エラーまたは補償アクションの定義対象とする通常のJava Actionを選択します。

  4. [エラーアクション]または[補償アクション]フォルダ、またはフォルダ内のエラーまたは補償アクションを選択し、[追加]をクリックします。

    [アクションタイプ一覧]ダイアログが表示されます。ここで、Java Actionを選択し、このアクションを新しいエラーまたは補償アクションとして追加できます。

  5. [アクションタイプ一覧]ダイアログで、追加するJava Actionが含まれるフォルダを展開します。Java Actionを選択し、[作成]をクリックします。

    選択したJava Actionの詳細を入力するダイアログが表示されます。選択したアクションに応じて必要な操作を行います。

  6. Java Actionに対してエラーアクションを定義する場合:選択したJava Actionの[アクションエディタ]の[エラー処理]タブをクリックします。ここで、以下のエラー処理設定を指定できます。

    注意

    このタブは、通常のJava Actionに対してエラーアクションを定義する場合にのみ使用できます。補償アクションを定義する場合、またはプロセス定義レベルでエラーアクションを定義する場合は、このタブを使用できません。

    図11.6 [エラー処理]タブの表示

    • エラー後の動作:エラーアクション実行後のプロセスインスタンスの動作を指定します。プロセスインスタンスをエラー状態にする場合は、[エラー状態へ遷移]ラジオボタンを選択します。エラーが発生すると、エラーが発生したJava Actionに対して指定された補償アクションと、プロセスレベルのエラーアクションが実行され、プロセスインスタンスはロールバックされてエラー状態になります。

      プロセスインスタンスの実行を継続する場合は、[プロセス続行]ラジオボタンを選択します。エラーが発生すると、例外がキャッチされ、失敗したJava Actionに対して指定されているエラーアクションが実行されて、プロセスインスタンスは続行されます。デフォルト設定は、[エラー状態へ遷移]です。

      注意

      複数のエラーアクションを異なる設定で定義してある場合は、[エラー状態へ遷移]の設定が[プロセス続行]の設定よりも優先されます。

    • 対象とするException:どのような例外がスローされた際にエラーアクションを実行するかを選択できます。エラーアクションをあらゆる種類の例外に対応させる場合は、[すべてのExceptionをcatchする]ラジオボタンを選択します。この場合、[追加]および[削除]ボタンは無効になります。

      エラーアクションを特定の種類の例外に対応させる場合は、[以下で指定したExceptionをcatchする]ラジオボタンを選択します。この場合は、[追加]および[削除]ボタンを使用して、例外クラス名(たとえば、java.lang.NullPointerException)を指定する必要があります。

      ただし、例外クラスとしてjava.lang.Exceptionを指定すると、[すべてのExceptionをcatchする]を指定した場合と同じ動作になります。さらに具体的に指定しない限り、すべての例外はこのクラスに属するからです。

    任意のエラー処理設定を組み合わせることができます。組み合わせによって異なるエラー処理操作が実行されます。以下の表は、すべての可能な組み合わせと、定義済みJava Actionが実行された場合の効果を示しています。

    エラー処理設定

    エラー状態へ遷移

    プロセス続行

    すべてのExceptionをcatchする

    Java Actionが任意の種類の例外をスローすると、指定されたエラーアクションが実行されます。トランザクションはロールバックされ、プロセスインスタンスはエラー状態になります。

    任意の種類の例外がJava Actionからスローされると、指定されたエラーアクションが例外をキャッチし、プロセスインスタンスは続行されます。

    以下で指定したExceptionをcatchする

    指定された例外がJava Actionからスローされると、エラーアクションが実行されます。トランザクションはロールバックされ、プロセスインスタンスはエラー状態になります。

    指定されていない例外がJava Actionからスローされると、エラーアクションは実行されず、トランザクションがロールバックされて、プロセスインスタンスはエラー状態になります(デフォルトのエラー処理動作)。

    指定された例外がJava Actionからスローされると、エラーアクションが例外をキャッチし、プロセスインスタンスは続行されます。

    指定されていない例外がJava Actionからスローされると、エラーアクションは実行されず、トランザクションがロールバックされて、プロセスインスタンスはエラー状態になります(デフォルトのエラー処理動作)。

  7. 選択したJava Actionの詳細を入力し、エラーアクションの動作を指定したら、[OK]をクリックします。

    [プロパティ]ビューに、新しいJava Actionが表示されます。以下の例では、開始アクションに1つのエラーアクションと1つの補償アクションが追加されています。

    図11.7 エラーアクションと補償アクションの追加