ヘルパ
「ヘルパ」で設定できるスクリプトは次の通りです。
タイミング |
説明 |
生成されるファイル |
ダウンロード(開始時) |
ダウンロード処理の開始時に一回だけ呼び出されます。 |
Download<モデルID>_processStart.js |
ダウンロード(終了時) |
ダウンロード処理の終了時に一回だけ呼び出されます。 |
Download<モデルID>_processEnd.js |
ファイル項目ダウンロード |
ファイル項目をダウンロードしたときに呼び出されます。 |
DownloadFile<モデルID>_beforeDownload.js |
例 ダウンロードしたデータに出力済み文字列をセットする
ダウンロード(開始時)のスクリプトで主キーの集合を用意します。ダウンロード(終了時)に、この集合を使ってデータを更新するようにします。
ダウンロード(開始時)
p.request.setAttribute("__jfc_ADD_PRIMARYKEY_IN_DOWNLOAD", new java.util.ArrayList());
- p.requestにセットするときのキー名
__jfc_ADD_PRIMARYKEY_IN_DOWNLOAD
は特別な名前です。この名前から取得できるオブジェクトはリスト (java.util.ArrayList) としてください。ここに主キーの集合がセットされます。
ダウンロード(終了時)
対象モデルを model1 とした例です。このモデルの item1 に、"downloaded" という文字列をセットすると、ダウンロード済みという意味付けとしています。(モデルIDを適切に読み替えてください。)
var LockUtils = Java.type("jp.jasminesoft.jfc.core.util.LockUtils");
var pkeylist = p.request.getAttribute("__jfc_ADD_PRIMARYKEY_IN_DOWNLOAD");
if (pkeylist !== null) {
var entityService = p.appctx.getBean("Model1EntityService");
var daoHelper = p.appctx.getBean("Model1DaoHelper");
//print("pkeylist size="+pkeylist.size());
for (var i=0 ; i < pkeylist.size() ; i++) {
var pkey = pkeylist.get(i);
//print("pkey=" + pkey);
var model1 = entityService.findById(pkey); // 1件のデータを取得
//print(model1);
try {
LockUtils.lock(model1, daoHelper);// ロック取得
model1.item2 = "downloaded";// ダウンロード済みマークをセット
entityService.update(model1); // 更新
} catch (e) {
throw e;
} finally {
LockUtils.release(model1, daoHelper);// ロック解放
}
}
}
条件によってダウンロード処理をキャンセルする
ダウンロード(開始時)のスクリプトで例外 BusinessLogicException が発生した場合、このダウンロード処理はキャンセルされます。ダウンロードは行われません。
ヘルパのスクリプトで利用できるパラメータ
ダウンロード開始時や終了時のスクリプトで、次の暗黙変数を参照することができます。
名前 |
説明 |
outputmode |
ダウンロード形式に指定した値。次の値を返す。
すべてを選択した場合は "All"
繰り返し項目を含まないすべてを選択した場合は "Main"
繰り返し項目や繰り返しコンテナを選択した場合は "Modelitem_<項目名>"
|
csv_encoding |
CSVファイルの文字エンコーディング |
condition |
検索条件(コンディションモデル) |
スクリプトの例を示します。
print("outputmode", outputmode)
print("csv_encoding", csv_encoding)
print("condition", condition)
コントローラ
「コントローラ > ダウンロード」で設定できるスクリプトは次の通りです。
タイミング |
説明 |
生成されるファイル |
ダウンロード実行 |
ダウンロードの開始ボタンを押下したときに呼び出されます。 |
Download<モデルID>_Download.js |