4.3.13.1. イベントゲートウェイを使用する¶
このチュートリアルでは、イベントゲートウェイを使用したプロセスの遷移先の選択や合流の定義方法を解説します。
イベントゲートウェイは、接続先のキャッチイベントの状態を評価して遷移先を決定します。
接続先のキャッチイベントで、最初に実行状態になった遷移先のみに遷移します。
イベントゲートウェイの仕様上1方向のみに遷移するため、合流は排他ゲートウェイで定義します。
プロセスを進めていく中で、「IM-LogicDesigner」のロジックフローを使用します。
チュートリアルを開始する前に以下の資材をインポートしてください。
注意
このチュートリアルの「IM-LogicDesignerタスク」で使用するロジックフローは、IM-BPM for Accel Platform 2018 Spring(Skylark) 以降のバージョンで動作します。
コラム
各イベントの詳細については、以下を参照してください。
- タイマキャッチイベント : 「IM-BPM プロセスデザイナ 操作ガイド」 - 「タイマキャッチイベント」
- シグナルキャッチイベント : 「IM-BPM プロセスデザイナ 操作ガイド」 - 「シグナルキャッチイベント」
- メッセージキャッチイベント : 「IM-BPM プロセスデザイナ 操作ガイド」 - 「メッセージキャッチイベント」
コラム
ロジックフローのインポートについての詳細は「IM-LogicDesigner ユーザ操作ガイド」-「インポート/エクスポート」を参照してください。
IM-LogicDesignerの詳細については、「IM-LogicDesigner仕様書」を参照してください。
コラム
このチュートリアルで作成するプロセス定義のサンプルを以下のリンクからダウンロードできます。
このサンプルは「プロセス定義アップロード」機能でプロジェクトにアップロードできます。
アップロード手順は「IM-BPM プロセスデザイナ 操作ガイド」-「プロセス定義のアップロード」を参照してください。
コラム
このチュートリアルのサンプルでは、同一ファイル内に複数のプロセスが定義されていますが、それぞれファイルを分けて定義することも可能です。
4.3.13.1.1. プロセス定義を作成する¶
このチュートリアルでは、「プール」を使用することで、3つのプロセスを1つのキャンパスに作成しています。
- イベントゲートウェイで分岐するプロセス
- メッセージを送信するプロセス
- シグナルを送信するプロセス
プロセスが進行する条件は「メッセージイベント・シグナルイベントのいずれかを受信する」か「タイマイベントで設定した時刻に到達する」です。
4.3.13.1.1.1. メッセージを送信するプロセス定義を作成する¶
「IM-LogicDesignerタスク」を実行することで、「メッセージキャッチイベント」メッセージを送信するプロセスを作成します。
「メッセージ」を登録します。キャンパスの空白部分をクリックし、プロパティをプロセス全体に切り替えます。「メッセージ&シグナル」タブから、メッセージの「追加」リンクをクリックします。図:プロセス全体 - 「プロパティ」 - 「メッセージ&シグナル」 以下のとおりに「メッセージ」を登録します。
- ID : event_gateway_usage-message
- 名前 : event_gateway_usage-message
図:「メッセージ」「開始イベント」 を設置します。
「処理対象ユーザ」を設定します。プールをクリックし、「プロセス」タブから担当者を aoyagi に設定します。図: プロセス全体 - 「プロパティ」 - 「プロセス」 「IM-LogicDesignerタスク」 - 「プロパティ」 - 「メインコンフィグ」 で以下の項目を設定します。
- フローID : event_gateway-send_message
- 利用するバージョン : 最新バージョンを利用
図:「IM-LogicDesignerタスク」- 「プロパティ」 - 「メインコンフィグ」 入力データを設定します。「IM-LogicDesignerタスク」を選択し、「メインコンフィグ」タブから、入力データの「追加」リンクをクリックします図:「IM-LogicDesignerタスク」- 「プロパティ」 - 「メインコンフィグ」 以下のとおりに値を登録し、保存します。
入力データ1
- 名前 : message
- 値 : event_gateway_usage-message
入力データ2
- 名前 : processDefinitionKey
- 値 : event_gateway_usage-event_gateway_process
図:「入力データ」 「終了イベント」を設置し、保存します。
4.3.13.1.1.2. シグナルを送信するプロセス定義を作成する¶
「シグナルスローイベント」を実行することで、シグナルを送信するプロセスを作成します。
「シグナル」を登録します。キャンパスの空白部分をクリックし、プロパティをプロセス全体に切り替えます。「メッセージ&シグナル」タブから、「シグナル」の「追加」リンクをクリックします。図:プロセス全体 - 「プロパティ」 - 「メッセージ&シグナル」 以下のとおりに値を登録し、保存します。
- ID : event_gateway_usage-signal
- 名前 : event_gateway_usage-signal
図:「シグナル」 「処理対象ユーザ」を設定します。プールをクリックし、「プロセス」タブから担当者を aoyagi に設定します。図: プロセス全体 - 「プロパティ」 - 「プロセス」「開始イベント」 を設置します。
参照シグナルを設定します。「シグナルスローイベント」を選択し、「メインコンフィグ」タブから、「参照シグナル」のプルダウンで event_gateway_usage-signal(ID: event_gateway_usage-signal) を選択します。図:「シグナルスローイベント」- 「プロパティ」 - 「メインコンフィグ」 「終了イベント」を設置し、保存します。
4.3.13.1.1.3. イベントゲートウェイで分岐するプロセス定義を作成する¶
イベントゲートウェイで分岐するプロセスを作成します。
プロセスが進行する条件は「メッセージイベント・シグナルイベントのいずれかを受信する」か「タイマイベントで設定した時刻に到達する」です。
どのイベントが発生したか「プロセス詳細」画面から確認できるように、各イベントの後にタスクを設置します。
プロセスの設定を行います。プールをクリックし、「プロセス」タブから、以下のように項目を設定します。
- プロセス定義キー : event_gateway_usage-event_gateway_process
- 処理対象ユーザ : aoyagi
図: プロセス全体 - 「プロパティ」 - 「プロセス」「開始イベント」 を設置します。
「イベントゲートウェイ」を設置します。 1つ目の分岐である「タイマキャッチイベント」を設置します。 「タイマキャッチイベント」の起動時間を設定します。「タイマキャッチイベント」を選択し、「メインコンフィグ」タブから、以下のように項目を設定します。
- 時間指定の種別 : 期間
- 期間 : PT5M
図:「タイマキャッチイベント」 - 「プロパティ」 - 「メインコンフィグ」コラム
PT5Mは「5分」を、ISO 8601の形式に則って記述したものです。例:10分→PT10M2日→P2D 「タイマキャッチイベント」が起動したことを確認するための「ユーザタスク」を設置します。図:「ユーザタスク」 2つ目の分岐である「シグナルキャッチイベント」を設置します。 参照シグナルを設定します。「シグナルキャッチイベント」を選択し、「メインコンフィグ」タブから、「参照シグナル」のプルダウンで event_gateway_usage-signal(ID: event_gateway_usage-signal) を選択します。図 : 「シグナルキャッチイベント」 - 「プロパティ」 - 「メインコンフィグ」 「シグナルキャッチイベント」が起動したことを確認するための「ユーザタスク」を設置します。図 : 「ユーザタスク」 3つ目の分岐である「メッセージキャッチイベント」を設置します。 参照メッセージを設定します。「メッセージキャッチイベント」を選択し、「メインコンフィグ」タブから、「参照メッセージ」のプルダウンで event_gateway_usage-message(ID: event_gateway_usage-message) を選択します。図 : 「メッセージキャッチイベント」 - 「プロパティ」 - 「メインコンフィグ」 「メッセージキャッチイベント」が起動したことを確認するための「ユーザタスク」を設置します。図 : 「ユーザタスク」 分岐の合流先として「排他ゲートウェイ」を設置します。 「終了イベント」を設置して保存します。
4.3.13.1.2. 結果を確認する¶
このチュートリアルで作成した「プロセス定義」を実行環境にデプロイし、実行結果の確認を行います。