IM-BPM for Accel Platform IM-BPM チュートリアルガイド 第18版 2021-04-01

4.3.3.3. タスクリスナを利用して特定の組織に所属するユーザを処理対象ユーザに設定する

このチュートリアルでは「タスクリスナ」を利用して、ユーザタスクの処理対象ユーザに特定の組織に所属するユーザを設定します。
「タスクリスナ」の詳細については、「IM-BPM プロセスデザイナ 操作ガイド」 - 「タスクリスナ」もあわせて参照してください。

コラム

このチュートリアルで作成する「プロセス定義」と「ロジックフロー」のサンプルを以下のリンクからダウンロードできます。

これらのサンプルは、各アプリケーションの機能でアップロード、または、インポートして利用可能です。
詳細な手順については、以下のリンク先を参照してください。

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

特定の組織に所属するユーザを、処理対象ユーザに設定するロジックフローを作成します。
会社コード、組織セットコードおよび組織コードを使用して「組織に所属するユーザの取得」タスクから、組織に所属するユーザの一覧を取得します。
特定の組織に所属するユーザをユーザタスクの処理対象ユーザに設定するロジックフローを作成します。
../../../../_images/listener_0201.png
図:完成イメージ
  1. ツールバーの「入出力設定」をクリックします。
    ../../../../_images/listener_0202.png
    図:「ツールバー」 - 「入出力設定」
  2. 入力値を以下のように設定します。
    キー名
    companyCd <string>
    departmentSetCd <string>
    departmentCd <string>
    task <object>
    task - id <string>
    ../../../../_images/listener_0203.png
    図:「入出力設定」 - 「入力」

    コラム

    パラメータに子要素を追加する場合、親要素を選択した状態でメニューの「配下に設置する」にチェックを入れ、追加したい各データ型を選択してください。
    ../../../../_images/listener_0204.png
    図:「入出力設定」 - 「入力」
  3. パレットの種別「IM共通マスタ」から、「組織に所属するユーザの取得」を設置します。
    ../../../../_images/listener_0205.png
    図:「組織に所属するユーザの取得」
  4. 「組織に所属するユーザの取得」のマッピングを、以下のとおりに設定します。
    入力(始点) 出力(終点)
    入力<Object> - companyCd<string>
    im_immGetUserByDepartment1<object> - companyCd<string>
    入力<Object> - departmentSetCd<string>
    im_immGetUserByDepartment1<object> - departmentSetCd<string>
    入力<Object> - departmentCd<string>
    im_immGetUserByDepartment1<object> - departmentCd<string>
    ../../../../_images/listener_0206.png
    図:「マッピング設定」 - 「組織に所属するユーザの取得」

    コラム

    「組織に所属するユーザの取得」に関するタスクの詳細は「IM-LogicDesigner仕様書」-「組織に所属するユーザの取得」を参照してください。
  5. パレットの種別「基本」から、「繰り返し」を設置します。
    「繰り返し開始」を選択すると、自動で「繰り返し終了」も配置されます。
    ../../../../_images/listener_0207.png
    図:「繰り返し開始」と「繰り返し終了」
  6. 「繰り返し開始」を選択した状態で、「プロパティ」 - 「タスク固有設定」 - 「繰り返し対象」の選択をクリックします。
    ../../../../_images/listener_0208.png
    図:「プロパティ」 - 「タスク固有設定」 - 「繰り返し対象」

    コラム

    「繰り返し」に関する制御要素の詳細は「IM-LogicDesigner チュートリアルガイド」-「繰り返し処理を利用したフロー」を参照してください。
  7. 「繰り返し対象の選択」から、im_immGetUserByDepartment1<object> - users<object[]> を選択し、決定をクリックします。
    ../../../../_images/listener_0209.png
    図:「タスク固有設定」 - 「繰り返し対象」
  8. パレットの種別「IM-BPM」から「タスク処理対象のユーザの追加」を選択し、上記で配置した「繰り返し開始」と「繰り返し終了」の間に配置します。
    ../../../../_images/listener_0210.png
    図 : 「タスク処理対象のユーザの追加」
  9. 「タスク処理対象のユーザの追加」のマッピングを、以下のように設定します。
    入力(始点) 出力(終点)
    入力<Object> - task<Object> - id <string>
    im_bpmAddTaskCandidateUser1<object> - taskId <string>
    im_startLoop1<object> - item<object> - userCd<string>
    im_bpmAddTaskCandidateUser1<object> - userIds<string[]>
    ../../../../_images/listener_0211.png
    図 : 「タスク処理対象のユーザの追加」 - 「マッピング設定」

    コラム

    「マッピング設定」に関するタスクの詳細は「IM-LogicDesigner仕様書」 - 「タスクの処理対象ユーザの追加」を参照してください。
  10. シーケンスでつなぎます。
    ../../../../_images/listener_0212.png
    図:「ロジックフロー定義編集画面」
  11. 「ロジックフロー定義編集」画面上部、ヘッダ内の「新規保存」をクリックします。
    以下のように設定し、ロジックフロー定義を新規保存します。
    • フロー定義ID : addTargetUsersByDepartment

    • フロー定義名 : 【チュートリアル】処理対象ユーザ追加

    • フローカテゴリ :
      • ID : sample
      • 名称 : Sample
    ../../../../_images/listener_0213.png
    図:「新規保存」

4.3.3.3.2. プロセス定義を作成する

上記で作成したロジックフローを呼び出すことで、 特定の組織に所属するユーザを処理対象ユーザに設定するプロセスを作成します。
ユーザタスクの「サンプル課11」と「サンプル課22」の2つを配置します。
「サンプル課11」のユーザタスクには「サンプル課11」の組織に所属するユーザを処理対象ユーザに設定します。
「サンプル課22」のユーザタスクには「サンプル課22」の組織に所属するユーザを処理対象ユーザに設定します。
../../../../_images/listener_0214.png
図:完成イメージ
  1. 「開始イベント」を配置します。
  2. 複数のユーザタスクに分岐するため、「パラレルゲートウェイ」を設置します。
    ../../../../_images/listener_0215.png
    図:「パラレルゲートウェイ」
  3. 「ユーザタスク」を配置し、「リスナ」タブから、「タスクリスナ」 の 「追加」リンクをクリックします。

    ../../../../_images/listener_0216.png
    図:「ユーザタスク」 - 「プロパティ」 - 「リスナ」
  4. 「サンプル課11」に所属しているユーザを処理対象ユーザに設定するため、「タスクリスナ」を以下のように設定します。
    • イベント : create

    • タイプ : IM-LogicDesigner

    • フローID : addTargetUsersByDepartment

    • 最新バージョン : 最新バージョンを利用

    • 入力データ1(会社コード):
      • 名前 : companyCd
      • 値 : comp_sample_01
    • 入力データ2(組織セットコード):
      • 名前 : departmentSetCd
      • 値 : comp_sample_01
    • 入力データ3(組織コード):
      • 名前 : departmentCd
      • 値 : dept_sample_11
    ../../../../_images/listener_0217.png
    図:「ユーザタスク」 - 「プロパティ」 - 「リスナ」

    コラム

    ロジックフローと変数を連携するには、「IM-LogicDesigner」リスナのプロパティ「入力データ」で設定する必要があります。
    task<object>とid<string>は「暗黙オブジェクト」のため、設定は行いません。
    「暗黙オブジェクト」についての詳細は「IM-BPM 仕様書」-「IM-LogicDesignerリスナ」を参照してください。
  5. 「ユーザタスク」を配置し、「リスナ」 タブから、「タスクリスナ」 の 「追加」リンクをクリックします。
    ../../../../_images/listener_0218.png
    図:「ユーザタスク」 - 「プロパティ」 - 「リスナ」
  6. 「サンプル課22」に所属しているユーザを処理対象ユーザに設定するため、「タスクリスナ」を以下のように設定します。
    • イベント: create

    • タイプ : IM-LogicDesigner

    • フローID : addTargetUsersByDepartment

    • 最新バージョン : 最新バージョンを利用

    • 入力データ1(会社コード):
      • 名前 : companyCd
      • 値 : comp_sample_01
    • 入力データ2(組織セットコード):
      • 名前 : departmentSetCd
      • 値 : comp_sample_01
    • 入力データ3(組織コード):
      • 名前 : departmentCd
      • 値 : dept_sample_22
    ../../../../_images/listener_0219.png
    図:「タスクリスナ」
  7. 「パラレルゲートウェイ」と「終了イベント」を設置します。
    ../../../../_images/listener_0220.png
    図:「パラレルゲートウェイ」と「終了イベント」
  8. 名前を付けて保存します。

4.3.3.3.3. 実行結果を確認する

このチュートリアルで作成した「プロセス定義」を実行環境にデプロイし、実行した結果の確認を行います。
  1. 「サイトマップ」→「BPM」→「プロセス開始一覧」を開きます。
    プロセス開始をクリックし、プロセスを開始します。
    ../../../../_images/listener_0221.png
    図:「プロセス開始一覧」
  2. 「プロセス一覧」から、「プロセス詳細」を開きます。
    ../../../../_images/listener_0222.png
    図:「プロセス一覧」
  3. 「プロセス詳細」から、ユーザタスクにそれぞれの組織の処理対象ユーザが設定されていることを確認します。
    ../../../../_images/listener_0223.png
    図:「プロセス一覧」 - 「プロセス詳細」
  4. テナント管理画面を開くため、テナント管理者でログインします。
    サイトマップから「共通マスタ」 - 「マスタメンテナンス」- 「組織」をクリックします。
    所属しているユーザが、上記で確認した「プロセス詳細」のタスク「サンプル課11」の処理対象ユーザであることを確認します。
    ../../../../_images/listener_0224.png
    図:「共通マスタ」 - 「組織」
  5. さらに、「サンプル課22」をクリックします。
    所属しているユーザが、上記で確認した「プロセス詳細」のタスク「サンプル課22」の処理対象ユーザであることを確認します。
    ../../../../_images/listener_0225.png
    図:「共通マスタ」 - 「組織」