4.6. エグゼキューション¶
エグゼキューションはプロセスインスタンスに含まれる実行単位を指します。
メッセージを送信する際に使用します。
4.6.1. エグゼキューションを取得する¶
エグゼキューションの取得について以下を解説します。
- メッセージを送信する際に指定するエグゼキューションを取得する。
4.6.1.1. メッセージを送信する際に指定するエグゼキューションを取得する¶
メッセージを送信する際に指定するエグゼキューションを取得します。
検索条件を指定してエグゼキューション検索用APIを実行することで、送信対象のメッセージにひもづくエグゼキューションを特定します。
4.6.1.1.1. REST API¶
REST API「実行状態検索」を利用して、送信対象のメッセージにひもづくエグゼキューションを特定します。
メソッド
- GET
URI
- %ベースURL%/api/bpm/runtime/executions
パラメータ
- パラメータの詳細は「IM-BPM Rest」 - 「実行状態検索」を参照してください。
パラメータの指定例
複数のプロセスインスタンス内のエグゼキューションをプロセス定義キーとメッセージ名から抽出する例
- %ベースURL%/api/bpm/runtime/executions?processDefinitionKey=%プロセス定義キー&messageEventSubscriptionName=%メッセージ名%
特定のプロセスインスタンス内のエグゼキューションをメッセージ名から特定する例
- %ベースURL%/api/bpm/runtime/executions?processInstanceId=%プロセスインスタンスID%&messageEventSubscriptionName=%メッセージ名%
REST API「実行状態詳細検索」を利用して、送信対象のメッセージにひもづくエグゼキューションを特定します。
業務データ(変数)を検索条件に指定する場合は、REST API「実行状態詳細検索」を利用してください。
メソッド
- POST
URI
- %ベースURL%/api/bpm/query/executions
パラメータ(BODY)
- パラメータ(BODY)の詳細は、「IM-BPM Rest」 - 「実行状態詳細検索」を参照してください。
パラメータ(BODY)の指定例
特定のプロセスインスタンス内のエグゼキューションをメッセージ名と変数から特定する例
{ "processInstanceId": "%プロセスインスタンスID%", "messageEventSubscriptionName": "%メッセージ名%", "variables": [ { "name": "%変数名%", "type": "string", "operation": "equals", "value": "%変数の値%" } ] }
4.6.1.1.2. JavaEE開発モデル¶
RuntimeService runtimeService = ProcessEngineFactory.getInstance().getProcessEngine().getRuntimeService(); // 複数のプロセスインスタンス内のエグゼキューションをプロセス定義キーとメッセージ名から抽出する例 List<Execution> executions = runtimeService.createExecutionQuery().processDefinitionKey("%プロセス定義キー%").messageEventSubscriptionName("%メッセージ名%").list(); // 特定のプロセスインスタンス内のエグゼキューションをメッセージ名から特定する例 executions = runtimeService.createExecutionQuery().processInstanceId("%プロセスインスタンスID%").messageEventSubscriptionName("%メッセージ名%").list(); // 特定のプロセスインスタンス内のエグゼキューションをメッセージ名と変数から特定する例 executions = runtimeService.createExecutionQuery().processInstanceId("%プロセスインスタンスID%").messageEventSubscriptionName("%メッセージ名%").variableValueEquals("%変数名%", "%変数の値%").list();コラム
詳細は「IM-BPM Java API」 - 「createExecutionQuery」を参照してください。
4.6.1.1.3. スクリプト開発モデル¶
let runtimeService = new bpm.RuntimeService(); // 複数のプロセスインスタンス内のエグゼキューションをプロセス定義キーとメッセージ名から抽出する例 let executions = runtimeService.queryExecutions({ processDefinitionKey: '%プロセス定義キー%', messageEventSubscriptionName: '%メッセージ名%' }); // 特定のプロセスインスタンス内のエグゼキューションをメッセージ名から特定する例 executions = runtimeService.queryExecutions({ processInstanceId: '%プロセスインスタンスID%', messageEventSubscriptionName: '%メッセージ名%' }); // 特定のプロセスインスタンス内のエグゼキューションをメッセージ名と変数から特定する例 executions = runtimeService.queryExecutions({ processInstanceId: '%プロセスインスタンスID%', messageEventSubscriptionName: '%メッセージ名%' , variables: [{ 'name': '%変数名%', 'operation': 'equals', 'type': 'string', 'value': '%変数の値%'}] });コラム
詳細は「IM-BPM スクリプト開発API」 - 「queryExecutions」を参照してください。
4.6.1.1.4. IM-LogicDesigner¶
入力値に検索条件を指定してエグゼキューション検索タスクを実行することで、送信対象のメッセージにひもづくエグゼキューションを特定します。
複数のプロセスインスタンス内のエグゼキューションをプロセス定義キーとメッセージ名から抽出する例
項目名 値 processDefinitionKey プロセス定義キーを設定します。 messageEventSubscriptionName メッセージ名を設定します。 特定のプロセスインスタンス内のエグゼキューションをメッセージ名から特定する例
項目名 値 processInstanceId プロセスインスタンスIDを設定します。 messageEventSubscriptionName メッセージ名を設定します。 特定のプロセスインスタンス内のエグゼキューションをメッセージ名と変数から特定する例
項目名 値 processInstanceId プロセスインスタンスIDを設定します。 messageEventSubscriptionName メッセージ名を設定します。 variables [{ 'name': '%変数名%', 'operation': 'equals', 'type': 'string', 'value': '%変数の値%', }] コラム
詳細は「IM-LogicDesigner仕様書」 - 「エグゼキューション検索」を参照してください。