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

4.3.1.1. データプロパティを定義する

「データプロパティ」は、以下のエレメントに定義できる変数宣言です。
  • プロセス
  • プール
  • サブプロセス
  • イベントサブプロセス
「データプロパティ」で定義した変数をエレメントから参照/更新できます。

コラム

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

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

4.3.1.1.1. エレメントの配置

配置イメージを参考に、各エレメントを配置してシーケンスフローで接続します。
../../../../_images/data_property_0001.png
図:配置イメージ
  1. 「開始イベント」 、「ユーザタスク」、「サブプロセス」、「終了イベント」を配置
  2. 上記で配置した「サブプロセス」内に「開始イベント」、「ユーザタスク」、「終了イベント」を配置
  3. 「プール」を配置(このとき、「レーン」も同時に配置されます)
  4. 上記で配置した「プール」内に「開始イベント」、「ユーザタスク」、「サブプロセス」、「終了イベント」を配置
  5. 上記で配置した「プール」内の「サブプロセス」内に、「開始イベント」、「ユーザタスク」、「終了イベント」を配置
  6. 「イベントサブプロセス」を配置
  7. 上記で配置した「イベントサブプロセス」内に「メッセージ開始イベント」、「ユーザタスク」、「終了イベント」を配置
  8. 配置イメージを参考に、配置したエレメント間を「シーケンスフロー」で接続します。

4.3.1.1.2. プロセスにデータプロパティを設定する

キャンバスに直接エレメントを配置した場合、キャンバスそのものが一つのプロセス定義として扱われます。
これを「プロセス」と呼びます。
この「プロセス」にデータプロパティを定義します。
  1. キャンバス内のエレメントが配置されていない場所をクリックするか、「ヘッダメニュー > 編集 > 選択を解除」を実行することで、プロパティエリアに「プロセス」のプロパティが表示されます。

  2. 「データオブジェクト」タブを開きます。

  3. plus 追加」をクリックし、ダイアログを開きます。

  4. 以下のようにプロパティを入力します。

    ../../../../_images/data_property_0002.png
    図:プロセス:プロパティ - データオブジェクト
    項目名 入力値 説明
    ID process01_var01
    このファイル内で一意となるID値を入力します。
    データプロパティ内だけでなく、各エレメントに設定した「基本情報」タブの「ID」と重複することもできません。
    「ID」の値は、システムが変数を一意に特定するためのものであり、変数名ではありません。
    名前 var01
    変数名を入力します。
    同一のデータプロパティ内で同じ名前の変数を複数個定義しても、一つの変数として扱われます。
    string
    以下の型を選択できます。
    型名 説明
    string 文字列
    boolean 真偽値
    datetime 日時(ISO8601拡張形式)
    double 8バイト倍精度浮動小数点数
    int 4バイト整数(-2147483648~2147483647)
    long 8バイト整数(-9223372036854775808~9223372036854775807)
    プロセス01_変数01_初期値
    選択した「型」に合わせて、変数の初期値を入力します。
    「型」と「値」の入力値に矛盾があった場合、ファイルの保存時にエラーが発生します。
  5. 「決定」をクリックして設定値を表に反映します。

  6. 同様の手順で、以下の変数も定義します。

    項目名 入力値
    ID process01_var02
    名前 var02
    datetime
    2017-12-01T08:00:00+09:00

4.3.1.1.3. サブプロセスにデータプロパティを設定する

キャンバスに直接配置されている「サブプロセス」にデータプロパティを定義します。
  1. 図の赤枠で示した「サブプロセス」を選択します。

    ../../../../_images/data_property_0004.png
    図:サブプロセス
  2. プロパティエリアで「データオブジェクト」タブを開きます。

  3. プロセスのデータプロパティを設定した手順と同様の手順で、以下のデータプロパティを定義します。

    ../../../../_images/data_property_0003.png
    図:サブプロセス:プロパティ - データオブジェクト
    ID 名前
    subProcess01_var01 var01 int 1
    subProcess01_var03 var03 boolean true

4.3.1.1.4. プールにデータプロパティを定義する

「プール」にデータプロパティを定義します。
「プール」は一つのプロセス定義として扱われます。
「プロセス」と「プール」はそれぞれが一つのプロセス定義であり、親子関係はありません。
  1. 図の赤枠で示した「プール」を選択します。

    ../../../../_images/data_property_0005.png
    図:プール:プロパティ - データオブジェクト
  2. 以下の通り、データプロパティを定義します。

    ID 名前
    process02_var04 var04 double 1.41421356
    process02_var05 var05 long 1

4.3.1.1.5. プール内のサブプロセスにデータプロパティを定義する

  1. 図の赤枠で示した「サブプロセス」を選択します。

    ../../../../_images/data_property_0006.png
    図:サブプロセス:プロパティ - データオブジェクト
  2. 以下の通り、データプロパティを定義します。

    ID 名前
    subProcess02_var03 var03 boolean false
    subProcess02_var06 var06 double 2.2360679

4.3.1.1.6. イベントサブプロセスにデータプロパティを定義する

  1. 図の赤枠で示した「イベントサブプロセス」を選択します。

    ../../../../_images/data_property_0007.png
    図:イベントサブプロセス:プロパティ - データオブジェクト
  2. 以下の通り、データプロパティを定義します。

    ID 名前
    subProcess03_var07 var07 string (入力なし)

4.3.1.1.7. データプロパティの参照可能範囲を確認する

各部に配置した「ユーザタスク」を利用して、データプロパティの参照可能範囲を確認します。
  1. 図の赤枠で示した「ユーザタスク」を選択します。

    ../../../../_images/data_property_0008.png
    図:ユーザタスクの選択
  2. プロパティの任意の項目で、 el_editor をクリックします。

  3. 開いたEL式エディタの右側にある「データプロパティツリー」を確認します。

  4. プロセス「データプロパティを定義する_プロセス01」のデータプロパティ「var01 <string>」と「var02 <datetime>」が参照できることがわかります。

    ../../../../_images/data_property_0013.png
    図:EL式エディタ - データプロパティツリー

    コラム

    ここでは、プール、サブプロセス、イベントサブプロセスに定義したデータプロパティは参照できません。
  5. 図の赤枠で示した「ユーザタスク」を選択します。

    ../../../../_images/data_property_0009.png
    図:ユーザタスクの選択
  6. EL式エディタを開き、「データプロパティツリー」を確認します。

  7. プロセス「データプロパティを定義する_プロセス01」のデータプロパティに加え、サブプロセスで定義したデータプロパティ「var01 <int>」と「var03 <boolean>」が参照できることがわかります。

    ../../../../_images/data_property_0014.png
    図:EL式エディタ - データプロパティツリー

    コラム

    親となるコンテナをさかのぼって、プロセスグローバルの変数も参照できます。
    例えばサブプロセス内にさらにサブプロセスがあった場合、最も深い階層のサブプロセスは自身で定義されたデータプロパティに加え 、親のサブプロセスとプロセスのデータプロパティを参照できます。

    コラム

    プロセスグローバルの定義とサブプロセスの定義で重複して命名されている変数「var01」を参照する場合、サブプロセスで定義された変数が参照されます。
    つまり、直近の階層で定義された変数が優先的に参照されます。
  8. 図の赤枠で示した「ユーザタスク」を選択します。

    ../../../../_images/data_property_0010.png
    図:ユーザタスクの選択
  9. EL式エディタを開き、「データプロパティツリー」を確認します。

  10. 「プール」のデータプロパティ「var04 <double>」と「var05 <long>」が参照できることがわかります。

    ../../../../_images/data_property_0015.png
    図:EL式エディタ - データプロパティツリー

    コラム

    プールは一見、プロセスの中に配置されているように見えますが、そうではありません。
    プールは一つのプロセス定義として扱われるため、プロセスの子エレメントになることはありません。
    プロセス定義を跨って変数を参照することはできないため、プロセスで定義されたデータプロパティは参照できません。
  11. 図の赤枠で示した「ユーザタスク」を選択します。

    ../../../../_images/data_property_0011.png
    図:ユーザタスクの選択
  12. EL式エディタを開き、「データプロパティツリー」を確認します。

  13. 「プール」のデータプロパティに加え、プール内サブプロセスのデータプロパティ「var03 <boolean>」と「var06 <double>」が参照できることがわかります。

    ../../../../_images/data_property_0016.png
    図:EL式エディタ - データプロパティツリー
  14. 図の赤枠で示した「ユーザタスク」を選択します。

    ../../../../_images/data_property_0012.png
    図:ユーザタスクの選択
  15. EL式エディタを開き、「データプロパティツリー」を確認します。

  16. プロセス「データプロパティを定義する_プロセス01」のデータプロパティに加え、イベントサブプロセスで定義したデータプロパティ「var07 <string>」が参照できることがわかります。

    ../../../../_images/data_property_0017.png
    図:EL式エディタ - データプロパティツリー