10. 採番プログラム¶
採番ルール定義機能では、「番号接頭語」を任意のプログラムにより、作成することができます。プログラムを実行するタイミングは、「画面アクセス毎」と「登録処理毎」があり、画面アイテム「採番」のプロパティで指定されます。
10.1. 採番プログラムの実装¶
10.1.1. JavaEE開発モデル¶
JavaEE開発モデルにおいて、採番プログラムを実装する手順を示します。
10.1.1.1. 実装規約¶
JavaEE開発モデルにおいて、採番プログラムを実装する場合、下記の制約に従って実装する必要があります。
jp.co.intra_mart.foundation.forma.userprogram.AutoNoControllCodeCreator を継承すること
以下のメソッドを実装すること
createControllCode(final UniqueNoInfoModel model, final Map<String, Object> sendParam) メソッド
10.1.1.2. パラメータ¶
各メソッドに渡されるパラメータが保持する情報は以下の通りです。
10.1.1.2.2. sendParamマップ¶
採番方法が、画面アクセス毎の場合は空オブジェクトを保持します。
Map<String, Object> sendParam : 送信パラメータマップ画面から渡されたリクエスト情報を保持する送信パラメータMap です。画面アイテム「明細テーブル」、「グリッドテーブル」を除く入力アイテムのキーはフィールド識別ID です。画面アイテム「明細テーブル」、「グリッドテーブル」のキーはテーブル識別ID です。アプリケーション種別がIM-Workflow の場合は、各種一覧画面から呼び出された際に受け取ることができるIM-Workflow リクエストパラメータ情報を含みます。取得可能なIM-Workflow リクエストパラメータの詳細は「 IM-Workflow プログラミングガイド 」-「 リクエストパラメータ 」を参照してください。
入力アイテムのデータ型と取得値の対比
入力アイテムのデータ型と取得値は以下の通りです。
アイテムのデータ型 取得値 該当する主なアイテム 文字列 文字列
- 文字列
- 複数行文字列
- (関数※1)
- (一覧選択※1)
- チェックボックス ※2
- ラジオボタン
- セレクトボックス
- リストボックス ※2
数値 数値の文字列
- 数値
- (関数※1)
- (一覧選択※1)
日付またはタイムスタンプ システムタイムゾーンにおける1970年1月1日0時0分0秒0ミリ秒からの通算ミリ秒の数値文字列
- 日付
- 期間
- (関数※1)
- (一覧選択※1)
※1: 画面アイテム「関数」、「一覧選択」は取得値の設定により画面アイテムのデータ型が決定します。※2: 複数項目選択可能な画面アイテム(チェックボックス、リストボックス)は選択された値をカンマ区切りにして値が設定されます。画面アイテム「明細テーブル」、「グリッドテーブル」の取得値
値は1レコード(行)毎に各列のフィールド識別ID と値をマッピングした Map の List です。各列のデータ型は列タイプに依存します。
10.1.1.3. 返却値とエラー処理¶
返却値に、番号接頭語を戻します。処理中にエラーが発生した場合は、 Exception を throw してください。
10.1.1.4. トランザクションの制御¶
採番プログラムは採番方法が登録処理毎の場合、トランザクション内で実行されるため、このプログラム中では DB トランザクション制御を行うことはできません。採番方法を登録処理毎で利用する場合は、実行プログラム中においてトランザクションのコミット、ロールバック等は行わないでください。
10.1.1.5. 実装例¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public class SampleAutoNoCode extends AutoNoControllCodeCreator { /** * 登録処理を行った場合に実行されます。<BR> * @param model 採番マスタ情報 * @param sendParam 送信パラメータ * @return 番号接頭語 * @throws Exception 例外が発生 */ @Override public String createControllCode(final UniqueNoInfoModel model, final Map<String, Object> sendParam) throws Exception { return "%番号接頭語%"; } }
10.1.2. スクリプト開発モデル¶
スクリプト開発モデルにおいて、採番プログラムを実装する手順を示します。
10.1.2.1. 実装規約¶
スクリプト開発モデルにおいて、採番プログラムを実装する場合、下記の制約に従って実装する必要があります。
以下のメソッドを実装すること
createControllCode(autoNoParam , sendParam) メソッド
10.1.2.2. パラメータ¶
10.1.2.2.1. autoNoParamオブジェクト¶
採番ルール定義情報です。
autoNoParam : 採番マスタ情報オブジェクト └ uniqueNo : 採番定義番号
10.1.2.2.2. sendParamマップ¶
採番方法が、画面アクセス毎の場合は空のオブジェクトを保持します。
Map<String, Object> sendParam : 送信パラメータマップ画面から渡されたリクエスト情報を保持する送信パラメータMap です。画面アイテム「明細テーブル」、「グリッドテーブル」を除く入力アイテムのキーはフィールド識別ID です。画面アイテム「明細テーブル」、「グリッドテーブル」のキーはテーブル識別ID です。アプリケーション種別がIM-Workflow の場合は、各種一覧画面から呼び出された際に受け取ることができるIM-Workflow リクエストパラメータ情報を含みます。取得可能なIM-Workflow リクエストパラメータの詳細は「 IM-Workflow プログラミングガイド 」-「 リクエストパラメータ 」を参照してください。
入力アイテムのデータ型と取得値の対比
入力アイテムのデータ型と取得値は以下の通りです。
アイテムのデータ型 取得値 該当する主なアイテム 文字列 文字列
- 文字列
- 複数行文字列
- (関数※1)
- (一覧選択※1)
- チェックボックス ※2
- ラジオボタン
- セレクトボックス
- リストボックス ※2
数値 数値の文字列
- 数値
- (関数※1)
- (一覧選択※1)
日付またはタイムスタンプ システムタイムゾーンにおける1970年1月1日0時0分0秒0ミリ秒からの通算ミリ秒の数値文字列
- 日付
- 期間
- (関数※1)
- (一覧選択※1)
※1: 画面アイテム「関数」、「一覧選択」は取得値の設定により画面アイテムのデータ型が決定します。※2: 複数項目選択可能な画面アイテム(チェックボックス、リストボックス)は選択された値をカンマ区切りにして値が設定されます。画面アイテム「明細テーブル」、「グリッドテーブル」の取得値
値は1レコード(行)毎に各列のフィールド識別ID と値をマッピングした Map の List です。各列のデータ型は列タイプに依存します。
10.1.2.3. 返却値とエラー処理¶
処理結果オブジェクト ├ error : エラーフラグ 処理に失敗した場合は true 、成功した場合はfalse ├ errorMessage : エラーメッセージ 設定したメッセージはエラーログに出力されます。 └ data : 番号接頭語
10.1.2.4. トランザクションの制御¶
採番プログラムは採番方法が登録処理毎の場合、トランザクション内で実行されるため、このプログラム中では DB トランザクション制御を行うことはできません。採番方法を登録処理毎で利用する場合は、実行プログラム中においてトランザクションのコミット、ロールバック等は行わないでください。
10.1.2.5. 実装例¶
1 2 3 function createControllCode(autoNoParam, sendParam) { return {"error" : false, data : "%採番接頭語%"}; }