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

4.16. EL式

EL式について説明します。

コラム

EL式の基本的な書き方は IM-LogicDesigner で利用できるものと同様です。
EL式の基本的な書き方の詳細については 「IM-LogicDesigner仕様書」-「EL式」を参照してください。

4.16.1. 暗黙オブジェクト

ELで利用可能な暗黙オブジェクトは以下の通りです。
  • authenticatedUserId (String)

    認証済みユーザコード
    プロセスを実行する際のユーザコードが格納されています。
    このユーザコードはアカウントコンテキストの持つユーザコードと同等です。
    タスクを非同期に実行、タイマーをトリガとした処理、並列ゲートウェイ等、実行単位が別のスレッドとなる処理を介した場合には、値にnullが格納されます。
  • execution (DelegateExecution)

    実行時のエグゼキューションです。
    ${execution.id} : エグゼキューションIDの取得
    ${execution.processInstanceId} : プロセスインスタンスIDの取得
    ${execution.processBusinessKey} : 業務キーの取得
    ${execution.processDefinitionId} : プロセス定義IDの取得
    ${execution.superExecutionId} : 親プロセスインスタンスのエグゼキューションIDの取得
    ${execution.currentActivityId} : 実行中のアクティビティIDの取得
    ${execution.currentActivityName} : 実行中のアクティビティ名の取得
    ${execution.getVariable("varName")} : 変数の取得

    コラム

    オブジェクトの詳細については 「インタフェース DelegateExecution」を参照してください。

    コラム

    実行リスナとして IM-LogicDesigner の ロジックフロー を使用する場合には ロジックフロー の入力値として execution オブジェクトを受け取ることができます。
    受け取り可能なオブジェクトの詳細については 「ロジックフローへの入力データの構築 」を参照してください。
  • task (DelegateTask)

    実行中のタスク情報です。
    ${task.id} : タスクIDの取得
    ${task.name} : タスク名の取得
    ${task.description} : 説明の取得
    ${task.priority} : 優先度の取得
    ${task.taskDefinitionKey} : タスク定義キー(アクティビティID)の取得
    ${task.assignee} : 担当者の取得
    ${task.processInstanceId} : プロセスインスタンスIDの取得
    ${task.processDefinitionId} : プロセス定義IDの取得
    ${task.getVariable("varName")} : 変数の取得

    注意

    この暗黙オブジェクトは、ユーザタスク等に設定するタスクリスナでのみ利用可能です。

    コラム

    オブジェクトの詳細については 「インタフェース DelegateTask」を参照してください。

    コラム

    タスクリスナとして IM-LogicDesigner の ロジックフロー を使用する場合には ロジックフロー の入力値として task オブジェクトを受け取ることができます。
    受け取り可能なオブジェクトの詳細については 「ロジックフローへの入力データの構築 」を参照してください。
  • im_operation_users (Map<String, String>)

    ユーザタスクを処理したユーザコードを持ちます。
    ${im_operation_users['my-user-task']} “my-user-task”というIDを持つタスクを処理したユーザコードの取得

    注意

    システム変数の格納方式の設定

    システム変数の格納方式の設定(is-system-variable-save-as-object)がtrueの場合は、暗黙オブジェクト “im_bpm_system_variables” オブジェクトの要素として”im_operation_users” オブジェクトが格納されます。
    例: ユーザタスク(id: my-user-task) を処理したユーザコードをEL式にて取得する場合
    ${im_bpm_system_variables.im_operation_users['my-user-task']}
    システム変数の格納方式の設定の詳細については、「 IM-BPM 設定ファイルリファレンス 」-「 システム変数の格納方式の設定 」を参照してください。

4.16.2. 変数の操作

4.16.2.1. 変数の存在確認

暗黙オブジェクト execution を利用します。
${execution.getVariable('myVarName') != null}

4.16.2.2. 変数の追加

暗黙オブジェクト execution を利用します。
DelegateExpression等で利用します。
${execution.setVariable('myVarName', 'VALUE')}

4.16.2.3. 変数の削除

暗黙オブジェクト execution を利用します。
DelegateExpression等で利用します。
${execution.removeVariable('myVarName')}