IM-BPM for Accel Platform IM-BPM チュートリアルガイド 第18版 2021-04-01

4.3.17.4. エラーイベントを使用する

このチュートリアルでは、エラーイベントを使用して例外処理を行う方法を解説します。
エラーイベントは、「設定されているエラーコード」と「エラー終了イベントなどで発生したエラーコード」を比較して合致した場合、フローを進行させます。
エラーをトリガとするイベントは、以下のとおりです。
  • エラー開始イベント
  • エラー境界イベント
  • エラー終了イベント
../../../../_images/event_0301.png
図:概要図
プロセスを進めていく中で、「IM-FormaDesigner」を使用します。
チュートリアルを開始する前に「IM-FormaDesigner」で作成したアプリケーションをインポートしてください。

コラム

各イベントの詳細については、以下を参照してください。

コラム

このチュートリアルで作成する「プロセス定義」のサンプルを、以下のリンクからダウンロードできます。

このサンプルは「プロセス定義アップロード」機能でプロジェクトにアップロードできます。
アップロード手順は「IM-BPM プロセスデザイナ 操作ガイド」-「プロセス定義のアップロード」を参照してください。

コラム

「IM-FormaDesigner」で作成したアプリケーションのインポート方法は以下を参照してください。

4.3.17.4.1. プロセス定義を作成する

下記の図は「設定が異なるエラー終了イベント」と「終了イベント」に分岐しているプロセス定義です。
  • 「エラー終了1」から「エラー開始」イベントが設置された「イベントサブプロセス」へ移行し、「エラー終了1で終了した場合のタスク」へ進むルート
  • 「エラー終了2」から「エラー境界」イベントに移行し、「エラー終了2で終了した場合のタスク」へ進むルート
  • 「終了」イベントでサブプロセスを終了し、「終了イベントで終了した場合のタスク」へ進むルート
「終了方法を選択するユーザタスク」に到達すると、チュートリアル開始前にインポートしたFormaアプリケーション「動作確認したい終了イベントを選択する」画面が表示されます。
画面で選択した終了方法にむけて、排他ゲートウェイからプロセスが分岐します。
../../../../_images/event_0302.png
図 : プロセス定義図「エラーイベントを使用する」

注意

エラーを受信できる範囲は、エラーが発生した箇所から参照できるプロセス内のみです。
  1. 「開始イベント」を設置します。
  2. プロセスの処理担当ユーザを設定します。
    キャンパスの空白部分をクリックし、「プロパティ」をプロセス全体切り替えます。
    「プロセス」タブから、処理対象ユーザを「 aoyagi 」に設定します。
    ../../../../_images/event_0303.png
    図 : プロセス全体 - 「プロパティ」 - 「プロセス」 - 「処理対象ユーザ」
  3. サブプロセスを設置します。
  4. サブプロセス内に「開始イベント」を設置します。
  5. Forma画面から終了方法を選択させるユーザタスクを設置します。
    「ユーザタスク」を設置します。
  6. 処理対象ユーザと、終了方法を選択するForma画面を設定をします。
    「ユーザタスク」をクリックし、「メインコンフィグ」タブから、以下のように項目を設定してください。
    • 処理対象ユーザ: aoyagi
    • フォームキー : forma:error_event_usage
    ../../../../_images/event_0304.png
    図 : 「サブプロセス」 - 「ユーザタスク」 - 「プロパティ」 - 「メインコンフィグ」
  7. Forma画面で選択された情報をもとに、プロセスの進行先が変更されるようにします。
    「排他ゲートウェイ」を設置します。
  8. 「エラー終了1」からイベントサブプロセス内の「エラー開始」へ進行するルートを作成します。
    「エラー終了イベント」を設置します。
  9. 「エラー終了1」に到達した際に送信するエラーコードを設定します。
    「エラー終了イベント」を選択した状態で、「メインコンフィグ」タブから「エラーコード」に「 error1 」と設定します。
    ../../../../_images/event_0305.png
    図 : 「サブプロセス」 - 「エラー終了イベント」 - 「プロパティ」 - 「メインコンフィグ」 - 「エラーコード」
  10. Forma画面で「エラー終了1」が指定された場合に「エラー終了1」へ進行するように条件付けをします。
    「排他ゲートウェイ」から「エラー終了1」へ続く「シーケンスフロー」を選択します。
    「メインコンフィグ」タブから、「条件」に ${end_way=="1"} と設定します。
    ../../../../_images/event_0306.png
    図 : 「サブプロセス」 - 「シーケンスフロー」 - 「プロパティ」 - 「メインコンフィグ」 - 「条件」
  11. エラー終了イベントの遷移先としてイベントサブプロセスを用意します。
    「イベントサブプロセス」を設置します。
  12. 「エラー終了1」に紐づくエラー開始イベントを設置します。
    「エラー開始イベント」を設置します。
  13. 「エラー終了1」に設定したエラーコードで紐づけます。
    「エラー開始イベント」を選択した状態で、「メインコンフィグ」タブから「エラーコード」に「 error1 」と設定します。
    ../../../../_images/event_0307.png
    図 : 「イベントサブプロセス」 - 「エラー開始イベント」 - 「プロパティ」 - 「メインコンフィグ」 - 「エラーコード」
  14. エラー開始イベントへ移行できたことを確認するためのタスクを設置します。
    「ユーザタスク」を設置します。
  15. 「エラー終了1で終了した場合のタスク」の担当者を設定します。
    「ユーザタスク」を選択した状態で「メインコンフィグ」タブから、担当者に「 aoyagi 」と設定します。
    ../../../../_images/event_0308.png
    図 : 「イベントサブプロセス」 - 「ユーザタスク」 - 「プロパティ」 - 「メインコンフィグ」 - 「担当者」
  16. エラー終了イベントから、イベントサブプロセス内のエラー開始イベントへ進行するルートを作成します。
    「エラー終了イベント」を設置します。
  17. 「エラー終了1」に到達したのち、エラー境界イベントへ移行するように紐づけます。
    「エラー終了イベント」を選択した状態で、「メインコンフィグ」タブから「エラーコード」に「 error2 」と設定します。
    ../../../../_images/event_0309.png
    図 : 「サブプロセス」 - 「エラー終了イベント」 - 「プロパティ」 - 「メインコンフィグ」 - 「エラーコード」
  18. Forma画面で「エラー終了2」が指定された場合に「エラー終了2」へ進行するように条件付けをします。
    「排他ゲートウェイ」から「エラー終了イベント」へ続く「シーケンスフロー」を選択します。
    「メインコンフィグ」タブから、「条件」に ${end_way=="2"} と設定します。
    ../../../../_images/event_0310.png
    図 : 「サブプロセス」 - 「シーケンスフロー」 - 「プロパティ」 - 「メインコンフィグ」 - 「条件」
  19. エラー終了イベントに到達したのち、エラー境界イベントを介してサブプロセス外のユーザタスクへ移行させます。
    「エラー境界イベント」を設置します。
  20. エラー終了イベントが送信するエラーコードを設定します。
    「エラー境界イベント」を選択した状態で、「メインコンフィグ」タブから「エラーコード」に「 error2 」と設定します。
    ../../../../_images/event_0311.png
    図 : 「サブプロセス」 - 「エラー境界イベント」 - 「プロパティ」 - 「メインコンフィグ」 - 「エラーコード」
  21. エラー境界イベントへ移動できたことを確認するためのユーザタスクを設置します。
    「ユーザタスク」を設置します。
  22. 「エラー終了2で終了した場合のタスク」の担当者を設定します。
    「ユーザタスク」を選択した状態で「メインコンフィグ」タブから、担当者に「 aoyagi 」と設定します。
    ../../../../_images/event_0312.png
    図 : 「ユーザタスク」 - 「エラー終了イベント」 - 「プロパティ」 - 「メインコンフィグ」 - 「担当者」
  23. 通常の終了イベントを使用したルートを作成します。
    「終了イベント」を設置します。
  24. Forma画面で終了イベントが指定された場合に、終了イベントへ進行するように条件付けをします。
    「排他ゲートウェイ」から「終了イベント」へ続く「シーケンスフロー」を選択します。
    「メインコンフィグ」タブから、「条件」に ${end_way=="3"} と設定します。
    ../../../../_images/event_0313.png
    図 : 「サブプロセス」 - 「シーケンスフロー」 - 「プロパティ」 - 「メインコンフィグ」 - 「条件」
  25. 終了イベントに到達し、サブプロセスが終了したことを確認するためのタスクを設置します。
    「ユーザタスク」を設置します。
  26. 「終了イベントで終了した場合のタスク」の担当者を設定します。
    ユーザタスクを選択した状態で「メインコンフィグ」タブから、担当者に「 aoyagi 」と設定します。
    ../../../../_images/event_0314.png
    図 : 「ユーザタスク」 - 「プロパティ」 - 「メインコンフィグ」 - 「担当者」

4.3.17.4.2. 結果を確認する

このチュートリアルで作成したプロセス定義を実行環境にデプロイし、実行した結果の確認を行います。

4.3.17.4.2.1. 結果確認の共通動作

プロセスの開始からForma画面までの動作は共通しているため、適宜実施してください。

  1. プロセスを開始します。
    「サイトマップ」→「BPM」→「プロセス開始一覧」画面を表示し、「エラーイベントを使用する」の「process_start」ボタンをクリックします。
    ../../../../_images/event_0315.png

    図:「プロセス開始一覧」

  2. タスクを確認します。
    「サイトマップ」→「BPM」→「タスク一覧」画面を表示します。
  3. 「個人タスク」から、「終了方法を選択するユーザタスク」の「process_start」アイコンをクリックして実行します。
    ../../../../_images/event_0316.png
    図 : 「プロセス開始一覧」
  4. 「動作確認したい終了イベントを選択する」画面が表示されます。
    以降の動作は、各イベントごとの説明に従って実行してください。
    ../../../../_images/event_0317.png
    図 : 動作確認したい終了イベントを選択する(IM-FormaDesigner)

4.3.17.4.2.1.1. 「エラー開始イベント」の動作確認

「エラー終了イベント」から「エラー開始イベント」へ進行するプロセスの状態を確認します。

  1. 「動作確認したい終了イベントを選択する」画面から「エラー終了1」を選択し、「決定」ボタンをクリックします。

    ../../../../_images/event_0318.png
    図 : 動作確認したい終了イベントを選択する(IM-FormaDesigner)
  2. プロセスの状態を確認します。
    「サイトマップ」→「BPM」→「タスク一覧」画面を表示します。
  3. 「個人タスク」に対象のタスクがあることを確認します。
    icon_reference」アイコンをクリックし、「プロセス詳細」画面を表示します。
    ../../../../_images/event_0319.png
    図: 「タスク一覧」 - 「個人タスク」
  4. 「プロセス参照」画面、または、「拡大表示」画面から、タスクが下記の状態であることを確認します。

    • ステータスが「実行中」であること

    • プロセス図で「エラー終了1で終了した場合のタスク」に「process-running」がついていること

    • タイムラインで、「サブプロセス」が終了していること
      「エラー終了1」から「エラー開始」へ進行していること
    ../../../../_images/event_0320.png
    図: 「プロセス詳細画面」

4.3.17.4.2.1.2. 「エラー境界イベント」の動作確認

「エラー終了イベント」から「エラー境界イベント」へ進行するプロセスの状況を確認します。

  1. 「動作確認したい終了イベントを選択する」画面から「エラー終了2」を選択し、「決定」ボタンをクリックします。

    ../../../../_images/event_0321.png
    図 : 動作確認したい終了イベントを選択する(IM-FormaDesigner)
  2. プロセスの状態を確認します。
    「サイトマップ」→「BPM」→「タスク一覧」画面を表示します。
  3. 「個人タスク」に対象のタスクがあることを確認します。
    icon_reference」アイコンをクリックし、「プロセス詳細」画面を表示します。
    ../../../../_images/event_0322.png
    図: 「タスク一覧」 - 「個人タスク」
  4. プロセスの状態を確認します。
    「サイトマップ」→「BPM」→「タスク一覧」画面を表示します。
  5. 「プロセス参照」画面、または、「拡大表示」画面から、タスクが下記の状態であることを確認します。

    • ステータスが「実行中」であること

    • プロセス図で「エラー終了2で終了した場合のタスク」に「process-running」がついていること

    • タイムラインで、「サブプロセス」が終了していること
      「エラー終了2」から「エラー終了2で終了した場合のタスク」へ進行していること
    ../../../../_images/event_0323.png
    図: 「プロセス詳細画面」

4.3.17.4.2.1.3. 「終了イベント」の動作確認

「終了イベント」に到達した場合、通常のプロセス同様サブプロセスが終了し、「サブプロセスで終了した場合のタスク」へ進行します。

../../../../_images/event_0324.png
図: 「プロセス詳細画面」