CookBook

差戻し先ノードの処理対象者を再展開するフローを作成する方法

投稿日:2018-07-31 更新日:

このCookBookでは、差戻し先ノードの処理対象者を再展開するフローを作成する方法について紹介しています。
IM-Workflowの仕様として、差戻し先ノードではそのノードを以前に処理した人のみが再処理を行えます。( IM-Workflow 仕様書 - 差戻し
常にそのノードに設定された処理対象者が処理者として設定されて欲しいという業務ケースに対応する場合は、このCookBookを参考にしてフローを作成してください。

完成イメージ


・ 再展開を行うノードはノード種別が「承認」のノードのみとします。
・ 承認ノードの到達処理で処理対象者を再展開します。
・ 再展開を行うのはそのノードに差戻しで到達した場合のみとします。
・ 特定のノードから差戻しを行うときに、明示的に「再展開しない」という選択をできるようにします。

完成サンプル

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

  • ロジックフロー定義: im_cookbook_131569_logicdesigner-data
    種類 定義名 補足説明
    フロー定義 ロジックフローで、案件プロパティに「再展開しないフラグ」をセットする 画面の入力内容を基に「再展開しないフラグ」を案件プロパティにセットするアクション処理用のユーザプログラムです。
    フロー定義 ロジックフローで、承認ノードの処理対象者を再展開する 「前処理の処理種別」や「再展開しないフラグ」を判定材料として承認ノードの処理対象者を再展開する到達処理用のユーザプログラムです。
  • IM-BIS定義 : im_cookbook_131569_bis_lump
    種類 定義名 補足説明
    BIS定義 【Cookbook】ロジックフローでコンテンツ画面の内容をPDF出力する 新規アカウント作成申請を行うBIS定義です。
    案件プロパティ定義 再展開しないフラグ 到達処理での処理対象者再展開可否を判断するためのフラグです。再展開しない場合に"1"をセットします。

上記のサンプルの利用条件は以下の通りです。

  • intra-mart Accel Platform(Advanced) 2018 Summer(8.0.20)以降のバージョンであること
  • サンプルデータのインポートが行われていること

サンプルは、intra-mart Accel Platform(Advanced) 2018 Summer(8.0.20)で動作確認を行っています。

レシピ

  1. IM-LogicDesigner でアクション処理用のフロー定義を作成する
  2. IM-LogicDesigner で到達処理用のフロー定義を作成する
  3. IM-BIS でBISワークフローを作成する
  4. ロジックフローをコンテンツ定義、フロー定義に設定する

1. IM-LogicDesigner でアクション処理用のフロー定義を作成する

「特定のノードから差戻しを行う場合に、明示的に再展開しないという選択をできるようにします。」という要件を満たすために画面で選択した値を基に判定するということが考えられます。
ただし、到達処理には画面入力値(IM-Workflow ユーザパラメータ)は引き渡されません。
そのため、当CookBookでは案件プロパティを利用し、値の引き渡しを実現します。

  • 定数設定
定数ID 定数値 補足説明
NotReExpandFlagMatterPropKey not_re_expand_flag 案件プロパティとして登録した「再展開しないフラグ」のキーです。
NotReExpandFlagValue ${$input.imwUserParameter.notReExpandFlag} 画面から渡される値を取得するためのEL式です。「notReExpandFlag」はForma画面に配置したアイテムのフィールド識別IDを示します。
false false アクション処理の出力値「error」にセットするための値です。当CookBookでは失敗を考慮しないため一律falseとします。
resultStatusSendBack sendback 当該処理が「差戻し」であるかを判定するための値です。
  • 入出力設定
パラメータ 補足説明
imwActionProcess - resultStatus 行われた処理が差戻しであるかを判定するために利用します。
imwUserParameter 画面で選択された値を取得するために利用します。
imwProcessCommon - userDataId 案件プロパティを登録するためのキーとなるユーザデータIDを取得するために利用します。

入力値の詳細は以下のドキュメントを参照してください。
IM-Workflow 管理者操作ガイド - アクション処理

  • フロー

  • (1) 以下のEL式を記述し、当該処理が「差戻し」であるならば処理を続行します。
    ${ $input.imwActionProcess.resultStatus == $const.resultStatusSendBack }

  • (2) IM-BIS のタスク「ユーザデータ案件プロパティ情報登録・更新」を利用して「再展開しないフラグ」を登録します。
    マッピング設定は以下のようにします。

2. IM-LogicDesigner で到達処理用のフロー定義を作成する

当該ノードの処理対象者再展開を実行するフロー定義を作成します。

  • 定数設定
定数ID 定数値 補足説明
NotReExpandFlagMatterPropKey not_re_expand_flag 案件プロパティとして登録した「再展開しないフラグ」のキーです。
NotReExpandFlagValueTrue 1 「再展開しないフラグ」がtrueを表す場合の定義値です。
false false 到達処理の出力値「mailSendFlag」にセットするための値です。当CookBookではメールを送信しないため一律falseとします。
resultStatusSendBack sendback 前処理が「差戻し」であるかを判定するための値です。
lastApproveNodeId approve3 前処理が「再展開しないフラグ」を設定可能な承認ノードであるかを判定するための値です。
  • 入出力設定
パラメータ 補足説明
preNodeResultStatus 前処理が差戻しであるかを判定するために利用します。
preNodeId 前処理が「再展開しないフラグ」を設定可能な承認ノードであるかを判定するために利用します。
userDataId 案件プロパティ取得および削除を行うために利用します。
systemMatterId , nodeId 処理対象者再展開を実行するために利用します。

入力値の詳細は以下のドキュメントを参照してください。
IM-Workflow 管理者操作ガイド - 到達処理

  • フロー

  • (1) 以下のEL式を記述し、前処理が「差戻し」であるならば処理を続行します。
    ${$input.preNodeResultStatus==$const.resultStatusSendBack}

  • (2) 以下のEL式を記述し、前処理ノードが「再展開しないフラグ」を設定可能な承認ノードであれば、案件プロパティから「再展開しないフラグ」を確認するロジックに進みます。
    ${$input.preNodeId==$const.lastApproveNodeId}

  • (3) IM-BIS のタスク「ユーザデータ案件プロパティ情報取得」を利用して「再展開しないフラグ」を取得します。
    マッピング設定は以下のようにします。

  • (4) 以下のEL式を記述し、案件プロパティの「再展開しないフラグ」が true を表す値であればロジックを終了します。
    ${im_bisGetUserMatterProperty1.matterPropertyValue==$const.NotReExpandFlagValueTrue}

  • (5) 処理対象者再展開タスクを実行します。
    マッピング設定は以下のようにします。

  • (6) 不要になった案件プロパティを削除します。
    マッピング設定は以下のようにします。

3. IM-BIS でBISワークフローを作成する

キーとなる「再展開しないフラグ」を設定できるノードに対するコンテンツ画面の作成方法のみ説明します。
サンプルではチェックボックスアイテムを利用し、プロパティを以下のように設定しています。

  • 基本設定
    • ラベル: 入力値なし
  • データの定義
    • 表示値: 差戻し先ノードの処理対象者を再展開しない / 送信値: 1
      送信値は到達処理用のロジックフロー定義で定数設定を行った「NotReExpandFlagValueTrue」の値と同一にします。
  • 詳細設定
    • フィールド識別ID: notReExpandFlag
      フィールド識別IDはアクション処理用のロジックフロー定義で定数設定を行った「NotReExpandFlagValue」のEL式に指定した変数名と同一にします。

4. ロジックフローをコンテンツ定義、フロー定義に設定する

-CookBook
-,

執筆者:


comment

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

関連記事

no image

IM-FormaDesignerで作成したフォーム内で、外部連携を利用して最も簡単に値を渡す方法(単一アイテム編)

このCookBookでは、IM-FormaDesignerで作成したフォーム画面の中で、アイテムからアイテムへ値を渡す方法について紹介します。 今回は例として、文字列と数値の値を同時にアイテムからアイ …

no image

IM-BISで複数のセレクトボックスを連動させて利用する方法

このCookBookでは、セレクトボックスの選択結果によって、他のセレクトボックスの選択肢を絞り込む方法を説明します。 この方法は、IM-BIS導入環境で利用することができます。IM-FormaDes …

no image

intra-martを初めて使う開発者が、まずは e Builder で「Hello world!」する方法

e Builder は、intra-mart Accel Platform で動作するアプリケーションを開発するための開発支援ツールです。 このレッスンでは、intra-martを初めて使う開発者が …

スプレッドシートでForma入力チェックユーザプログラムを利用して入力チェックを実行する方法

このCookBookでは、スプレッドシートでForma入力チェックユーザプログラムを利用して入力チェックを実行する方法について紹介しています。 Formaの入力チェックプログラムでは以下の2つのチェッ …

no image

IM-BloomMaker Bulma Theme Colored について

この CookBook では intra-mart Accel Platform 2021 Summer から利用可能になった コンテンツ種別「Bulma Theme Colored」について紹介しま …