CookBook

特定フローの特定ノードで、処理中の案件に対し、任意の処理対象者を追加する方法

投稿日:2018-08-01 更新日:

このCookBookでは、LogicDesignerを利用して、特定フローの特定ノードで、処理中の案件に対し、任意の処理対象者を追加する方法について紹介しています。
人事異動で担当者が追加となり、複数の案件に対して案件操作が必要となった場合など、このCookBookを参考にしてフローを作成することで、容易に対応することができます。

ここでは、処理の流れを分かりやすくするため、Forma標準アプリで画面を作成していますが、ロジックフローをジョブとして実行することも可能です。

完成イメージ


申請基準日、フロー、フローのノードを指定し、指定した内容を基に検索した未完了案件に処理対象者を追加するFormaアプリのサンプルです。
このサンプルを実行することで、特定フローの特定ノードで、処理中の案件に対し、任意の処理対象者を追加することができます。

  • 全体画像
  • 検索条件を基に、未完了案件情報を取得します。
  • 取得した未完了案件の処理待ちノードに処理対象者を追加します。

完成サンプル

以下の完成サンプルをダウンロードしてご活用ください。
なお、以下のサンプルはintra-mart Accel Platform 2018 Summerの環境を利用して作成したものです。

IM-LogicDesignerの「未完了案件取得」タスク、「処理対象者追加」タスクは2018 Summerに追加された機能のため、より前のバージョンでは動作しません。

完成サンプルをご利用の際は、テナント環境セットアップでサンプルデータインポートを行い、利用するユーザのロールに「IM-Workflow ユーザ」を設定してください。
また、インポートしたFormaアプリのメニュー設定が必要です。詳細は以下をご覧ください。
[IM-FormaDesigner for Accel Platform 作成者 操作ガイド] - [メニューを設定する]

レシピ

  1. 未完了案件情報を取得するロジックフローを作成する。
  2. 未完了案件の処理待ちノードに処理対象者を追加するロジックフローを作成する。
  3. データソース定義を作成する。
  4. 未完了案件の処理待ちノードに処理対象者を追加するFormaアプリを作成する
  5. 実行画面で確認する。

1.未完了案件情報を取得するロジックフローを作成する。

Formaアプリで入力する検索項目(フローID、ノードID、申請基準日)を基に検索項目に合致する案件情報を返却するロジックフローを作成します。
以下のエレメントを配置したロジックフローを作成します。
【エレメント】

  • getUnprocessedList(未完了案件一覧取得)

1-1.入出力定義を設定します。
入力項目は、Formaアプリで入力する検索項目(フローID、ノードID、申請基準日)を設定します。
出力項目は、検索条件に合致した未完了案件情報を格納するオブジェクトは配列を設定します。サンプルではオブジェクト名をresultにしています。
サンプルでは、未完了案件情報の案件名、システム案件ID、ノードIDを返却するようにしています。

1-2.マッピング設定を行います。

1-2-1.getProcessedListエレメント
未完了案件情報を取得するため、以下のようにマッピング設定してください。
サンプルでは、未完了案件一覧取得タスクの入力値のロケールIDには、アカウントコンテキストのロケールをマッピング設定しています。
また、申請基準日(From/To)をマッピングすることにより、取得する未完了案件情報の絞り込みを行っていますが、申請日(From/To)での絞り込みまたは、両方の絞り込みも可能です。

1-2-2.endエレメント
取得した未完了案件情報を返却するため、以下のようにマッピング設定してください。

2.未完了案件の処理待ちノードに処理対象者を追加するロジックフローを作成する。

レシピ1で取得した未完了案件の処理待ちノードに処理対象者を追加するロジックフローを作成します。
以下のエレメントを配置したロジックフローを作成します。
【エレメント】

  • startLoop(繰り返し開始)
  • addProcessTargetUser(処理対象者追加)
  • endLoop(繰り返し終了)

2-1.入出力定義を設定します。
入力項目は、処理対象者を追加するため、レシピ1で取得した未完了案件のシステム案件IDとノードID、Formaアプリで入力する処理対象者のユーザコードを設定します。
未完了案件のシステム案件IDとノードIDを格納するオブジェクトは配列を設定します。サンプルではオブジェクト名をinfoにしています。
出力項目は、処理が正常終了したことをFormaアプリに表示するため、「暗黙的に連携するレスポンスパラメータ」を設定します。詳細は以下のドキュメントをご覧ください。
[IM-BIS for Accel Platfoem IM-BIS 仕様書] - [暗黙的に連携するレスポンスパラメータの仕様]

2-2.定数を設定します。

処理が正常終了したことをFormaアプリに表示するため、真偽値falseと画面に表示するメッセージを設定します。

2-3.マッピング設定を行います。

2-3-1.startLoopエレメント
未完了案件数分の繰り返し処理を行うため、繰り返し対象に、レシピ2-1で設定した未完了案件のシステム案件IDとノードIDを格納したオブジェクトの配列を設定してください。

2-3-2.addProcessTargetUserエレメント
未完了案件の処理待ちノードに処理対象者を追加するため、以下のようにマッピング設定してください。

2-3-2.endエレメント
処理が正常終了したことをFormaアプリに表示するため、以下のようにマッピング設定してください。

3. データソース定義を作成する。

上記で作成した2つのロジックフローを、IM-LogicDesignerのデータソース定義として設定してください。
データソース定義設定の方法は、以下のドキュメントをご覧ください。
[IM-BIS システム管理者 操作ガイド] - [「データソース - 編集[LogicDesigner]」画面の操作手順]

4. 未完了案件の処理待ちノードに処理対象者を追加するFormaアプリを作成する

作成した2つのロジックフローを外部連携し、未完了案件の処理待ちノードに処理対象者を追加するFormaアプリを作成します。

Forma管理画面の「Formaアプリ作成」-「アプリ一覧」からアプリケーションを作成してください。
[IM-FormaDesigner for Accel Platform 作成者 操作ガイド] - [6. IM-FormaDesigner でのIM-Workflowから利用できるアプリケーションの作成]

4-1.処理画面を作成します。
以下のアイテムを配置した処理画面を作成してください。
画像は例です。

  • 配置するアイテムと説明
アイテムのラベル アイテムの種類 説明
flowId 文字列 検索するフローのフローIDを入力します。
nodeId 文字列 検索するフローの処理待ちノードのノードIDを入力します。
applyBaseDate 期間 検索する案件基準日の期間を入力します。
activeMatterList グリッドテーブル 検索した未完了案件情報が表示されます。
カラムは、レシピ1-1の出力項目で指定した値のカラムを定義します。今回は、matterName、systemMatterId、nodeIdを文字列型で定義してください。
userCds グリッドテーブル 追加する処理対象者のユーザコードを入力します。
カラムは、userCdを文字列型で定義してください。
search イベントボタン グリッドテーブルに検索した未完了案件の情報を表示します。
add イベントボタン グリッドテーブルに表示されている案件情報と入力したユーザコードを基に、処理対象者を追加します。

4-2.アクション処理を設定します。

レシピ4-1で配置した2つのイベントボタンに、それぞれアクション処理を設定します。
アクション設定の方法は以下のドキュメントをご覧ください。
[IM-BIS for Accel Platform IM-BIS 仕様書] - [1. アクション設定]
サンプルでは、作成したロジックフローを実行する前に、入力値をチェックするカスタムスクリプトを設定しています。
詳細は以下のドキュメントをご覧ください。
[IM-BIS for Accel Platform IM-BIS 仕様書] - [1. アクション設定] - [1.8. カスタムスクリプト設定画面の機能と各部の説明]

4-2-1.「search」ボタンのアクション設定を行います。
レシピ1で作成した未完了案件情報を取得するロジックフローを呼び、データマッパーで以下のように紐づけを行います。

  • リクエスト
画面アイテムのラベル名 ロジックフローの入力項目
flowId flowId
nodeId nodeId
applyBaseDate(期間の開始日) applyBaseDateFrom
applyBaseDate(期間の終了日) applyBaseDateTo
  • レスポンス
画面アイテムのラベル名 ロジックフローの出力項目
activeMatterListのmatterNameカラム resultのmatterName
activeMatterListのsystemMatterIdカラム resultのsystemMatterId
activeMatterListのnodeIdカラム resultのnodeId

4-2-2.「add」ボタンのアクション設定を行います。
レシピ2で作成した処理対象者を追加するロジックフローを呼び、データマッパーで以下のように紐づけを行います。

  • リクエスト
画面アイテムのラベル名 ロジックフローの入力項目
activeMatterListのsystemMatterIdカラム infoのsystemMatterId
activeMatterListのnodeIdカラム infoのnodeId
userCdsのuserCdカラム userCds
  • レスポンス
    レスポンス値のデータマッパーの紐づけはありません。

以上で、未完了案件の処理待ちノードに処理対象者を追加するFormaアプリが作成できました。

5.実行画面で確認する。

最後に、実行画面で作成したFormaアプリを用いて動作を確認します。

  1. Formaアプリを開き、フローID、ノードID、申請基準日の期間を入力し、「search」ボタンをクリックします。
  2. グリッドテーブルに表示された案件を確認し、ユーザコードを入力して、「add」ボタンをクリックします。
  3. 画面上部に成功メッセージが表示されれば処理対象者の追加が完了です。

    処理対象者が追加された案件のフローでは以下のようになります。

IM-LogicDesignerの「処理対象者追加」タスクを利用すれば、処理中の案件に対して、処理対象者を追加することができます。
今回は、処理中のノードに対して、処理対象者を追加しましたが、未到達ノードに対しても、処理対象者を追加することができます。

-CookBook
-, , , ,

執筆者:


comment

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

関連記事

no image

IM-BloomMaker フォーム部品(Bulma)を使用したバリデーション処理の作成

このCookBookでは、intra-mart Accel Platform 2020 Summer から利用可能になったコンテンツ種別「Bulma」の「フォーム部品(Bulma)」を使用したバリデー …

IM-BloomMaker Bulma タイルの利用方法

この CookBook では、 2020 Summer でリリースした Bulma の「タイル」エレメントの利用方法について説明していきます。 「タイル」エレメントは自由にグリッドレイアウトを構築する …

IM-BloomMaker カスタムスクリプトの小数の計算で誤差を出さない方法

このCookBookでは、IM-BloomMaker のアクションアイテム「カスタムスクリプトを実行する」で小数の計算を行う時に誤差を出さない方法について紹介しています。 カスタムスクリプトの使い方に …

no image

物理マシン 1 台で Resin のクラスタリング環境を構築する

この CookBook では、物理マシン 1 台で Resin のクラスタリング環境を構築する手順について紹介しています。 Resin のクラスタリングを構築するには通常複数台のマシンが必要ですが、D …

no image

フォーム内の入力値を案件名に自動入力する方法

このCookbookでは、IM-FormaDesignerで作成した申請画面から入力内容を案件名に設定する方法を紹介します。 この方法を利用するとIM-FormaDesignerの入力内容をIM-Wo …