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

入力項目 データ型
imwApplyAuthInfo object
  userCd string
  companyCd string
  departmentSetCd string
  departmentCd string
imwMatterInfo object
  applyBaseDate string
出力項目 データ型
userCds string[]

2. 定数の設定

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

im_cookbook_142677_3

定数ID 定数値
manager ps002
sectionManager ps003

3. 変数の設定

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

im_cookbook_142677_4

変数ID データ型
approveAuthInfo object
  postCd string

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 管理者操作ガイド] - [処理対象者プラグインに属するリソースの入力設定に関する注意事項]

-CookBook
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

request.log を Kibana で可視化する方法

この CookBook では、request.log を Kibana で可視化する方法について紹介しています。 方法は色々ありますが、この CookBook では Logstash と logsta …

no image

申請画面の入力データをExcelファイルにダウンロードする

このCookbookでは、IM-BIS 2017 Winterから新たに追加された「 外部連携のレスポンスとして、ファイルデータを受け取る 」機能を利用する方法を紹介いたします。 BISで作成した申請 …

no image

グリッドテーブルのイメージからワークフローの案件内容を表示するには

このCookbookでは、グリッドテーブルの「イメージ」から申請済みの案件の詳細画面を呼び出す方法を紹介します。 この方法を利用すると別の案件を参照しながら新しく申請を行うことができます。 BISで作 …

no image

Docker Swarm を利用して Payara のクラスタリングを構築する。

この CookBook では、Docker Swarm を利用して Payara のクラスタリングを構築する手順について紹介しています。 intra-mart Accel Platform のクラスタ …

no image

画面にインジケータ(ロード中のアイコン)を表示する

任意の処理を行った際にインジケータを表示する方法をご紹介します。 インジケータは、アイコンを用いて任意の処理中であること(ロード中であること)を画面に表示します。 インジケータを利用することで、任意の …

まだデータがありません。

RSSRSSRSSRSS