4.3.18.5. IM-LogicDesignerタスクを用いて、IM-FormaDesignerで入力したテーブルアイテムの値を扱う¶
コラム
コラム
4.3.18.5.1. 事前準備¶
Formaアプリケーション「edit_forma_variables」をインポートします。
コラム
4.3.18.5.2. ロジックフローを作成する¶
プロセスインスタンス変数からテーブルデータを受け取り、それをもとに新たなテーブルデータを作成しプロセスインスタンス変数に登録する ロジックフローを作成します。
- 「開始タスク」、「プロセスインスタンスの変数取得タスク」、「変数操作タスク1」、「変数操作タスク2」、「繰り返し開始タスク」、「変数操作タスク3」、「変数操作タスク4」、「繰り返し終了タスク」、「プロセスインスタンスの変数更新タスク2」、「終了タスク」を配置し、順に接続します。
-
図:ロジックフロー
- ツールバーの「入出力設定」をクリックします。図:「ツールバー」 - 「入出力設定」
- 入力値を以下のように設定します。
キー名 型 processInstanceId <string> 図:「入出力設定」 - 「入力」コラム
入力値として直接プロセスインスタンス変数を指定することも可能ですが、今回はプロセスインスタンスIDのみ入力します。ロジックフロー内でプロセスインスタンスIDからプロセスインスタンス変数を取得します。この方法には、以下の利点があります。- ロジックフローのデバッグ機能を使用する際に実行中のプロセスインスタンスのIDを用いてデバッグを行えること
- IM-BPMプロセスのIM-LogicDesignerタスクの入力データにはプロセスインスタンスIDのみ設定するだけでよいこと
- プロセスインスタンス変数を格納するための変数を設定します。変数設定ダイアログを開き、以下の値を追加します。
キー名 型 bpm_input_variables - gt1 - gt1_calendar <date> bpm_input_variables - gt1 - gt1_detail <string> bpm_input_variables - last_name <string> bpm_input_variables - name <string> bpm_output_variables - tb1 <map[]> bpm_output_variables - fullname <string> tb1_obj - tb1_calendar <date> tb1_obj - tb1_detail <string> 図:「変数設定」コラム
パラメータに子要素を追加する場合、親要素を選択した状態でメニューの「配下に設置する」にチェックを入れ、追加したい各データ型を選択してください。図:「変数設定」コラム
変数はJSON形式でも入力できます。{ "bpm_input_variables": { "gt1": [ { "gt1_calendar": null, "gt1_detail": "" } ], "last_name": "", "first_name": "" }, "bpm_output_variables": { "tb1": [ { "tb1_name": "", "tb1_calendar": null, "tb1_detail": "" } ] }, "tb1_obj": { "tb1_name": "", "tb1_calendar": null, "tb1_detail": "" } }
- プロセスインスタンスIDから、プロセスインスタンス変数を取得します。「プロセスインスタンスの変数取得タスク」のマッピング設定を開き以下をマッピングします。
- 「プロセスインスタンスの変数取得タスク」で取得した変数を ロジックフローの変数に設定します。「変数操作タスク1」のマッピング設定を開き以下をマッピングします。
入力(始点) 出力(終点) im_bpmGetProcessVariables1<object> - variablesMap<map> 変数<object> - bpm_input_variables<object> 図:「変数操作タスク1」 - 「マッピング設定」コラム
variablesMap には、key:変数名、value:値としてプロセスインスタンス変数がマップとして格納されています。マッピングの左右で型が異なりますが、右側に定義されている子階層と同名のキーに対応する値が格納されたobject型のオブジェクトを生成後、右側に渡されます。右側のオブジェクトの子階層には IM-BPMプロセスに登録される変数と同じ型・変数名の変数を設定しているため、自動でマッピングされます。 - 取得した変数を、テーブルデータとして IM-BPMプロセスに返却するための変数に格納します。まずは返却用の値のうち、テーブル1行分のデータを作成します。「変数操作タスク2」のマッピング設定を開き以下をマッピングします。
入力(始点) 出力(終点) 変数<object> - bpm_input_variables<object> - last_name<string> concat : a 変数<object> - bpm_input_variables<object> - first_name<string> concat : b concat : out 変数<object> - bpm_output_variables<object> - tb1_name<string> im_startLoop1<object> - item<object> - gt1_calendar<date> 変数<object> - tb1_obj<object> - tb1_calendar<date> im_startLoop1<object> - item<object> - gt1_detail<string> 変数<object> - tb1_obj<object> - tb1_detail<string> 図:「変数操作タスク2」 - 「マッピング設定」作成した1行分のテーブルデータを格納用の変数に設定します。「変数操作タスク3」のマッピング設定を開き以下をマッピングします。 「プロセスインスタンスの変数更新タスク」のマッピング設定を開き以下をマッピングします。
新規保存ボタンをクリックし、以下を設定しロジックフローを保存します。
フロー定義ID : logicdesigner_task_forma_tb_item
フロー定義名 : 【チュートリアル】logicdesigner_task_forma_tb_item
フローカテゴリ :
- ID : im_logicdesigner-data
- 名称 : BPMチュートリアル
コラム
- ロジックフロー定義の作成方法については「IM-LogicDesigner ユーザ操作ガイド」を参照してください。
4.3.18.5.3. プロセス定義を作成する¶
開始イベント、IM-LogicDesignerタスク、ユーザタスク、終了イベントを配置して、順にシーケンスフローで接続します。
- 「プロセス」に、プロセス定義キーとプロセス名、処理対象ユーザを設定します。余白を選択し、「プロセス」タブの「プロセス定義キー」、「名前」、「処理対象ユーザ」に以下の値を設定します。
- 「開始イベント」に、インポートした「IM-FormaDesigner」のアプリケーションを設定します。「開始イベント」を選択し、「メインコンフィグ」タブの「フォームキー」に以下の値を設定します。
- 「IM-LogicDesignerタスク」に、作成したロジックフローを設定します。「IM-LogicDesignerタスク」を選択し、「メインコンフィグ」タブの「フローID」、「利用するバージョン」に以下の値を設定します。
- 「IM-LogicDesignerタスク」に、入力データを設定します。「IM-LogicDesignerタスク」を選択し、「メインコンフィグ」タブから「入力データ」の「追加」をクリックします。以下のとおりに項目の値を設定してください。
- 「ユーザタスク」に、インポートした「IM-FormaDesigner」のアプリケーションと担当者を設定します。「ユーザタスク」を選択し、「メインコンフィグ」タブの「フォームキー」と「担当者」に以下の値を設定します。
メニューバー左上、「ファイル」 から「名前を付けて保存」を選択し、保存します。
4.3.18.5.4. 実行結果を確認する¶
「プロセス開始一覧」画面にて、プロセス定義名 formaデータを連携するプロセス を開始します。
- 開始イベントに設定したFormaアプリケーション「edit_forma_variables」に遷移します。適当に入力し、「登録」をクリックします。
- 「タスク一覧」 画面の個人タスクを確認します。タスク名「LogicDesigner実行結果を確認」の「処理」をクリックし、タスクを処理します。
フォーム右側のテーブルアイテムに、プロセスの開始時に入力したデータをもとに作成されたデータが入力されていることを確認します。