IM-BPM for Accel Platform プログラミングガイド 初版 2016-10-01

4.4. シグナル

シグナルは、シグナル中間イベントなどのシグナルの受信を待機しているプロセスインスタンスを進めることができます。

4.4.1. シグナルを送信する

シグナルを送信する用途はいくつかあります。
  • シグナル中間イベントにとまっているプロセスインスタンスにブロードキャストする。
  • シグナル境界イベントを発火させるためにブロードキャストする。
  • レシーブタスクに送信する。

4.4.1.1. シグナル中間イベントにとまっているプロセスインスタンスを進める

シグナル中間イベントに設定している参照シグナルを指定してシグナルをブロードキャストします。
../../../_images/signal_1.png
図:シグナル中間イベント

コラム

シグナル中間イベントの設定の詳細は「IM-BPM Designer 操作ガイド」 - 「シグナル中間イベント」を確認してください。
REST-API
メソッド POST
URI %ベースURL%/runtime/signals
BODY {‘signalName’ : ‘%参照シグナル%’, ‘async’ : false, ‘variables’ : [{‘name’ : ‘%変数名%’, ‘type’ : ‘%変数タイプ%’, ‘variableScope’ : ‘%変数スコープ%’, ‘value’ : ‘%値%’}, ...]}
API
RuntimeService runtimeService = ProcessEngineFactory.getInstance().getProcessEngine().getRuntimeService();

runtimeService.signalEventReceived("%参照シグナル%");

// 変数を設定する場合
runtimeService.signalEventReceived("%参照シグナル%", %変数Map%);

// 非同期でシグナルを送信する場合
runtimeService.signalEventReceivedAsync("%参照シグナル%");
プロセスインスタンスを指定してシグナルを送信する場合
REST-API
メソッド PUT
URI %ベースURL%/runtime/executions/{executionId}
BODY {‘action’ : ‘signalEventReceived’, ‘signalName’ : ‘%参照シグナル%’, ‘variables’ : [{‘name’ : ‘%変数名%’, ‘type’ : ‘%変数タイプ%’, ‘variableScope’ : ‘%変数スコープ%’, ‘value’ : ‘%値%’}, ...]}
参照シグナルを指定しない場合
メソッド PUT
URI %ベースURL%/runtime/executions/{executionId}
BODY {‘action’ : ‘signal’, ‘variables’ : [{‘name’ : ‘%変数名%’, ‘type’ : ‘%変数タイプ%’, ‘variableScope’ : ‘%変数スコープ%’, ‘value’ : ‘%値%’}, ...]}
API
RuntimeService runtimeService = ProcessEngineFactory.getInstance().getProcessEngine().getRuntimeService();

runtimeService.signalEventReceived("%参照シグナル%", "%エグゼキューションID%");

// 変数を設定する場合
runtimeService.signalEventReceived("%参照シグナル%", "%エグゼキューションID%", %変数Map%);

// 参照シグナルを指定しない場合
runtimeService.signal("%エグゼキューションID%");

4.4.1.2. シグナル境界イベントを発火させるためにブロードキャストする

シグナル境界イベントに設定しているシグナル参を指定してシグナルをブロードキャストします。
../../../_images/signal_2.png
図:シグナル境界イベント

コラム

シグナル境界イベントの設定の詳細は「IM-BPM Designer 操作ガイド」 - 「シグナル境界イベント」を確認してください。
シグナル中間イベントにとまっているプロセスインスタンスを進める方法と同様です。

4.4.1.3. レシーブタスクに送信する

レシーブタスクにとまっているプロセスのエグゼキューションIDを指定してメッセージを送信します。
../../../_images/signal_3.png
図:レシーブタスク

コラム

レシーブタスクの設定の詳細は「IM-BPM Designer 操作ガイド」 - 「レシーブタスク」を確認してください。
シグナル中間イベントにとまっているプロセスインスタンスを進める方法の「参照シグナルを指定しない場合」と同様です。