CookBook

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

投稿日:2018-04-02 更新日:

この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

Box Java SDK を利用した Box 連携

はじめに 本CookBookでは「intra-mart Accel Platform」で同梱している Box Java SDK を直接利用する方法をご紹介します。 尚、「intra-mart Acce …

no image

Payara で Java のリモートデバッグを行う

この CookBook では、Payara のリモートデバッグを行う手順について紹介しています。 レシピ Payara を設定する e Builder を設定する リモートデバッグを行う 1. Pay …

no image

No.9 音声認識からスケジュール登録

この記事は、EWS 2017で行われたLogicDesignerの講演内容に関する記事です。 こちらの例では、LogicDesignerと音声認識(Web Speech API)の仕組みを利用して、音 …

no image

IM-BloomMaker 実行画面のURLの一部を入力値に割り当てる方法

IM-BloomMaker のコンテンツ定義をルーティング定義に紐づけることで、URLを指定してコンテンツ定義の実行画面を表示することができます。コンテンツ定義には入力値が指定できますが、前処理プログ …

no image

バージョンアップを認めずパッチのみを許可する module.xml の依存関係の指定方法の書き方

この CookBook では、module.xml の依存関係の書き方について紹介しています。 記事のタイトルにあるように、モジュールを特定のバージョンのパッチまでに依存する方法についてご紹介します。 …