このCookBookでは、IM-LogicDesignerを利用して、IM-Workflow完了案件の確認対象者を削除する方法について紹介しています。
完了案件でも、確認対象者が確認することはできます。そのため、過去案件に移行するまで対象の案件は確認一覧に表示されます。
ここでは、一定期間や特定条件に合致した確認待ちの案件を削除する方法を紹介します。
ここでは、処理の流れを分かりやすくするため、Forma標準アプリで画面を作成していますが、ロジックフローをジョブとして実行することも可能です。
完成イメージ
申請した日付の期間、フロー、フローの確認ノードを指定し、指定した内容を基に検索した完了案件の確認対象者を全削除するFormaアプリのサンプルです。
このサンプルを実行することで、完了案件の確認一覧に古い案件を表示しないことができます。(確認履歴は残ります。)
完成サンプル
以下の完成サンプルをダウンロードしてご活用ください。
なお、以下のサンプルはintra-mart Accel Platform 2018 Summerの環境を利用して作成したものです。
使用するアプリケーションは以下の通りです。
- IM-LogicDesigner
- IM-Workflow
- IM-FormaDesigner
- IM-BIS
IM-LogicDesignerの「完了案件一覧取得」タスク、「確認者削除」タスクは2018 Summerに追加された機能の為、2018 Summerより前のバージョンでは動作しません。
- ロジックフロー定義 : im_cookbook_148370_logicdesigner.zip
- IM-LogicDesignerのインポート機能からインポートしてください。ロジックフローが登録されます。
- 手順の詳細は以下のドキュメントをご覧ください。
[IM-LogicDesigner ユーザ操作ガイド] - [インポートを行う]
- データソース定義 : im_cookbook_148370_datasource.zip
- Forma管理画面のデータソース定義インポート機能からインポートしてください。データソース定義が登録されます。
- 手順の詳細は以下のドキュメントをご覧ください。
[IM-FormaDesigner for Accel Platform 作成者 操作ガイド] - [「データソース定義インポート」画面の機能と各部の説明]
- アプリケーション情報 : im_cookbook_148370_forma_application.zip
- Forma管理画面のアプリケーション情報インポート機能からインポートしてください。Formaアプリケーション情報が登録されます。
- 手順の詳細は以下のドキュメントをご覧ください。
[IM-FormaDesigner for Accel Platform 作成者 操作ガイド] - [「アプリケーション情報インポート」画面の機能と各部の説明]
完成サンプルをご利用の際は、テナント環境セットアップでサンプルデータインポートを行い、利用するユーザのロールに「テナント管理者」を設定してください。
また、インポートしたFormaアプリのメニュー設定が必要です。詳細は以下をご覧ください。
[IM-FormaDesigner for Accel Platform 作成者 操作ガイド] - [メニューを設定する]
なお、完成サンプルは、サンプルフローの「複合ルート[スクリプト開発モデル]」フローを利用することを想定して作成されています。
そのため、フロー定義の「複合ルート[スクリプト開発モデル]」の機能設定で、「完了した案件の確認」を有効にしてください。
レシピ
- 完了案件一覧情報を取得するロジックフローを作成する。
- 案件に設定されている確認対象者を削除するロジックフローを作成する。
- データソース定義を作成する。
- 完了案件の確認対象者を削除するFormaアプリを作成する
- 実行画面で確認する。
1. 完了案件一覧情報を取得するロジックフローを作成する。
このフローでは、Formaアプリで入力する検索項目(フローID、ノードID、期間)を基に検索項目に合致する案件情報を返却するロジックフローを作成します。
ノードIDについては確認対象者を削除する際に必要になるため、ここでは扱いません。
先ず、IM-LogicDesignerで、カテゴリ「IM-BIS」から、「完了案件一覧取得」タスクを配置します。
入出力設定は以下の通り設定します。
入力項目 | データ型 |
---|---|
applyDateFrom | date |
applyDateTo | date |
flowId | string |
localeId | string |
出力項目 | データ型 |
---|---|
info | object[] |
matterCplDate | date |
matterName | string |
systemMatterId | string |
「完了案件一覧取得」タスクは、取得する案件の申請された日付の期間と、フローID、ロケールIDを指定することで、任意のフローの任意の期間に合致する完了案件の情報を一覧で取得できます。
「完了案件一覧取得」タスクのマッピング設定は以下の通りです。
- ロジックフロー入力値applyDateFromを「完了案件一覧取得」タスクの入力値applyDateFromにマッピングします。
- ロジックフロー入力値applyDateToを「完了案件一覧取得」タスクの入力値applyDateToにマッピングします。
- ロジックフロー入力値flowIdを「完了案件一覧取得」タスクの入力値flowIdにマッピングします。
- ロジックフロー入力値localeIdを「完了案件一覧取得」タスクの入力値localeIdにマッピングします。
「終了」タスクでは、Formaアプリで確認対象者を削除する際に、表示したい情報を出力値に紐づけます。
systemMatterIdは必須です。
「終了」タスクのマッピング設定は以下の通りです。
- 「完了案件一覧取得」タスクの出力値matterCplDateをロジックフローの出力値matterCplDateにマッピングします。
- 「完了案件一覧取得」タスクの出力値matterNameをロジックフローの出力値matterNameにマッピングします。
- 「完了案件一覧取得」タスクの出力値systemMatterIdをロジックフローの出力値systemMatterIdにマッピングします。
2. 案件の未確認者を削除するロジックフローを作成する。
このフローでは、「1. 完了案件一覧情報を取得するロジックフローを作成する。」で作成したフローの出力値とFormaアプリで入力するノードIDを基に、取得した案件一覧の該当する確認ノードの処理対象者を全削除するロジックフローを作成します。
先ず、IM-LogicDesignerで、カテゴリ「IM-BIS」から、「確認者削除」タスクを用いて、以下のように配置します。
入出力設定は以下の通り設定します。
入力項目 | データ型 |
---|---|
systemMatterId | string[] |
nodeId | string |
出力項目 | データ型 |
---|---|
imfrSoaResult | object |
imfrErrorFlag | boolean |
imfrMessage | string[] |
「確認者削除」タスクは1つの案件の1つの確認ノードに設定されている確認対象者を全削除します。
そのため、取得した完了案件一覧の案件1つずつに繰り返し「確認者削除」タスクで処理する必要があります。
よって、「繰り返し」タスクの繰り返し対象に、入力値のsystemMatterIdを指定します。
次に「確認者削除」タスクに削除する案件と削除する確認ノードのノードIDを指定します。
「確認者削除」タスクのマッピング設定は以下の通りです。
- ロジックフロー入力値nodeIdを「確認者削除」タスクの入力値nodeIdにマッピングします。
- 「繰り返し」タスクの出力値itemを「確認者削除」タスクの入力値systemMatterIdにマッピングします。
「終了」タスクでは、処理が正常終了したことをFormaアプリに表示するため、「暗黙的に連携するレスポンスパラメータ」を利用します。詳細は以下のドキュメントをご覧ください。
[IM-BIS for Accel Platfoem IM-BIS 仕様書] - [暗黙的に連携するレスポンスパラメータの仕様]
例として、「終了」タスクのマッピング設定を以下の通り設定します。
- 真偽値falseをロジックフロー出力値imfrErrorFlagにマッピングします。
- 文字列"success"をロジックフロー出力値imfrMessageにマッピングします。
3. データソース定義を作成する。
上記で作成した2つのロジックフローを、IM-LogicDesignerのデータソース定義として設定してください。
データソース定義設定の方法は、以下のドキュメントをご覧ください。
[IM-BIS システム管理者 操作ガイド] - [「データソース - 編集[LogicDesigner]」画面の操作手順]
4. 完了案件の確認対象者を削除するFormaアプリを作成する
作成した2つのロジックフローを外部連携し、任意の期間の完了案件の確認対象者を全削除することができるFormaアプリを作成します。
先ず、Forma管理画面の「Formaアプリ作成」-「アプリ一覧」からアプリケーションを作成してください。
[IM-FormaDesigner for Accel Platform 作成者 操作ガイド] - [6. IM-FormaDesigner でのIM-Workflowから利用できるアプリケーションの作成]
以下のアイテムを配置してください。
画像は例です。
配置するアイテムと説明
アイテムのラベル | アイテムの種類 | 説明 |
---|---|---|
display | イベントボタン | グリッドテーブルに確認対象者を削除する完了案件の情報を表示します。 |
delete | イベントボタン | グリッドテーブルに表示されている案件の指定されたノードIDの確認対象者を削除します。 |
flowId | 文字列 | 検索するフローのフローIDを入力します。 |
nodeId | 文字列 | 検索するフローの確認ノードのノードIDを入力します。 |
search period | 期間 | 検索する案件申請日の期間を入力します。 |
delete confirm user matter | グリッドテーブル | 削除される確認対象者の案件情報が表示されます。 カラムは、完了案件一覧情報を取得するロジックフロー作成時に出力値に指定した値のカラムを定義します。今回は、matterName、systemMatterIdを文字列、matterCplDateを日付型で定義してください。 |
次に、配置した2つのイベントボタンにそれぞれアクション処理を設定します。
アクション設定の方法は以下のドキュメントをご覧ください。
[IM-BIS for Accel Platform IM-BIS 仕様書] - [1. アクション設定]
サンプルでは、作成したロジックフローを実行する前に、入力値をチェックするカスタムスクリプトを設定しています。
詳細は以下のドキュメントをご覧ください。
[IM-BIS for Accel Platform IM-BIS 仕様書] - [1. アクション設定] - [1.8. カスタムスクリプト設定画面の機能と各部の説明]
先ず、「display」ボタンのアクション設定を行います。
最初に作成した完了案件一覧情報を取得するロジックフローを呼び、データマッパーで以下のように紐づけを行います。
リクエスト
画面アイテムのラベル名 | ロジックフローの入力項目 |
---|---|
flowId | flowId |
serch period(期間の初め) | applyDateFrom |
serch period(期間の終わり) | applyDateTo |
アイテムと紐づけず、定数でロケールIDを指定。例:ja | locale |
レスポンス
レスポンス値では、完了案件一覧情報を取得するロジックフロー作成時に出力値に指定した値を紐づけます。
画面アイテムのラベル名 | ロジックフローの出力項目 |
---|---|
delete confirm user matterのMatterNameカラム | matterName |
delete confirm user matterのsystemMatterIdカラム | systemMatterId |
delete confirm user matterのmatterCplDateカラム | matterCplDate |
「delete」ボタンでは、2つ目に作成した案件に設定されている確認対象者を削除するロジックフローを呼び、データマッパーで以下のように紐づけを行います。
リクエスト
画面アイテムのラベル名 | ロジックフローの入力項目 |
---|---|
delete confirm user matterのsystemMatterIdカラム | systemMatterId |
nodeId | nodeId |
レスポンス
レスポンス値のデータマッパーの紐づけはありません。
以上で、完了案件の確認対象者を削除するFormaアプリが作成できました。
実行画面で確認する。
最後に、実行画面で作成したFormaアプリを用いて動作を確認します。
- Formaアプリを開き、フローID、ノードID、検索する期間を入力し、「display」ボタンをクリックします。
- グリッドテーブルに表示された案件を確認し、「delete」ボタンをクリックします。
- 画面上部に成功メッセージが表示されれば確認対象者の削除が完了です。
確認対象者での確認画面では以下のようになります。
例として、2018年7月17日~19日までの案件を検索するようにFormaアプリで入力し、「delete」ボタンをクリックすると申請日が2018年7月17日~19日までの案件は表示されなくなります。
このサンプルは例外処理がついていないため、検索する期間のTO、FROMが矛盾している場合、エラーが発生します。
今回は、Formaアプリを利用しましたが、ジョブを用いて定期実行することも可能です。
また、「完了案件一覧取得」タスクから案件の完了日時が取得できるため、一定期間過ぎた完了案件の確認対象者を削除することも可能です。