はじめに
今回は「ワークフローの参照者を動的に追加する」機能を、intra-mart Accel Platformのlogicdesignerを使用して実装してみたいと思います。
実装にあたり以下のCookBookを参考にしています。本記事を見ながら実装する場合は、以下のCookBookに完成サンプルがありますので、完成サンプルをインポートしてから実装してください。
完成イメージ
大まかなイメージはCookBookと同じく、申請者の担当組織に基づいて、ロジックフローで参照者を設定する機能です。異なる点として、任意のフロー定義の参照者に「ロジックフロー(ユーザ)」を利用することにより、申請者と同じ組織のユーザ全員を参照者に設定できます。これが今回実装したいことのイメージです。
【前提条件】
・intra-mart e Builder for Accel Platform をインストール済みであること。
・intra-mart Accel Platform をインストールし、初期設定までが完了していること。
・開発環境のresinサーバーが作成されていること。
・CookBookの完成サンプルをintra-martにインポートしていること。
手順の説明
1.ロジックフローを作成し、利用可能にする
2.ワークフローの参照者に「ロジックフロー」を追加する
3.実行画面で確認する
ロジックフローを作成し、利用可能にする
1. 入出力設定
・入力設定ではIM-Workflowが提供しているパラメータを利用するために、「imwApplyAuthInfo(申請者情報)」を設定します。出力設定では、「userCdsを」設定します。理由は、入力設定の申請者情報から組織情報を取得し、最終的に参照者に同じ組織のユーザを設定するため「userCds」を出力する必要があるためです。
※参考
2. タスクの配置と接続
以下のとおりに、タスクを配置し、それぞれのタスク同士を接続します。
・組織に所属するユーザの取得
共通マスタから申請者と同じ所属するユーザの情報を取得しています。
・【Cookbook】ロジックフローで案件操作権限者を設定する(ワークフローパラメータの作成)
共通マスタ取得したユーザの情報をワークフローに受け渡し可能な形式に変換しています。
3. マッピング設定
各タスクのマッピングを以下のとおりに実施します。
(1) 組織に所属するユーザの取得
入力の imwApplyAuthInfoのそれぞれの項目を、同じ名称の項目にマッピングします。
(2)【Cookbook】ロジックフローで案件操作権限者を設定する(ワークフローパラメータの作成)
「(1)組織に所属するユーザの取得」の出力項目をマッピングします。
(3) 終了
ロジックフローの出力値をワークフローの参照者や処理対象者に利用する場合、以下のように、String型の配列としてユーザコードを渡す必要があります。
4. ワークフローで利用可能なロジックフローに登録する
作成したロジックフローをワークフローで利用可能にするための設定を行います。
ワークフロー>「ロジックフロー管理」>リソース設定>「案件操作権限者(参照者)」と作成したロジックフローを関連づけてください。設定方法の詳細は以下の画像とドキュメントをご覧ください。
ワークフローの参照者に「ロジックフロー」を追加する
ワークフローのフロー定義の参照者に作成したロジックフローを追加します。今回は例として、サンプルの「直線ルート[JavaEE開発モデル]」のフロー定義の参照者に作成したロジックフローを追加しました。
設定方法の詳細は以下の画像とドキュメントをご覧ください。
実行画面で確認する
作ったロジックフローに入出力値をマッピングできているか確認します。logicdesignerにはデバック機能がついているので、今回は試しに[userCd]に'aoyagi'を入力して実行します。
入力値を入れて実行してみると...
同じ組織のユーザが返ってきました。
正しくワークフローの参照者に作成したロジックフローを追加できていれば、今回の機能は実装できているはずです。
まとめ
以上、今回は「ワークフローの参照者を動的に追加する方法」をまとめました。私自身は、実装してみた感想として、実装したい機能はどんな機能で、そのために何を入力して何を出力するか、そのデータをintra-mart上でどのように定義されているかをしっかり理解することで、logicdesignerはかなり便利な機能になるなと思いました。お読みいただいてありがとうございます。