4.4. シグナル¶
シグナルは、シグナルキャッチイベントなどのシグナルの受信を待機しているプロセスインスタンスを進めることができます。
項目
4.4.1. シグナルを送信する¶
シグナルを送信する用途はいくつかあります。
- シグナルキャッチイベントにとまっているプロセスインスタンスにブロードキャストする。
- シグナル境界イベントを発火させるためにブロードキャストする。
- 受信タスクに送信する。
- プロセス定義のシグナル開始イベントにブロードキャストする。
4.4.1.1. シグナルキャッチイベントにとまっているプロセスインスタンスを進める¶
シグナルをブロードキャストする方法と、特定のイベントに対してシグナルを送信する方法があります。
4.4.1.1.1. 参照シグナルを指定してシグナルをブロードキャストする¶
4.4.1.1.1.1. REST-API¶
メソッド POST URI %ベースURL%/api/bpm/runtime/signals BODY {‘signalName’ : ‘%参照シグナル%’, ‘async’ : false, ‘variables’ : [{‘name’ : ‘%変数名%’, ‘type’ : ‘%変数タイプ%’, ‘variableScope’ : ‘%変数スコープ%’, ‘value’ : ‘%値%’}, ...]}
4.4.1.1.1.2. JavaEE開発モデル¶
RuntimeService runtimeService = ProcessEngineFactory.getInstance().getProcessEngine().getRuntimeService(); runtimeService.signalEventReceived("%参照シグナル%"); // 変数を設定する場合 runtimeService.signalEventReceived("%参照シグナル%", %変数Map%); // シグナル受信アクティビティを非同期実行する場合 runtimeService.signalEventReceivedAsync("%参照シグナル%");
4.4.1.1.1.3. スクリプト開発モデル¶
var runtimeService = new bpm.RuntimeService(); runtimeService.signalEventReceived("%参照シグナル%"); // 変数を設定する場合 var variables = { "var1": "string", "var2": 123, "var3": new Date(), "var4": true }; runtimeService.signalEventReceived("%参照シグナル%", variables); // シグナル受信アクティビティを非同期実行する場合 runtimeService.signalEventReceivedAsync("%参照シグナル%");
4.4.1.1.2. 特定のシグナルキャッチイベントに対してシグナルを送信する¶
4.4.1.1.2.1. REST-API¶
参照シグナルを指定する場合
メソッド PUT URI %ベースURL%/api/bpm/runtime/executions/{executionId} BODY {‘action’ : ‘signalEventReceived’, ‘signalName’ : ‘%参照シグナル%’, ‘variables’ : [{‘name’ : ‘%変数名%’, ‘type’ : ‘%変数タイプ%’, ‘variableScope’ : ‘%変数スコープ%’, ‘value’ : ‘%値%’}, ...]} 参照シグナルを指定しない場合
メソッド PUT URI %ベースURL%/api/bpm/runtime/executions/{executionId} BODY {‘action’ : ‘signal’, ‘variables’ : [{‘name’ : ‘%変数名%’, ‘type’ : ‘%変数タイプ%’, ‘variableScope’ : ‘%変数スコープ%’, ‘value’ : ‘%値%’}, ...]}
4.4.1.1.2.2. JavaEE開発モデル¶
RuntimeService runtimeService = ProcessEngineFactory.getInstance().getProcessEngine().getRuntimeService(); runtimeService.signalEventReceived("%参照シグナル%", "%エグゼキューションID%"); // 変数を設定する場合 runtimeService.signalEventReceived("%参照シグナル%", "%エグゼキューションID%", %変数Map%); // 参照シグナルを指定しない場合 runtimeService.signal("%エグゼキューションID%");
4.4.1.1.2.3. スクリプト開発モデル¶
var runtimeService = new bpm.RuntimeService(); runtimeService.signalEventReceived("%参照シグナル%", "%エグゼキューションID%"); // 変数を設定する場合 var variables = { "var1": "string", "var2": 123, "var3": new Date(), "var4": true }; runtimeService.signalEventReceived("%参照シグナル%", "%エグゼキューションID%", variables); // 参照シグナルを指定しない場合 runtimeService.signal("%エグゼキューションID%");
4.4.1.2. シグナル境界イベントを発火させるためにブロードキャストする¶
シグナル境界イベントに設定している参照シグナルを指定して、シグナルをブロードキャストします。
シグナルキャッチイベント にとまっているプロセスインスタンスを進める方法と同様です。
4.4.1.3. 受信タスクに送信する¶
受信タスクにとまっているプロセスのエグゼキューションIDを指定して、メッセージを送信します。
「シグナルキャッチイベントにとまっているプロセスインスタンスを進める」 の 「参照シグナルを指定しない場合」と同様の手段です。
4.4.1.4. プロセスインスタンスを開始する¶
プロセス定義のシグナル開始イベントに設定している参照シグナルを指定して、シグナルをブロードキャストします。
「参照シグナルを指定してシグナルをブロードキャストする」 と同様の手段です。