4.3. 設定の流れ¶
本項では、MasterBuilderの設定の流れを説明します。
4.3.1. テーブル定義¶
はじめに、対象となるマスタテーブルの定義を行います。要件に合わせて次の各カラムを組み合わせて定義を行ってください。
4.3.1.1. 必須カラム¶
MasterBuilderを使用する場合は次のカラムは必ず設定してください。(全て「not null」制約)
論理名 物理名 PostgreSQL Oracle SqlServer 登録日時 entry_ts timestamp without time zone timestamp datetime2 登録ユーザ entry_user_cd varchar(100) varchar2(100) nvarchar(100) 更新カウント renew_cnt numeric(18,0) numeric(18,0) numeric(18,0) 更新日時 renew_ts timestamp without time zone timestamp datetime2 更新ユーザ renew_user_cd varchar(100) varchar2(100) nvarchar(100)
4.3.1.2. 特性カラム¶
会社化特性会社化特性のマスタを作成する場合は次のカラムを設定してください。(全て「not null」制約)
論理名 物理名 PostgreSQL Oracle SqlServer 会社コード company_cd varchar(100) varchar2(100) nvarchar(100) 期間化特性期間化特性のマスタを作成する場合は次のカラムを設定してください。(全て「not null」制約)
論理名 物理名 PostgreSQL Oracle SqlServer 期間コード term_cd varchar(50) varchar2(50) nvarchar(50) 開始日 start_date timestamp without time zone timestamp datetime2 終了日 end_date timestamp without time zone timestamp datetime2 削除フラグ delete_flag varchar(1) varchar2(1) nvarchar(1) 国際化特性国際化特性のマスタを作成する場合は次のカラムを設定してください。(全て「not null」制約)
論理名 物理名 PostgreSQL Oracle SqlServer ロケールID locale_id varchar(50) varchar2(50) nvarchar(50)
4.3.1.3. その他カラム¶
拡張用の項目として次のカラムを用意することでカスタマイズ性が向上します。次のカラムはintra-mart Accel Kaiden!が提供するすべてのマスタに設定されています。
論理名 物理名 PostgreSQL Oracle SqlServer 予備項目A extension_a varchar(1000) varchar2(1000) nvarchar(1000) 予備項目B extension_b varchar(1000) varchar2(1000) nvarchar(1000) 予備項目C extension_c varchar(1000) varchar2(1000) nvarchar(1000) 予備項目D extension_d varchar(1000) varchar2(1000) nvarchar(1000) 予備項目E extension_e varchar(1000) varchar2(1000) nvarchar(1000) 予備項目F extension_f varchar(1000) varchar2(1000) nvarchar(1000) 予備項目G extension_g varchar(1000) varchar2(1000) nvarchar(1000) 予備項目H extension_h varchar(1000) varchar2(1000) nvarchar(1000) 予備項目I extension_i varchar(1000) varchar2(1000) nvarchar(1000) 予備項目J extension_j varchar(1000) varchar2(1000) nvarchar(1000)
4.3.1.4. 定義サンプル¶
次項以降では、次の定義を利用した場合の設定の流れを説明します。
PostgreSQLcreate table k99m_sample ( company_cd varchar(100) not null, term_cd varchar(50) not null, start_date timestamp without time zone not null, end_date timestamp without time zone not null, delete_flag varchar(1) not null, locale_id varchar(50) not null, sample_cd varchar(100) not null, sample_name varchar(1000) not null, extension_a varchar(1000), extension_b varchar(1000), extension_c varchar(1000), extension_d varchar(1000), extension_e varchar(1000), extension_f varchar(1000), extension_g varchar(1000), extension_h varchar(1000), extension_i varchar(1000), extension_j varchar(1000), entry_ts timestamp without time zone not null, entry_user_cd varchar(100) not null, renew_cnt numeric(18,0) not null, renew_ts timestamp without time zone not null, renew_user_cd varchar(100) not null ); alter table k99m_sample add primary key (company_cd, sample_cd, locale_id, term_cd); Oraclecreate table k99m_sample ( company_cd varchar2(100) not null, term_cd varchar2(50) not null, start_date timestamp not null, end_date timestamp not null, delete_flag varchar2(1) not null, locale_id varchar2(50) not null, sample_cd varchar2(100) not null, sample_name varchar2(1000) not null, extension_a varchar2(1000), extension_b varchar2(1000), extension_c varchar2(1000), extension_d varchar2(1000), extension_e varchar2(1000), extension_f varchar2(1000), extension_g varchar2(1000), extension_h varchar2(1000), extension_i varchar2(1000), extension_j varchar2(1000), entry_ts timestamp not null, entry_user_cd varchar2(100) not null, renew_cnt numeric(18,0) not null, renew_ts timestamp not null, renew_user_cd varchar2(100) not null ); alter table k99m_sample add primary key (company_cd, sample_cd, locale_id, term_cd); SqlServercreate table k99m_sample ( company_cd nvarchar(100) not null, term_cd nvarchar(50) not null, start_date datetime2 not null, end_date datetime2 not null, delete_flag nvarchar(1) not null, locale_id nvarchar(50) not null, sample_cd nvarchar(100) not null, sample_name nvarchar(1000) not null, extension_a nvarchar(1000), extension_b nvarchar(1000), extension_c nvarchar(1000), extension_d nvarchar(1000), extension_e nvarchar(1000), extension_f nvarchar(1000), extension_g nvarchar(1000), extension_h nvarchar(1000), extension_i nvarchar(1000), extension_j nvarchar(1000), entry_ts datetime2 not null, entry_user_cd nvarchar(100) not null, renew_cnt numeric(18,0) not null, renew_ts datetime2 not null, renew_user_cd nvarchar(100) not null ); alter table k99m_sample add primary key (company_cd, sample_cd, locale_id, term_cd);
4.3.2. Service、Entity作成¶
次にService、Entityの作成を行います。
4.3.2.1. Service、Entityの作成¶
Service、Entityを作成します。作成方法の詳細は『intra-mart Accel Kaiden! プログラミングガイド』の「Service、Entity作成」を参照してください。
4.3.2.2. Service、Entityの配置¶
作成したService、Entityをプロジェクトに配置します。配置先のパス、およびパッケージは必要に応じて変更してください。また、必要に応じて「applicationContext.xml」を作成してください。作成方法の詳細は『intra-mart Accel Kaiden! プログラミングガイド』の「基本 - 事前準備 - 開発環境構築 - applicationContext.xmlの作成」を参照してください。(本説明では、intra-mart Accel Kaiden! 基盤モジュールに配置した想定で作成しています。)
K99mSample.java%ModuleProject%/src/main/generated/jp/co/slcs/kaiden/v2/base/foundation/model/entity/K99mSample.javapackage jp.co.slcs.kaiden.v2.base.foundation.model.entity; import java.io.Serializable; import java.sql.Timestamp; import com.miragesql.miragesql.annotation.Column; import com.miragesql.miragesql.annotation.PrimaryKey; import com.miragesql.miragesql.annotation.PrimaryKey.GenerationType; import com.miragesql.miragesql.annotation.Table; /** * サンプルマスタ. * * @author XXX */ @Table(name = "k99m_sample") public final class K99mSample extends GenerateEntity implements Serializable { /** シリアルバージョンUID. */ private static final long serialVersionUID = 1L; /** フィールド名[会社コード]. */ public static final String COMPANY_CD = "companyCd"; /** フィールド名[期間コード]. */ public static final String TERM_CD = "termCd"; /** フィールド名[開始日]. */ public static final String START_DATE = "startDate"; /** フィールド名[終了日]. */ public static final String END_DATE = "endDate"; /** フィールド名[削除フラグ]. */ public static final String DELETE_FLAG = "deleteFlag"; /** フィールド名[ロケールid]. */ public static final String LOCALE_ID = "localeId"; /** フィールド名[サンプルコード]. */ public static final String SAMPLE_CD = "sampleCd"; /** フィールド名[サンプル名]. */ public static final String SAMPLE_NAME = "sampleName"; /** 会社コード. */ @PrimaryKey(generationType = GenerationType.APPLICATION) @Column(name = "company_cd") public String companyCd; /** 期間コード. */ @PrimaryKey(generationType = GenerationType.APPLICATION) @Column(name = "term_cd") public String termCd; /** 開始日. */ @Column(name = "start_date") public Timestamp startDate; /** 終了日. */ @Column(name = "end_date") public Timestamp endDate; /** 削除フラグ. */ @Column(name = "delete_flag") public String deleteFlag; /** ロケールid. */ @PrimaryKey(generationType = GenerationType.APPLICATION) @Column(name = "locale_id") public String localeId; /** サンプルコード. */ @PrimaryKey(generationType = GenerationType.APPLICATION) @Column(name = "sample_cd") public String sampleCd; /** サンプル名. */ @Column(name = "sample_name") public String sampleName; } K99mSampleService.java%ModuleProject%/src/main/generated/jp/co/slcs/kaiden/v2/base/foundation/model/service/K99mSampleService.javapackage jp.co.slcs.kaiden.v2.base.foundation.model.service; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import jp.co.slcs.kaiden.v2.base.foundation.model.entity.K99mSample; /** * {@link K99mSample}のサービスクラス. * * @author XXX */ @Component @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public final class K99mSampleService extends GenerateService<K99mSample> { // }
4.3.3. MasterBuilder定義作成¶
続いて、MasterBuilder定義を作成します。本説明では、マスタIDを「sample」とします。
4.3.3.1. MasterBuilder定義ファイル作成¶
定義用のファイルを作成します。ファイル名は必ず「%マスタID%.xml(sample.xml)」とします。配置先%ModuleProject%/src/main/storage/system/kaiden/generic/master/sample.xml内容<?xml version="1.0" encoding="UTF-8"?> <genericMasterSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/genericMasterSettings"> </genericMasterSettings>
4.3.3.2. 基本設定¶
マスタIDや作成したServiceを基に基本設定を行います。内容<?xml version="1.0" encoding="UTF-8"?> <genericMasterSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/genericMasterSettings"> <!-- 基本設定 --> <masterId>sample</masterId> <surfaceKey>master_name</surfaceKey> <service>k99mSampleService</service> <resources>service://kaiden/master/sample</resources> </genericMasterSettings>
マスタID(genericMasterSettings / masterId)「sample」を設定します。 サーフィスキー(genericMasterSettings / surfaceKey):必須「master_name」を設定します。実際のサーフィスは、後述のサーフィス設定で行います。 サービスクラス(genericMasterSettings / service):任意「Service、Entity作成」で作成したServiceのコンポーネント名「k99mSampleService」を設定します。 認可リソース(genericMasterSettings / resources):任意「service://kaiden/master/sample」を設定します。合わせて、認可設定を行います。
4.3.3.3. 項目設定¶
作成したEntityを基に項目設定を行います。Entityに保持していない項目(会社名など)もSQLで取得する場合は設定します。次の例では、カスタマイズ用の予備項目はテキストボックスとして設定しています。また、作成したEntityに直接保持はしていませんが、GenerateEntityに保持する次の項目の設定します。
登録日(entryTs) 登録者(entryUserCd) 更新カウント(renewCnt) 更新日(renewTs) 更新者(renewUserCd) 予備項目A~J(extensionA~J)内容<?xml version="1.0" encoding="UTF-8"?> <genericMasterSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/genericMasterSettings"> <!-- 基本設定 --> <!-- 略 --> <!-- 項目設定 --> <items> <!-- 会社コード --> <item name="companyCd" surfaceKey="company_code" primary="true"> <validates> <validate type="DEFAULT" args="{'type':'required'}"/> <validate type="DEFAULT" args="{'type':'companyExists', 'args':['companyCd','searchCriteriaDate','true']}"/> </validates> </item> <!-- 会社名 --> <item name="companyName" surfaceKey="company_name"/> <!-- 期間コード --> <item name="termCd" surfaceKey="term_code" primary="true"/> <!-- 開始日 --> <item name="startDate" surfaceKey="start_date"> <convert display="STRING_DATE" process="TIMESTAMP"/> <validates> <validate type="DEFAULT" args="{'type':'required'}"/> <validate type="DEFAULT" args="{'type':'date'}"/> </validates> </item> <!-- 終了日 --> <item name="endDate" surfaceKey="end_date"> <convert display="STRING_DATE" process="TIMESTAMP_SHIFT"/> <validates> <validate type="DEFAULT" args="{'type':'required'}"/> <validate type="DEFAULT" args="{'type':'date'}"/> <validate type="DEFAULT" args="{'type':'dateMin', 'args':'startDate'}"/> </validates> </item> <!-- 削除フラグ --> <item name="deleteFlag" surfaceKey="delete_flag"> <validates> <validate type="DEFAULT" args="{'type':'required'}"/> <validate type="DEFAULT" args="{'type':'flag'}"/> </validates> </item> <!-- ロケールID --> <item name="localeId" surfaceKey="locale_id" primary="true"> <validates> <validate type="DEFAULT" args="{'type':'required'}"/> <validate type="DEFAULT" args="{'type':'locale'}"/> </validates> </item> <!-- サンプルコード --> <item name="sampleCd" surfaceKey="sample_code" type="TEXT_CODE" primary="true"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="100"/> </args> <validates> <validate type="DEFAULT" args="{'type':'required'}"/> <validate type="DEFAULT" args="{'type':'kaidenId'}"/> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'100'}"/> </validates> </item> <!-- サンプル名 --> <item name="sampleName" surfaceKey="sample_name" type="TEXT_LOCALES"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'required'}"/> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目A --> <item name="extensionA" surfaceKey="extension_a" type="TEXT"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目B --> <item name="extensionB" surfaceKey="extension_b" type="TEXT"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目C --> <item name="extensionC" surfaceKey="extension_c" type="TEXT"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目D --> <item name="extensionD" surfaceKey="extension_d" type="TEXT"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目E --> <item name="extensionE" surfaceKey="extension_e" type="TEXT"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目F --> <item name="extensionF" surfaceKey="extension_f" type="TEXT"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目G --> <item name="extensionG" surfaceKey="extension_g" type="TEXT"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目H --> <item name="extensionH" surfaceKey="extension_h" type="TEXT"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目I --> <item name="extensionI" surfaceKey="extension_i" type="TEXT"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目J --> <item name="extensionJ" surfaceKey="extension_j" type="TEXT_LOCALES"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 登録日 --> <item name="entryTs" surfaceKey="entry_ts"> <convert display="STRING_TIMESTAMP" process="TIMESTAMP"/> </item> <!-- 登録者 --> <item name="entryUserCd" surfaceKey="entry_user_cd"/> <!-- 更新カウント --> <item name="renewCnt" surfaceKey="renew_cnt"> <convert display="STRING" process="LONG"/> </item> <!-- 更新日 --> <item name="renewTs" surfaceKey="renew_ts"> <convert display="STRING_TIMESTAMP" process="TIMESTAMP"/> </item> <!-- 更新者 --> <item name="renewUserCd" surfaceKey="renew_user_cd"/> </items> </genericMasterSettings>
4.3.3.4. 拡張設定¶
本説明では、拡張設定は行いません。MasterBuilderの標準機能を拡張(カスタマイズ)する場合は必要に応じて設定してください。
4.3.3.5. サーフィス設定¶
項目設定で設定した各項目のサーフィスを設定します。次の例では、デフォルトのサーフィスのみ設定を行っていますが、複数ロケール用の設定を行う場合は、「サーフィス設定」を参考に設定を行ってください。内容<?xml version="1.0" encoding="UTF-8"?> <genericMasterSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/genericMasterSettings"> <!-- 基本設定 --> <!-- 略 --> <!-- 項目設定 --> <!-- 略 --> <!-- サーフィス設定 --> <surfaces> <surface surfaceKey="master_name" surface="サンプル" /> <surface surfaceKey="company_code" surface="会社コード"/> <surface surfaceKey="company_name" surface="会社名"/> <surface surfaceKey="term_code" surface="期間コード"/> <surface surfaceKey="start_date" surface="開始日"/> <surface surfaceKey="end_date" surface="終了日"/> <surface surfaceKey="delete_flag" surface="削除フラグ"/> <surface surfaceKey="locale_id" surface="ロケールID"/> <surface surfaceKey="sample_code" surface="サンプルコード"/> <surface surfaceKey="sample_name" surface="サンプル名"/> <surface surfaceKey="extension_a" surface="予備項目A"/> <surface surfaceKey="extension_b" surface="予備項目B"/> <surface surfaceKey="extension_c" surface="予備項目C"/> <surface surfaceKey="extension_d" surface="予備項目D"/> <surface surfaceKey="extension_e" surface="予備項目E"/> <surface surfaceKey="extension_f" surface="予備項目F"/> <surface surfaceKey="extension_g" surface="予備項目G"/> <surface surfaceKey="extension_h" surface="予備項目H"/> <surface surfaceKey="extension_i" surface="予備項目I"/> <surface surfaceKey="extension_j" surface="予備項目J"/> <surface surfaceKey="entry_ts" surface="登録日"/> <surface surfaceKey="entry_user_cd" surface="登録者"/> <surface surfaceKey="renew_cnt" surface="更新カウント"/> <surface surfaceKey="renew_ts" surface="更新日"/> <surface surfaceKey="renew_user_cd" surface="更新者"/> </surfaces> </genericMasterSettings>
4.3.3.6. メンテナンス設定¶
項目設定で設定した各項目の内、メンテナンス機能で利用する項目を設定します。次の例では、サンプルコード・サンプル名を一覧画面、編集画面に表示されるように設定しています。内容<?xml version="1.0" encoding="UTF-8"?> <genericMasterSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/genericMasterSettings"> <!-- 基本設定 --> <!-- 略 --> <!-- 項目設定 --> <!-- 略 --> <!-- サーフィス設定 --> <!-- 略 --> <!-- メンテナンス設定 --> <mainte> <listItems> <item name="sampleCd" width="250px"/> <item name="sampleName"/> </listItems> <editItems> <item name="sampleCd"/> <item name="sampleName"/> </editItems> </mainte> </genericMasterSettings>
4.3.3.7. 検索・リストデータ設定¶
項目設定で設定した各項目の内、検索・リストデータ機能で利用する項目を設定します。次の例では、サンプルコード・サンプル名を検索結果画面に、サンプル名をセレクトボックスに表示されるように設定しています。内容<?xml version="1.0" encoding="UTF-8"?> <genericMasterSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/genericMasterSettings"> <!-- 基本設定 --> <!-- 略 --> <!-- 項目設定 --> <!-- 略 --> <!-- サーフィス設定 --> <!-- 略 --> <!-- メンテナンス設定 --> <!-- 略 --> <!-- 検索設定 --> <search type="SEARCH"> <items> <item name="sampleCd" type="CODE"/> <item name="sampleName" type="NAME"/> </items> </search> </genericMasterSettings>
4.3.3.8. インポート設定¶
項目設定で設定した各項目の内、インポート機能で利用する項目を設定します。次の例では、インポートファイルのレイアウトが「会社コード,開始日,終了日,削除フラグ,ロケールID,サンプルコード,サンプル名」となる様に設定しています。インポートファイルのレイアウトを変更する場合は、設定順を変更してください。内容<?xml version="1.0" encoding="UTF-8"?> <genericMasterSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/genericMasterSettings"> <!-- 基本設定 --> <!-- 略 --> <!-- 項目設定 --> <!-- 略 --> <!-- サーフィス設定 --> <!-- 略 --> <!-- メンテナンス設定 --> <!-- 略 --> <!-- 検索設定 --> <!-- 略 --> <!-- インポート設定 --> <importJob> <items> <item name="companyCd"/> <item name="startDate"/> <item name="endDate"/> <item name="deleteFlag"/> <item name="localeId"/> <item name="sampleCd"/> <item name="sampleName"/> </items> </importJob> </genericMasterSettings>
4.3.3.9. エクスポート設定¶
項目設定で設定した各項目の内、エクスポート機能で利用する項目を設定します。次の例では、エクスポートファイルのレイアウトが「会社コード,開始日,終了日,削除フラグ,ロケールID,サンプルコード,サンプル名」となる様に設定しています。エクスポートファイルのレイアウトを変更する場合は、設定順を変更してください。内容<?xml version="1.0" encoding="UTF-8"?> <genericMasterSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/genericMasterSettings"> <!-- 基本設定 --> <!-- 略 --> <!-- 項目設定 --> <!-- 略 --> <!-- サーフィス設定 --> <!-- 略 --> <!-- メンテナンス設定 --> <!-- 略 --> <!-- 検索設定 --> <!-- 略 --> <!-- インポート設定 --> <!-- 略 --> <!-- エクスポート設定 --> <exportJob> <items> <item name="companyCd"/> <item name="startDate"/> <item name="endDate"/> <item name="deleteFlag"/> <item name="localeId"/> <item name="sampleCd"/> <item name="sampleName"/> </items> </exportJob> </genericMasterSettings>
4.3.3.10. MasterBuilder定義¶
前項までの設定を行ったMasterBuilder定義は次の様になります。内容<?xml version="1.0" encoding="UTF-8"?> <genericMasterSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/genericMasterSettings"> <!-- 基本設定 --> <masterId>sample</masterId> <surfaceKey>master_name</surfaceKey> <service>k99mSampleService</service> <resources>service://kaiden/master/sample</resources> <!-- 項目設定 --> <items> <!-- 会社コード --> <item name="companyCd" surfaceKey="company_code" primary="true"> <validates> <validate type="DEFAULT" args="{'type':'required'}"/> <validate type="DEFAULT" args="{'type':'companyExists', 'args':['companyCd','searchCriteriaDate','true']}"/> </validates> </item> <!-- 会社名 --> <item name="companyName" surfaceKey="company_name"/> <!-- 期間コード --> <item name="termCd" surfaceKey="term_code" primary="true"/> <!-- 開始日 --> <item name="startDate" surfaceKey="start_date"> <convert display="STRING_DATE" process="TIMESTAMP"/> <validates> <validate type="DEFAULT" args="{'type':'required'}"/> <validate type="DEFAULT" args="{'type':'date'}"/> </validates> </item> <!-- 終了日 --> <item name="endDate" surfaceKey="end_date"> <convert display="STRING_DATE" process="TIMESTAMP_SHIFT"/> <validates> <validate type="DEFAULT" args="{'type':'required'}"/> <validate type="DEFAULT" args="{'type':'date'}"/> <validate type="DEFAULT" args="{'type':'dateMin', 'args':'startDate'}"/> </validates> </item> <!-- 削除フラグ --> <item name="deleteFlag" surfaceKey="delete_flag"> <validates> <validate type="DEFAULT" args="{'type':'required'}"/> <validate type="DEFAULT" args="{'type':'flag'}"/> </validates> </item> <!-- ロケールID --> <item name="localeId" surfaceKey="locale_id" primary="true"> <validates> <validate type="DEFAULT" args="{'type':'required'}"/> <validate type="DEFAULT" args="{'type':'locale'}"/> </validates> </item> <!-- サンプルコード --> <item name="sampleCd" surfaceKey="sample_code" type="TEXT_CODE" primary="true"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="100"/> </args> <validates> <validate type="DEFAULT" args="{'type':'required'}"/> <validate type="DEFAULT" args="{'type':'kaidenId'}"/> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'100'}"/> </validates> </item> <!-- サンプル名 --> <item name="sampleName" surfaceKey="sample_name" type="TEXT_LOCALES"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'required'}"/> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目A --> <item name="extensionA" surfaceKey="extension_a" type="TEXT"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目B --> <item name="extensionB" surfaceKey="extension_b" type="TEXT"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目C --> <item name="extensionC" surfaceKey="extension_c" type="TEXT"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目D --> <item name="extensionD" surfaceKey="extension_d" type="TEXT"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目E --> <item name="extensionE" surfaceKey="extension_e" type="TEXT"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目F --> <item name="extensionF" surfaceKey="extension_f" type="TEXT"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目G --> <item name="extensionG" surfaceKey="extension_g" type="TEXT"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目H --> <item name="extensionH" surfaceKey="extension_h" type="TEXT"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目I --> <item name="extensionI" surfaceKey="extension_i" type="TEXT"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 予備項目J --> <item name="extensionJ" surfaceKey="extension_j" type="TEXT_LOCALES"> <args> <arg key="style" value="width:300px;"/> <arg key="maxlength" value="250"/> <arg key="imeMode" value="on"/> </args> <validates> <validate type="DEFAULT" args="{'type':'maxLength', 'args':'250'}"/> </validates> </item> <!-- 登録日 --> <item name="entryTs" surfaceKey="entry_ts"> <convert display="STRING_TIMESTAMP" process="TIMESTAMP"/> </item> <!-- 登録者 --> <item name="entryUserCd" surfaceKey="entry_user_cd"/> <!-- 更新カウント --> <item name="renewCnt" surfaceKey="renew_cnt"> <convert display="STRING" process="LONG"/> </item> <!-- 更新日 --> <item name="renewTs" surfaceKey="renew_ts"> <convert display="STRING_TIMESTAMP" process="TIMESTAMP"/> </item> <!-- 更新者 --> <item name="renewUserCd" surfaceKey="renew_user_cd"/> </items> <!-- サーフィス設定 --> <surfaces> <surface surfaceKey="master_name" surface="サンプル" /> <surface surfaceKey="company_code" surface="会社コード"/> <surface surfaceKey="company_name" surface="会社名"/> <surface surfaceKey="term_code" surface="期間コード"/> <surface surfaceKey="start_date" surface="開始日"/> <surface surfaceKey="end_date" surface="終了日"/> <surface surfaceKey="delete_flag" surface="削除フラグ"/> <surface surfaceKey="locale_id" surface="ロケールID"/> <surface surfaceKey="sample_code" surface="サンプルコード"/> <surface surfaceKey="sample_name" surface="サンプル名"/> <surface surfaceKey="extension_a" surface="予備項目A"/> <surface surfaceKey="extension_b" surface="予備項目B"/> <surface surfaceKey="extension_c" surface="予備項目C"/> <surface surfaceKey="extension_d" surface="予備項目D"/> <surface surfaceKey="extension_e" surface="予備項目E"/> <surface surfaceKey="extension_f" surface="予備項目F"/> <surface surfaceKey="extension_g" surface="予備項目G"/> <surface surfaceKey="extension_h" surface="予備項目H"/> <surface surfaceKey="extension_i" surface="予備項目I"/> <surface surfaceKey="extension_j" surface="予備項目J"/> <surface surfaceKey="entry_ts" surface="登録日"/> <surface surfaceKey="entry_user_cd" surface="登録者"/> <surface surfaceKey="renew_cnt" surface="更新カウント"/> <surface surfaceKey="renew_ts" surface="更新日"/> <surface surfaceKey="renew_user_cd" surface="更新者"/> </surfaces> <!-- メンテナンス設定 --> <mainte> <listItems> <item name="sampleCd" width="250px"/> <item name="sampleName"/> </listItems> <editItems> <item name="sampleCd"/> <item name="sampleName"/> </editItems> </mainte> <!-- 検索設定 --> <search type="SEARCH"> <items> <item name="sampleCd" type="CODE"/> <item name="sampleName" type="NAME"/> </items> </search> <!-- インポート設定 --> <importJob> <items> <item name="companyCd"/> <item name="startDate"/> <item name="endDate"/> <item name="deleteFlag"/> <item name="localeId"/> <item name="sampleCd"/> <item name="sampleName"/> </items> </importJob> <!-- エクスポート設定 --> <exportJob> <items> <item name="companyCd"/> <item name="startDate"/> <item name="endDate"/> <item name="deleteFlag"/> <item name="localeId"/> <item name="sampleCd"/> <item name="sampleName"/> </items> </exportJob> </genericMasterSettings>
4.3.4. 検索用SQL作成¶
最後に、MasterBuilderで使用する検索用のSQLを作成します。配置先%ModuleProject%/src/main/resources/META-INF/sql/jp/co/slcs/kaiden/v2/generic/master/sample.sql
4.3.4.1. 検索項目設定¶
select target.company_cd , dept.department_name as company_name , target.term_cd , target.start_date , target.end_date , target.delete_flag , target.locale_id , target.sample_cd , target.sample_name , 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 k99m_sample target left join imm_department dept on dept.company_cd = target.company_cd and dept.department_set_cd = target.company_cd and dept.department_cd = target.company_cd and dept.locale_id = /*searchCriteriaLocale*/'ja' and dept.start_date <= /*searchCriteriaDate*/'2000/01/01' and dept.end_date > /*searchCriteriaDate*/'2000/01/01'
4.3.4.2. 一覧検索条件設定¶
/* 略 */ /*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.sample_cd like /*searchCriteriaKeyword*/'%' ESCAPE '$' or target.sample_name like /*searchCriteriaKeyword*/'%' ESCAPE '$' ) /*END*/ /*END*/ /*IF orderBy != null*/ order by /*$orderBy*/sample_cd /*END*/ /*END*/
4.3.4.3. 対象検索条件設定¶
/* 略 */ /*IF searchType == "search"*/ /* 略 */ /*END*/ /*IF searchType == "select"*/ /*BEGIN*/ where /*IF sampleCd != null*/ target.sample_cd = /*sampleCd*/'sampleCd' /*END*/ /*IF companyCd != null*/ and target.company_cd = /*companyCd*/'companyCd' /*END*/ /*IF termCd != null*/ and target.term_cd = /*termCd*/'termCd' /*END*/ /*END*/ order by sample_cd /*END*/
4.3.4.4. 期間検索条件設定¶
/* 略 */ /*IF searchType == "search"*/ /* 略 */ /*END*/ /*IF searchType == "select"*/ /* 略 */ /*END*/ /*IF searchType == "term"*/ /*BEGIN*/ where /*IF sampleCd != null*/ target.sample_cd = /*sampleCd*/'sampleCd' /*END*/ /*IF companyCd != null*/ and target.company_cd = /*companyCd*/'companyCd' /*END*/ /*IF localeId != null*/ and target.locale_id = /*localeId*/'localeId' /*END*/ /*END*/ order by sample_cd, start_date /*END*/
4.3.4.5. マスタ検索条件設定¶
/* 略 */ /*IF searchType == "search"*/ /* 略 */ /*END*/ /*IF searchType == "select"*/ /* 略 */ /*END*/ /*IF searchType == "term"*/ /* 略 */ /*END*/ /*IF searchType == "master"*/ /*BEGIN*/ where /*IF sampleCd != null*/ target.sample_cd = /*sampleCd*/'sampleCd' /*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.sample_cd like /*searchCriteriaKeyword*/'%' ESCAPE '$' or target.sample_name like /*searchCriteriaKeyword*/'%' ESCAPE '$' ) /*END*/ /*END*/ order by sample_cd /*END*/
4.3.4.6. エクスポート条件設定¶
/* 略 */ /*IF searchType == "search"*/ /* 略 */ /*END*/ /*IF searchType == "select"*/ /* 略 */ /*END*/ /*IF searchType == "term"*/ /* 略 */ /*END*/ /*IF searchType == "master"*/ /* 略 */ /*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 sample_cd, start_date, locale_id /*END*/
4.3.4.7. 検索用SQL¶
前項までの設定を行った検索用SQLは次の様になります。内容select target.company_cd , dept.department_name as company_name , target.term_cd , target.start_date , target.end_date , target.delete_flag , target.locale_id , target.sample_cd , target.sample_name , 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 k99m_sample target left join imm_department dept on dept.company_cd = target.company_cd and dept.department_set_cd = target.company_cd and dept.department_cd = target.company_cd and dept.locale_id = /*searchCriteriaLocale*/'ja' and dept.start_date <= /*searchCriteriaDate*/'2000/01/01' and dept.end_date > /*searchCriteriaDate*/'2000/01/01' /*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.sample_cd like /*searchCriteriaKeyword*/'%' ESCAPE '$' or target.sample_name like /*searchCriteriaKeyword*/'%' ESCAPE '$' ) /*END*/ /*END*/ /*IF orderBy != null*/ order by /*$orderBy*/sample_cd /*END*/ /*END*/ /*IF searchType == "select"*/ /*BEGIN*/ where /*IF sampleCd != null*/ target.sample_cd = /*sampleCd*/'sampleCd' /*END*/ /*IF companyCd != null*/ and target.company_cd = /*companyCd*/'companyCd' /*END*/ /*IF termCd != null*/ and target.term_cd = /*termCd*/'termCd' /*END*/ /*END*/ order by sample_cd /*END*/ /*IF searchType == "term"*/ /*BEGIN*/ where /*IF sampleCd != null*/ target.sample_cd = /*sampleCd*/'sampleCd' /*END*/ /*IF companyCd != null*/ and target.company_cd = /*companyCd*/'companyCd' /*END*/ /*IF localeId != null*/ and target.locale_id = /*localeId*/'localeId' /*END*/ /*END*/ order by sample_cd, start_date /*END*/ /*IF searchType == "master"*/ /*BEGIN*/ where /*IF sampleCd != null*/ target.sample_cd = /*sampleCd*/'sampleCd' /*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.sample_cd like /*searchCriteriaKeyword*/'%' ESCAPE '$' or target.sample_name like /*searchCriteriaKeyword*/'%' ESCAPE '$' ) /*END*/ /*END*/ order by sample_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 sample_cd, start_date, locale_id /*END*/
4.3.5. 動作確認¶
これまでに設定した内容を動作確認します。配置先src └─main ├─generated │ └─jp │ └─co │ └─slcs │ └─kaiden │ └─v2 │ └─base │ └─foundation │ └─model │ ├─entity │ │ └─K99mSample.java │ └─service │ └─K99mSampleService.java │ ├─resources │ └─META-INF │ └─sql │ └─jp │ └─co │ └─slcs │ └─kaiden │ └─v2 │ └─generic │ └─master │ └─sample.sql │ │ └─storage └─system └─kaiden └─generic └─master └─sample.xmlコラム
配置先には記載していませんが、「テーブル定義」で定義したテーブルを作成してください。
4.3.5.1. メンテナンス機能¶
メンテナンス機能は、次の手順で動作確認を行います。
認可リソース作成・設定MasterBuilder定義で設定した認可リソース「service://kaiden/master/sample」を設定し、検証用のユーザに設定します。また、認可リソース「service://kaiden/generic/master」を検証用のユーザに設定します。 メンテナンス機能表示「http://<HOST>:<PORT>/<CONTEXT_PATH>/kaiden/v2/generic/master?masterId=sample」にアクセスし、マスタメンテナンス画面を表示します。 動作確認一覧検索や新規登録、更新、削除などが正しく行われることを確認します。
4.3.5.2. 検索部品・セレクトボックス¶
検索部品・セレクトボックスは、次の手順で動作確認を行います。事前にマスタメンテナンス機能を利用して、検索対象のマスタデータを作成してください。
確認用アプリケーション作成検索部品・セレクトボックスの動作確認を行うためのアプリケーションを作成します。Controller%ModuleProject%/src/main/java/jp/co/slcs/kaiden/v2/base/feature/controller/kaiden/sample/SampleController.javapackage jp.co.slcs.kaiden.v2.base.feature.controller.kaiden.sample; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; /** * Sample(Controller). * * @author Sumitomo Life Information Systems Co.,Ltd. */ @Controller @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) @RequestMapping("kaiden/v2/sample/sample") public class SampleController { /** * index. * * @return /kaiden/v2/base/sample/sample.jsp */ @RequestMapping(value = {"", "/index"}) public String index() { return "/kaiden/v2/base/sample/sample.jsp"; } }JSP%ModuleProject%/src/main/webapp/WEB-INF/views/kaiden/v2/base/sample/sample.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> <%@ taglib prefix="k" uri="http://kaiden.slcs.co.jp/taglib/v2/ui" %> <%@ taglib prefix="k_generic" uri="http://kaiden.slcs.co.jp/taglib/v2/generic" %> <%@ taglib prefix="imui" uri="http://www.intra-mart.co.jp/taglib/imui" %> <%@ taglib prefix="imart" uri="http://www.intra-mart.co.jp/taglib/im-tenant" %> <c:set var="gadgetClass">sampleGadget</c:set> <c:set var="gadgetVariation">v01</c:set> <c:set var="gadgetInstance">0</c:set> <c:set var="gadgetId">${gadgetClass}_${gadgetVariation}_${gadgetInstance}</c:set> <c:set var="blockId">inputArea</c:set> <c:set var="extensionId">${gadgetClass}_${gadgetVariation}</c:set> <imart type="head"> <title>サンプル</title> <jsp:include page="/WEB-INF/views/kaiden/v2/base/foundation/commonIncludeHeader.jsp"></jsp:include> </imart> <div class="imui-title"> <h1>サンプル</h1> </div> <div class="imui-form-container-wide" style="overflow:auto;min-width:930px"> <div id="kaiden-contents-container" style="overflow:hidden"> <div id="kaiden-system-container" style="display:none"> <jsp:include page="/WEB-INF/views/kaiden/v2/base/foundation/genericErrorContainer.jsp" ></jsp:include> <jsp:include page="/WEB-INF/views/kaiden/v2/base/foundation/dateTextController.jsp"></jsp:include> </div> <jsp:include page="/WEB-INF/views/kaiden/v2/base/foundation/tmtable/tmtableOperationPanel.jsp"></jsp:include> <div id="kaiden-mainte-controller"> <k:gadgetContainer gadgetId="KaidenMainteController_v01_0" gadgetClass="KaidenMainteController" gadgetVariation="v01" gadgetInstance="0"> </k:gadgetContainer> </div> <div id="kaiden-mainte-mainte-container"> <k:gadgetContainer gadgetClass="${gadgetClass}" gadgetVariation="${gadgetVariation}" gadgetInstance="${gadgetInstance}" gadgetTitle="Sample" gadgetId="${gadgetId}"> <k:blockContainer id="${blockId}"> <table class="imui-form" style="width:100%"> <colgroup> <col style="width:200px;" /> <col /> </colgroup> <tr> <th><k:surface surfaceKey="検索基準日"/></th> <td><k:date name="searchCriteriaDate" mode="0"/></td> </tr> <tr> <th><k:surface surfaceKey="検索基準ロケール"/></th> <td> <k_generic:master masterId="locale" extensionId="${extensionId}" searchType="search" mode="0" name="searchCriteriaLocale" viewName="searchCriteriaLocaleName" surfaceKey="" criteria="{'localeId':'searchCriteriaLocale'}" resultChain="{'searchCriteriaLocale':'localeId', 'searchCriteriaLocaleName':'localeName'}" resultValue="localeName" primaryTarget="searchCriteriaLocale" style="width:200px;" /> </td> </tr> <tr> <th><k:surface surfaceKey="検索基準会社"/></th> <td> <k_generic:master masterId="company" extensionId="${extensionId}" searchType="search" mode="0" name="searchCriteriaCompany" viewName="searchCriteriaCompanyName" surfaceKey="" criteria="{'searchCriteriaCompany':'searchCriteriaCompany', 'searchCriteriaDate':'searchCriteriaDate', 'searchCriteriaLocale':'searchCriteriaLocale', 'includeDisabled':'true'}" resultChain="{'searchCriteriaCompany':'companyCd', 'searchCriteriaCompanyName':'companyName'}" resultValue="companyName" primaryTarget="searchCriteriaCompany" refreshTarget="searchCriteriaDate,searchCriteriaLocale" gadgetId="${gadgetId}" gadgetBlockId="${blockId}" style="width:200px;" /> </td> </tr> </table> <br/> <table class="imui-form" style="width:100%"> <colgroup> <col /> <col /> <col /> </colgroup> <tr> <th><k:surface surfaceKey="指定なし"/></th> <th><k:surface surfaceKey="検索部品指定"/></th> <th><k:surface surfaceKey="セレクトボックス指定"/></th> </tr> <tr> <td> <k_generic:master masterId="sample" extensionId="${extensionId}" mode="0" name="sampleCd" viewName="sampleName" surfaceKey="" criteria="{'searchCriteriaCompany':'searchCriteriaCompany', 'searchCriteriaDate':'searchCriteriaDate', 'searchCriteriaLocale':'searchCriteriaLocale', 'sampleCd':'sampleCd', 'includeDisabled':'true', 'includeBlank':'true'}" resultChain="{'sampleCd':'sampleCd', 'sampleName':'sampleName'}" resultValue="sampleName" primaryTarget="sampleCd" refreshTarget="searchCriteriaCompany,searchCriteriaDate,searchCriteriaLocale" gadgetId="${gadgetId}" gadgetBlockId="${blockId}" style="width:200px;" /> </td> <td> <k_generic:master masterId="sample" extensionId="${extensionId}" searchType="search" mode="0" name="search_sampleCd" viewName="search_sampleName" surfaceKey="" criteria="{'searchCriteriaCompany':'searchCriteriaCompany', 'searchCriteriaDate':'searchCriteriaDate', 'searchCriteriaLocale':'searchCriteriaLocale', 'sampleCd':'search_sampleCd', 'includeDisabled':'true', 'includeBlank':'true'}" resultChain="{'search_sampleCd':'sampleCd', 'search_sampleName':'sampleName'}" resultValue="sampleName" primaryTarget="search_sampleCd" refreshTarget="searchCriteriaCompany,searchCriteriaDate,searchCriteriaLocale" gadgetId="${gadgetId}" gadgetBlockId="${blockId}" style="width:200px;" /> </td> <td> <k_generic:master masterId="sample" extensionId="${extensionId}" searchType="select" mode="0" name="select_sampleCd" viewName="select_sampleName" surfaceKey="" criteria="{'searchCriteriaCompany':'searchCriteriaCompany', 'searchCriteriaDate':'searchCriteriaDate', 'searchCriteriaLocale':'searchCriteriaLocale', 'sampleCd':'select_sampleCd', 'includeDisabled':'true', 'includeBlank':'true'}" resultChain="{'select_sampleCd':'sampleCd', 'select_sampleName':'sampleName'}" resultValue="sampleName" primaryTarget="select_sampleCd" refreshTarget="searchCriteriaCompany,searchCriteriaDate,searchCriteriaLocale" gadgetId="${gadgetId}" gadgetBlockId="${blockId}" style="width:200px;" /> </td> </tr> </table> </k:blockContainer> </k:gadgetContainer> </div> </div> <script type="text/javascript"> jQuery(function($) { var accessor = KAIDEN.getGadget("${gadgetId}").blockAccessors["${blockId}"]; var eventManager = KAIDEN.getGadget("${gadgetId}").eventManager; eventManager.registPushListener("initialize", function(/**String*/args) { // 検索基準日 var _nowDate = KAIDEN.Util.nowDate(); accessor("searchCriteriaDate").setValue(_nowDate); // 検索基準ロケール accessor("searchCriteriaLocale").setValue("ja"); KAIDEN.MasterSearch.refresh(accessor("searchCriteriaLocaleName").elem(true), true); // 検索基準会社 accessor("searchCriteriaCompany").setValue("comp_sample_01"); KAIDEN.MasterSearch.refresh(accessor("searchCriteriaCompanyName").elem(true), true); // リストデータの更新 $("[data-kaiden-select-list]").each(function() { KAIDEN.SelectListData.refresh(this); }); }); KAIDEN.gadgetMan.execPush("initialize"); }); </script> </div> 確認用アプリケーション表示「http://<HOST>:<PORT>/<CONTEXT_PATH>/kaiden/v2/sample/sample」にアクセスし、確認用アプリケーションを表示します。 動作確認検索部品・セレクトボックスが正しく動作することを確認します。また、MasterBuilder定義の「検索タイプ(genericMasterSettings / search @ type)」に設定した値を切り替えることで、検索部品・セレクトボックスが切り替わることを確認します。
4.3.5.3. インポートジョブ¶
インポートジョブ機能は、次の手順で動作確認を行います。
インポートジョブ作成「サイトマップ」→「ジョブ管理」→「ジョブ設定」を表示し、インポート用のジョブを作成します。
ジョブカテゴリ任意の値を設定してください。 ジョブID任意の値を設定してください。 ジョブ名任意の値を設定してください。 実行言語Java 実行プログラムjp.co.slcs.kaiden.v2.base.feature.job.generic.MasterImportJob 実行パラメータ値には、マスタIDを設定します。
キー 値 masterId sample インポートジョブネット作成「サイトマップ」→「ジョブ管理」→「ジョブネット設定」を表示し、インポート用のジョブネットを作成します。
ジョブネットカテゴリ任意の値を設定してください。 ジョブネットID任意の値を設定してください。 ジョブネット名任意の値を設定してください。 実行ジョブ「インポートジョブ作成」で作成したジョブ インポートファイル作成「%Public Storage%/kaiden/generic/master/sample/import.csv」にインポートファイルを作成します。"comp_sample_01","1900/01/01","2999/12/31","0","en","sample01","sample01" "comp_sample_01","1900/01/01","2999/12/31","0","ja","sample01","sample01" "comp_sample_01","1900/01/01","2999/12/31","0","zh_CN","sample01","sample01" "comp_sample_01","1900/01/01","2999/12/31","0","en","sample02","sample02" "comp_sample_01","1900/01/01","2999/12/31","0","ja","sample02","sample02" "comp_sample_01","1900/01/01","2999/12/31","0","zh_CN","sample02","sample02" "comp_sample_01","1900/01/01","2999/12/31","0","en","sample03","sample03" "comp_sample_01","1900/01/01","2999/12/31","0","ja","sample03","sample03" "comp_sample_01","1900/01/01","2999/12/31","0","zh_CN","sample03","sample03" "comp_sample_01","1900/01/01","2999/12/31","0","en","sample04","sample04" "comp_sample_01","1900/01/01","2999/12/31","0","ja","sample04","sample04" "comp_sample_01","1900/01/01","2999/12/31","0","zh_CN","sample04","sample04" "comp_sample_01","1900/01/01","2999/12/31","0","en","sample05","sample05" "comp_sample_01","1900/01/01","2999/12/31","0","ja","sample05","sample05" "comp_sample_01","1900/01/01","2999/12/31","0","zh_CN","sample05","sample05" 動作確認「サイトマップ」→「ジョブ管理」→「ジョブネット設定」を表示し、インポート用のジョブネットを即時実行します。実行後、メンテナンス機能を利用して、インポートが正しく実行されたことを確認します。
4.3.5.4. エクスポートジョブ¶
エクスポートジョブ機能は、次の手順で動作確認を行います。事前にマスタメンテナンス機能を利用して、エクスポート対象のマスタデータを作成してください。
エクスポートジョブ作成「サイトマップ」→「ジョブ管理」→「ジョブ設定」を表示し、エクスポート用のジョブを作成します。
ジョブカテゴリ任意の値を設定してください。 ジョブID任意の値を設定してください。 ジョブ名任意の値を設定してください。 実行言語Java 実行プログラムjp.co.slcs.kaiden.v2.base.feature.job.generic.MasterExportJob 実行パラメータ値には、マスタIDを設定します。
キー 値 masterId sample エクスポートジョブネット作成「サイトマップ」→「ジョブ管理」→「ジョブネット設定」を表示し、エクスポート用のジョブネットを作成します。
ジョブネットカテゴリ任意の値を設定してください。 ジョブネットID任意の値を設定してください。 ジョブネット名任意の値を設定してください。 実行ジョブ「エクスポートジョブ作成」で作成したジョブ 動作確認「サイトマップ」→「ジョブ管理」→「ジョブネット設定」を表示し、エクスポート用のジョブネットを即時実行します。「%Public Storage%/kaiden/generic/master/sample/export.csv」にマスタデータがエクスポートされることを確認します。"comp_sample_01","1900/01/01","2999/12/31","0","en","sample01","sample01" "comp_sample_01","1900/01/01","2999/12/31","0","ja","sample01","sample01" "comp_sample_01","1900/01/01","2999/12/31","0","zh_CN","sample01","sample01" "comp_sample_01","1900/01/01","2999/12/31","0","en","sample02","sample02" "comp_sample_01","1900/01/01","2999/12/31","0","ja","sample02","sample02" "comp_sample_01","1900/01/01","2999/12/31","0","zh_CN","sample02","sample02" "comp_sample_01","1900/01/01","2999/12/31","0","en","sample03","sample03" "comp_sample_01","1900/01/01","2999/12/31","0","ja","sample03","sample03" "comp_sample_01","1900/01/01","2999/12/31","0","zh_CN","sample03","sample03" "comp_sample_01","1900/01/01","2999/12/31","0","en","sample04","sample04" "comp_sample_01","1900/01/01","2999/12/31","0","ja","sample04","sample04" "comp_sample_01","1900/01/01","2999/12/31","0","zh_CN","sample04","sample04" "comp_sample_01","1900/01/01","2999/12/31","0","en","sample05","sample05" "comp_sample_01","1900/01/01","2999/12/31","0","ja","sample05","sample05" "comp_sample_01","1900/01/01","2999/12/31","0","zh_CN","sample05","sample05"