申請者の役職から処理対象者を設定する

公開日: 2018-04-02 / カテゴリ: CookBook

このCookbookでは、IM-Workflow 2018 Springから新たに追加された 処理対象者プラグイン「ロジックフロー(ユーザ)」 の設定方法を紹介いたします。 この機能を利用すると、申請した案件の情報などに基づいてフローの参照者や処理対象者をロジックフローから設定できます。 今回のCookbookでは、申請者の役職情報に基づいて、後続の処理対象者をロジックフローで設定するための方法が確認できます。

完成イメージ

申請者の担当組織から取得した役職情報に基づいて、ロジックフローで処理対象者を設定するサンプルです。
任意のルート定義の処理対象者に「ロジックフロー(ユーザ)」を利用することにより、上位の役職のユーザを承認ノードの処理対象者に設定できます。 im_cookbook_142677_1 簡単な処理の流れは以下のとおりです。

  1. 申請者・申請時の担当組織に基づいて、申請者の役職情報を取得する
  2. 申請者の上位の役職のユーザを取得する
  3. 取得した上位の役職のユーザを承認ノードの処理対象者に設定する

完成サンプル

以下のサンプルをダウンロードしてご利用ください。

サンプルに含まれる定義情報は以下の表の通りです。

種類定義名補足説明
ユーザ定義(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. ユーザ定義を作成する
  2. ロジックフローを作成する
  3. ワークフローで利用可能なロジックフローに登録する
  4. ワークフローの処理対象者にロジックフローを追加する
  5. 実行画面で確認する

1. ユーザ定義を作成する

ワークフローから取得可能なパラメータを利用し、以下の役割をもつユーザ定義をそれぞれ作成してください。

  • 申請者の情報から申請者の役職情報を取得する
  • 役職情報を受け取り、受け取った役職のユーザを取得する

IM-LogicDesignerとの連携で、ワークフローから利用できるパラメータの情報については以下のドキュメントをご参照ください。 [IM-Workflow 管理者操作ガイド] - [ロジックフローを利用する]

2. ロジックフローを作成する

1. 入出力設定の登録

  • 入力はIM-Workflowが提供しているパラメータを利用するため、以下のドキュメントに基づいて、「処理対象者プラグインに属するリソースの入力設定」の「imwApplyAuthInfo(申請者情報)」、「imwMatterInfo(案件情報)」を設定してください。
  • 出力は、入力と同様に「処理対象者プラグインに属するリソースの出力設定」を設定してください。 [IM-Workflow 管理者操作ガイド] - [ロジックフローを利用する]
  • 設定後の入出力設定は、以下の画面のとおりです。

im_cookbook_142677_2

入力項目データ型
imwApplyAuthInfoobject
  userCdstring
  companyCdstring
  departmentSetCdstring
  departmentCdstring
imwMatterInfoobject
  applyBaseDatestring
出力項目データ型
userCdsstring[]

2. 定数の設定

  • 処理対象者を選出するための役職コードを定数に定義してください。  今回の例では、部長(ps002)、課長(ps003)を設定しています。  その他に「申請基準日(applyBaseDate)」を変換する際の日付フォーマットを定義しています。

im_cookbook_142677_3

定数ID定数値
managerps002
sectionManagerps003

3. 変数の設定

  • 分岐で設定する処理対象者の役職コードを保持するための変数を定義してください。

im_cookbook_142677_4

変数IDデータ型
approveAuthInfoobject
  postCdstring

4. タスクの配置と接続

  • 以下のとおりに、タスクを配置し、それぞれのタスク同士を接続してください。

im_cookbook_142677_5 (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. ロジックフローの作成 各タスクのマッピングを以下のとおりに設定してください。 im_cookbook_142677_6 (1) 【Cookbook】Acquisition of Official Position Information from User   localeは、アカウントコンテキストから取得しています。 im_cookbook_142677_7 (2) Branch(Applicant's post)   分岐条件のEL式には以下のとおりに設定してください。 im_cookbook_142677_8 (3) Setting Section Manager im_cookbook_142677_9 (4) Setting Manager im_cookbook_142677_10 (5) End   ロジックフローの出力値をワークフローの参照者や処理対象者に利用する場合、以下の図のように、String型の配列として userCds にユーザコードを渡してください。 im_cookbook_142677_11 ここまででロジックフローが完成しましたので、保存後に次の手順に移ってください。

3. ワークフローで利用可能なロジックフローに登録する

作成したロジックフローをワークフローで利用可能にするための設定を行います。
ワークフローの「ロジックフロー管理」でリソース「処理権限者」と作成したロジックフローを関連づけてください。 設定の詳細は以下のドキュメントをご覧ください。
[IM-Workflow 管理者操作ガイド] - [ロジックフローを利用する] im_cookbook_142677_12

4. ワークフローの処理対象者にロジックフローを追加する

ワークフローのルート定義の処理対象者にロジックフローを追加してください。
以下の例では、ルート定義の承認ノードの処理対象者にロジックフローを追加しています。
設定の詳細は以下のドキュメントをご覧ください。
[IM-Workflow 管理者操作ガイド] - [ルート定義を登録・設定する] im_cookbook_142677_13

5. 実行画面で確認する

最後に、処理対象者にロジックフローを追加したワークフローで申請してください。 申請後の案件の次の処理対象者を確認すると、申請者の上位の役職のユーザが登録されていることを確認できます。 im_cookbook_142677_14 なお、ワークフローの処理権限者・確認対象者・案件操作権限者(参照者)に「ロジックフロー(ユーザ)」を利用する場合、いくつか注意事項があります。
詳細は以下のドキュメントをご覧ください。
[IM-Workflow 管理者操作ガイド] - [処理対象者プラグインに属するリソースの入力設定に関する注意事項]