IM-BPM for Accel Platform IM-BPM 仕様書 第20版 2025-04-01

4.9. IM-LogicDesigner連携

IM-LogicDesigner連携の仕様について説明します。

4.9.1. IM-LogicDesignerタスク

「IM-LogicDesignerタスク」を利用することで、プロセス内からIM-LogicDesignerで作成した任意のロジックフローを呼び出すことが可能です。

4.9.1.1. ロジックフローへの入力データの構築

IM-LogicDesignerタスクのプロパティ「入力データ」を設定することで、ロジックフローに対して変数のデータなどを連携することが可能です。

4.9.1.2. ロジックフローの出力データの返却

IM-LogicDesignerタスクのプロパティ「結果変数を格納する」を設定することで、ロジックフローの実行結果をプロセスインスタンス変数に格納することが可能です。格納される実行結果は、ロジックフロー実行結果オブジェクトです。
ロジックフロー実行結果オブジェクトは、IM-LogicDesignerタスクのプロパティ「結果変数名」に設定した名前のプロセスインスタンス変数に格納されます。プロパティ「結果変数名」を設定しなかった場合は、ロジックフロー実行結果オブジェクトの第1階層のプロパティがそれぞれプロセスインスタンス変数として格納されます。

4.9.1.3. エラーハンドリング

ロジックフローでは、フロー中にエラー終了エレメントを配置することが可能です。エラー終了エレメントは、エラーメッセージプロパティに任意のエラーメッセージを設定できます。
プロセス側ではエラーキャッチイベントを配置することで、IM-LogicDesignerのロジックフローからスローされたエラーをキャッチすることが可能です。スローされたエラーは、そのエラーメッセージに合致するエラーコードが設定されたエラーキャッチイベントにてキャッチされます。このため、ロジックフロー内で複数のエラー終了エレメントが配置されていた場合に、プロセス側ではそれぞれのエラーを判別し、処理を進めることが可能です。
../../../_images/logicdesigner_1.png
図:エラーハンドリングのイメージ

4.9.2. IM-LogicDesignerリスナ

エグゼキューションやユーザタスクのイベントリスナとして、IM-LogicDesignerで作成したロジックフローを設定することが可能です。IM-LogicDesignerリスナを設定することで、イベントの発生時に設定したロジックフローが呼び出されます。

4.9.2.1. ロジックフローへの入力データの構築

入力データ
IM-LogicDesignerリスナのプロパティ「入力データ」を設定することで、ロジックフローに対して変数のデータなどを連携することが可能です。
暗黙オブジェクト
ロジックフローの入力値として、暗黙オブジェクトを受け取ることが可能です。暗黙オブジェクトの詳細については、「暗黙オブジェクト」を参照してください。
下記のjsonをロジックフローの「入出力設定」の「入力」に設定してください。
  • 実行リスナとしてロジックフローを使用する場合
{
  "execution" : {
    "id" : "",
    "processInstanceId" : "",
    "eventName" : "",
    "businessKey" : "",
    "processDefinitionId" : "",
    "parentId" : "",
    "superExecutionId" : "",
    "currentActivityId" : "",
    "currentActivityName" : "",
    "tenantId" : "",
    "variablesLocal" : {},
    "variables" : {}
  }
}
  • タスクリスナとしてロジックフローを使用する場合
{
  "task" : {
    "id" : "",
    "name" : "",
    "description" : "",
    "priority" : 0,
    "processInstanceId" : "",
    "executionId" : "",
    "processDefinitionId" : "",
    "createTime" : 0,
    "taskDefinitionKey" : "",
    "isSuspended" : true,
    "tenantId" : "",
    "formKey" : "",
    "execution" : {
      "id" : "",
      "processInstanceId" : "",
      "eventName" : "",
      "businessKey" : "",
      "processDefinitionId" : "",
      "parentId" : "",
      "superExecutionId" : "",
      "currentActivityId" : "",
      "currentActivityName" : "",
      "tenantId" : "",
      "variablesLocal" : {},
      "variables" : {}
    },
    "eventName" : "",
    "delegationState" : "",
    "owner" : "",
    "assignee" : "",
    "dueDate" : 0,
    "category" : "",
    "candidates" : [{
      "type": "",
      "userId": "",
      "groupId": "",
      "taskId": "",
      "processDefinitionId": "",
      "processInstanceId": ""
    }],
    "variablesLocal" : {},
    "variables" : {}
  }
}
../../../_images/logicdesigner_2.png
図:ロジックフローの「入出力設定」のイメージ
createTimedueDate は「型を変換」から型を date に変換してください。
../../../_images/logicdesigner_3.png
図:「型を変換」のイメージ
暗黙オブジェクト execution の詳細
プロパティ名 説明
id string エグゼキューションIDがセットされます。
processInstanceId string プロセスインスタンスIDがセットされます。
eventName string リスナのイベント名がセットされます。
businessKey string 業務キーがセットされます。
processDefinitionId string プロセス定義IDがセットされます。
parentId string 親エグゼキューションIDがセットされます。
superExecutionId string 親プロセスインスタンスのエグゼキューションIDがセットされます。
currentActivityId string 実行中のアクティビティIDがセットされます。
currentActivityName string 実行中のアクティビティ名がセットされます。
tenantId string テナントIDがセットされます。IM-BPMでは未使用です。
variablesLocal object エグゼキューションローカルな変数がセットされます。
variables object 変数がセットされます。
暗黙オブジェクト task の詳細
プロパティ名 説明
id string タスクIDがセットされます。
name string タスク名がセットされます。
description string タスクの説明がセットされます。
priority double タスクの優先度がセットされます。
processInstanceId string タスクの所属するプロセスのプロセスインスタンスIDがセットされます。
executionId string エグゼキューションIDがセットされます。
processDefinitionId string タスクの所属するプロセス定義のプロセス定義IDがセットされます。
createTime date タスク作成日時がセットされます。
taskDefinitionKey string タスク定義キー(アクティビティID)がセットされます。
isSuspended boolean 停止状態がセットされます。
tenantId string テナントIDがセットされます。IM-BPMでは未使用です。
formKey string タスクに設定しているフォームキーがセットされます。
execution object タスクの所属するエグゼキューションがセットされます。暗黙オブジェクト execution と同じプロパティを持ちます。
eventName string タスクリスナのイベント名がセットされます。
delegationState string 代理状態がセットされます。
owner string オーナーがセットされます。IM-BPMでは未使用です。
assignee string タスクの担当者がセットされます。
dueDate date タスク期限日時がセットされます。
category string タスクのカテゴリがセットされます。
candidates array<object> タスクの処理対象者/処理対象グループがセットされます。
variablesLocal object タスクローカルな変数がセットされます。
variables object 変数がセットされます。
暗黙オブジェクト task のプロパティ candidates の詳細
プロパティ名 説明
type string ユーザのタイプがセットされます。
userId string 処理対象者のユーザIDがセットされます。
groupId string 処理対象グループのグループIDがセットされます。
taskId string タスクIDがセットされます。
processDefinitionId string プロセス定義IDがセットされます。
processInstanceId string プロセスインスタンスIDがセットされます。

4.9.2.2. ロジックフローの出力データの返却

IM-LogicDesignerリスナのプロパティ「結果変数を格納する」を設定することで、ロジックフローの実行結果をプロセスインスタンス変数に格納することが可能です。格納される実行結果は、ロジックフロー実行結果オブジェクトです。
ロジックフロー実行結果オブジェクトは、IM-LogicDesignerリスナのプロパティ「結果変数名」に設定した名前のプロセスインスタンス変数に格納されます。プロパティ「結果変数名」を設定しなかった場合は、ロジックフロー実行結果オブジェクトの第1階層のプロパティがそれぞれプロセスインスタンス変数として格納されます。

4.9.2.3. エラーハンドリング

IM-LogicDesignerリスナにおいては、エラーキャッチイベントでエラーをハンドリングできません。
ロジックフローがエラー終了エレメントで終了した場合、例外が発生し、トランザクションが全てロールバックされます。