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

4.3.13.1. イベントゲートウェイを使用する

このチュートリアルでは、イベントゲートウェイを使用したプロセスの遷移先の選択や合流の定義方法を解説します。
イベントゲートウェイは、接続先のキャッチイベントの状態を評価して遷移先を決定します。
接続先のキャッチイベントで、最初に実行状態になった遷移先のみに遷移します。
イベントゲートウェイの仕様上1方向のみに遷移するため、合流は排他ゲートウェイで定義します。
イベントゲートウェイの詳細については、「IM-BPM プロセスデザイナ 操作ガイド」 - 「ゲートウェイ」 - 「イベントゲートウェイ」もあわせて参照してください。
プロセスを進めていく中で、「IM-LogicDesigner」のロジックフローを使用します。
チュートリアルを開始する前に以下の資材をインポートしてください。
../../../../_images/event_gateway_0001.png
図:概要図

注意

このチュートリアルの「IM-LogicDesignerタスク」で使用するロジックフローは、IM-BPM for Accel Platform 2018 Spring(Skylark) 以降のバージョンで動作します。

コラム

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

コラム

ロジックフローのインポートについての詳細は「IM-LogicDesigner ユーザ操作ガイド」-「インポート/エクスポート」を参照してください。
IM-LogicDesignerの詳細については、「IM-LogicDesigner仕様書」を参照してください。

コラム

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

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

コラム

このチュートリアルのサンプルでは、同一ファイル内に複数のプロセスが定義されていますが、それぞれファイルを分けて定義することも可能です。

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

このチュートリアルでは、「プール」を使用することで、3つのプロセスを1つのキャンパスに作成しています。
  • イベントゲートウェイで分岐するプロセス
  • メッセージを送信するプロセス
  • シグナルを送信するプロセス
プロセスが進行する条件は「メッセージイベント・シグナルイベントのいずれかを受信する」か「タイマイベントで設定した時刻に到達する」です。
../../../../_images/event_gateway_0002.png
図:完成イメージ

4.3.13.1.1.1. メッセージを送信するプロセス定義を作成する

「IM-LogicDesignerタスク」を実行することで、「メッセージキャッチイベント」メッセージを送信するプロセスを作成します。
../../../../_images/event_gateway_0003.png
図:完成イメージ
  1. 「メッセージ」を登録します。
    キャンパスの空白部分をクリックし、プロパティをプロセス全体に切り替えます。
    「メッセージ&シグナル」タブから、メッセージの「追加」リンクをクリックします。
    ../../../../_images/event_gateway_0004.png
    図:プロセス全体 - 「プロパティ」 - 「メッセージ&シグナル」
  2. 以下のとおりに「メッセージ」を登録します。
    • ID : event_gateway_usage-message
    • 名前 : event_gateway_usage-message
    ../../../../_images/event_gateway_0005.png
    図:「メッセージ」
  3. 「開始イベント」 を設置します。

  4. 「処理対象ユーザ」を設定します。
    プールをクリックし、「プロセス」タブから担当者を aoyagi に設定します。
    ../../../../_images/event_gateway_0006.png
    図: プロセス全体 - 「プロパティ」 - 「プロセス」
  5. 「IM-LogicDesignerタスク」 - 「プロパティ」 - 「メインコンフィグ」 で以下の項目を設定します。
    • フローID : event_gateway-send_message
    • 利用するバージョン : 最新バージョンを利用
    ../../../../_images/event_gateway_0007.png
    図:「IM-LogicDesignerタスク」- 「プロパティ」 - 「メインコンフィグ」
  6. 入力データを設定します。
    「IM-LogicDesignerタスク」を選択し、「メインコンフィグ」タブから、入力データの「追加」リンクをクリックします
    ../../../../_images/event_gateway_0008.png
    図:「IM-LogicDesignerタスク」- 「プロパティ」 - 「メインコンフィグ」
  7. 以下のとおりに値を登録し、保存します。
    • 入力データ1

      • 名前 : message
      • 値 : event_gateway_usage-message
    • 入力データ2

      • 名前 : processDefinitionKey
      • 値 : event_gateway_usage-event_gateway_process
    ../../../../_images/event_gateway_0009.png
    図:「入力データ」
  8. 「終了イベント」を設置し、保存します。

4.3.13.1.1.2. シグナルを送信するプロセス定義を作成する

「シグナルスローイベント」を実行することで、シグナルを送信するプロセスを作成します。

../../../../_images/event_gateway_0010.png
図:完成イメージ
  1. 「シグナル」を登録します。
    キャンパスの空白部分をクリックし、プロパティをプロセス全体に切り替えます。
    「メッセージ&シグナル」タブから、「シグナル」の「追加」リンクをクリックします。
    ../../../../_images/event_gateway_0011.png
    図:プロセス全体 - 「プロパティ」 - 「メッセージ&シグナル」
  2. 以下のとおりに値を登録し、保存します。
    • ID : event_gateway_usage-signal
    • 名前 : event_gateway_usage-signal
    ../../../../_images/event_gateway_0012.png
    図:「シグナル」
  3. 「処理対象ユーザ」を設定します。
    プールをクリックし、「プロセス」タブから担当者を aoyagi に設定します。
    ../../../../_images/event_gateway_0013.png
    図: プロセス全体 - 「プロパティ」 - 「プロセス」
  4. 「開始イベント」 を設置します。

  5. 参照シグナルを設定します。
    「シグナルスローイベント」を選択し、「メインコンフィグ」タブから、「参照シグナル」のプルダウンで event_gateway_usage-signal(ID: event_gateway_usage-signal) を選択します。
    ../../../../_images/event_gateway_0014.png
    図:「シグナルスローイベント」- 「プロパティ」 - 「メインコンフィグ」
  6. 「終了イベント」を設置し、保存します。

4.3.13.1.1.3. イベントゲートウェイで分岐するプロセス定義を作成する

イベントゲートウェイで分岐するプロセスを作成します。
プロセスが進行する条件は「メッセージイベント・シグナルイベントのいずれかを受信する」か「タイマイベントで設定した時刻に到達する」です。
どのイベントが発生したか「プロセス詳細」画面から確認できるように、各イベントの後にタスクを設置します。
../../../../_images/event_gateway_0015.png
図:完成イメージ
  1. プロセスの設定を行います。
    プールをクリックし、「プロセス」タブから、以下のように項目を設定します。
    • プロセス定義キー : event_gateway_usage-event_gateway_process
    • 処理対象ユーザ : aoyagi
    ../../../../_images/event_gateway_0016.png
    図: プロセス全体 - 「プロパティ」 - 「プロセス」
  2. 「開始イベント」 を設置します。

  3. 「イベントゲートウェイ」を設置します。
  4. 1つ目の分岐である「タイマキャッチイベント」を設置します。
  5. 「タイマキャッチイベント」の起動時間を設定します。
    「タイマキャッチイベント」を選択し、「メインコンフィグ」タブから、以下のように項目を設定します。
    • 時間指定の種別 : 期間
    • 期間 : PT5M
    ../../../../_images/event_gateway_0017.png
    図:「タイマキャッチイベント」 - 「プロパティ」 - 「メインコンフィグ」

    コラム

    PT5Mは「5分」を、ISO 8601の形式に則って記述したものです。

    例:10分→PT10M
    2日→P2D
  6. 「タイマキャッチイベント」が起動したことを確認するための「ユーザタスク」を設置します。
    ../../../../_images/event_gateway_0018.png
    図:「ユーザタスク」
  7. 2つ目の分岐である「シグナルキャッチイベント」を設置します。
  8. 参照シグナルを設定します。
    「シグナルキャッチイベント」を選択し、「メインコンフィグ」タブから、「参照シグナル」のプルダウンで event_gateway_usage-signal(ID: event_gateway_usage-signal) を選択します。
    ../../../../_images/event_gateway_0019.png
    図 : 「シグナルキャッチイベント」 - 「プロパティ」 - 「メインコンフィグ」
  9. 「シグナルキャッチイベント」が起動したことを確認するための「ユーザタスク」を設置します。
    ../../../../_images/event_gateway_0020.png
    図 : 「ユーザタスク」
  10. 3つ目の分岐である「メッセージキャッチイベント」を設置します。
  11. 参照メッセージを設定します。
    「メッセージキャッチイベント」を選択し、「メインコンフィグ」タブから、「参照メッセージ」のプルダウンで event_gateway_usage-message(ID: event_gateway_usage-message) を選択します。
    ../../../../_images/event_gateway_0021.png
    図 : 「メッセージキャッチイベント」 - 「プロパティ」 - 「メインコンフィグ」
  12. 「メッセージキャッチイベント」が起動したことを確認するための「ユーザタスク」を設置します。
    ../../../../_images/event_gateway_0022.png
    図 : 「ユーザタスク」
  13. 分岐の合流先として「排他ゲートウェイ」を設置します。
  14. 「終了イベント」を設置して保存します。

4.3.13.1.2. 結果を確認する

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

  1. 「サイトマップ」→「BPM」→「プロセス開始一覧」画面を表示します。
  2. プロセス開始一覧から、「イベントゲートウェイで分岐するプロセス」の「startable_list-start_processes」のアイコンをクリックします。
    ../../../../_images/event_gateway_0023.png
    図: 「プロセス開始一覧」

4.3.13.1.2.1. シグナルキャッチイベントへ分岐させる場合

「シグナルキャッチイベント」を受けて進行するタスクを確認します。

  1. 「サイトマップ」→「BPM」→「プロセス開始一覧」画面を表示します。

  2. プロセス開始一覧から、「シグナルを送信するプロセス」の「startable_list-start_processes」アイコンをクリックします。

    ../../../../_images/event_gateway_0024.png
    図 : 「プロセス開始一覧」
  3. 「プロセス定義詳細」画面を表示します。
    「サイトマップ」→「BPM」→「プロセス定義一覧」から、「イベントゲートウェイで分岐するプロセス 」の「process-definition-detail」をクリックします。
    ../../../../_images/event_gateway_0025.png
    図 : 「プロセス定義一覧」
  4. 「プロセス詳細」画面を表示します。
    「シグナルキャッチイベント」の先にある「シグナルを受け取った場合のタスク」に進行していることを確認します。
    ../../../../_images/event_gateway_0026.png
    図 : 「プロセス定義詳細」

4.3.13.1.2.2. メッセージキャッチイベントへ分岐させる場合

「メッセージキャッチイベント」を受けて進行するタスクを確認します。

  1. プロセス開始一覧から、「メッセージを送信するプロセス」の「startable_list-start_processes」アイコンをクリックします。

    ../../../../_images/event_gateway_0027.png
    図 : 「プロセス開始一覧」
  2. 「プロセス定義詳細」画面を表示します。
    「サイトマップ」→「BPM」→「プロセス定義一覧」から、「イベントゲートウェイで分岐するプロセス 」の「process-definition-detail」をクリックします。
    ../../../../_images/event_gateway_0028.png
    図 : 「プロセス定義一覧」
  3. 「メッセージキャッチイベント」の先にある「メッセージを受け取った場合のタスク」に進行していることを確認します。
    ../../../../_images/event_gateway_0029.png
    図 : 「プロセス定義詳細」

4.3.13.1.2.3. タイマキャッチイベントへ分岐させる場合

「タイマキャッチイベント」を受けて進行するタスクを確認します。
今回のタイマキャッチイベントは「 PT5M 」と設定したため、5分後にイベントゲートウェイから進行していることを確認します。
  1. 「プロセス定義詳細」画面を表示します。
    「サイトマップ」→「BPM」→「プロセス定義一覧」から、「イベントゲートウェイで分岐するプロセス 」の「process-definition-detail」をクリックします。
    ../../../../_images/event_gateway_0030.png
    図 : 「プロセス定義一覧」
  2. 「タイマキャッチイベント」の先にある「時間切れとなった場合のタスク」に進行していることを確認します。
    ../../../../_images/event_gateway_0031.png
    図 : 「プロセス定義詳細」