4.2. 設定の流れ(申請書ガジェット)¶
本項では、GadgetBuilderの設定の流れを説明します。(経費明細を例にします。)
4.2.1. テーブル定義¶
はじめに、対象となるテーブルの定義を行います。要件に合わせて次の各カラムを組み合わせて定義を行ってください。
4.2.1.1. 必須カラム¶
GadgetBuilderで申請書ガジェットを作成する場合のテーブルの定義です。
4.2.1.1.1. 基本テーブル¶
基本テーブルの場合は次のカラムは必ず設定してください。(全て「not null」制約)
論理名 物理名 PK PostgreSQL Oracle SqlServer システム案件ID system_matter_id ○ varchar(20) varchar2(20) nvarchar(20) ユーザデータID user_data_id ○ varchar(20) varchar2(20) nvarchar(20) ガジェットID gadget_id varchar(220) varchar2(220) nvarchar(220) ガジェットクラス gadget_class ○ varchar(100) varchar2(100) nvarchar(100) ガジェットバリエーション gadget_variation varchar(100) varchar2(100) nvarchar(100) ガジェットインスタンス gadget_instance ○ numeric(18,0) numeric(18,0) numeric(18,0) タプルID tuple_id numeric(18,0) numeric(18,0) numeric(18,0) 行番号 row_number numeric(18,0) numeric(18,0) numeric(18,0) 登録日時 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.2.1.1.2. 退避テーブル¶
退避(アーカイブ)テーブルの場合は次のカラムは必ず設定してください。(全て「not null」制約)
論理名 物理名 PK PostgreSQL Oracle SqlServer システム案件ID system_matter_id ○ varchar(20) varchar2(20) nvarchar(20) ユーザデータID user_data_id ○ varchar(20) varchar2(20) nvarchar(20) ガジェットID gadget_id varchar(220) varchar2(220) nvarchar(220) ガジェットクラス gadget_class ○ varchar(100) varchar2(100) nvarchar(100) ガジェットバリエーション gadget_variation varchar(100) varchar2(100) nvarchar(100) ガジェットインスタンス gadget_instance ○ numeric(18,0) numeric(18,0) numeric(18,0) ロケールID locale_id ○ varchar(50) varchar2(50) nvarchar(50) アーカイブ月 archive_month varchar(6) varchar2(6) nvarchar(6) タプルID tuple_id numeric(18,0) numeric(18,0) numeric(18,0) 行番号 row_number numeric(18,0) numeric(18,0) numeric(18,0) 登録日時 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) コラム
タプルID、行番号は明細系ブロックの登録先の場合のみ設定してください。
4.2.1.1.3. 定義サンプル¶
次項以降では、次の定義を利用した場合の設定の流れを説明します。
PostgreSQLcreate table k30t_expense_detail ( system_matter_id varchar(20) not null, user_data_id varchar(20) not null, gadget_class varchar(100) not null, gadget_instance numeric(18,0) not null, tuple_id numeric(18,0) not null, gadget_id varchar(220) not null, gadget_variation varchar(100) not null, row_number numeric(18,0) not null, occur_date timestamp without time zone, summary varchar(4000), exp_type_cd varchar(100), account_cd varchar(100), tax_type_cd varchar(100), tax_rate numeric(28,10), quantity numeric(28,10), trans_currency_cd varchar(100), trans_amount numeric(28,10), company_currency_cd varchar(100), company_rate numeric(28,10), company_amount numeric(28,10), company_amount_exc_tax numeric(28,10), company_amount_tax numeric(28,10), company_amount_sum numeric(28,10), pay_type_cd varchar(100), pay_method_cd varchar(100), payee_cd varchar(100), payee_name varchar(1000), department_set_cd varchar(100), department_cd varchar(100), project_cd varchar(100), 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 k30t_expense_detail add primary key (system_matter_id, user_data_id, tuple_id, gadget_class, gadget_instance); alter table k30t_expense_detail add check (gadget_instance >= 0); alter table k30t_expense_detail add check (tuple_id >= 0); alter table k30t_expense_detail add check (row_number >= 0); alter table k30t_expense_detail add check (tax_rate >= 0); create table ka30t_expense_detail ( system_matter_id varchar(20) not null, user_data_id varchar(20) not null, gadget_class varchar(100) not null, gadget_instance numeric(18,0) not null, tuple_id numeric(18,0) not null, locale_id varchar(50) not null, archive_month varchar(6) not null, gadget_id varchar(220) not null, gadget_variation varchar(100) not null, row_number numeric(18,0) not null, occur_date timestamp without time zone, summary varchar(4000), exp_type_cd varchar(100), account_cd varchar(100), tax_type_cd varchar(100), tax_rate numeric(28,10), quantity numeric(28,10), trans_currency_cd varchar(100), trans_amount numeric(28,10), company_currency_cd varchar(100), company_rate numeric(28,10), company_amount numeric(28,10), company_amount_exc_tax numeric(28,10), company_amount_tax numeric(28,10), company_amount_sum numeric(28,10), pay_type_cd varchar(100), pay_method_cd varchar(100), payee_cd varchar(100), payee_name varchar(1000), department_set_cd varchar(100), department_cd varchar(100), project_cd varchar(100), exp_type_name varchar(1000), account_name varchar(1000), tax_type_name varchar(1000), trans_currency_name varchar(1000), company_currency_name varchar(1000), pay_type_name varchar(1000), payment_flag varchar(1), pay_method_name varchar(1000), department_name varchar(1000), project_name varchar(1000), 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 ka30t_expense_detail add primary key (system_matter_id, user_data_id, gadget_class, gadget_instance, tuple_id, locale_id); create index idx_ka30t_expense_detail_1 on ka30t_expense_detail (archive_month); Oraclecreate table k30t_expense_detail ( system_matter_id varchar2(20) not null, user_data_id varchar2(20) not null, gadget_class varchar2(100) not null, gadget_instance numeric(18,0) not null, tuple_id numeric(18,0) not null, gadget_id varchar2(220) not null, gadget_variation varchar2(100) not null, row_number numeric(18,0) not null, occur_date timestamp, summary varchar2(4000), exp_type_cd varchar2(100), account_cd varchar2(100), tax_type_cd varchar2(100), tax_rate numeric(28,10), quantity numeric(28,10), trans_currency_cd varchar2(100), trans_amount numeric(28,10), company_currency_cd varchar2(100), company_rate numeric(28,10), company_amount numeric(28,10), company_amount_exc_tax numeric(28,10), company_amount_tax numeric(28,10), company_amount_sum numeric(28,10), pay_type_cd varchar2(100), pay_method_cd varchar2(100), payee_cd varchar2(100), payee_name varchar2(1000), department_set_cd varchar2(100), department_cd varchar2(100), project_cd varchar2(100), 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 k30t_expense_detail add primary key (system_matter_id, user_data_id, tuple_id, gadget_class, gadget_instance); alter table k30t_expense_detail add check (gadget_instance >= 0); alter table k30t_expense_detail add check (tuple_id >= 0); alter table k30t_expense_detail add check (row_number >= 0); alter table k30t_expense_detail add check (tax_rate >= 0); create table ka30t_expense_detail ( system_matter_id varchar2(20) not null, user_data_id varchar2(20) not null, gadget_class varchar2(100) not null, gadget_instance numeric(18,0) not null, tuple_id numeric(18,0) not null, locale_id varchar2(50) not null, archive_month varchar2(6) not null, gadget_id varchar2(220) not null, gadget_variation varchar2(100) not null, row_number numeric(18,0) not null, occur_date timestamp, summary varchar2(4000), exp_type_cd varchar2(100), account_cd varchar2(100), tax_type_cd varchar2(100), tax_rate numeric(28,10), quantity numeric(28,10), trans_currency_cd varchar2(100), trans_amount numeric(28,10), company_currency_cd varchar2(100), company_rate numeric(28,10), company_amount numeric(28,10), company_amount_exc_tax numeric(28,10), company_amount_tax numeric(28,10), company_amount_sum numeric(28,10), pay_type_cd varchar2(100), pay_method_cd varchar2(100), payee_cd varchar2(100), payee_name varchar2(1000), department_set_cd varchar2(100), department_cd varchar2(100), project_cd varchar2(100), exp_type_name varchar2(1000), account_name varchar2(1000), tax_type_name varchar2(1000), trans_currency_name varchar2(1000), company_currency_name varchar2(1000), pay_type_name varchar2(1000), payment_flag varchar2(1), pay_method_name varchar2(1000), department_name varchar2(1000), project_name varchar2(1000), 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 ka30t_expense_detail add primary key (system_matter_id, user_data_id, gadget_class, gadget_instance, tuple_id, locale_id); create index idx_ka30t_expense_detail_1 on ka30t_expense_detail (archive_month); SqlServercreate table k30t_expense_detail ( system_matter_id nvarchar(20) not null, user_data_id nvarchar(20) not null, gadget_class nvarchar(100) not null, gadget_instance numeric(18,0) not null, tuple_id numeric(18,0) not null, gadget_id nvarchar(220) not null, gadget_variation nvarchar(100) not null, row_number numeric(18,0) not null, occur_date datetime2, summary nvarchar(4000), exp_type_cd nvarchar(100), account_cd nvarchar(100), tax_type_cd nvarchar(100), tax_rate numeric(28,10), quantity numeric(28,10), trans_currency_cd nvarchar(100), trans_amount numeric(28,10), company_currency_cd nvarchar(100), company_rate numeric(28,10), company_amount numeric(28,10), company_amount_exc_tax numeric(28,10), company_amount_tax numeric(28,10), company_amount_sum numeric(28,10), pay_type_cd nvarchar(100), pay_method_cd nvarchar(100), payee_cd nvarchar(100), payee_name nvarchar(1000), department_set_cd nvarchar(100), department_cd nvarchar(100), project_cd nvarchar(100), 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 k30t_expense_detail add primary key (system_matter_id, user_data_id, tuple_id, gadget_class, gadget_instance); alter table k30t_expense_detail add check (gadget_instance >= 0); alter table k30t_expense_detail add check (tuple_id >= 0); alter table k30t_expense_detail add check (row_number >= 0); alter table k30t_expense_detail add check (tax_rate >= 0); create table ka30t_expense_detail ( system_matter_id nvarchar(20) not null, user_data_id nvarchar(20) not null, gadget_class nvarchar(100) not null, gadget_instance numeric(18,0) not null, tuple_id numeric(18,0) not null, locale_id nvarchar(50) not null, archive_month nvarchar(6) not null, gadget_id nvarchar(220) not null, gadget_variation nvarchar(100) not null, row_number numeric(18,0) not null, occur_date datetime2, summary nvarchar(4000), exp_type_cd nvarchar(100), account_cd nvarchar(100), tax_type_cd nvarchar(100), tax_rate numeric(28,10), quantity numeric(28,10), trans_currency_cd nvarchar(100), trans_amount numeric(28,10), company_currency_cd nvarchar(100), company_rate numeric(28,10), company_amount numeric(28,10), company_amount_exc_tax numeric(28,10), company_amount_tax numeric(28,10), company_amount_sum numeric(28,10), pay_type_cd nvarchar(100), pay_method_cd nvarchar(100), payee_cd nvarchar(100), payee_name nvarchar(1000), department_set_cd nvarchar(100), department_cd nvarchar(100), project_cd nvarchar(100), exp_type_name nvarchar(1000), account_name nvarchar(1000), tax_type_name nvarchar(1000), trans_currency_name nvarchar(1000), company_currency_name nvarchar(1000), pay_type_name nvarchar(1000), payment_flag nvarchar(1), pay_method_name nvarchar(1000), department_name nvarchar(1000), project_name nvarchar(1000), 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 ka30t_expense_detail add primary key (system_matter_id, user_data_id, gadget_class, gadget_instance, tuple_id, locale_id); create index idx_ka30t_expense_detail_1 on ka30t_expense_detail (archive_month);
4.2.2. Service、Entity作成¶
次にService、Entityの作成を行います。
4.2.2.1. Service、Entityの作成¶
Service、Entityを作成します。作成方法の詳細は『intra-mart Accel Kaiden! プログラミングガイド』の「Service、Entity作成」を参照してください。
4.2.2.2. Service、Entityの配置¶
作成したService、Entityをプロジェクトに配置します。配置先のパス、およびパッケージは必要に応じて変更してください。また、必要に応じて「applicationContext.xml」を作成してください。作成方法の詳細は『intra-mart Accel Kaiden! プログラミングガイド』の「基本 - 事前準備 - 開発環境構築 - applicationContext.xmlの作成」を参照してください。(本説明では、intra-mart Accel Kaiden! ワークフローモジュールに配置した想定で作成しています。)
K30tExpenseDetail.java%ModuleProject%/src/main/generated/jp/co/slcs/kaiden/v2/product_workflow/foundation/model/entity/K30tExpenseDetail.javapackage jp.co.slcs.kaiden.v2.product_workflow.foundation.model.entity; import java.io.Serializable; import java.math.BigDecimal; import java.sql.Timestamp; import javax.persistence.Lob; 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; import jp.co.slcs.kaiden.v2.base.foundation.model.entity.GenerateEntity; /** * k30t_経費明細. * * @author Sumitomo Life Information Systems Co.,Ltd. */ @Table(name = "k30t_expense_detail") public final class K30tExpenseDetail extends GenerateEntity implements Serializable { /** シリアルバージョンUID. */ private static final long serialVersionUID = 1L; /** フィールド名[システム案件id]. */ public static final String SYSTEM_MATTER_ID = "systemMatterId"; /** フィールド名[ユーザデータid]. */ public static final String USER_DATA_ID = "userDataId"; /** フィールド名[ガジェットクラス]. */ public static final String GADGET_CLASS = "gadgetClass"; /** フィールド名[ガジェットインスタンス]. */ public static final String GADGET_INSTANCE = "gadgetInstance"; /** フィールド名[タプルid]. */ public static final String TUPLE_ID = "tupleId"; /** フィールド名[ガジェットid]. */ public static final String GADGET_ID = "gadgetId"; /** フィールド名[ガジェットバリエーション]. */ public static final String GADGET_VARIATION = "gadgetVariation"; /** フィールド名[行番号]. */ public static final String ROW_NUMBER = "rowNumber"; /** フィールド名[発生日]. */ public static final String OCCUR_DATE = "occurDate"; /** フィールド名[摘要]. */ public static final String SUMMARY = "summary"; /** フィールド名[経費区分コード]. */ public static final String EXP_TYPE_CD = "expTypeCd"; /** フィールド名[勘定科目コード]. */ public static final String ACCOUNT_CD = "accountCd"; /** フィールド名[税区分コード]. */ public static final String TAX_TYPE_CD = "taxTypeCd"; /** フィールド名[税率]. */ public static final String TAX_RATE = "taxRate"; /** フィールド名[数量]. */ public static final String QUANTITY = "quantity"; /** フィールド名[取引通貨コード]. */ public static final String TRANS_CURRENCY_CD = "transCurrencyCd"; /** フィールド名[取引通貨額]. */ public static final String TRANS_AMOUNT = "transAmount"; /** フィールド名[会社通貨コード]. */ public static final String COMPANY_CURRENCY_CD = "companyCurrencyCd"; /** フィールド名[会社通貨換算レート]. */ public static final String COMPANY_RATE = "companyRate"; /** フィールド名[会社通貨額]. */ public static final String COMPANY_AMOUNT = "companyAmount"; /** フィールド名[会社通貨税抜額]. */ public static final String COMPANY_AMOUNT_EXC_TAX = "companyAmountExcTax"; /** フィールド名[会社通貨税額]. */ public static final String COMPANY_AMOUNT_TAX = "companyAmountTax"; /** フィールド名[会社通貨額合計]. */ public static final String COMPANY_AMOUNT_SUM = "companyAmountSum"; /** フィールド名[支払分類コード]. */ public static final String PAY_TYPE_CD = "payTypeCd"; /** フィールド名[支払方法コード]. */ public static final String PAY_METHOD_CD = "payMethodCd"; /** フィールド名[支払先コード]. */ public static final String PAYEE_CD = "payeeCd"; /** フィールド名[支払先名]. */ public static final String PAYEE_NAME = "payeeName"; /** フィールド名[組織セットコード]. */ public static final String DEPARTMENT_SET_CD = "departmentSetCd"; /** フィールド名[組織コード]. */ public static final String DEPARTMENT_CD = "departmentCd"; /** フィールド名[プロジェクトコード]. */ public static final String PROJECT_CD = "projectCd"; /** フィールド名[予算期間コード]. */ public static final String BUDGET_PERIOD_CD = "budgetPeriodCd"; /** フィールド名[予算コード]. */ public static final String BUDGET_CD = "budgetCd"; /** フィールド名[連携区分]. */ public static final String RELATION_TYPE = "relationType"; /** フィールド名[連携id]. */ public static final String RELATION_ID = "relationId"; /** フィールド名[連携内容]. */ public static final String RELATION_DATA = "relationData"; /** フィールド名[連携汎用項目1]. */ public static final String RELATION_GENERIC_ITEM1 = "relationGenericItem1"; /** フィールド名[連携汎用項目2]. */ public static final String RELATION_GENERIC_ITEM2 = "relationGenericItem2"; /** フィールド名[連携汎用項目3]. */ public static final String RELATION_GENERIC_ITEM3 = "relationGenericItem3"; /** フィールド名[連携汎用項目4]. */ public static final String RELATION_GENERIC_ITEM4 = "relationGenericItem4"; /** フィールド名[連携汎用項目5]. */ public static final String RELATION_GENERIC_ITEM5 = "relationGenericItem5"; /** システム案件id. */ @PrimaryKey(generationType = GenerationType.APPLICATION) @Column(name = "system_matter_id") public String systemMatterId; /** ユーザデータid. */ @PrimaryKey(generationType = GenerationType.APPLICATION) @Column(name = "user_data_id") public String userDataId; /** ガジェットクラス. */ @PrimaryKey(generationType = GenerationType.APPLICATION) @Column(name = "gadget_class") public String gadgetClass; /** ガジェットインスタンス. */ @PrimaryKey(generationType = GenerationType.APPLICATION) @Column(name = "gadget_instance") public Long gadgetInstance; /** タプルid. */ @PrimaryKey(generationType = GenerationType.APPLICATION) @Column(name = "tuple_id") public Long tupleId; /** ガジェットid. */ @Column(name = "gadget_id") public String gadgetId; /** ガジェットバリエーション. */ @Column(name = "gadget_variation") public String gadgetVariation; /** 行番号. */ @Column(name = "row_number") public Long rowNumber; /** 発生日. */ @Column(name = "occur_date") public Timestamp occurDate; /** 摘要. */ @Column(name = "summary") public String summary; /** 経費区分コード. */ @Column(name = "exp_type_cd") public String expTypeCd; /** 勘定科目コード. */ @Column(name = "account_cd") public String accountCd; /** 税区分コード. */ @Column(name = "tax_type_cd") public String taxTypeCd; /** 税率. */ @Column(name = "tax_rate") public BigDecimal taxRate; /** 数量. */ @Column(name = "quantity") public BigDecimal quantity; /** 取引通貨コード. */ @Column(name = "trans_currency_cd") public String transCurrencyCd; /** 取引通貨額. */ @Column(name = "trans_amount") public BigDecimal transAmount; /** 会社通貨コード. */ @Column(name = "company_currency_cd") public String companyCurrencyCd; /** 会社通貨換算レート. */ @Column(name = "company_rate") public BigDecimal companyRate; /** 会社通貨額. */ @Column(name = "company_amount") public BigDecimal companyAmount; /** 会社通貨税抜額. */ @Column(name = "company_amount_exc_tax") public BigDecimal companyAmountExcTax; /** 会社通貨税額. */ @Column(name = "company_amount_tax") public BigDecimal companyAmountTax; /** 会社通貨額合計. */ @Column(name = "company_amount_sum") public BigDecimal companyAmountSum; /** 支払分類コード. */ @Column(name = "pay_type_cd") public String payTypeCd; /** 支払方法コード. */ @Column(name = "pay_method_cd") public String payMethodCd; /** 支払先コード. */ @Column(name = "payee_cd") public String payeeCd; /** 支払先名. */ @Column(name = "payee_name") public String payeeName; /** 組織セットコード. */ @Column(name = "department_set_cd") public String departmentSetCd; /** 組織コード. */ @Column(name = "department_cd") public String departmentCd; /** プロジェクトコード. */ @Column(name = "project_cd") public String projectCd; /** 予算期間コード. */ @Column(name = "budget_period_cd") public String budgetPeriodCd; /** 予算コード. */ @Column(name = "budget_cd") public String budgetCd; /** 連携区分. */ @Column(name = "relation_type") public String relationType; /** 連携id. */ @Column(name = "relation_id") public String relationId; /** 連携内容. */ @Lob @Column(name = "relation_data") public String relationData; /** 連携汎用項目1. */ @Lob @Column(name = "relation_generic_item1") public String relationGenericItem1; /** 連携汎用項目2. */ @Lob @Column(name = "relation_generic_item2") public String relationGenericItem2; /** 連携汎用項目3. */ @Lob @Column(name = "relation_generic_item3") public String relationGenericItem3; /** 連携汎用項目4. */ @Lob @Column(name = "relation_generic_item4") public String relationGenericItem4; /** 連携汎用項目5. */ @Lob @Column(name = "relation_generic_item5") public String relationGenericItem5; } Ka30tExpenseDetail.java%ModuleProject%/src/main/generated/jp/co/slcs/kaiden/v2/product_workflow/foundation/model/entity/Ka30tExpenseDetail.javapackage jp.co.slcs.kaiden.v2.product_workflow.foundation.model.entity; import java.io.Serializable; import java.math.BigDecimal; import java.sql.Timestamp; import javax.persistence.Lob; 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; import jp.co.slcs.kaiden.v2.base.foundation.model.entity.GenerateEntity; /** * k30ta_経費明細. * * @author Sumitomo Life Information Systems Co.,Ltd. */ @Table(name = "ka30t_expense_detail") public final class Ka30tExpenseDetail extends GenerateEntity implements Serializable { /** シリアルバージョンUID. */ private static final long serialVersionUID = 1L; /** フィールド名[システム案件id]. */ public static final String SYSTEM_MATTER_ID = "systemMatterId"; /** フィールド名[ユーザデータid]. */ public static final String USER_DATA_ID = "userDataId"; /** フィールド名[ガジェットクラス]. */ public static final String GADGET_CLASS = "gadgetClass"; /** フィールド名[ガジェットインスタンス]. */ public static final String GADGET_INSTANCE = "gadgetInstance"; /** フィールド名[タプルid]. */ public static final String TUPLE_ID = "tupleId"; /** フィールド名[ロケールid]. */ public static final String LOCALE_ID = "localeId"; /** フィールド名[アーカイブ年月]. */ public static final String ARCHIVE_MONTH = "archiveMonth"; /** フィールド名[ガジェットid]. */ public static final String GADGET_ID = "gadgetId"; /** フィールド名[ガジェットバリエーション]. */ public static final String GADGET_VARIATION = "gadgetVariation"; /** フィールド名[行番号]. */ public static final String ROW_NUMBER = "rowNumber"; /** フィールド名[発生日]. */ public static final String OCCUR_DATE = "occurDate"; /** フィールド名[摘要]. */ public static final String SUMMARY = "summary"; /** フィールド名[経費区分コード]. */ public static final String EXP_TYPE_CD = "expTypeCd"; /** フィールド名[勘定科目コード]. */ public static final String ACCOUNT_CD = "accountCd"; /** フィールド名[税区分コード]. */ public static final String TAX_TYPE_CD = "taxTypeCd"; /** フィールド名[税率]. */ public static final String TAX_RATE = "taxRate"; /** フィールド名[数量]. */ public static final String QUANTITY = "quantity"; /** フィールド名[取引通貨コード]. */ public static final String TRANS_CURRENCY_CD = "transCurrencyCd"; /** フィールド名[取引通貨額]. */ public static final String TRANS_AMOUNT = "transAmount"; /** フィールド名[会社通貨コード]. */ public static final String COMPANY_CURRENCY_CD = "companyCurrencyCd"; /** フィールド名[会社通貨換算レート]. */ public static final String COMPANY_RATE = "companyRate"; /** フィールド名[会社通貨額]. */ public static final String COMPANY_AMOUNT = "companyAmount"; /** フィールド名[会社通貨税抜額]. */ public static final String COMPANY_AMOUNT_EXC_TAX = "companyAmountExcTax"; /** フィールド名[会社通貨税額]. */ public static final String COMPANY_AMOUNT_TAX = "companyAmountTax"; /** フィールド名[会社通貨額合計]. */ public static final String COMPANY_AMOUNT_SUM = "companyAmountSum"; /** フィールド名[支払分類コード]. */ public static final String PAY_TYPE_CD = "payTypeCd"; /** フィールド名[支払方法コード]. */ public static final String PAY_METHOD_CD = "payMethodCd"; /** フィールド名[支払先コード]. */ public static final String PAYEE_CD = "payeeCd"; /** フィールド名[支払先名]. */ public static final String PAYEE_NAME = "payeeName"; /** フィールド名[組織セットコード]. */ public static final String DEPARTMENT_SET_CD = "departmentSetCd"; /** フィールド名[組織コード]. */ public static final String DEPARTMENT_CD = "departmentCd"; /** フィールド名[プロジェクトコード]. */ public static final String PROJECT_CD = "projectCd"; /** フィールド名[経費区分名]. */ public static final String EXP_TYPE_NAME = "expTypeName"; /** フィールド名[勘定科目名]. */ public static final String ACCOUNT_NAME = "accountName"; /** フィールド名[税区分名]. */ public static final String TAX_TYPE_NAME = "taxTypeName"; /** フィールド名[取引通貨名]. */ public static final String TRANS_CURRENCY_NAME = "transCurrencyName"; /** フィールド名[会社通貨名]. */ public static final String COMPANY_CURRENCY_NAME = "companyCurrencyName"; /** フィールド名[支払分類名]. */ public static final String PAY_TYPE_NAME = "payTypeName"; /** フィールド名[立替フラグ]. */ public static final String PAYMENT_FLAG = "paymentFlag"; /** フィールド名[支払方法名]. */ public static final String PAY_METHOD_NAME = "payMethodName"; /** フィールド名[組織名]. */ public static final String DEPARTMENT_NAME = "departmentName"; /** フィールド名[プロジェクト名]. */ public static final String PROJECT_NAME = "projectName"; /** フィールド名[予算期間コード]. */ public static final String BUDGET_PERIOD_CD = "budgetPeriodCd"; /** フィールド名[予算コード]. */ public static final String BUDGET_CD = "budgetCd"; /** フィールド名[連携区分]. */ public static final String RELATION_TYPE = "relationType"; /** フィールド名[連携id]. */ public static final String RELATION_ID = "relationId"; /** フィールド名[連携内容]. */ public static final String RELATION_DATA = "relationData"; /** フィールド名[連携汎用項目1]. */ public static final String RELATION_GENERIC_ITEM1 = "relationGenericItem1"; /** フィールド名[連携汎用項目2]. */ public static final String RELATION_GENERIC_ITEM2 = "relationGenericItem2"; /** フィールド名[連携汎用項目3]. */ public static final String RELATION_GENERIC_ITEM3 = "relationGenericItem3"; /** フィールド名[連携汎用項目4]. */ public static final String RELATION_GENERIC_ITEM4 = "relationGenericItem4"; /** フィールド名[連携汎用項目5]. */ public static final String RELATION_GENERIC_ITEM5 = "relationGenericItem5"; /** システム案件id. */ @PrimaryKey(generationType = GenerationType.APPLICATION) @Column(name = "system_matter_id") public String systemMatterId; /** ユーザデータid. */ @PrimaryKey(generationType = GenerationType.APPLICATION) @Column(name = "user_data_id") public String userDataId; /** ガジェットクラス. */ @PrimaryKey(generationType = GenerationType.APPLICATION) @Column(name = "gadget_class") public String gadgetClass; /** ガジェットインスタンス. */ @PrimaryKey(generationType = GenerationType.APPLICATION) @Column(name = "gadget_instance") public Long gadgetInstance; /** タプルid. */ @PrimaryKey(generationType = GenerationType.APPLICATION) @Column(name = "tuple_id") public Long tupleId; /** ロケールid. */ @PrimaryKey(generationType = GenerationType.APPLICATION) @Column(name = "locale_id") public String localeId; /** アーカイブ年月. */ @Column(name = "archive_month") public String archiveMonth; /** ガジェットid. */ @Column(name = "gadget_id") public String gadgetId; /** ガジェットバリエーション. */ @Column(name = "gadget_variation") public String gadgetVariation; /** 行番号. */ @Column(name = "row_number") public Long rowNumber; /** 発生日. */ @Column(name = "occur_date") public Timestamp occurDate; /** 摘要. */ @Column(name = "summary") public String summary; /** 経費区分コード. */ @Column(name = "exp_type_cd") public String expTypeCd; /** 勘定科目コード. */ @Column(name = "account_cd") public String accountCd; /** 税区分コード. */ @Column(name = "tax_type_cd") public String taxTypeCd; /** 税率. */ @Column(name = "tax_rate") public BigDecimal taxRate; /** 数量. */ @Column(name = "quantity") public BigDecimal quantity; /** 取引通貨コード. */ @Column(name = "trans_currency_cd") public String transCurrencyCd; /** 取引通貨額. */ @Column(name = "trans_amount") public BigDecimal transAmount; /** 会社通貨コード. */ @Column(name = "company_currency_cd") public String companyCurrencyCd; /** 会社通貨換算レート. */ @Column(name = "company_rate") public BigDecimal companyRate; /** 会社通貨額. */ @Column(name = "company_amount") public BigDecimal companyAmount; /** 会社通貨税抜額. */ @Column(name = "company_amount_exc_tax") public BigDecimal companyAmountExcTax; /** 会社通貨税額. */ @Column(name = "company_amount_tax") public BigDecimal companyAmountTax; /** 会社通貨額合計. */ @Column(name = "company_amount_sum") public BigDecimal companyAmountSum; /** 支払分類コード. */ @Column(name = "pay_type_cd") public String payTypeCd; /** 支払方法コード. */ @Column(name = "pay_method_cd") public String payMethodCd; /** 支払先コード. */ @Column(name = "payee_cd") public String payeeCd; /** 支払先名. */ @Column(name = "payee_name") public String payeeName; /** 組織セットコード. */ @Column(name = "department_set_cd") public String departmentSetCd; /** 組織コード. */ @Column(name = "department_cd") public String departmentCd; /** プロジェクトコード. */ @Column(name = "project_cd") public String projectCd; /** 経費区分名. */ @Column(name = "exp_type_name") public String expTypeName; /** 勘定科目名. */ @Column(name = "account_name") public String accountName; /** 税区分名. */ @Column(name = "tax_type_name") public String taxTypeName; /** 取引通貨名. */ @Column(name = "trans_currency_name") public String transCurrencyName; /** 会社通貨名. */ @Column(name = "company_currency_name") public String companyCurrencyName; /** 支払分類名. */ @Column(name = "pay_type_name") public String payTypeName; /** 立替フラグ. */ @Column(name = "payment_flag") public String paymentFlag; /** 支払方法名. */ @Column(name = "pay_method_name") public String payMethodName; /** 組織名. */ @Column(name = "department_name") public String departmentName; /** プロジェクト名. */ @Column(name = "project_name") public String projectName; /** 予算期間コード. */ @Column(name = "budget_period_cd") public String budgetPeriodCd; /** 予算コード. */ @Column(name = "budget_cd") public String budgetCd; /** 連携区分. */ @Column(name = "relation_type") public String relationType; /** 連携id. */ @Column(name = "relation_id") public String relationId; /** 連携内容. */ @Lob @Column(name = "relation_data") public String relationData; /** 連携汎用項目1. */ @Lob @Column(name = "relation_generic_item1") public String relationGenericItem1; /** 連携汎用項目2. */ @Lob @Column(name = "relation_generic_item2") public String relationGenericItem2; /** 連携汎用項目3. */ @Lob @Column(name = "relation_generic_item3") public String relationGenericItem3; /** 連携汎用項目4. */ @Lob @Column(name = "relation_generic_item4") public String relationGenericItem4; /** 連携汎用項目5. */ @Lob @Column(name = "relation_generic_item5") public String relationGenericItem5; } K30tExpenseDetailService.java%ModuleProject%/src/main/generated/jp/co/slcs/kaiden/v2/product_workflow/foundation/model/service/K30tExpenseDetailService.javapackage jp.co.slcs.kaiden.v2.product_workflow.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.service.GenerateService; import jp.co.slcs.kaiden.v2.product_workflow.foundation.model.entity.K30tExpenseDetail; /** * {@link K30tExpenseDetail}のサービスクラス. * * @author Sumitomo Life Information Systems Co.,Ltd. */ @Component @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public final class K30tExpenseDetailService extends GenerateService<K30tExpenseDetail> { // } Ka30tExpenseDetailService.java%ModuleProject%/src/main/generated/jp/co/slcs/kaiden/v2/product_workflow/foundation/model/service/Ka30tExpenseDetailService.javapackage jp.co.slcs.kaiden.v2.product_workflow.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.service.GenerateService; import jp.co.slcs.kaiden.v2.product_workflow.foundation.model.entity.Ka30tExpenseDetail; /** * {@link Ka30tExpenseDetail}のサービスクラス. * * @author Sumitomo Life Information Systems Co.,Ltd. */ @Component @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public final class Ka30tExpenseDetailService extends GenerateService<Ka30tExpenseDetail> { // }
4.2.3. GadgetBuilder定義作成¶
続いて、GadgetBuilder定義を作成します。
4.2.3.1. GadgetBuilder定義ファイル作成¶
定義用のファイルを作成します。ファイル名は必ず「%ガジェットクラス%_%ガジェットバリエーション%.xml(expenseDetail_v01.xml)」とします。配置先%ModuleProject%/src/main/storage/public/kaiden/generic/gadget/expenseDetail_v01.xmlコラム
システムストレージにGadgetBuilder定義(XMLファイル)を配置する場合、ガジェットのインポート時にパブリックストレージにコピーしてください。ガジェットインポートのジョブは、「%パブリックストレージ%/kaiden/generic/gadget」フォルダに配置されたGadgetBuilder定義をインポートします。内容<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <gadgetBuilderSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/gadgetBuilderSettings"> <gadgetClass>expenseDetail</gadgetClass> <gadgetVariation>v01</gadgetVariation> <jspPath>/WEB-INF/views/kaiden/v2/extension_imw/generic/gadget/generic_v01.jsp</jspPath> <javaPath>jp.co.slcs.kaiden.v2.extension_imw.feature.logic.kaiden.gadget.builder.impl.GadgetBuilderLogic</javaPath> <sortKey>51001</sortKey> <surfaceKey>chapterTitle</surfaceKey> <descriptions> <description localeId="en" gadgetName="Expenses Particulars" description="Enter Expenses Particulars.
Only Japanese Yen is available."/> <description localeId="ja" gadgetName="経費明細" description="経費明細の入力を行います。
日本円のみ利用可能です。"/> <description localeId="zh_CN" gadgetName="经费明细" description="输入经费明细。
只可使用日元。"/> </descriptions> <!-- <args> <arg key="template" value="true"/> </args> --> <blocks> <block id="expenseDetail" type="DETAIL" surfaceKey="chapterTitle"> <service basic="k30tExpenseDetailService" archive="ka30tExpenseDetailService"> <sqls> <sql id="init" path="META-INF/sql/jp/co/slcs/kaiden/v2/generic/gadget/ExpenseDetail.sql"/> <sql id="copy" path="META-INF/sql/jp/co/slcs/kaiden/v2/generic/gadget/ExpenseDetail.sql"/> <sql id="merge" path="META-INF/sql/jp/co/slcs/kaiden/v2/generic/gadget/ExpenseDetail.sql"/> <sql id="archive" path="META-INF/sql/jp/co/slcs/kaiden/v2/generic/gadget/ExpenseDetail.sql"/> <sql id="select" path="META-INF/sql/jp/co/slcs/kaiden/v2/generic/gadget/ExpenseDetail.sql"/> </sqls> </service> <groups> <group id="rowNumber" surfaceKey="rowNumber" requiredType="ALWAYS_ANY" inputType="LABEL"> <args> <arg key="style_pc" value="text-align:center;"/> </args> <fields> <field id="rowNumber" surfaceKey="rowNumber" requiredType="INHERIT" inputType="INHERIT" type="PANEL"> <!-- <args> <arg key="header" value="true"/> <arg key="headerAllowAdd" value="true"/> <arg key="headerAllowDel" value="true"/> <arg key="detail" value="true"/> <arg key="detailAllowAdd" value="true"/> <arg key="detailAllowDel" value="true"/> </args> --> </field> <field id="imwApplyBaseDate" surfaceKey="imwApplyBaseDate" requiredType="ALWAYS_ANY" inputType="INHERIT" type="DTO"/> <field id="searchCriteriaCompany" surfaceKey="searchCriteriaCompany" requiredType="ALWAYS_ANY" inputType="INHERIT" type="DTO"/> <field id="payMethodCd" surfaceKey="payMethod" requiredType="INHERIT" inputType="INHERIT" type="TEXT_HIDDEN"/> </fields> </group> <group id="occurDate" surfaceKey="occurDate" requiredType="ALWAYS_REQ" inputType="CONFIG"> <fields> <field id="occurDate" surfaceKey="occurDate" requiredType="INHERIT" inputType="INHERIT" type="TEXT_DATE"> <args> <arg key="class" value="kaiden-template-target" /> <arg key="style_pc" value="max-width:70px; width:calc(100% - 40px);"/> <arg key="title" value="occurDate"/> <arg key="placeholder" value="occurDate"/> <arg key="autoFormat" value="true"/> </args> <validates> <validate event="default" config="{'id':'date'}"/> </validates> </field> <field id="businessTripStartDate" surfaceKey="businessTripStartDate" requiredType="ALWAYS_ANY" inputType="INHERIT" type="TEXT_HIDDEN"/> <field id="businessTripEndDate" surfaceKey="businessTripEndDate" requiredType="ALWAYS_ANY" inputType="INHERIT" type="TEXT_HIDDEN"/> </fields> </group> <group id="summary" surfaceKey="summary" requiredType="SETTING_REQ" inputType="CONFIG"> <fields> <field id="summary" surfaceKey="summary" requiredType="INHERIT" inputType="INHERIT" type="TEXT"> <args> <arg key="maxlength" value="250"/> <arg key="class" value="kaiden-template-target" /> <arg key="style_pc" value="width:calc(100% - 10px);"/> <arg key="title" value="summary"/> <arg key="placeholder" value="summary"/> </args> <validates> <validate event="default" config="{'id':'maxLength', 'args':'250'}"/> </validates> </field> </fields> </group> <group id="expType" surfaceKey="expType" requiredType="ALWAYS_REQ" inputType="CONFIG"> <fields> <field id="expTypeCd" surfaceKey="expType" requiredType="INHERIT" inputType="INHERIT" type="MASTER"> <args> <arg key="masterId" value="exp_type_filtering"/> <arg key="extensionId" value="expenseDetail"/> <arg key="searchType" value="search"/> <arg key="viewName" value="expTypeName"/> <arg key="criteria" value="{'searchCriteriaDate':'imwApplyBaseDate','searchCriteriaCompany':'searchCriteriaCompany','expTypeCd':'expTypeCd','filteringType':'gadget,contents','filterGadgetClass':'expenseDetail','filterGadgetVariation':'v01','filterContentsId':'imwContentsId','includeBlank':'false'}"/> <arg key="resultChain" value="{'expTypeCd':'expTypeCd','expTypeName':'expTypeName','accountCd':'accountCd','accountName':'accountName','taxTypeCd':'taxTypeCd','taxTypeName':'taxTypeName','taxRate':'taxRate'}"/> <arg key="resultValue" value="expTypeName"/> <arg key="primaryTarget" value="expTypeCd"/> <arg key="tmtableId" value="expenseDetail"/> <arg key="refreshTarget" value="imwApplyBaseDate,searchCriteriaCompany"/> <arg key="class" value="kaiden-template-target" /> <arg key="style_pc" value="width:calc(40% - 35px);"/> <arg key="title" value="expType"/> <arg key="placeholder" value="expType"/> <!-- <arg key="listRefresh" value="true"/> --> <!-- <arg key="ajaxRefresh" value="false"/> --> <arg key="batchRefresh" value="true"/> </args> <validates> <validate event="default" target="SERVER" config="{'id':'masterBuilderExists', 'args':{'masterId':'exp_type_filtering', 'extensionId':'expenseDetail', 'searchCriteriaDate':'imwApplyBaseDate', 'searchCriteriaCompany':'searchCriteriaCompany', 'expTypeCd':'expTypeCd','filteringType':'gadget,contents','filterGadgetClass':'expenseDetail','filterGadgetVariation':'v01','filterContentsId':'imwContentsId'}}"/> </validates> </field> <field id="imwContentsId" surfaceKey="imwContentsId" requiredType="ALWAYS_ANY" inputType="INHERIT" type="DTO"/> <field id="accountCd" surfaceKey="account" requiredType="INHERIT" inputType="INHERIT" type="TEXT_HIDDEN"> <validates> <validate event="default" target="SERVER" config="{'id':'masterBuilderExists', 'args':{'masterId':'account', 'extensionId':'expenseDetail', 'searchCriteriaDate':'imwApplyBaseDate', 'searchCriteriaCompany':'searchCriteriaCompany', 'accountCd':'accountCd'}}"/> </validates> </field> <field id="accountName" surfaceKey="account" requiredType="ALWAYS_ANY" inputType="INHERIT" type="TEXT"> <args> <arg key="class_pc" value="kaiden-ui-dummy-text"/> <arg key="style_pc" value="width:calc(30% - 15px);"/> <arg key="title" value="account"/> <arg key="placeholder" value="account"/> <arg key="readonly" value="true"/> </args> </field> <field id="taxTypeCd" surfaceKey="taxType" requiredType="INHERIT" inputType="INHERIT" type="TEXT_HIDDEN"> <validates> <validate event="default" target="SERVER" config="{'id':'masterBuilderExists', 'args':{'masterId':'tax_type', 'extensionId':'expenseDetail', 'searchCriteriaDate':'imwApplyBaseDate', 'searchCriteriaCompany':'searchCriteriaCompany', 'taxTypeCd':'taxTypeCd'}}"/> </validates> </field> <field id="taxTypeName" surfaceKey="taxType" requiredType="ALWAYS_ANY" inputType="INHERIT" type="TEXT"> <args> <arg key="class_pc" value="kaiden-ui-dummy-text"/> <arg key="style_pc" value="width:calc(30% - 15px);"/> <arg key="title" value="taxType"/> <arg key="placeholder" value="taxType"/> <arg key="readonly" value="true"/> </args> </field> <field id="taxRate" surfaceKey="taxRate" requiredType="INHERIT" inputType="INHERIT" type="TEXT_HIDDEN"> <args> <arg key="event" value="change"/> </args> </field> </fields> </group> <group id="department" surfaceKey="department" requiredType="ALWAYS_ANY" inputType="CONFIG"> <fields> <field id="departmentSetCd" surfaceKey="departmentSet" requiredType="INHERIT" inputType="INHERIT" type="TEXT_HIDDEN"/> <field id="departmentCd" surfaceKey="department" requiredType="INHERIT" inputType="INHERIT" type="MASTER"> <args> <arg key="masterId" value="department"/> <arg key="extensionId" value="expenseDetail"/> <arg key="searchType" value="search"/> <arg key="viewName" value="departmentName"/> <arg key="criteria" value="{'searchCriteriaDate':'imwApplyBaseDate','searchCriteriaCompany':'searchCriteriaCompany','departmentSetCd':'searchCriteriaCompany','departmentCd':'departmentCd','includeBlank':'true'}"/> <arg key="resultChain" value="{'departmentCd':'departmentCd','departmentName':'departmentName','departmentSetCd':'departmentSetCd'}"/> <arg key="resultValue" value="departmentName"/> <arg key="primaryTarget" value="departmentSetCd,departmentCd"/> <arg key="tmtableId" value="expenseDetail"/> <arg key="refreshTarget" value="imwApplyBaseDate,searchCriteriaCompany"/> <arg key="class" value="kaiden-template-target" /> <arg key="style_pc" value="width:calc(100% - 35px);"/> <arg key="title" value="department"/> <arg key="placeholder" value="department"/> <!-- <arg key="listRefresh" value="true"/> --> <!-- <arg key="ajaxRefresh" value="false"/> --> <arg key="batchRefresh" value="true"/> </args> <validates> <validate event="apply" target="ALWAYS" config="{'id':'requiredAny', 'args':['departmentCd','projectCd']}"/> <validate event="reapply" target="ALWAYS" config="{'id':'requiredAny', 'args':['departmentCd','projectCd']}"/> <validate event="process" target="ALWAYS" config="{'id':'requiredAny', 'args':['departmentCd','projectCd']}"/> <validate event="applysp" target="ALWAYS" config="{'id':'requiredAny', 'args':['departmentCd','projectCd']}"/> <validate event="reapplysp" target="ALWAYS" config="{'id':'requiredAny', 'args':['departmentCd','projectCd']}"/> <validate event="processsp" target="ALWAYS" config="{'id':'requiredAny', 'args':['departmentCd','projectCd']}"/> <validate event="default" target="SERVER" config="{'id':'masterBuilderExists', 'args':{'masterId':'department', 'extensionId':'expenseDetail', 'searchCriteriaDate':'imwApplyBaseDate', 'searchCriteriaCompany':'searchCriteriaCompany', 'departmentSetCd':'searchCriteriaCompany','departmentCd':'departmentCd'}}"/> </validates> </field> </fields> </group> <group id="project" surfaceKey="project" requiredType="ALWAYS_ANY" inputType="CONFIG"> <fields> <field id="projectCd" surfaceKey="project" requiredType="INHERIT" inputType="INHERIT" type="MASTER"> <args> <arg key="masterId" value="project_workflow"/> <arg key="extensionId" value="expenseDetail"/> <arg key="searchType" value="search"/> <arg key="viewName" value="projectName"/> <arg key="criteria" value="{'searchCriteriaDate':'imwApplyBaseDate','searchCriteriaCompany':'searchCriteriaCompany','projectCd':'projectCd','includeBlank':'true'}"/> <arg key="resultChain" value="{'projectCd':'projectCd','projectName':'projectName'}"/> <arg key="resultValue" value="projectName"/> <arg key="primaryTarget" value="projectCd"/> <arg key="tmtableId" value="expenseDetail"/> <arg key="refreshTarget" value="imwApplyBaseDate,searchCriteriaCompany"/> <arg key="class" value="kaiden-template-target" /> <arg key="style_pc" value="width:calc(100% - 35px);"/> <arg key="title" value="project"/> <arg key="placeholder" value="project"/> <!-- <arg key="listRefresh" value="true"/> --> <!-- <arg key="ajaxRefresh" value="false"/> --> <arg key="batchRefresh" value="true"/> </args> <validates> <validate event="apply" target="ALWAYS" config="{'id':'requiredAny', 'args':['departmentCd','projectCd']}"/> <validate event="reapply" target="ALWAYS" config="{'id':'requiredAny', 'args':['departmentCd','projectCd']}"/> <validate event="process" target="ALWAYS" config="{'id':'requiredAny', 'args':['departmentCd','projectCd']}"/> <validate event="applysp" target="ALWAYS" config="{'id':'requiredAny', 'args':['departmentCd','projectCd']}"/> <validate event="reapplysp" target="ALWAYS" config="{'id':'requiredAny', 'args':['departmentCd','projectCd']}"/> <validate event="processsp" target="ALWAYS" config="{'id':'requiredAny', 'args':['departmentCd','projectCd']}"/> <validate event="default" target="SERVER" config="{'id':'masterBuilderExists', 'args':{'masterId':'project_workflow', 'extensionId':'expenseDetail', 'searchCriteriaDate':'imwApplyBaseDate', 'searchCriteriaCompany':'searchCriteriaCompany', 'projectCd':'projectCd'}}"/> </validates> </field> </fields> </group> <group id="payType" surfaceKey="payType" requiredType="ALWAYS_REQ" inputType="CONFIG"> <fields> <field id="payTypeCd" surfaceKey="payType" requiredType="INHERIT" inputType="INHERIT" type="MASTER"> <args> <arg key="masterId" value="pay_type"/> <arg key="extensionId" value="expenseDetail"/> <arg key="searchType" value="select"/> <arg key="viewName" value="payTypeName"/> <arg key="criteria" value="{'searchCriteriaDate':'imwApplyBaseDate','searchCriteriaCompany':'searchCriteriaCompany','payTypeCd':'payTypeCd','includeBlank':'false'}"/> <arg key="resultChain" value="{'payTypeCd':'payTypeCd','payTypeName':'payTypeName','paymentFlag':'paymentFlag'}"/> <arg key="resultValue" value="payTypeName"/> <arg key="primaryTarget" value="payTypeCd"/> <arg key="tmtableId" value="expenseDetail"/> <arg key="refreshTarget" value="imwApplyBaseDate,searchCriteriaCompany"/> <arg key="class" value="kaiden-template-target" /> <arg key="style_pc" value="width:calc(100% - 10px);"/> <arg key="title" value="payType"/> <arg key="placeholder" value="payType"/> <!-- <arg key="listRefresh" value="true"/> --> <!-- <arg key="ajaxRefresh" value="false"/> --> <arg key="batchRefresh" value="true"/> </args> <validates> <validate event="default" target="SERVER" config="{'id':'masterBuilderExists', 'args':{'masterId':'pay_type', 'extensionId':'expenseDetail', 'searchCriteriaDate':'imwApplyBaseDate', 'searchCriteriaCompany':'searchCriteriaCompany', 'payTypeCd':'payTypeCd'}}"/> </validates> </field> <field id="paymentFlag" surfaceKey="paymentFlag" requiredType="INHERIT" inputType="INHERIT" type="TEXT_HIDDEN"/> </fields> </group> <group id="payee" surfaceKey="payee" requiredType="SETTING_ANY" inputType="CONFIG"> <fields> <field id="payeeName" surfaceKey="payee" requiredType="INHERIT" inputType="INHERIT" type="TEXT"> <args> <arg key="maxlength" value="250"/> <arg key="class" value="kaiden-template-target" /> <arg key="style_pc" value="width:calc(100% - 10px);"/> <arg key="title" value="payee"/> <arg key="placeholder" value="payee"/> </args> <validates> <validate event="default" config="{'id':'maxLength', 'args':'250'}"/> </validates> </field> </fields> </group> <group id="transAmount" surfaceKey="transAmount" requiredType="ALWAYS_REQ" inputType="CONFIG"> <fields> <field id="transAmount" surfaceKey="transAmount" requiredType="INHERIT" inputType="INHERIT" type="TEXT_NUMERIC"> <args> <arg key="class" value="kaiden-template-target" /> <arg key="style_pc" value="width:calc(100% - 10px);"/> <arg key="title" value="transAmount"/> <arg key="placeholder" value="transAmount"/> <arg key="amount" value="true"/> <arg key="event" value="change"/> </args> <validates> <validate event="default" config="{'id':'currencyAmnt2', 'args':['','searchCriteriaCompany']}"/> <validate event="default" config="{'id':'amountMin', 'args':'0'}"/> </validates> </field> <field id="transCurrencyCd" surfaceKey="transCurrency" requiredType="ALWAYS_ANY" inputType="INHERIT" type="TEXT_HIDDEN"/> <field id="companyRate" surfaceKey="companyRate" requiredType="INHERIT" inputType="INHERIT" type="TEXT_HIDDEN"/> <field id="companyAmount" surfaceKey="companyAmount" requiredType="ALWAYS_ANY" inputType="INHERIT" type="TEXT_HIDDEN"/> <field id="companyCurrencyCd" surfaceKey="companyCurrency" requiredType="ALWAYS_ANY" inputType="INHERIT" type="DTO"/> <field id="quantity" surfaceKey="quantity" requiredType="INHERIT" inputType="INHERIT" type="TEXT_HIDDEN"/> <field id="companyAmountSum" surfaceKey="companyAmountSum" requiredType="INHERIT" inputType="INHERIT" type="TEXT_HIDDEN"/> <field id="companyAmountExcTax" surfaceKey="companyAmountExcTax" requiredType="INHERIT" inputType="INHERIT" type="TEXT_HIDDEN"/> <field id="companyAmountTax" surfaceKey="companyAmountTax" requiredType="INHERIT" inputType="INHERIT" type="TEXT_HIDDEN"/> </fields> </group> <group id="fileTaregt" surfaceKey="PWKF.master.file.file" requiredType="ALWAYS_ANY" inputType="CONFIG"> <fields> <field id="fileTaregt" surfaceKey="PWKF.master.file.file" requiredType="INHERIT" inputType="INHERIT" type="TEXT_HIDDEN" mode="searchFile_v01"> <validates> <validate event="default" config="{'id':'fileValidate'}" target="CLIENT" /> </validates> </field> </fields> </group> </groups> <table rowNumberTarget="rowNumber" type="HORIZONTAL"> <colgroups> <colgroup style="width:50px; overflow:hidden"/> <colgroup style="overflow:hidden"/> <colgroup style="width:23%; overflow:hidden"/> <colgroup style="width:23%; overflow:hidden"/> <colgroup style="width:23%; overflow:hidden"/> </colgroups> <rows> <row> <cols> <col groupId="rowNumber" rowspan="4"/> <col groupId="occurDate"/> <col groupId="summary" colspan="3"/> </cols> </row> <row> <cols> <col groupId="expType" colspan="2"/> <col groupId="department"/> <col groupId="project"/> </cols> </row> <row> <cols> <col groupId="payType"/> <col groupId="payee" colspan="2"/> <col groupId="transAmount"/> </cols> </row> <row> <cols> <col groupId="fileTaregt" colspan="4"/> </cols> </row> </rows> </table> <completions> <completion name="departmentSetCd" position="1" type="claimValueOnInit" args="{'claim':'claimDefaultDepartmentSetCd', 'target':'1'}" target="CLIENT" mode="EMPTY"/> <completion name="departmentCd" position="1" type="claimValueOnInit" args="{'claim':'claimDefaultDepartmentCd', 'target':'1'}" target="CLIENT" mode="EMPTY"/> <completion name="projectCd" position="1" type="claimValueOnInit" args="{'claim':'claimDefaultProjectCd', 'target':'1'}" target="CLIENT" mode="EMPTY"/> <completion name="departmentSetCd" position="1" type="claimValueAddRow" args="{'claim':'claimDefaultDepartmentSetCd', 'target':'1'}" target="CLIENT" mode="EMPTY"/> <completion name="departmentCd" position="1" type="claimValueAddRow" args="{'claim':'claimDefaultDepartmentCd', 'target':'1'}" target="CLIENT" mode="EMPTY"/> <completion name="projectCd" position="1" type="claimValueAddRow" args="{'claim':'claimDefaultProjectCd', 'target':'1'}" target="CLIENT" mode="EMPTY"/> <completion name="payMethodCd" position="1" type="claimValue" args="{'claim':'claimPayMethod'}" target="ALWAYS" mode="ALWAYS"/> <completion name="transCurrencyCd" position="2" type="variable" args="{'field':'companyCurrencyCd'}" target="ALWAYS" mode="ALWAYS"/> <completion name="companyRate" position="3" type="fixed" args="{'value':'1'}" target="ALWAYS" mode="EMPTY"/> <completion name="companyAmount" position="4" type="variable" args="{'field':'transAmount'}" target="ALWAYS" mode="ALWAYS"/> <completion name="quantity" position="5" type="fixed" args="{'value':'1'}" target="ALWAYS" mode="EMPTY"/> <completion name="companyAmountSum" position="6" type="calcMul" args="{'field1':'companyAmount','field2':'quantity','round':'4','digits':'0'}" target="ALWAYS" mode="ALWAYS"/> <completion name="companyAmountTax" position="7" type="calcTax" args="{'amount':'companyAmountSum','taxRate':'taxRate','round':'4','digits':'0'}" target="ALWAYS" mode="ALWAYS"/> <completion name="companyAmountExcTax" position="8" type="calcSub" args="{'field1':'companyAmountSum','field2':'companyAmountTax','round':'4','digits':'0'}" target="ALWAYS" mode="ALWAYS"/> <completion name="businessTripStartDate" position="10" type="claimValue" args="{'claim':'claimBusinessTripStartDate','target':'0'}" target="ALWAYS" mode="ALWAYS"/> <completion name="businessTripEndDate" position="10" type="claimValue" args="{'claim':'claimBusinessTripEndDate','target':'0'}" target="ALWAYS" mode="ALWAYS"/> </completions> <claims> <claim name="claimExpenseAmount" type="claimAmountSummary" args="{'amount':'companyAmountSum'}"/> <claim name="claimTemporaryPayAmount" type="claimAmountSummary" args="{'amount':'companyAmountSum','paymentFlag':'paymentFlag','payment':'1'}"/> <claim name="claimCompanyPayAmount" type="claimAmountSummary" args="{'amount':'companyAmountSum','paymentFlag':'paymentFlag','payment':'0'}"/> <claim name="claimDateDetail" type="claimColumnValuesList" args="{'field1':'occurDate','field2':'occurDate'}"/> <claim name="claimExpenseDetail" type="claimColumnValuesList" args="{'field1':'companyAmountSum'}"/> <claim name="claimExpenceCount" type="claimRowCount" args=""/> <claim name="loadData4Settle" type="claimSearchData" args="{'systemMatterId':'imwSystemMatterId', 'userDataId':'imwUserDataId', 'gadgetClass':'gadgetClass', 'gadgetVariation':'gadgetVariation'}" target="CLIENT"/> <claim name="claimDetailDataList" type="claimColumnValuesMapList" args="{ 'occurDate' : 'occurDate', 'expTypeCd' : 'expTypeCd', 'accountCd' : 'accountCd', 'taxTypeCd' : 'taxTypeCd', 'departmentSetCd' : 'departmentSetCd', 'departmentCd' : 'departmentCd', 'projectCd' : 'projectCd', 'taxRate' : 'taxRate', 'quantity' : 'quantity', 'transCurrencyCd' : 'transCurrencyCd', 'transAmount' : 'transAmount', 'companyCurrencyCd' : 'companyCurrencyCd', 'companyRate' : 'companyRate', 'companyAmount' : 'companyAmount', 'companyAmountSum' : 'companyAmountSum', 'companyAmountExcTax' : 'companyAmountExcTax', 'companyAmountTax' : 'companyAmountTax' }" /> <claim name="claimExpenseAmountExcTax" type="claimAmountSummary" args="{'amount':'companyAmountExcTax'}"/> <claim name="claimExpenseAmountTax" type="claimAmountSummary" args="{'amount':'companyAmountTax'}"/> </claims> <events> <event target="matter_end" name="journalSourceDetailEntryForSqlEvent"> <args> <arg key="sqlPath" value="META-INF/sql/jp/co/slcs/kaiden/v2/generic/gadget/journal/ExpenseDetail.sql"/> </args> </event> </events> <includes> <include path="/WEB-INF/views/kaiden/v2/product_workflow/generic/gadget/include/defaultDepartmentProject.jsp" /> <include path="/WEB-INF/views/kaiden/v2/extension_imw/generic/gadget/include/relationPasteControl.jsp" /> <include path="/WEB-INF/views/kaiden/v2/product_workflow/generic/gadget/include/searchFile_v01.jsp" args="{ 'condition':{ 'taregt' :'fileTaregt', 'searchType' :'settle', 'category' :'300015-RECEIPT', 'currencyFixed' :'true' }, 'settings':{ 'showFileDetail':'false', 'showFileInfo' :'true', 'appendRow' :'false', 'deleteRow' :'false', 'previewStyle' :'width:100%; height:600px; resize:vertical; overflow:hidden;', 'rowNoField' :'rowNumber', 'amountField' :'transAmount', 'currencyField' :'transCurrencyCd', 'checkField' :'', 'upload' :{'use':'false'}, 'search' :{'use':'true'}, 'import' :{'use':'false'}, 'show' :{'use':'true'} }, 'relations':{ 'occurDate' :{'value':'tradingDate', 'mode':'1'}, 'payeeName' :{'value':'customerName', 'mode':'1'}, 'transAmount' :{'value':'balanceAmount', 'mode':'1'}, 'transCurrencyCd' :{'value':'transCurrencyCd', 'mode':'0', 'disabled':'true'} } }" /> </includes> </block> </blocks> <surfaces> <surface surfaceKey="chapterTitle"> <name localeId="en" surface="Expenses Particulars"/> <name localeId="ja" surface="経費明細"/> <name localeId="zh_CN" surface="经费明细"/> </surface> <surface surfaceKey="rowNumber"> <name localeId="en" surface="No"/> <name localeId="ja" surface="No"/> <name localeId="zh_CN" surface="No"/> </surface> <surface surfaceKey="imwApplyBaseDate"> <name localeId="en" surface="Apply Reference Date"/> <name localeId="ja" surface="申請基準日"/> <name localeId="zh_CN" surface="申请基准日"/> </surface> <surface surfaceKey="searchCriteriaCompany"> <name localeId="en" surface="Search Reference Company"/> <name localeId="ja" surface="検索基準会社"/> <name localeId="zh_CN" surface="检索基准公司"/> </surface> <surface surfaceKey="payMethod"> <name localeId="en" surface="Payment Method"/> <name localeId="ja" surface="支払方法"/> <name localeId="zh_CN" surface="支付方法"/> </surface> <surface surfaceKey="occurDate"> <name localeId="en" surface="Occurrence Date"/> <name localeId="ja" surface="発生日"/> <name localeId="zh_CN" surface="发生日"/> </surface> <surface surfaceKey="businessTripStartDate"> <name localeId="en" surface="Business Trip Period (Start Date)"/> <name localeId="ja" surface="出張期間(開始日)"/> <name localeId="zh_CN" surface="出差期间(开始日)"/> </surface> <surface surfaceKey="businessTripEndDate"> <name localeId="en" surface="Business Trip Period (End Date)"/> <name localeId="ja" surface="出張期間(終了日)"/> <name localeId="zh_CN" surface="出差期间(结束日)"/> </surface> <surface surfaceKey="summary"> <name localeId="en" surface="Description of Expense"/> <name localeId="ja" surface="経費内容"/> <name localeId="zh_CN" surface="经费内容"/> </surface> <surface surfaceKey="expType"> <name localeId="en" surface="Expense Type"/> <name localeId="ja" surface="経費区分"/> <name localeId="zh_CN" surface="经费分类"/> </surface> <surface surfaceKey="account"> <name localeId="en" surface="Account"/> <name localeId="ja" surface="勘定科目"/> <name localeId="zh_CN" surface="帐户科目"/> </surface> <surface surfaceKey="taxType"> <name localeId="en" surface="Tax Category"/> <name localeId="ja" surface="税区分"/> <name localeId="zh_CN" surface="税分类"/> </surface> <surface surfaceKey="taxRate"> <name localeId="en" surface="Tax Rate"/> <name localeId="ja" surface="税率"/> <name localeId="zh_CN" surface="税率"/> </surface> <surface surfaceKey="departmentSet"> <name localeId="en" surface="Organization Set"/> <name localeId="ja" surface="組織セット"/> <name localeId="zh_CN" surface="组织集合"/> </surface> <surface surfaceKey="department"> <name localeId="en" surface="Organization"/> <name localeId="ja" surface="組織"/> <name localeId="zh_CN" surface="组织"/> </surface> <surface surfaceKey="project"> <name localeId="en" surface="Project"/> <name localeId="ja" surface="プロジェクト"/> <name localeId="zh_CN" surface="项目"/> </surface> <surface surfaceKey="payType"> <name localeId="en" surface="Payment Classification"/> <name localeId="ja" surface="支払分類"/> <name localeId="zh_CN" surface="支付分类"/> </surface> <surface surfaceKey="paymentFlag"> <name localeId="en" surface="Reimbursement Flag"/> <name localeId="ja" surface="立替フラグ"/> <name localeId="zh_CN" surface="垫付标志"/> </surface> <surface surfaceKey="payee"> <name localeId="en" surface="Payee"/> <name localeId="ja" surface="支払先"/> <name localeId="zh_CN" surface="收款方"/> </surface> <surface surfaceKey="transAmount"> <name localeId="en" surface="Amount"/> <name localeId="ja" surface="金額"/> <name localeId="zh_CN" surface="金额"/> </surface> <surface surfaceKey="transCurrency"> <name localeId="en" surface="Currency"/> <name localeId="ja" surface="通貨"/> <name localeId="zh_CN" surface="货币"/> </surface> <surface surfaceKey="companyRate"> <name localeId="en" surface="rate"/> <name localeId="ja" surface="レート"/> <name localeId="zh_CN" surface="汇率"/> </surface> <surface surfaceKey="companyAmount"> <name localeId="en" surface="Converted"/> <name localeId="ja" surface="換算額"/> <name localeId="zh_CN" surface="换算额"/> </surface> <surface surfaceKey="companyCurrency"> <name localeId="en" surface="Company Currency"/> <name localeId="ja" surface="会社通貨"/> <name localeId="zh_CN" surface="公司货币"/> </surface> <surface surfaceKey="quantity"> <name localeId="en" surface="Quantity"/> <name localeId="ja" surface="数量"/> <name localeId="zh_CN" surface="数量"/> </surface> <surface surfaceKey="companyAmountSum"> <name localeId="en" surface="Total amount"/> <name localeId="ja" surface="合計額"/> <name localeId="zh_CN" surface="总量"/> </surface> <surface surfaceKey="companyAmountExcTax"> <name localeId="en" surface="Tax excluded amount"/> <name localeId="ja" surface="税抜金額"/> <name localeId="zh_CN" surface="税抜金量"/> </surface> <surface surfaceKey="companyAmountTax"> <name localeId="en" surface="Tax amount"/> <name localeId="ja" surface="税額"/> <name localeId="zh_CN" surface="税额"/> </surface> </surfaces> <tags> <tag value="appNormal"/> <tag value="appAdvance"/> <tag value="appSettle"/> <tag value="spSupport"/> <tag value="checkRule"/> </tags> </gadgetBuilderSettings>
4.2.4. SQL作成¶
必要に応じて、GadgetBuilderで使用する検索用のSQLを作成します。内容%ModuleProject%/src/main/resources/META-INF/sql/jp/co/slcs/kaiden/v2/generic/gadget/ExpenseDetail.sqlselect target.system_matter_id ,target.user_data_id ,target.gadget_id ,target.gadget_class ,target.gadget_variation ,target.gadget_instance ,target.tuple_id ,target.row_number ,target.occur_date ,target.summary ,target.exp_type_cd ,exp_type.exp_type_name ,target.account_cd ,account.account_name ,target.tax_type_cd ,tax_type.tax_type_name ,target.tax_rate ,target.quantity ,target.trans_currency_cd ,trans_currency.currency_name as trans_currency_name ,target.trans_amount ,target.company_rate ,target.company_currency_cd ,company_currency.currency_name as company_currency_name ,target.company_amount ,target.company_amount_exc_tax ,target.company_amount_tax ,target.company_amount_sum ,target.pay_type_cd ,pay_type.pay_type_name ,pay_type.payment_flag ,target.pay_method_cd ,pay_method.pay_method_name ,target.payee_cd ,target.payee_name ,target.department_set_cd ,target.department_cd ,department.department_name ,target.project_cd ,project.project_name /*IF sqlId != "copy"*/ ,target.relation_type ,target.relation_id ,target.relation_data ,target.relation_generic_item1 ,target.relation_generic_item2 ,target.relation_generic_item3 ,target.relation_generic_item4 ,target.relation_generic_item5 /*END*/ ,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 ,target.budget_period_cd ,target.budget_cd /*IF sqlId != "copy"*/ ,info.apply_base_date as imw_apply_base_date ,info.auth_company_cd as search_criteria_company_code ,/*searchCriteriaLocale*/ as locale_id /*END*/ from k30t_expense_detail target left outer join k20c_matter_info info on info.system_matter_id = target.system_matter_id left outer join k30m_exp_type exp_type on exp_type.company_cd = info.auth_company_cd and exp_type.exp_type_cd = target.exp_type_cd and exp_type.locale_id = /*searchCriteriaLocale*/'ja' and exp_type.start_date <= info.apply_base_date and exp_type.end_date > info.apply_base_date and exp_type.delete_flag = '0' left outer join k30m_account account on account.company_cd = info.auth_company_cd and target.account_cd = account.account_cd and account.locale_id = /*searchCriteriaLocale*/'ja' and account.start_date <= info.apply_base_date and account.end_date > info.apply_base_date and account.delete_flag = '0' left outer join k30m_tax_type tax_type on tax_type.company_cd = info.auth_company_cd and target.tax_type_cd = tax_type.tax_type_cd and tax_type.locale_id = /*searchCriteriaLocale*/'ja' and tax_type.start_date <= info.apply_base_date and tax_type.end_date > info.apply_base_date and tax_type.delete_flag = '0' left outer join imm_currency trans_currency on trans_currency.company_cd = info.auth_company_cd and trans_currency.currency_cd = target.trans_currency_cd and trans_currency.locale_id = /*searchCriteriaLocale*/'ja' and trans_currency.delete_flag = '0' left outer join imm_currency company_currency on company_currency.company_cd = info.auth_company_cd and company_currency.currency_cd = target.company_currency_cd and company_currency.locale_id = /*searchCriteriaLocale*/'ja' and company_currency.delete_flag = '0' left outer join k30m_pay_type pay_type on pay_type.company_cd = info.auth_company_cd and pay_type.pay_type_cd = target.pay_type_cd and pay_type.locale_id = /*searchCriteriaLocale*/'ja' and pay_type.start_date <= info.apply_base_date and pay_type.end_date > info.apply_base_date and pay_type.delete_flag = '0' left outer join k30m_pay_method pay_method on pay_method.company_cd = info.auth_company_cd and pay_method.pay_method_cd = target.pay_method_cd and pay_method.locale_id = /*searchCriteriaLocale*/'ja' and pay_method.start_date <= info.apply_base_date and pay_method.end_date > info.apply_base_date and pay_method.delete_flag = '0' left outer join imm_department department on department.company_cd = info.auth_company_cd and department.department_set_cd = target.department_set_cd and department.department_cd = target.department_cd and department.locale_id = /*searchCriteriaLocale*/'ja' and department.start_date <= info.apply_base_date and department.end_date > info.apply_base_date and department.delete_flag = '0' left outer join k30m_project project on project.company_cd = info.auth_company_cd and project.project_cd = target.project_cd and project.locale_id = /*searchCriteriaLocale*/'ja' and project.start_date <= info.apply_base_date and project.end_date > info.apply_base_date and project.delete_flag = '0' /*BEGIN*/ where /*IF systemMatterId != null*/ target.system_matter_id =/*systemMatterId*/'systemMatterId' /*END*/ /*IF userDataId != null*/ and target.user_data_id = /*userDataId*/'userDataId' /*END*/ /*IF gadgetClass != null*/ and target.gadget_class = /*gadgetClass*/'gadgetClass' /*END*/ /*IF gadgetVariation != null*/ and target.gadget_variation = /*gadgetVariation*/'gadgetVariation' /*END*/ /*IF gadgetInstance != null*/ and target.gadget_instance = /*gadgetInstance*/'gadgetInstance' /*END*/ /*END*/ order by target.system_matter_id, target.row_number検索条件設定したLogicクラスに応じて、検索条件が設定されます。
jp.co.slcs.kaiden.v2.base.feature.logic.kaiden.generic.impl.GadgetLogic
条件名 条件キー システム案件ID systemMatterId ユーザデータID userDataId ガジェットクラス gadgetClass ガジェットバリエーション gadgetVariation ロケールID localeId コラム
申請基準日と検索基準会社を取得するために、下記の結合条件を必ず追加してください。上記SQLから抜粋from k30t_expense_detail target left outer join k20c_matter_info info on info.system_matter_id = target.system_matter_id
4.2.5. 動作確認¶
これまでに設定した内容を動作確認します。配置先src └─main ├─generated │ └─jp │ └─co │ └─slcs │ └─kaiden │ └─v2 │ └─product_workflow │ └─foundation │ └─model │ ├─entity │ │ ├─K30tExpenseDetail.java │ │ └─Ka30tExpenseDetail.java │ └─service │ ├─K30tExpenseDetailService.java │ └─Ka30tExpenseDetailService.java │ ├─resources │ ├─META-INF │ │ └─sql │ │ └─jp │ │ └─co │ │ └─slcs │ │ └─kaiden │ │ └─v2 │ │ └─generic │ │ └─gadget │ │ ├─journal │ │ │ └─ExpenseDetail.sql │ │ └─ExpenseDetail.sql │ └─storage └─public └─kaiden └─generic └─gadget └─expenseDetail_v01.xmlコラム
配置先には記載していませんが、「テーブル定義」で定義したテーブルを作成してください。
4.2.5.1. GadgetBuilder定義インポート¶
ガジェットのインポートジョブを使用して、GadgetBuilder定義をインポートします。
「サイトマップ」→「テナント管理」→「ジョブネット設定」をクリックします。 ジョブネット一覧(画面左部)の「ガジェット」をクリックします。 「即時実行」をクリックします。 確認ポップアップの「決定」をクリックします。 ジョブネットが実行されました。コラム
ガジェットインポートのジョブは、「%パブリックストレージ%/kaiden/generic/gadget」フォルダに配置されたGadgetBuilder定義をインポートします。システムストレージに配置されたGadgetBuilder定義はインポート対象外です。注意
「%パブリックストレージ%/kaiden/generic/gadget」フォルダに配置されたGadgetBuilder定義(xmlファイル)は全てインポートされます。上記のため、ファイル名が異なっていても「ガジェットクラス」「ガジェットバリエーション」が同一のGadgetBuilder定義が存在している場合、インポートしたいGadgetBuilder定義を上書きしてしまい想定の反映がされない場合があります。注意
ガジェットインポート後は、必ずインポートしたガジェットを使用しているコンテンツを申請書マスタから更新してください。更新しない場合、申請書を申請する時にエラーが発生します。
4.2.5.2. 申請書マスタメンテナンス¶
続いて申請書マスタメンテナンス機能を使用して、コンテンツを作成します。作成方法の詳細は『intra-mart Accel Kaiden! 経費旅費 / 管理者操作ガイド』を参照してください。コラム
コンテンツ作成後は、フローを作成してください。