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

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

関連記事

IM-LogicDesignerでBoxにファイルをアップロードし、メタデータや共有リンクを作成する方法

このCookBookでは、IM-LogicDesigner での以下のBox連携LDタスクの使い方について紹介しています。 ユーザ切り替えタスク Boxストレージ取得タスク メタデータ作成タスク 共有 …

no image

AWS 上に Accel Platform を構築する方法

  この CookBook では、AWS の仮想マシン機能(Amazon EC2)を用いて、スタンドアローンで intra-mart Accel Platform を構築する方法について紹介 …

no image

スクリプト開発でのCSRF対策(formタグ編)

Cross Site Request Forgery(CSRF)とは、閲覧者に不正にHTTPリクエストを送信させ、攻撃者の意図した処理を実行させる攻撃手法です。 このCookBookでは、スクリプト開 …

no image

IM-BloomMaker 入力規則エラーメッセージをカスタマイズする方法

このCookBookでは、「入力規則エラーメッセージ」エレメントに表示されるエラーメッセージをカスタマイズする方法について説明します。 intra-mart Accel Platform 2024 A …

no image

IMBox に投稿種別を追加する方法(Markdown)

このCookBookでは、IMBoxに投稿種別を追加する方法について紹介しています。 以下のドキュメントを参照することで、IMBox に投稿種別を追加することができます。 IMBox プログラミングガ …