Accel-Mart Quick チュートリアルガイド 第14版 2023-02-08

10.9.2. 前処理(ワークフロー)

前処理は、フォーム画面を表示する際に実行される業務ロジックです。

コラム

申請画面を表示する際にのみ実行したいなどの制御は、ロジック内の分岐を利用して実装可能です。

10.9.2.1. 利用例

  • フォームの入力項目に初期値を設定する

10.9.2.2. 業務ロジックの概要

前処理の業務ロジックを新規作成すると、初期状態では以下の図のように設定されています。
タスクを追加し、実現したい業務ロジックを作成してください。
../../../_images/wf_preprocess_1.png
図:業務ロジックの初期状態
前処理の業務ロジックには、画面の種別ごとの分岐が初期設定されています。
設定されている分岐条件と条件式は以下の通りです。
分岐条件 条件式
申請 ${ $input.executeProcessType == "apply" }
再申請 ${ $input.executeProcessType == "reapply" }
承認 ${ $input.executeProcessType == "approve" }
詳細 ${ $input.executeProcessType == "reference" }
特定の画面種別、例えば、申請画面を表示する際にのみ実行したい処理は、「分岐(申請)」タスクの then から線をつなげるようにします。
複数の、または、すべての画面種別で同じ処理を実行する場合は、それぞれの分岐の then から線をつなげてください。
../../../_images/wf_preprocess_2.png
図:申請画面を表示する際にのみ実行したい処理の場合
../../../_images/wf_preprocess_3.png
図:申請画面と再申請画面を表示する際に実行したい処理の場合
ワークフローのフォームの入力項目に初期値を設定したい場合は、出力値の data オブジェクトの配下のパラメータに設定したい値をマッピングします。
パラメータ名は、フォーム作成時に設定したフィールド識別IDに対応しています。
「明細テーブル」、「グリッドテーブル」、「スプレッドシート」のテーブルのデータは、テーブル識別IDをパラメータ名とするオブジェクトの配列です。
以下に data オブジェクトの構造の例を示します。
data <object>
 ├─ textbox1 <string>
 ├─ number1 <integer>
 ├─ calendar1 <date>
 └─ tb1 <object[]>
    ├─ [0] // テーブル1行目
    │   ├─ tb1_textbox1 <string>
    │   └─ tb1_number1 <integer>
    ├─ [1] // テーブル2行目
    │   ├─ tb1_textbox1 <string>
    │   └─ tb1_number1 <integer>
    └─ [2] // テーブル3行目
        ├─ tb1_textbox1 <string>
        └─ tb1_number1 <integer>

注意

前処理の中でデータベースの登録・更新・削除処理を行う場合は、独自にデータベーストランザクション制御を行ってください。

10.9.2.3. 入力値

入力値 説明
executeProcessType<string> executeProcessType を参照
preProcessParameter<object> preProcessParameterオブジェクト を参照
uppParam<object> uppParamオブジェクト を参照
preProcessWorkflowParameter<object> preProcessWorkflowParameterオブジェクト を参照

10.9.2.3.1. executeProcessType

アプリケーション実行種別を保持します。
画面を表示するタイミングに合わせて以下の値が取得可能です。
  • apply:申請画面
  • reapply:再申請画面
  • approve:承認画面
  • reference:詳細画面

10.9.2.3.2. preProcessParameterオブジェクト

画面の基本情報を保持します。
項目 説明
loginUserCd<string> ログインユーザコード
applicationId<string> アプリケーションID
applicationNo<long> アプリケーションバージョンNO(アプリケーション履歴番号)
insertId<string> データ登録ID
applicationType<string>
アプリケーション種別
  • std:Webデータベース
  • bis_wkf:ワークフロー
appPageType<string>
アプリケーションページ種別
  • REGISTRATION:申請
  • EDIT:再申請
  • POSTSCRIPT:承認
  • REFERENCE:参照
processKey<string> プロセスキー
recycleId<string>
リサイクルID(過去に申請した案件の入力内容をコピーして申請(「コピー新規」)した場合のみ取得可能)
コピー元案件のアプリケーションIDを返却します。
recycleDataId<string>
リサイクルデータID(過去に申請した案件の入力内容をコピーして申請(「コピー新規」)した場合のみ取得可能)
コピー元案件のユーザデータIDを返却します。

10.9.2.3.3. uppParamオブジェクト

画面呼び出し時のリクエストパラメータで業務ロジック用に渡された情報を保持します。
パラメータ名の頭に「 upp_ 」と付いているリクエストパラメータが受け渡しの対象として扱われます。

10.9.2.3.4. preProcessWorkflowParameterオブジェクト

ワークフローに関するパラメータを保持します。
入力値 説明
imwApplyBaseDate<string> 申請基準日( yyyy/MM/dd 形式)
imwArriveType<string>
到達種別
  • init:通常
  • pullback:引戻し
  • sendback:差戻し
imwAuthUserCode<string>
処理権限者コード
案件をログインユーザ本人の権限で処理する場合は本人のユーザコードが、代理先として処理する場合は代理元のユーザコードが設定されます。
imwCallOriginalPagePath<string> 呼び出し元ページパス
imwCallOriginalParams<string> 呼び出し元パラメータ
imwContentsId<string> コンテンツID
imwContentsVersionId<string> コンテンツバージョンID
imwFlowId<string> フローID
imwFlowVersionId<string> フローバージョンID
imwNodeId<string>
処理対象ノードID
処理対象のノードが縦配置・横配置ノードの場合は、展開後のノードIDが渡されます。
imwPageType<string>
画面種別
  • 0:申請画面
  • 1:一時保存画面
  • 2:申請(起票案件)画面
  • 3:再申請画面
  • 4:処理画面
  • 5:確認画面
  • 6:処理詳細画面
  • 7:参照詳細画面
  • 8:確認詳細画面
  • 9:過去案件詳細画面
  • 10:申請画面(スマートフォン用)
  • 11:一時保存画面(スマートフォン用)
  • 12:申請(起票案件)画面(スマートフォン用)
  • 13:再申請画面(スマートフォン用)
  • 14:処理画面(スマートフォン用)
  • 15:確認画面(スマートフォン用)
imwRouteId<string> ルートID
imwRouteVersionId<string> ルートバージョンID
imwSystemMatterId<string> システム案件ID
imwUserCode<string>
処理者コード
ログインユーザ本人のユーザコードです。
imwUserDataId<string> ユーザデータID

10.9.2.4. 出力値

出力値 必須/任意 説明
data<object> 任意
更新データオブジェクト
フォームの初期値を設定したい場合は、 data 配下のパラメータに設定したい値をマッピングしてください。
data 配下には、フォームの画面アイテムの識別IDに対応するパラメータが予め設定されています。
files<object[]> 任意
更新ファイルアップロードデータオブジェクト配列
フォームに存在する「ファイルアップロード」アイテムにファイルを初期登録したい場合に使用します。
- file<storage> 任意
指定したストレージから取得したファイルを「ファイルアップロード」アイテムに初期登録します。
指定するストレージは「パブリックストレージ取得」などのタスクを利用して取得してください。
何も設定しない場合は、指定したアイテム識別IDの「ファイルアップロード」アイテムの登録済みファイルを全てクリアします。
実体がないファイルを設定した場合は、警告ログを出力して処理をスキップします。
- uploadItemId<string> 任意 「ファイルアップロード」アイテムのアイテム識別ID
- notes<string> 任意 「ファイルアップロード」アイテムの備考に設定する内容
error<boolean> 必須
エラーフラグ
true を設定した場合、当処理をエラー終了します。
処理が正常に終了した場合は false を設定してください。
errorMessage<string> 任意
設定したメッセージを例外ログとして出力します。
userErrorTitleMessage<string> 任意
設定したメッセージをエラー画面の一行目に表示します。
ロケールごとにメッセージを用意する必要がなければこのプロパティを利用してください。
このプロパティを省略した場合、エラー画面にはデフォルトのエラーメッセージが表示されます。
localizedUserErrorTitleMessages<object> 任意
設定したメッセージをロケールに従ってエラー画面の一行目に表示します。
アカウントコンテキストから解決されたロケールに一致するメッセージを使用します。
userErrorTitleMessage が設定されている場合はこのプロパティは使用されません。
- ja<string> 任意 日本語ロケールメッセージ
- en<string> 任意 英語ロケールメッセージ
- zh_CN<string> 任意 中国語ロケールメッセージ
userErrorMessage<string> 任意
設定したメッセージをエラー画面の二行目に表示します。
ロケールごとにメッセージを用意する必要がなければこのプロパティを利用してください。
userErrorTitleMessage が設定されている場合に適用されます。
localizedUserErrorMessages<object> 任意
設定したメッセージをロケールに従ってエラー画面の二行目に表示します。
アカウントコンテキストから解決されたロケールに一致するメッセージを使用します。
userErrorMessage が設定されている場合はこのプロパティは使用されません。
- ja<string> 任意 日本語ロケールメッセージ
- en<string> 任意 英語ロケールメッセージ
- zh_CN<string> 任意 中国語ロケールメッセージ
outputLog<boolean> 任意
ログ出力有無フラグ
業務ロジック実行中にエラーが発生した際のログ出力有無を設定します。
このプロパティを省略した場合はログが出力されます。

10.9.2.5. 定数

定数ID 説明
FALSE 出力値 error へのマッピングに利用する定数です。
imfrApplicationId
アプリケーションID
「ファイルアップロード情報取得」タスクの入力値等に使用します。
imwFlowId フローID

10.9.2.6. 実装例

簡単な前処理の業務ロジック実装例をご紹介します。
この業務ロジックでは、申請画面を表示する際にログインユーザのプロファイル情報から住所1を取得し、フォームの「住所」という項目の初期値に設定します。

10.9.2.6.1. 概要

../../../_images/wf_preprocess_4.png
図:業務ロジックの実装例
以下のタスクを使用しています。
  • IM共通マスタ > ユーザプロファイルの取得

10.9.2.6.2. 処理の流れ・設定例

  1. 業務ロジックに初期設定されている分岐タスクを使用して、申請画面でのみ初期値の設定を行うようにします。
    「分岐(申請)」タスクの then と「終了」タスクの間に実行する処理に必要なタスクを追加していきます。
  2. 「ユーザプロファイルの取得」タスクを用いて、ログインユーザのプロファイル情報を取得します。
  3. 「終了」タスクのマッピング設定で、出力の data 配下の address に「ユーザプロファイルの取得」タスクの返却値 address1 をマッピングします。
    data 配下のパラメータ名はフォームの画面アイテムの識別IDに対応しています。
    今回は、「住所」という項目のフィールド識別IDが address のため、 address というパラメータに値をマッピングします。