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')}