後処理¶
IM-FormaDesigner for Accel Platform では、アプリケーションデータの登録、更新、削除などデータの操作が行われた後に任意のプログラムを実行することができる機能を提供しています。アプリケーションの種別を問わずデータの操作が行われたタイミングで後処理は実行されます。IM-Workflow の処理に合わせて後処理を実行したい場合には、IM-Workflow のユーザプログラム機能をご利用ください。
後処理プログラムの実装¶
JavaEE開発モデル¶
JavaEE開発モデルにおいて、後処理プログラムを実装する手順を示します。
実装規約¶
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) メソッド
パラメータ¶
各メソッドに渡されるパラメータが保持する情報は以下の通りです。
jp.co.intra_mart.foundation.forma.userprogram. PostProcessParameter¶
フォルマの基本情報を保持するクラスです。
![]()
sendParamマップ¶
画面から渡されたリクエスト情報を保持する送信パラメータMap です。明細テーブルアイテムを除く入力アイテムのキーはフィールド識別ID になります。明細テーブルアイテムのキーはテーブル識別ID です。アプリケーション種別がIM-Workflow の場合は、各種一覧画面から呼び出された際に受け取ることができるIM-Workflow リクエストパラメータ情報を含みます。取得可能なIM-Workflow リクエストパラメータの詳細は「IM-Workflow プログラミングガイド」を参照してください。アプリケーションの登録データの取得は、登録データ情報管理API を利用しても取得が可能です。取得方法については、後述のデータの取得メソッドをご参照ください。但し、送信パラメータまたは API の取得データには、ファイルアップロードアイテムのアップロードファイル情報は含まれません。
入力アイテムのデータ型と取得値の対比
入力アイテムのデータ型と取得値は以下の通りです。
※1: 関数、一覧選択アイテムは取得値の設定によりアイテムのデータ型が決定します。※2: 複数項目選択可能なアイテム(チェックボックス、リストボックス)は選択された値をカンマ区切りにして値が設定されます。明細テーブルアイテムの取得値
値は1レコード(行)毎に各列のフィールド識別ID と値をマッピングした Map の List です。各列のデータ型は列タイプに依存します。
返却値とエラー処理¶
返却値はありません。処理中にエラーが発生した場合は、 Exception を throw してください。エラーが発生した場合は、処理を中断しエラー発生以前に行われたすべての処理がロールバックされます。
トランザクションの制御¶
後処理プログラムはトランザクション内で実行されるため、このプログラム中では DB トランザクション制御を行うことはできません。実行プログラム中においてトランザクションのコミット、ロールバック等は行わないで下さい。
実装例¶
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 開発:削除後処理サンプルプログラム****************"); // ここに削除処理後に実行する処理を記述します。 }
スクリプト開発モデル¶
スクリプト開発モデルにおいて、後処理プログラムを実装する手順を示します。
実装規約¶
スクリプト開発モデルにおいて、後処理プログラムを実装する場合、下記の制約に従って実装する必要があります。
プログラムを実行するタイミングに合わせて以下のメソッドを実装すること
データの登録時
regist(formaParam, sendParam)メソッド
データの更新時
update(formaParam, sendParam) メソッド
データの削除時
remove(formaParam) メソッド
パラメータ¶
formaParamオブジェクト¶
フォルマの基本情報を保持します。
![]()
sendParamオブジェクト¶
画面から渡されたリクエスト情報を保持する送信パラメータオブジェクトです。明細テーブルアイテムを除く入力アイテムのパラメータ名はフィールド識別ID になります。明細テーブルアイテムのパラメータ名はテーブル識別ID です。アプリケーション種別がIM-Workflow の場合は、各種一覧画面から呼び出された際に受け取ることができるIM-Workflow リクエストパラメータ情報を含みます。取得可能なIM-Workflow リクエストパラメータの詳細は「IM-Workflow プログラミングガイド」をご参照ください。アプリケーションの登録データの取得は、登録データ情報管理API を利用しても取得が可能です。取得方法については、後述の「5.1.2.1 データの取得」をご参照ください。但し、送信パラメータまたは API の取得データには、ファイルアップロードアイテムのアップロードファイル情報は含まれません。
入力アイテムのデータ型と取得値の対比
入力アイテムのデータ型により取得値は以下のように設定されています。
※1: 関数、一覧選択アイテムは取得値の設定によりアイテムのデータ型が決定します。※2: 複数項目選択可能なアイテム(チェックボックス、リストボックス)は選択された値をカンマ区切りにして値が設定されます。明細テーブルアイテムの取得値
値は1レコード(行)毎に各列のフィールド識別ID と値をマッピングしたオブジェクトの配列です。各列のデータ型は列タイプに依存します。
返却値とエラー処理¶
処理結果オブジェクト
├ error : エラーフラグ 処理に失敗した場合は true 、成功した場合はfalse
└ errorMessage : エラーメッセージ 設定したメッセージはエラーログに出力されます。
- .
- エラー発生時には処理結果オブジェクトのエラーフラグを true にしてエラーメッセージを設定してください。エラーフラグが true の場合は、処理を中断しエラー発生以前に行われたすべての処理がロールバックされます。
トランザクションの制御¶
後処理プログラムはトランザクション内で実行されるため、このプログラム中では DB トランザクション制御を行うことはできません。実行プログラム中においてトランザクションのコミット、ロールバック等は行わないで下さい。
実装例¶
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}; }