IM-BPM for Accel Platform IM-BPM チュートリアルガイド 第18版 2021-04-01

4.3.12.1. コールアクティビティを使用する

このチュートリアルでは、「コールアクティビティ」を使用して他のプロセス定義を呼び出す方法を解説します。
「サブプロセス」との違いは、異なるプロセス定義ファイルに定義されたプロセス定義を呼び出すことが可能な点です。
「コールアクティビティ」の詳細については、「IM-BPM プロセスデザイナ 操作ガイド」 - 「コールアクティビティ」もあわせて参照してください。

コラム

このチュートリアルで作成するプロセス定義のサンプルを以下のリンクからダウンロードできます。

このサンプルは「プロセス定義アップロード」機能でプロジェクトにアップロードできます。
アップロード手順は「IM-BPM プロセスデザイナ 操作ガイド」-「プロセス定義のアップロード」を参照してください。

コラム

このチュートリアルのサンプルでは、同一ファイル内に「呼び出されるプロセス定義」と「呼び出し元のプロセス定義」が定義されていますが、それぞれファイルを分けて定義することも可能です。

4.3.12.1.1. 呼び出されるプロセス定義を作成する

コールアクティビティから呼び出されるプロセス定義を作成します。
../../../../_images/call_activity_0001.png
図:呼び出されるプロセス定義
このチュートリアルでは、足し算を「スクリプトタスク」で行い、結果を変数 result に設定する「呼び出されるプロセス定義」を作成します。
変数 result は後述する「呼び出し元のプロセス定義」にて「出力パラメータ」の設定を行うことにより、「呼び出し元のプロセス定義」の変数へ設定できます。
足し算の対象の数字は、「呼び出し元のプロセス定義」より変数を介して受け取ります。この際、数字の受け渡しに使用する変数の名前は連番(1, 2, 3, ...)を付与した規則的な変数名とします。
val + 数字 : val1 , val2 , val3 , ・・・
スクリプトタスク「足し算」のスクリプトです。
function run(variables, execution, entity) {
  var result = 0;
  var i = 1;
  while (true) {
    var num = entity.getVariable('val' + i);
    if (num != null) {
      result += parseInt(num);
      i++;
    } else {
      break;
    }
  }

  entity.setVariable('result', result);
}
「プロセス定義キー」に addition_process を設定します。
../../../../_images/call_activity_0002.png
図:プロセス定義キー
開始イベント、および、終了イベントには、特に設定が必要なプロパティはありません。

4.3.12.1.2. 入力パラメータを設定してプロセス定義を呼び出す

コールアクティビティで入力パラメータを設定して、プロセス定義を呼び出します。
../../../../_images/call_activity_0003.png
図:完成イメージ
../../../../_images/call_activity_0004.png
図:コールアクティビティ - メインコンフィグ
  1. 「呼び出し対象」に addition_process 指定します。

    直接入力するか、プロセス定義検索(search_process)を使用して指定します。
    ../../../../_images/call_activity_0005.png
    図:プロセス定義検索

    コラム

    search_process プロセス定義検索
    「プロセス定義検索」子画面で、参照可能なプロセス定義を検索し、「呼び出し対象」の項目へ設定できます。
    • 「プロセスデザイナ上のプロセス定義」タブ
      「プロセスデザイナ上のプロセス定義」タブでは、プロセスデザイナ上のプロセス定義が表示されます。
      「参照」アクションが許可されているプロジェクトのプロセス定義が表示されます。
    • 「デプロイ済みのプロセス定義」タブ
      「デプロイ済みのプロセス定義」タブでは、既にデプロイされているプロセス定義が表示さます。
      プロセス定義の検索の認可がある場合のみ表示されます。
    プロジェクトの認可設定については「IM-BPM プロセスデザイナ 操作ガイド」-「プロジェクトの管理」-「プロジェクトの認可設定」を参照してください。

    注意

    「呼び出されるプロセス定義」はプロセス定義の実行前までに、必ずデプロイされている必要があります。
    デプロイされていないプロセス定義が呼び出された場合、実行時にエラーが発生します。
  2. 「入力パラメータ」を設定します。

    上記「呼び出されるプロセス定義」の足し算の対象となる数字を格納する変数の名前は、連番(1, 2, 3, ...)を付与した規則的な変数名とします。
    plusリンクをクリックします。
    ../../../../_images/call_activity_0006.png
    図:コールアクティビティ - メインコンフィグ - 入力パラメータ
    1. 「入力パラメータ」の「ソース種別」に「式」を選択します。

    2. 「ソース式」にEL式で数字を設定します。

      例: ${123}
    3. 「ターゲット変数名」に val1 (val + 連番(1, 2, 3, ...))を設定します。

    4. 上記の手順を繰り返し、足しあわせたい数字を全て「入力パラメータ」に設定します。

      ../../../../_images/call_activity_0007.png
      図:コールアクティビティ - メインコンフィグ
  3. 「出力パラメータ」を設定します。

    上記「呼び出されるプロセス定義」で設定される変数 result の値を「呼び出し元プロセス定義」の変数 output_result へ格納する設定を行います。
    plusリンクをクリックします。
    ../../../../_images/call_activity_0008.png
    図:コールアクティビティ - メインコンフィグ - 出力パラメータ
    1. 「出力パラメータ」の「ソース種別」に「変数」を選択します。
    2. 「ソース変数名」に変数名 result を設定します。
    3. 「ターゲット変数名」に output_result を設定します。
  4. 結果を表示する「スクリプトタスク」を作成します。

    「スクリプトタスク」のスクリプトです。
    function run(variables, execution, entity) {
      Debug.console(parseInt(entity.getVariable('output_result')));
    }
    ../../../../_images/call_activity_0009.png
    図:スクリプトタスク - メインコンフィグ - スクリプト
  5. 実行結果を確認します。
    上記で作成したプロセス定義を実行環境にデプロイし、実行した結果の確認を行います。
    ../../../../_images/call_activity_0010.png
    図:結果表示
    ../../../../_images/call_activity_0011.png
    図:変数一覧

4.3.12.1.3. 参照可能な変数を継承してプロセス定義を呼び出す

コールアクティビティで参照可能な変数を継承してプロセス定義を呼びます。
../../../../_images/call_activity_0012.png
図:完成イメージ
../../../../_images/call_activity_0013.png
図:コールアクティビティ - メインコンフィグ
  1. 変数を設定するスクリプトタスクを作成します。

    「スクリプトタスク」のスクリプトです。
    function run(variables, execution, entity) {
      entity.setVariable('val1', 1);
      entity.setVariable('val2', 2);
      entity.setVariable('val3', 3);
      entity.setVariable('val4', 4);
      entity.setVariable('val5', 5);
      entity.setVariable('val6', 6);
      entity.setVariable('val7', 7);
      entity.setVariable('val8', 8);
      entity.setVariable('val9', 9);
      entity.setVariable('val10', 10);
    }
    ../../../../_images/call_activity_0014.png
    図:スクリプトタスク - メインコンフィグ - スクリプト
  2. 「呼び出し対象」に addition_process 指定します。

    直接入力するか、プロセス定義検索を使用して指定します。
    ../../../../_images/call_activity_0005.png
    図:プロセス定義検索
  3. 「参照可能な変数を継承する」を有効にします。

    ../../../../_images/call_activity_0015.png
    図:コールアクティビティ - メインコンフィグ - 参照可能な変数を継承する
  4. 「出力パラメータ」を設定します。

    上記「呼び出されるプロセス定義」の変数 result の値を「呼び出し元プロセス定義」の変数 output_result へ格納する設定を行います。
    plusリンクをクリックします。
    ../../../../_images/call_activity_0008.png
    図:コールアクティビティ - メインコンフィグ - 出力パラメータ
    1. 「出力パラメータ」の「ソース種別」に「変数」を選択します。
    2. 「ソース変数名」に変数名 result を設定します。
    3. 「ターゲット変数名」に output_result を設定します。
  5. 結果を表示する「スクリプトタスク」を作成します。

    「スクリプトタスク」のスクリプトです。
    function run(variables, execution, entity) {
      Debug.console(parseInt(entity.getVariable('output_result')));
    }
    ../../../../_images/call_activity_0009.png
    図:スクリプトタスク - メインコンフィグ - スクリプト
  6. 実行結果を確認します。
    上記で作成したプロセス定義を実行環境にデプロイし、実行した結果の確認を行います。
    ../../../../_images/call_activity_0016.png
    図:結果表示
    ../../../../_images/call_activity_0017.png
    図:変数一覧