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

10.9.15. 後処理(Webデータベース)

後処理は、Webデータベースのアプリケーションでデータの登録・更新・削除が行われた後に実行される業務ロジックです。

コラム

登録処理を行った場合のみ実行したい(更新・削除等の処理では実行しない)などの制御は、ロジック内の分岐を利用して実装可能です。

10.9.15.1. 利用例

  • 登録・更新時にフォームの入力内容をメールで送信する
  • 登録時にフォームの入力内容を別のWebデータベースに登録する

10.9.15.2. 業務ロジックの概要

後処理の業務ロジックを新規作成すると、初期状態では以下の図のように設定されています。
タスクを追加し、実現したい業務ロジックを作成してください。
../../../_images/webdb_postprocess_1.png
図:業務ロジックの初期状態
後処理の業務ロジックには、処理の種別ごとの分岐が初期設定されています。
設定されている分岐条件と条件式は以下の通りです。
分岐条件 条件式
登録 ${ $input.executeProcessType == "regist" }
更新 ${ $input.executeProcessType == "update" }
削除 ${ $input.executeProcessType == "remove" }
一時保存 ${ $input.executeProcessType == "preserve" }
特定の処理、例えば、登録処理を実行する際にのみ実行したい処理は、「分岐(登録)」タスクの then から線をつなげるようにします。
複数の、または、すべての処理種別で同じ処理を実行する場合は、それぞれの分岐の then から線をつなげてください。
../../../_images/webdb_postprocess_2.png
図:登録時にのみ実行したい処理の場合
../../../_images/webdb_postprocess_3.png
図:登録時と更新時に実行したい処理の場合

注意

後処理は、データベーストランザクション内で実行されます。
そのため、業務ロジックの中で独自にデータベーストランザクション制御を行うことはできません。
JavaScriptユーザ定義タスクで、データベーストランザクション制御を伴う処理は実施しないでください。

10.9.15.3. 入力値

入力値 説明
executeProcessType<string> executeProcessType を参照
postProcessParameter<object> postProcessParameterオブジェクト を参照
sendParam<object> sendParamオブジェクト を参照

10.9.15.3.1. executeProcessType

アプリケーション実行種別を保持します。
業務ロジックを実行するタイミングに合わせて以下の値が取得可能です。
  • regist:データの登録時
  • update:データの更新時
  • remove:データの削除時
  • preserve:データの一時保存時

10.9.15.3.2. postProcessParameterオブジェクト

画面の基本情報を保持します。
項目 説明
loginUserCd<string> ログインユーザコード
applicationId<string> アプリケーションID
applicationNo<long> アプリケーションバージョンNO(アプリケーション履歴番号)
insertId<string> データ登録ID
applicationType<string>
アプリケーション種別
  • std:Webデータベース
  • bis_wkf:ワークフロー
appPageType<string>
アプリケーションページ種別
  • REGISTRATION:登録
  • EDIT:更新
  • REFERENCE:参照
processKey<string> プロセスキー

10.9.15.3.3. sendParamオブジェクト

フォームの入力情報を保持する送信パラメータオブジェクトです。
画面アイテム「明細テーブル」、「グリッドテーブル」、「スプレッドシート」のテーブルのパラメータ名はテーブル識別IDです。
上記を除く入力アイテムのパラメータ名はフィールド識別IDです。
複数項目選択可能な画面アイテム(「チェックボックス」、「リストボックス」)は選択された値をカンマ区切りにして値が設定されます。

コラム

画面アイテム「ファイルアップロード」のアップロードファイル情報は含まれません。
ファイル情報の取得には「ファイルアップロード情報取得」タスクをご利用ください。

10.9.15.4. 出力値

出力値 必須/任意 説明
error<boolean> 必須
エラーフラグ
true を設定した場合、当処理をエラー終了します。
処理が正常に終了した場合は false を設定してください。
errorMessage<string> 任意
設定したメッセージを例外ログとして出力します。
userErrorMessage<string> 任意
設定したメッセージをエラーメッセージとして画面に表示します。
ロケールごとにメッセージを用意する必要がなければこのプロパティを利用してください。
このプロパティを省略した場合、画面にはデフォルトのエラーメッセージが表示されます。
localizedUserErrorMessages<object> 任意
指定したメッセージをエラーメッセージとして画面に表示します。
アクション処理のコンテキストから解決されたロケールに一致するメッセージを使用します。
userErrorMessage が指定されている場合はこのプロパティは使用されません。
- ja<string> 任意 日本語ロケールメッセージ
- en<string> 任意 英語ロケールメッセージ
- zh_CN<string> 任意 中国語ロケールメッセージ
outputLog<boolean> 任意
ログ出力有無フラグ
業務ロジック実行中にエラーが発生した際のログ出力有無を設定します。
このプロパティを省略した場合はログが出力されます。

10.9.15.5. 定数

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

10.9.15.6. 実装例

簡単な後処理の業務ロジック実装例をご紹介します。
この業務ロジックでは、データ登録時に登録内容を特定のユーザにメールで送信します。

10.9.15.6.1. 概要

../../../_images/webdb_postprocess_4.png
図:業務ロジックの実装例
以下のタスクを使用しています。
  • 汎用タスク > システム通知テキストメール送信
以下のユーザ定義タスクを作成して使用しています。
  • テンプレート定義「メール本文作成」

10.9.15.6.2. 処理の流れ・設定例

  1. テンプレート定義を利用して、送信するメールの本文を作成します。
    「ユーザ定義追加」から「テンプレート定義新規作成」を選択して、テンプレート定義「メール本文作成」を作成します。
  2. テンプレート定義「メール本文作成」の入力値、テンプレートを設定します。
    今回は、入力値でフォームの入力情報( namepricenotes )を受け取り、テンプレートの所定の位置に埋め込みます。
    テンプレートは以下のようにします。
    <#setting url_escaping_charset="UTF-8">
    
    商品マスタに以下の商品が登録されました。
    
    商品名:${name}
    価格:${price}
    備考:${notes}
    

    コラム

    テンプレート定義の詳細は以下を参照してください。
  3. 作成した「メール本文作成」タスクを配置します。
    今回は、データ登録時にメールを送信するようにしたいため、「分岐(登録)」タスクの then から線を繋げます。
  4. 「メール本文作成」タスクのマッピング設定を行います。
    フォームの入力情報は業務ロジックの入力値( sendParam オブジェクト配下のパラメータ )から、「メール本文作成」タスクの入力値にマッピングします。
  5. 「システム通知テキストメール送信」タスクを用いて、メールを送信します。
    「メール本文作成」タスクの返却値 output をメール本文( body )にマッピングします。
    メール件名( subject )と宛先ユーザ( toUserCds )は定数に値を設定し、マッピングします。