IM-BPM for Accel Platform プログラミングガイド 第8版 2020-12-01

3.1. スクリプトタスク

設定されたスクリプトを自動的に実行するタスクです。

../../../_images/scripttask_1.png
図:スクリプトタスク

3.1.1. スクリプトを作成する

スクリプトタスクのスクリプトは、 プロセスデザイナでスクリプトタスク作成時に下記のコードが自動生成されます。
スクリプト言語のエンジンは、スクリプト開発モデルのスクリプトエンジンを使用しています。
function run(variables, execution, entity) {
   entity.setVariable('foo', 'FOO');
}
引数のオブジェクトの説明をします。
  • variables
    変数です。変数名をキーとしているオブジェクトです。
    (例)param1という変数を取得する場合。var param1 = variables.param1;
  • execution
    実行状態で保持しているオブジェクトです。取得できる情報は、以下です。
    id : 実行状態のID(string)
    processInstanceId : プロセスインスタンスID(string)
    processDefinitionId : プロセス定義ID(string)
    businessKey : 業務キー(string)
    activityId : アクティビティID(string)
    isActive : アクティブか(boolean)
    isConcurrent : 同期か(boolean)
    isScope : スコープか(boolean)
    isEventScope : イベントスコープか(boolean)
    parentId : 親のID(string)
    name : 名前(string)
    lockTime : ロックタイム(date)
    superExecution : 親のID(string)
    forcedUpdate : 変数の強制更新楽観ロック(boolean)
    suspensionState : 無効状態(int) 0 : 有効、 1 : 無効
    cachedEntityState : エンティティ状態(int)
    (例) プロセス定義IDを取得する場合。var processDefinitionId = execution.processDefinitionId;
  • entity
    実行状態のエンティティです。 jp.co.intra_mart.activiti.engine.impl.persistence.entity.ExecutionEntity クラスです。

3.1.2. 結果を返却する

スクリプトタスクの結果変数名に設定したキーで、スクリプトの戻り値がプロセスインスタンスの変数として設定されます。
結果変数名を設定しない場合は、戻り値を返却してもプロセスインスタンスの変数として設定されることはありません。
function run(variables, execution, entity) {
    var a = variables.a;
    var b = variables.b;
    return {'ab' : a + b};
}
複数の値の返却できます。
function run(variables, execution, entity) {
    var a = variables.a;
    var b = variables.b;
    var c = variables.b;
    return {'ab' : a + b, 'abc' : a + b + c};
}

コラム

上記返却の場合、%結果変数名%のMapオブジェクトが変数として設定され、そのMapのキーに”ab”と”abc”が設定されます。

コラム

結果変数名の設定の詳細は「IM-BPM プロセスデザイナ 操作ガイド」 - 「スクリプトタスク」を参照してください。