サポート > Wagby Developer Network > カスタマイズ事例 > 選択したデータについて任意の項目を一括更新する
カスタマイズ要件
今回のテーマは、Wagby 定義ファイルに用意されている「一括更新」機能を使い、実際の更新処理を Java で記述するというものです。
モデル名を batchmodel とします。更新対象となるモデル項目名を pflag とし、これはマスタモデル「pflag_m」を参照しているものとします。
また、モデル batchmodel は、Wagby 定義ファイルで以下の設定が行われているものとします。
- 「Wagby画面動作定義シート」/「一覧表示画面」/「一括更新ボタンを表示する」に「○」をつけている。
- 「Wagby画面動作定義シート」/「Javaソースコードの設定」/「カスタマイズ用の雛形クラスを出力する」に「○」をつけている。
カスタマイズ方法
- 自動生成された $(DEVHOME)\env\work\srcgen\jp\jasminesoft\wagby\struts\batchmodel\MyShowListBatchmodelAction.java ファイルを、$(DEVHOME)\customize\webpage\WEB-INF\src\jp\jasminesoft\wagby\struts\batchmodel フォルダへ保存します。
フォルダ名は、ご利用になるパッケージ名により変わります。適切に読み替えてください。
- MyShowListBatchModelAction.java を編集します。文字コードは UTF8 とししてください。
/** * 一括更新を行う。 * * @param batchmodel * @param p DbShowListParameter * @exception IOException * @exception ServletException */ @Override public String do_updateRule(BatchModel batchmodel, DbShowListParameter p) throws IOException, ServletException, { // 値を書き換えます。 // 注意:ここでは開発者は、コード「2」が「処理済」を意味することを // 仮定しています。 if (batchmodel != null) { batchmodel.setPflag(2); // マスタモデルのコードをセットする。 } return null; } - do_updateRule の戻り値はエラーメッセージとなります。
(このエラーメッセージは画面に出力されず、ログに記録されます。)
エラーがない場合は null を返すようにします。
do_updateRule メソッドの前後で、対象オブジェクトのロックの取得ならびに解放処理が行われます。 また、キャッシュのクリアも適用されます。
ただし、ロックの対象およびキャッシュクリアは、あくまでも対象オブジェクトのみです。もし、do_updateRule メソッド内で、「別の関連するオブジェクト」も同時に更新する場合は、それらのオブジェクトの(Wagby が提供するロックマネージャを用いた)ロック処理を開発者が実装する必要があります。この詳細は「自動生成されたデータベースアクセス処理を利用する」をお読みください。
ダウンロード
このページで紹介したサンプルをダウンロードしてお試しいただくことができます。
- batchupdate.zip (466,892 byte)
同 zip ファイルには次のファイルが含まれています。
customize\webpage\WEB-INF\src\jp\jasminesoft\wagby\struts\batchmodel\MyShowListBatchmodelAction.java
customize\webpage\WEB-INF\src\myapp_ja.properties.UTF8
customize\webpage\WEB-INF\src\myerr_ja.properties.UTF8
xls-model\batchupdate.xls
ダウンロード後、次の手順に従ってお試しください。
- ダウンロードファイルを $(DEVHOME) に展開します。Wagby 定義ファイルならびにカスタマイズコードが上書きで配置されます。(なお、パッケージ名は「jp.jasminesoft.wagby」となっていますので、変更している方はご注意ください。)
- フルビルドを行います。


