このCookbookでは、IM-Workflow 2018 Springから新たに追加された 処理対象者プラグイン「ロジックフロー(ユーザ)」 の設定方法を紹介いたします。
この機能を利用すると、申請した案件の情報などに基づいてフローの参照者や処理対象者をロジックフローから設定できます。
今回のCookbookでは、申請者の役職情報に基づいて、後続の処理対象者をロジックフローで設定するための方法が確認できます。
完成イメージ
申請者の担当組織から取得した役職情報に基づいて、ロジックフローで処理対象者を設定するサンプルです。
任意のルート定義の処理対象者に「ロジックフロー(ユーザ)」を利用することにより、上位の役職のユーザを承認ノードの処理対象者に設定できます。
簡単な処理の流れは以下のとおりです。
- 申請者・申請時の担当組織に基づいて、申請者の役職情報を取得する
- 申請者の上位の役職のユーザを取得する
- 取得した上位の役職のユーザを承認ノードの処理対象者に設定する
完成サンプル
以下のサンプルをダウンロードしてご利用ください。
- ロジックフロー定義 / ユーザ定義(JavaScript定義) : im_logicdesigner-data_142677.zip
- LogicDesignerのインポート機能からインポートしてください。サンプルのユーザ定義(JavaScript)、ロジックフローが登録されます。
- 手順の詳細は以下のドキュメントをご覧ください。
[IM-LogicDesigner ユーザ操作ガイド] - [インポートを行う]
サンプルに含まれる定義情報は以下の表の通りです。
種類 | 定義名 | 補足説明 |
---|---|---|
ユーザ定義(JavaScript) | 【Cookbook】ユーザの役職情報の取得 | IMMCompanyManager.listCompanyPostWithUserOnDepartment を利用して申請者の役職情報を取得するユーザ定義です。 |
ユーザ定義(JavaScript) | 【Cookbook】役職情報に基づくユーザの取得 | IMMCompanyManager.listUserWithCompanyPost を利用して役職情報から対象のユーザを取得するユーザ定義です。 |
ロジックフロー | 【Cookbook】承認者の設定 | 上記のユーザ定義を参照し、処理対象者を設定するロジックフローです。 |
上記のサンプルの利用条件は以下の通りです。
- intra-mart Accel Platform(Advanced) 2018 Spring(8.0.19)以降のバージョンであること
- サンプルデータのインポートが行われていること
サンプルは、intra-mart Accel Platform(Advanced) 2018 Spring(8.0.19)で動作確認を行っています。
レシピ
- ユーザ定義を作成する
- ロジックフローを作成する
- ワークフローで利用可能なロジックフローに登録する
- ワークフローの処理対象者にロジックフローを追加する
- 実行画面で確認する
1. ユーザ定義を作成する
ワークフローから取得可能なパラメータを利用し、以下の役割をもつユーザ定義をそれぞれ作成してください。
- 申請者の情報から申請者の役職情報を取得する
- 役職情報を受け取り、受け取った役職のユーザを取得する
IM-LogicDesignerとの連携で、ワークフローから利用できるパラメータの情報については以下のドキュメントをご参照ください。
[IM-Workflow 管理者操作ガイド] - [ロジックフローを利用する]
2. ロジックフローを作成する
1. 入出力設定の登録
- 入力はIM-Workflowが提供しているパラメータを利用するため、以下のドキュメントに基づいて、「処理対象者プラグインに属するリソースの入力設定」の「imwApplyAuthInfo(申請者情報)」、「imwMatterInfo(案件情報)」を設定してください。
- 出力は、入力と同様に「処理対象者プラグインに属するリソースの出力設定」を設定してください。
[IM-Workflow 管理者操作ガイド] - [ロジックフローを利用する] - 設定後の入出力設定は、以下の画面のとおりです。
入力項目 | データ型 |
---|---|
imwApplyAuthInfo | object |
userCd | string |
companyCd | string |
departmentSetCd | string |
departmentCd | string |
imwMatterInfo | object |
applyBaseDate | string |
出力項目 | データ型 |
---|---|
userCds | string[] |
2. 定数の設定
- 処理対象者を選出するための役職コードを定数に定義してください。
今回の例では、部長(ps002)、課長(ps003)を設定しています。
その他に「申請基準日(applyBaseDate)」を変換する際の日付フォーマットを定義しています。
定数ID | 定数値 |
---|---|
manager | ps002 |
sectionManager | ps003 |
3. 変数の設定
- 分岐で設定する処理対象者の役職コードを保持するための変数を定義してください。
変数ID | データ型 |
---|---|
approveAuthInfo | object |
postCd | string |
4. タスクの配置と接続
- 以下のとおりに、タスクを配置し、それぞれのタスク同士を接続してください。
(1) 【Cookbook】Acquisition of Official Position Information from User
ワークフローから受け取った申請者情報を、次の「パブリックグループに所属するユーザの取得」タスクの入力値の形式に変換しています。
(2) Branch(Applicant's post)(分岐) / Setting Section Manager(変数操作) / Setting Section Manager(変数操作)
申請者の役職情報に基づいて分岐を実行します。
一般社員(役職がない)場合には処理対象者の役職に「課長(ps003)」を設定します。
課長以上の役職の場合には、処理対象者の役職に「部長(ps002)」を設定します。
(3) 【Cookbook】Acquisition of Users from Official Position
分岐で設定した役職に基づいて、対象の役職を持つユーザをワークフローに合わせた形で返却します。
4. ロジックフローの作成
各タスクのマッピングを以下のとおりに設定してください。
(1) 【Cookbook】Acquisition of Official Position Information from User
localeは、アカウントコンテキストから取得しています。
(2) Branch(Applicant's post)
分岐条件のEL式には以下のとおりに設定してください。
(3) Setting Section Manager
(4) Setting Manager
(5) End
ロジックフローの出力値をワークフローの参照者や処理対象者に利用する場合、以下の図のように、String型の配列として userCds
にユーザコードを渡してください。
ここまででロジックフローが完成しましたので、保存後に次の手順に移ってください。
3. ワークフローで利用可能なロジックフローに登録する
作成したロジックフローをワークフローで利用可能にするための設定を行います。
ワークフローの「ロジックフロー管理」でリソース「処理権限者」と作成したロジックフローを関連づけてください。
設定の詳細は以下のドキュメントをご覧ください。
[IM-Workflow 管理者操作ガイド] - [ロジックフローを利用する]
4. ワークフローの処理対象者にロジックフローを追加する
ワークフローのルート定義の処理対象者にロジックフローを追加してください。
以下の例では、ルート定義の承認ノードの処理対象者にロジックフローを追加しています。
設定の詳細は以下のドキュメントをご覧ください。
[IM-Workflow 管理者操作ガイド] - [ルート定義を登録・設定する]
5. 実行画面で確認する
最後に、処理対象者にロジックフローを追加したワークフローで申請してください。
申請後の案件の次の処理対象者を確認すると、申請者の上位の役職のユーザが登録されていることを確認できます。
なお、ワークフローの処理権限者・確認対象者・案件操作権限者(参照者)に「ロジックフロー(ユーザ)」を利用する場合、いくつか注意事項があります。
詳細は以下のドキュメントをご覧ください。
[IM-Workflow 管理者操作ガイド] - [処理対象者プラグインに属するリソースの入力設定に関する注意事項]