intra-mart Accel Kaiden! MasterBuilder 設定ガイド 第13版 2024-04-01

5.1. メンテナンス

本項では、メンテナンス機能の機能詳細を説明します。

5.1.1. クライアントサイド

マスタメンテナンス機能では、他の機能と同様にLogicやManagerの拡張に追加し、各JSPの拡張が可能です。
各JSPの詳細や、イベントは次の通りです。
  • JSPの構成イメージ
    メンテナンス機能では、一覧画面と登録・更新画面の2画面の構成となりますが、実際には単一のJSP(メイン)が各部品をインクルードする構成となっています。

    各部品の構成イメージは次の通りです。
    ../../../_images/outline_001.png
    ../../../_images/outline_002.png

    コラム

    イメージには表記されていませんが、拡張部品もインクルードされています。
  • 実行イベント
    インクルードされた各部品では、EventManagerを利用して部品間を跨いだイベントを実行しています。
    マスタメンテナンス機能で実行されるイベントは次の通りです。
    (○が設定されている部品で、各処理が実装されています。)
    名称 ID 実行元 メイン 検索 一覧 期間 編集 ボタン
    初期表示 initialize JSPロード時        
    画面の切替有無設定 setTrans 期間検索、対象検索          
    一覧画面表示 showListArea 初期表示、登録、更新、削除、一覧に戻る        
    編集画面表示 showMainteArea 新規登録、一覧行、登録、更新        
    新規登録画面遷移 trunsRegist 新規登録      
    更新画面遷移 trunsRenewal 一覧行、登録、更新      
    一覧画面遷移 trunsList 一覧に戻る、登録、更新、削除            
    一覧クリア clearList クリアボタン          
    編集クリア clearMainte 一覧画面表示        
    一覧検索 searchList 一覧画面表示、検索ボタン、タイトル行、ページャ          
    名称 ID 実行元 メイン 検索 一覧 期間 編集 ボタン
    一覧検索結果設定 setSearchListResult 一覧検索          
    期間検索 searchTerm 更新画面遷移、非対象カーソル          
    期間検索結果設定 setSearchTermResult 期間検索、有効化、無効化、期間分割、期間変更          
    対象検索 searchTarget 期間検索結果設定、更新画面遷移          
    対象検索結果設定 setSearchTargetResult 対象検索          
    登録 entry 登録ボタン          
    更新 renew 更新ボタン          
    削除 remove 削除(ツールバー)          
    検索基準日変更 setSearchCriteriaDate 初期表示、検索基準日変更、クリアボタン        
    検索基準会社変更 setSearchCriteriaCompany 初期表示、検索基準会社変更、クリアボタン        
    名称 ID 実行元 メイン 検索 一覧 期間 編集 ボタン
    検索基準ロケール変更 setSearchCriteriaLocale 初期表示、検索基準ロケール変更、クリアボタン        
    検索条件保存 setSearchCriteria 一覧検索          
    ソート条件保存 setSearchOrder タイトル行          
    期間有効化 enabledTerm 無効アイコン          
    期間無効化 disabledTerm 有効アイコン          
    期間分割 divideTerm 期間分割ダイアログ          
    期間変更 moveTerm 期間変更ダイアログ          

5.1.1.1. メイン

各部品のインクルード元のJSP(メイン)は、「拡張設定」の「マスタメンテナンス画面のJSPパス」に設定したJSPが表示されます。
(未設定の場合は「/kaiden/v2/base/generic/master/maintenance.jsp」を使用します。)

各部品のインクルード元のJSP(メイン)では、各部品のインクルードや一覧画面・登録/更新画面の切り替え、ツールバーなどを実装しています。

一覧画面
../../../_images/main_001.png
  • 新規登録アイコン
    クリックすると、登録画面に切り替えます。
登録・更新画面
../../../_images/main_002.png
  • 一覧に戻るアイコン
    クリックすると、一覧画面に切り替えます。
  • 削除アイコン
    クリックすると、表示中のマスタデータを削除します。

5.1.1.3. 一覧部品

一覧部品は、「拡張設定」の「マスタメンテナンス画面(一覧部品)のJSPパス」に設定したJSPが表示されます。
(未設定の場合は「/WEB-INF/views/kaiden/v2/base/generic/master/maintenanceList.jsp」を使用します。)

一覧部品では、一覧検索結果の表示や表示内容のソート、更新画面への遷移などを実装しています。
表示される項目は、「メンテナンス設定」に設定された項目となります。
../../../_images/list_001.png
  • ヘッダー行
    クリックすると、一覧検索された検索結果のソート方法を変更します。
  • 明細行
    クリックすると、対象のマスタデータを更新する画面に切り替えます。
  • ページャ
    クリックすると、一覧表示の表示ページを切り替えます。

コラム

一覧部品では、「メンテナンス設定」を使用して、項目の制御を行います。

5.1.1.4. 期間部品

期間部品は、「拡張設定」の「マスタメンテナンス画面(期間部品)のJSPパス」に設定したJSPが表示されます。
(未設定の場合は「/WEB-INF/views/kaiden/v2/base/generic/master/maintenanceTerm.jsp」を使用します。)

また、期間検索時に使用されるSQLは、「拡張設定」の「期間検索用SQL」に設定したSQLを使用します。
(未設定の場合は「META-INF/sql/jp/co/slcs/kaiden/v2/generic/master/%マスタID%.sql」を使用します。)

一覧部品では、対象のマスタデータの期間表示や期間の有効化/無効化処理、期間分割、期間変更等を実装しています。
../../../_images/tarm_001.png
  • 有効化・無効化アイコン
    クリックすると、対象期間の有効/無効が切り替わります。
    緑丸:有効な期間を表します。
    白丸:無効な期間を表します。
  • 期間
    対象期間の開始日、終了日を表示します。
  • 対象・非対象アイコン
    クリックすると、編集部品に対象の期間のデータを表示します。
  • 期間分割リンク
    クリックすると、次の期間分割ダイアログを表示します。
    期間分割ダイアログで分割日を入力し、「実行」ボタンをクリックすることで対象の期間を分割します。
    ../../../_images/tarm_002.png
  • 期間変更リンク
    クリックすると、次の期間変更ダイアログを表示します。
    期間変更ダイアログで新開始日、新終了日を入力し、「実行」ボタンをクリックすることで対象の期間をコピーし新たな期間として登録します。
    この時、新開始日-新終了日と重複する期間が存在する場合は、期間変更や期間削除を行います。
    ../../../_images/tarm_003.png

コラム

期間部品は、期間化マスタの場合のみ表示されます。
対象のマスタが期間化マスタではない場合、編集画面は次の様に表示されます。
../../../_images/tarm_004.png

5.1.1.5. 編集部品

編集部品は、「拡張設定」の「マスタメンテナンス画面(編集部品)のJSPパス」に設定したJSPが表示されます。
(未設定の場合は「/WEB-INF/views/kaiden/v2/base/generic/master/maintenanceEdit.jsp」を使用します。)

また、対象検索(更新データ検索)時に使用されるSQLは、「拡張設定」の「対象検索用SQL」に設定したSQLを使用します。
(未設定の場合は「META-INF/sql/jp/co/slcs/kaiden/v2/generic/master/%マスタID%.sql」を使用します。)

編集部品では、新規登録や更新用のマスタデータに対し、登録処理や更新処理、削除処理等を実装しています。
表示される項目は、「メンテナンス設定」に設定された項目となります。
../../../_images/edit_001.png
会社、期間(開始日・終了日)項目は、「メンテナンス設定」の設定有無に関わらず各特性のマスタの場合に表示されます。
  • 特性なし
    ../../../_images/edit_002.png
  • 会社化
    ../../../_images/edit_003.png
  • 期間化
    ../../../_images/edit_004.png
  • 会社化、期間化
    ../../../_images/edit_005.png

5.1.1.6. ボタン部品

ボタン部品は、「拡張設定」の「マスタメンテナンス画面(ボタン部品)のJSPパス」に設定したJSPが表示されます。
(未設定の場合は「/WEB-INF/views/kaiden/v2/base/generic/master/maintenanceButton.jsp」を使用します。)

ボタン部品では、登録、更新、一覧に戻るボタンの処理等を実装しています。

新規登録時
../../../_images/button_001.png
更新時
../../../_images/button_002.png
  • 登録ボタン
    クリックすると、登録処理を実行します。
  • 更新ボタン
    クリックすると、更新処理を実行します。
  • 一覧に戻るボタン
    クリックすると、一覧画面に切り替えます。

5.1.1.7. 拡張部品

拡張部品は、「拡張設定」の「マスタメンテナンス画面(拡張部品)のJSPパス」に設定したJSPが表示されます。
(未設定の場合は「/WEB-INF/views/kaiden/v2/base/generic/master/maintenanceExtension.jsp」を使用します。)

拡張部品は、次の様な修正を標準の各JSPを修正することなく実装するために用意しています。
  • 各項目のクリックイベントやチェンジイベント追加
  • ツールバーへのアイコン追加
  • 独自クライアントバリデーションの追加
上記の様な拡張を行う際には、各JSPのガジェットIDなどが必要となります。
他のJSPを操作するために次の値が連携されます。
連携パラメータ 詳細
${param.main_gadget_id} メンテナンス画面のガジェットID
${param.search_gadget_id} 検索部品のガジェットID
${param.search_gadget_block_id} 検索部品のブロックID
${param.list_gadget_id} 一覧部品のガジェットID
${param.list_gadget_title_block_id} 一覧部品のヘッダーブロックID
${param.list_gadget_data_block_id} 一覧部品の明細ブロックID
${param.term_gadget_id} 期間部品のガジェットID
${param.term_gadget_title_block_id} 期間部品のヘッダーブロックID
${param.term_gadget_data_block_id} 期間部品の明細ブロックID
${param.term_gadget_divide_dialog_id} 期間部品の期間分割ダイアログID
${param.term_gadget_move_dialog_id} 期間部品の期間変更ダイアログID
${param.edit_gadget_id} 編集部品のガジェットID
${param.edit_gadget_block_id} 編集部品のブロックID
${param.button_gadget_id} ボタン部品のガジェットID
${param.button_gadget_block_id} ボタン部品のブロックID
${param.gadget_class} 拡張部品のガジェットクラス
${param.gadget_variation} 拡張部品のガジェットバリエーション
${param.gadget_instance} 拡張部品のガジェットインスタンス
${param.gadget_id} 拡張部品のガジェットID
${param.gadget_block_id} 拡張部品のブロックID

5.1.2. サーバーサイド

5.1.2.1. Controller

初期表示時のControllerクラスは、アクセスしたURLから自動判定されます。
「http://<HOST>:<PORT>/<CONTEXT_PATH>/kaiden/v2/generic/master?masterId=%マスタID%」にアクセスした場合は、
「jp.co.slcs.kaiden.v2.base.feature.controller.kaiden.generic.MasterController」が使用されます。

その他の処理では、「拡張設定」の「マスタメンテナンス用の処理URL」に設定したURLから自動判定されます。
(未設定の場合は「kaiden/v2/generic/master」を使用します。)

Controllerクラスでは、認可判定とLogicクラスの対象メソッド起動を行います。
Controllerクラスのメソッドと主な起動処理は次の通りです。
処理名 メソッド 主な起動処理
初期表示 index 初期表示時
一覧検索 search 検索部品の検索ボタンクリック時
対象検索 select 一覧部品のデータ行クリック時(更新対象の検索)
登録 entry ボタン部品の登録ボタンクリック時
更新 renew ボタン部品の更新ボタンクリック時
削除 remove ツールバーの削除リンククリック時
有効化 toEnabled 期間部品の無効アイコンクリック時
無効化 toDisabled 期間部品の有効アイコンクリック時
期間検索 selectTerm 一覧部品のデータ行クリック時(更新対象の検索)
期間分割 divideTerm 期間部品の期間分割実行時
期間変更 moveTerm 期間部品の期間変更実行時
バリデート(認可) authorize 一覧部品のデータ行クリック時、ツールバーの新規登録アイコンクリック時

コラム

追加のメソッドを作成する場合や、独自の認可判定を行う場合はControllerクラスの拡張を行います。
メニューからの遷移URLは通常のSpringMVCの仕組みに合わせて実装してください。
登録や更新などの処理ではAjaxのURLを使用しますが、
このURLを変更する場合は「拡張設定」の「マスタメンテナンス用の処理URL」を変更してください。

5.1.2.2. Form

Controllerクラスへアクセスした際のリクエストパラメータは、Formクラス(jp.co.slcs.kaiden.v2.base.feature.form.kaiden.generic.MasterForm)に格納されます。
Formクラスでは、マスタID、マスタ拡張ID、検索キーワードの他に、汎用的にデータを取得するためにJSON化したデータを保持しています。

Controllerクラスの各メソッド呼出し時に格納されるJSONデータの内容は次の通りです。
  • 初期表示(index)
    マスタメンテナンス画面への遷移時に引き渡したパラメータ(キーが「json」のパラメータ)が設定されます。
  • 一覧検索(search)
    パラメータ名 パラメータキー パラメータの取得元 補足
    マスタID masterId 初期表示時のリクエストパラメータ  
    マスタ拡張ID extensionId 初期表示時のリクエストパラメータ  
    検索キーワード searchKeyword 検索部品の検索キーワード  
    検索基準会社コード searchCriteriaCompany 検索部品の検索基準会社 会社化特性の場合のみ
    検索基準日 searchCriteriaDate 検索部品の検索基準日 期間化特性の場合のみ
    無効データ検索有無 searchWithDisabled
    検索部品の無効データ検索有無
    • チェックありの場合は「true」
    • チェックなしの場合は「false」
    期間化特性の場合のみ
    検索基準ロケール searchCriteriaLocale 検索部品の検索基準ロケール 国際化特性の場合のみ
    ソート条件 orderBy MasterBuilder定義
    一覧部品でソート順を変更した
    場合は、変更後のソート条件
    ページ番号 numberOfPage 表示中のページ番号 初回検索時は「1」
    表示件数 limit MasterBuilder定義  
    表示開始レコード数 offset
    「(ページ番号 - 1) x 表示件数」
    の計算結果
     
  • 対象検索(select)
    更新画面遷移時は、対象行の一覧検索時のレスポンスパラメータ(キーが「json」のパラメータ)が設定されます。
    表示期間変更時は、対象行の期間検索時のレスポンスパラメータ(キーが「json」のパラメータ)が設定されます。
  • 登録(entry)
    「KAIDEN.gadgetMan.getDataSet(“%編集部品のガジェットID%”)」の取得結果(編集部品への入力値)をJSON化して設定します。
  • 更新(renew)
    「KAIDEN.gadgetMan.getDataSet(“%編集部品のガジェットID%”)」の取得結果(編集部品への入力値)をJSON化して設定します。
  • 削除(remove)
    対象検索時のレスポンスパラメータ(キーが「json」のパラメータ)が設定されます。
  • 有効化(toEnabled)
    対象行の期間検索時のレスポンスパラメータ(キーが「json」のパラメータ)が設定されます。
  • 無効化(toDisabled)
    対象行の期間検索時のレスポンスパラメータ(キーが「json」のパラメータ)が設定されます。
  • 期間検索(selectTerm)
    更新画面遷移時は、対象行の一覧検索時のレスポンスパラメータ(キーが「json」のパラメータ)が設定されます。
    表示期間変更時は、対象行の期間検索時のレスポンスパラメータ(キーが「json」のパラメータ)が設定されます。
  • 期間分割(divideTerm)
    対象行の期間検索時のレスポンスパラメータ(キーが「json」のパラメータ)に次の値を追加した内容が設定されます。
    パラメータ名 パラメータキー パラメータの取得元 補足
    分割日 divideDate 期間分割ダイアログの分割日  
  • 期間変更(moveTerm)
    対象行の期間検索時のレスポンスパラメータ(キーが「json」のパラメータ)に次の値を追加した内容が設定されます。
    パラメータ名 パラメータキー パラメータの取得元 補足
    新開始日 newStartDate 期間変更ダイアログの新開始日  
    新終了日 newEndDate 期間変更ダイアログの新終了日  
  • バリデート(認可)(authorize)
    JSONデータは設定されません。

5.1.2.3. Logic

Logicクラスは、「拡張設定」の「Logicクラス」に設定したクラスを使用します。
(未設定の場合は「jp.co.slcs.kaiden.v2.base.feature.logic.kaiden.generic.MasterLogic」を使用します。)

Logicクラスでは、検索・登録・更新・削除などの処理を行います。
Logicクラスのメソッドと主な処理内容次の通りです。
処理名 メソッド 主な処理
初期表示 index(GenericMasterSettings settings, AbstractGenericMasterForm form) メンテナンス画面の各項目設定の読み出し
一覧検索 search(GenericMasterSettings settings, AbstractGenericMasterForm form) 一覧表示用のデータ検索
対象検索 select(GenericMasterSettings settings, AbstractGenericMasterForm form) 更新用のデータ検索
登録 entry(GenericMasterSettings settings, AbstractGenericMasterForm form) 入力データの新規登録
更新 renew(GenericMasterSettings settings, AbstractGenericMasterForm form) 編集データの更新
削除 remove(GenericMasterSettings settings, AbstractGenericMasterForm form) 表示データの削除
有効化 toEnabled(GenericMasterSettings settings, AbstractGenericMasterForm form) 対象期間データの有効化
無効化 toDisabled(GenericMasterSettings settings, AbstractGenericMasterForm form) 対象期間データの無効化
期間検索 selectTerm(GenericMasterSettings settings, AbstractGenericMasterForm form) 期間一覧用のデータ検索
期間分割 divideTerm(GenericMasterSettings settings, AbstractGenericMasterForm form) 対象期間データの期間分割
期間変更 moveTerm(GenericMasterSettings settings, AbstractGenericMasterForm form) 対象期間データの期間変更

コラム

期間変更処理の変更点
MasterBuilderの期間変更処理は、従来の期間変更処理と異なります。
  • 従来の期間変更処理
    既に登録済みのデータの期間を変更し、空白となった期間がある場合は前後の期間を延長する。
    (空白となった期間は無効状態)
  • MasterBuilderの期間変更処理
    既に登録済みのデータをコピーし、入力された新期間のデータとして追加する。
    (期間コードは新たに採番)

コラム

APIを使用したメンテナンス機能を実現する場合や、独自のロジックを追加する場合はLogicクラスの拡張を行います。
Controllerクラスからの起動を想定するメソッドを追加する場合はControllerクラスの拡張が必要です。

データの補完や成型を行いたい場合は、後述のConverterクラスの拡張でも対応可能です。
Logicクラスの各メソッドへのリクエストパラメータやレスポンスパラメータに対してデータ補完や成型が可能です。

5.1.2.4. Manager

Managerクラスは、「拡張設定」の「Managerクラス」に設定したコンポーネントを使用します。
(未設定の場合は「masterManager」を使用します。)

Managerクラスでは、SQLを利用した検索処理を行います。
基本的に拡張の必要はありませんが、標準のManagerクラスでは単一のテーブルに対して処理を実装しているため、複数のテーブルに跨る処理を実装する場合に拡張を行います。
(検索時のJoinなどは複数テーブルに跨りますが、SQLで実現可能なため、拡張の必要はありません。)
処理名 メソッド
一覧検索
  • select(GenerateService<? extends GenerateEntity> service, String sqlPath, Map<String, Object> criteria, int limit, int offset)
対象検索
  • select(GenerateService<? extends GenerateEntity> service, String sqlPath, Map<String, Object> criteria)
登録
  • insert(GenerateService<? extends GenerateEntity> service, List<? extends GenerateEntity> entityList)
更新
  • update(GenerateService<? extends GenerateEntity> service, List<? extends GenerateEntity> entityList, String... includes)
削除
  • delete(GenerateService<? extends GenerateEntity> service, Class<? extends GenerateEntity> entityClass, List<Where> criteria)
有効化
  • select(GenerateService<? extends GenerateEntity> service, String sqlPath, Map<String, Object> criteria)
  • update(GenerateService<? extends GenerateEntity> service, List<? extends GenerateEntity> entityList, String... includes)
無効化
  • select(GenerateService<? extends GenerateEntity> service, String sqlPath, Map<String, Object> criteria)
  • update(GenerateService<? extends GenerateEntity> service, List<? extends GenerateEntity> entityList, String... includes)
期間検索
  • select(GenerateService<? extends GenerateEntity> service, String sqlPath, Map<String, Object> criteria)
期間分割
  • select(GenerateService<? extends GenerateEntity> service, String sqlPath, Map<String, Object> criteria)
  • insert(GenerateService<? extends GenerateEntity> service, GenerateEntity entity)
  • update(GenerateService<? extends GenerateEntity> service, GenerateEntity entity, String... includes)
期間変更
  • select(GenerateService<? extends GenerateEntity> service, Class<? extends GenerateEntity> entityClass, List<Where> criteria, List<OrderByItem> order)
  • select(GenerateService<? extends GenerateEntity> service, String sqlPath, Map<String, Object> criteria)
  • insert(GenerateService<? extends GenerateEntity> service, GenerateEntity entity)
  • update(GenerateService<? extends GenerateEntity> service, GenerateEntity entity, String... includes)
  • delete(GenerateService<? extends GenerateEntity> service, GenerateEntity entity)

5.1.2.5. Converter

Converterクラスは、「拡張設定」の「Converterクラス」に設定したクラスを使用します。
(未設定の場合はConverterクラスを使用しません。)

Converterクラスでは、Logicクラスへのリクエストパラメータ、Logicクラスからのレスポンスパラメータに対し、補完や成型が行えます。
設定を行わない場合は、補完や成型は行われません。
  • 画面表示は%表記だが、データ上は数値として保持(80%→0.8)
  • 固定値の補完
  • カンマ区切りへの変換

コラム

文字列と日付の変換や、文字列と日付の変換はConverterクラスではなく、
項目設定」の「コンバート設定」を利用してください。
詳細は「項目値のコンバート」を参照してください。

注意

Converterクラスの処理は各データに対して行われるため、
データベースの特定データを補完する場合はLogicクラスで実装を行ってください。
Converterクラスに実装した場合、一覧検索のレスポンスデータの補完などで一覧行の各行単位で処理が行われるため、
SQLを実行する様な処理では、複数回SQLが実行されてしまい、レスポンス悪化が懸念されます。

5.1.2.6. シーケンス

サーバーサイドの処理シーケンス(概要)は次の通りです。

コラム

シーケンスに記載の「Controller」「Logic」「Manager」の実際のクラスは次の通りです。
シーケンスの各処理は基底クラスで実装しています。
  • Controller
    基底クラス:jp.co.slcs.kaiden.v2.base.feature.controller.kaiden.generic.AbstractMasterController
    実装クラス:jp.co.slcs.kaiden.v2.base.feature.controller.kaiden.generic.MasterController
  • Logic
    基底クラス:jp.co.slcs.kaiden.v2.base.feature.logic.kaiden.generic.AbstractMasterLogicBase
    実装クラス:jp.co.slcs.kaiden.v2.base.feature.logic.kaiden.generic.MasterLogic
  • Manager
    IFクラス:jp.co.slcs.kaiden.v2.base.foundation.manager.generic_master.MasterManager
    基底クラス:jp.co.slcs.kaiden.v2.base.foundation.manager.generic_master.AbstractMasterManager
    実装クラス:jp.co.slcs.kaiden.v2.base.foundation.manager.generic_master.impl.MasterManagerImpl
「Converter」は、「拡張設定」の「Converterクラス」に設定していない場合は実行されません。
  • 初期表示(index)

    None

  • 一覧検索(search)

    None

  • 対象検索(select)

    None

  • 登録(entry)

    None

  • 更新(renew)

    None

  • 削除(remove)

    None

  • 有効化(toEnabled)

    None

  • 無効化(toDisabled)

    None

  • 期間検索(selectTerm)

    None

  • 期間分割(divideTerm)

    None

  • 期間変更(moveTerm)

    None