5. 後処理¶
5.1. 後処理プログラムの実装¶
5.1.1. JavaEE開発モデル¶
JavaEE開発モデルにおいて、後処理プログラムを実装する手順を示します。
5.1.1.1. 実装規約¶
JavaEE開発モデルにおいて、後処理プログラムを実装する場合、下記の制約に従って実装する必要があります。
jp.co.intra_mart.foundation.forma.userprogram.PostProcessExecutor を継承すること
プログラムを実行するタイミングに合わせて以下のメソッドを実装すること
データの登録時
regist(PostProcessParameter formaParam, Map<String, Object> sendParam) メソッド
データの更新時
update(PostProcessParameter formaParam, Map<String, Object> sendParam) メソッド
データの削除時
remove(PostProcessParameter formaParam) メソッド
5.1.1.2. パラメータ¶
各メソッドに渡されるパラメータが保持する情報は以下の通りです。
5.1.1.2.2. sendParamマップ¶
画面から渡されたリクエスト情報を保持する送信パラメータMap です。画面アイテム「明細テーブル」を除く入力アイテムのキーはフィールド識別ID になります。画面アイテム「明細テーブル」のキーはテーブル識別ID です。アプリケーション種別がIM-Workflow の場合は、各種一覧画面から呼び出された際に受け取ることができるIM-Workflow リクエストパラメータ情報を含みます。取得可能なIM-Workflow リクエストパラメータの詳細は「IM-Workflow プログラミングガイド」を参照してください。アプリケーションの登録データの取得は、登録データ情報管理API を利用しても取得が可能です。取得方法については、後述のデータの取得メソッドを参照してください。但し、送信パラメータまたは API の取得データには、画面アイテム「ファイルアップロード」のアップロードファイル情報は含まれません。
5.1.1.3. PC表示/スマートフォン表示で処理を分岐する¶
画面表示方法ごとに後処理プログラムのロジックを変更したい場合は、実行中の画面表示タイプを取得し、処理を分岐します。
実行中の画面表示タイプは、sendParamマップのキー imfr_display_client_typeから取得可能です。
- PC表示
- imfr_display_client_typeの値がpcとなります。
- スマートフォン表示
- imfr_display_client_typeの値がspとなります。
5.1.1.4. 返却値とエラー処理¶
返却値はありません。処理中にエラーが発生した場合は、 Exception を throw してください。エラーが発生した場合は、処理を中断しエラー発生以前に行われたすべての処理がロールバックされます。
5.1.1.5. トランザクションの制御¶
後処理プログラムはトランザクション内で実行されるため、このプログラム中では DB トランザクション制御を行うことはできません。実行プログラム中においてトランザクションのコミット、ロールバック等は行わないでください。
5.1.1.6. 実装例¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 public class SamplePostProcess extends PostProcessExecutor{ /** * 登録処理を行った場合に実行されます。<BR> * * @param formaParam フォルマパラメータ * @param sendParam 送信パラメータ * @throws Exception 例外が発生 */ public void regist(PostProcessParameter formaParam, Map<String, Object> sendParam) throws Exception { System.out.println("************** JAVAEE 開発:登録後処理サンプルプログラム ****************"); // ここに登録処理後に実行する処理を記述します。 } /** * 更新処理を行った場合に実行されます。<BR> * * * @param formaParam フォルマパラメータ * @param sendParam 送信パラメータ * @throws Exception 例外が発生 */ public void update(PostProcessParameter formaParam, Map<String, Object> sendParam) throws Exception { System.out.println("************** JAVAEE 開発:更新後処理サンプルプログラム****************"); // ここに更新処理後に実行する処理を記述します。 } /** * 削除処理を行った場合に実行されます。<BR> * * @param formaParam フォルマパラメータ * @throws Exception 例外が発生 */ public void remove(PostProcessParameter formaParam) throws Exception { System.out.println("************** JAVAEE 開発:削除後処理サンプルプログラム****************"); // ここに削除処理後に実行する処理を記述します。 }
5.1.2. スクリプト開発モデル¶
スクリプト開発モデルにおいて、後処理プログラムを実装する手順を示します。
5.1.2.1. 実装規約¶
スクリプト開発モデルにおいて、後処理プログラムを実装する場合、下記の制約に従って実装する必要があります。
プログラムを実行するタイミングに合わせて以下のメソッドを実装すること
データの登録時
regist(formaParam, sendParam)メソッド
データの更新時
update(formaParam, sendParam) メソッド
データの削除時
remove(formaParam) メソッド
5.1.2.2. パラメータ¶
5.1.2.2.1. formaParamオブジェクト¶
5.1.2.2.2. sendParamオブジェクト¶
画面から渡されたリクエスト情報を保持する送信パラメータオブジェクトです。画面アイテム「明細テーブル」を除く入力アイテムのパラメータ名はフィールド識別ID になります。画面アイテム「明細テーブル」のパラメータ名はテーブル識別ID です。アプリケーション種別がIM-Workflow の場合は、各種一覧画面から呼び出された際に受け取ることができるIM-Workflow リクエストパラメータ情報を含みます。取得可能なIM-Workflow リクエストパラメータの詳細は「IM-Workflow プログラミングガイド」を参照してください。アプリケーションの登録データの取得は、登録データ情報管理API を利用しても取得が可能です。取得方法については、後述のデータの取得メソッドを参照してください。但し、送信パラメータまたは API の取得データには、画面アイテム「ファイルアップロード」のアップロードファイル情報は含まれません。
5.1.2.3. PC表示/スマートフォン表示で処理を分岐する¶
画面表示方法ごとに後処理プログラムのロジックを変更したい場合は、実行中の画面表示タイプを取得し、処理を分岐します。
実行中の画面表示タイプは、sendParamオブジェクトのキー imfr_display_client_typeから取得可能です。
- PC表示
- imfr_display_client_typeの値がpcとなります。
- スマートフォン表示
- imfr_display_client_typeの値がspとなります。
5.1.2.4. 返却値とエラー処理¶
処理結果オブジェクト
├ error : エラーフラグ 処理に失敗した場合は true 、成功した場合はfalse
└ errorMessage : エラーメッセージ 設定したメッセージはエラーログに出力されます。
- .
- エラー発生時には処理結果オブジェクトのエラーフラグを true にしてエラーメッセージを設定してください。エラーフラグが true の場合は、処理を中断しエラー発生以前に行われたすべての処理がロールバックされます。
5.1.2.5. トランザクションの制御¶
後処理プログラムはトランザクション内で実行されるため、このプログラム中では DB トランザクション制御を行うことはできません。実行プログラム中においてトランザクションのコミット、ロールバック等は行わないでください。
5.1.2.6. 実装例¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 // 登録 function regist(formaParam, sendParam) { Debug.print("************** スクリプト開発:登録後処理サンプルプログラム ****************"); // ここに登録処理後に実行する処理を記述します。 return {"error" : false}; // エラーが発生した場合 // return {"error" : true, "errorMessage" :”エラーメッセージ"}; } // 更新 function update(formaParam, sendParam) { Debug.print("************** スクリプト開発:更新後処理サンプルプログラム ****************"); // ここに更新処理後に実行する処理を記述します。 return {"error" : false}; } // 削除 function remove(formaParam) { Debug.print("************** スクリプト開発:削除後処理サンプルプログラム ****************"); // ここに削除処理後に実行する処理を記述します。 return {"error" : false}; }