4.2. 検索用SQL¶
本項では、MasterBuilderで使用するSQLの作成方法を説明します。
4.2.1. 概要¶
MasterBuilderでSQLを使用する処理は次の通りです。
マスタメンテナンス機能(一覧部品)の一覧表示データ抽出 マスタメンテナンス機能(編集部品)の更新対象データ抽出 マスタメンテナンス機能(期間部品)の更新対象期間抽出 マスタ検索部品やセレクトボックスへのデータ抽出 エクスポート機能のエクスポート対象データ抽出「拡張設定」を使用することで、上記それぞれの処理用のSQLを作成することも可能ですが、カスタマイズ性や保守性を考慮し、単一SQLでの実現を推奨します。「拡張設定」を使用しない場合のMasterBuilderで使用するSQLの配置先は次の通りです。%ModuleProject%/src/main/resources/META-INF/sql/jp/co/slcs/kaiden/v2/generic/master/%マスタID%.sql(マスタIDには、MasterBuilder定義で設定したマスタIDを指定してください。)単一のSQLで各検索処理を実現するために次の様な機能を用意しています。
検索基準となる値の補完検索基準日・検査基準ロケール・検索基準ユーザはどの処理でも補完し、SQLに引き渡されます。
名称 SQLで使用する値 補完順 検索基準日 searchCriteriaDate リクエストパラメータ > システム日付 検索基準ロケール searchCriteriaLocale リクエストパラメータ > ログインユーザのロケール(ジョブの場合はシステムロケール) 検索基準ユーザ searchCriteriaUser リクエストパラメータ > ログインユーザ 検索用途の連携各検索用途に応じた値を「searchType」に設定してSQLに引き渡されます。これにより、Where句のIF分岐が可能となります
対象 SQLで使用する値 設定値 一覧検索 searchType search 対象検索 searchType select 期間検索 searchType term マスタ検索 searchType master エクスポート searchType export
4.2.2. 一覧検索用SQL¶
一覧検索用のSQLでは、メンテナンス機能の一覧画面に表示するマスタデータを抽出します。一覧表示時に単一のロケールデータを表示する必要がある為、国際化されたマスタの場合は注意が必要です。
検索結果の表示先 SQLに引き渡される検索条件
検索条件 設定値 searchCriteriaCompany 検索条件に設定された会社のコード値会社化特性の場合のみ設定非会社化特性の場合は「null」searchCriteriaDate 検索条件に設定された検索基準日searchCriteriaUser ログインユーザのユーザコードsearchCriteriaLocale 検索条件に設定されたロケールのIDsearchWithDisabled 検索条件に設定された無効データの検索有無チェックなしの場合は「0」チェックありの場合は「null」searchCriteriaKeyword 検索条件に設定されたキーワード未設定の場合は「null」orderBy 一覧表示のソート条件初回検索時は「メンテナンス設定」に設定されたソート順searchType 固定値「search」
4.2.3. 対象検索用SQL¶
対象検索用のSQLでは、メンテナンス機能の編集画面(編集部品)に表示するマスタデータを抽出します。
検索結果の表示先 SQLに引き渡される検索条件対象検索時は、次の検索条件に加え、一覧検索時に返却したデータがすべて検索条件(リクエストパラメータ)となります。次の検索条件がリクエストパラメータに含まれる場合は上書きします。
検索条件 設定値 searchCriteriaDate 期間化特性、かつリクエストパラメータに「startDate」が含まれる場合はその値上記以外はシステム日付searchCriteriaUser リクエストパラメータに「searchCriteriaUser」が含まれる場合はその値上記以外はログインユーザのユーザコードsearchCriteriaLocale 国際化特性、かつリクエストパラメータに「localeId」が含まれる場合はその値上記以外はログインユーザのロケールsearchType 固定値「select」
4.2.4. 期間検索用SQL¶
期間検索用のSQLでは、メンテナンス機能の編集画面(期間部品)に表示するマスタデータを抽出します。
検索結果の表示先 SQLに引き渡される検索条件期間検索時は、次の検索条件に加え、一覧検索時に返却したデータがすべて検索条件(リクエストパラメータ)となります。次の検索条件がリクエストパラメータに含まれる場合は上書きします。
検索条件 設定値 searchCriteriaDate 期間化特性、かつリクエストパラメータに「startDate」が含まれる場合はその値上記以外はシステム日付searchCriteriaUser リクエストパラメータに「searchCriteriaUser」が含まれる場合はその値上記以外はログインユーザのユーザコードsearchCriteriaLocale 国際化特性、かつリクエストパラメータに「localeId」が含まれる場合はその値上記以外はログインユーザのロケールsearchType 固定値「term」
4.2.5. マスタ検索用SQL¶
マスタ検索用のSQLでは、検索部品やセレクトボックスに表示するマスタデータを抽出します。
検索結果の表示先 SQLに引き渡される検索条件マスタ検索時は、次の検索条件に加え、項目の検索条件に指定されたデータがすべて検索条件(リクエストパラメータ)となります。次の検索条件がリクエストパラメータに含まれる場合は上書きします。
検索条件 設定値 searchCriteriaDate リクエストパラメータに「searchCriteriaDate」が含まれる場合はその値上記以外はシステム日付searchCriteriaUser リクエストパラメータに「searchCriteriaUser」が含まれる場合はその値上記以外はログインユーザのユーザコードsearchCriteriaLocale リクエストパラメータに「searchCriteriaLocale」が含まれる場合はその値上記以外はログインユーザのロケールdeleteFlag リクエストパラメータ「includeDisabled」に「”true”」以外が設定されていた場合は「0」上記以外の場合は「null」searchCriteriaKeyword 検索部品の場合は入力されたキーワード上記以外、または未設定の場合は「null」searchType 固定値「master」
4.2.6. エクスポート用SQL¶
エクスポート用のSQLでは、エクスポートを行うマスタデータを抽出します。
SQLに引き渡される検索条件エクスポート時は、次の検索条件に加え、「searchCriteria」から始まるジョブのパラメータが検索条件(リクエストパラメータ)となります。
検索条件 設定値 searchCriteriaCompany 会社化特性の場合は処理中の会社のコード値非会社化特性の場合は「null」searchCriteriaDate システム日付searchCriteriaUser リクエストパラメータに「searchCriteriaUser」が含まれる場合はその値上記以外はログインユーザのユーザコードsearchCriteriaLocale リクエストパラメータに「searchCriteriaLocale」が含まれる場合はその値上記以外はログインユーザのロケールtargetDate 期間モードでエクスポートを実行した場合は検索対象日上記以外は「null」renewTs 更新日モードでエクスポートを実行した場合は検索対象日上記以外は「null」searchType 固定値「export」
4.2.7. Sample¶
次のSQLは勘定科目マスタの設定を行った場合のサンプルです。select target.company_cd , dept.department_name as company_name , target.account_cd , target.term_cd , target.locale_id , target.account_name , target.start_date , target.end_date , target.delete_flag , target.extension_a , target.extension_b , target.extension_c , target.extension_d , target.extension_e , target.extension_f , target.extension_g , target.extension_h , target.extension_i , target.extension_j , target.entry_ts , target.entry_user_cd , target.renew_cnt , target.renew_ts , target.renew_user_cd from k30m_account target left join ( select imm_department.company_cd , imm_department.department_set_cd , imm_department.department_cd , imm_department.locale_id , imm_department.start_date , imm_department.end_date , imm_department.department_name from imm_department ) dept on target.company_cd = dept.company_cd and target.company_cd = dept.department_set_cd and target.company_cd = dept.department_cd and target.locale_id = dept.locale_id /*IF searchCriteriaDate != null*/ and dept.start_date <= /*searchCriteriaDate*/'2000/01/01' and dept.end_date > /*searchCriteriaDate*/'2000/01/01' /*END*/ /*IF searchType == "search"*/ /*BEGIN*/ where /*IF searchCriteriaCompany != null*/ target.company_cd = /*searchCriteriaCompany*/'searchCriteriaCompany' /*END*/ /*IF searchCriteriaDate != null*/ and target.start_date <= /*searchCriteriaDate*/'2000/01/01' and target.end_date > /*searchCriteriaDate*/'2000/01/01' /*END*/ /*IF searchWithDisabled != null*/ and target.delete_flag = /*searchWithDisabled*/'searchWithDisabled' /*END*/ /*IF searchCriteriaLocale != null*/ and target.locale_id = /*searchCriteriaLocale*/'searchCriteriaLocale' /*END*/ /*IF searchCriteriaKeyword != null*/ and ( target.account_cd like /*searchCriteriaKeyword*/'%' ESCAPE '$' or target.account_name like /*searchCriteriaKeyword*/'%' ESCAPE '$' ) /*END*/ /*END*/ /*IF orderBy != null*/ order by /*$orderBy*/account_cd /*END*/ /*END*/ /*IF searchType == "select"*/ /*BEGIN*/ where /*IF accountCd != null*/ target.account_cd = /*accountCd*/'accountCd' /*END*/ /*IF companyCd != null*/ and target.company_cd = /*companyCd*/'companyCd' /*END*/ /*IF termCd != null*/ and target.term_cd = /*termCd*/'termCd' /*END*/ /*END*/ order by account_cd /*END*/ /*IF searchType == "term"*/ /*BEGIN*/ where /*IF accountCd != null*/ target.account_cd = /*accountCd*/'accountCd' /*END*/ /*IF companyCd != null*/ and target.company_cd = /*companyCd*/'companyCd' /*END*/ /*IF localeId != null*/ and target.locale_id = /*localeId*/'localeId' /*END*/ /*END*/ order by account_cd, start_date /*END*/ /*IF searchType == "master"*/ /*BEGIN*/ where /*IF accountCd != null*/ target.account_cd = /*accountCd*/'accountCd' /*END*/ /*IF searchCriteriaCompany != null*/ and target.company_cd = /*searchCriteriaCompany*/'searchCriteriaCompany' /*END*/ /*IF searchCriteriaDate != null*/ and target.start_date <= /*searchCriteriaDate*/'2000/01/01' and target.end_date > /*searchCriteriaDate*/'2000/01/01' /*END*/ /*IF deleteFlag != null*/ and target.delete_flag = /*deleteFlag*/'deleteFlag' /*END*/ /*IF searchCriteriaLocale != null*/ and target.locale_id = /*searchCriteriaLocale*/'searchCriteriaLocale' /*END*/ /*IF searchCriteriaKeyword != null*/ and ( target.account_cd like /*searchCriteriaKeyword*/'%' ESCAPE '$' or target.account_name like /*searchCriteriaKeyword*/'%' ESCAPE '$' ) /*END*/ /*END*/ order by account_cd /*END*/ /*IF searchType == "export"*/ /*BEGIN*/ where /*IF searchCriteriaCompany != null*/ target.company_cd = /*searchCriteriaCompany*/'searchCriteriaCompany' /*END*/ /*IF targetDate != null*/ and target.start_date <= /*targetDate*/'2000/01/01' and target.end_date > /*targetDate*/'2000/01/01' /*END*/ /*IF renewTs != null*/ and target.renew_ts >= /*renewTs*/'2000/01/01' /*END*/ /*END*/ order by account_cd, start_date, locale_id /*END*/