4.1. GadgetBuilder定義¶
本項では、GadgetBuilderの設定ファイル(以降、GadgetBuilder定義)の作成方法を説明します。
4.1.1. 概要¶
4.1.1.1. GadgetBuilder定義とは?¶
GadgetBuilder定義は、XML形式で設定を行います。本項では、経費明細を例に解説を行います。GadgetBuilder定義は、JSP、Controller、Form(Dto)、Logicの設定を行います。コラム
GadgetBuilder定義は、ガジェットマスタの設定階層に準拠しています。ガジェットマスタについては『intra-mart Accel Kaiden! プログラミングガイド』の「応用」→「ガジェット(経費旅費)」→「機能説明」→「申請書ガジェットマスタデータについて」を参照してください。GadgetBuilder定義の全体イメージは「Sample」を参照してください。コラム
GadgetBuilder定義の標準設定で対応できない場合は、独自のJSPやLogicを作成し、設定することで拡張することができます。GadgetBuilder定義の標準設定で対応できる場合は、拡張設定を行う必要はありません。
4.1.1.2. GadgetBuilder定義の配置先¶
GadgetBuilder定義は次のパスに配置します。「%ストレージパス%/kaiden/generic/gadget/%ガジェットクラス%_%ガジェットバリエーション%.xml」ストレージはシステムストレージ、パブリックストレージのどちらでも配置可能で、パブリックストレージが優先的に読み込まれます。intra-mart Accel Kaiden!のGadgetBuilder定義は、システムストレージに配置されます。上記の読み込み順を使用して、独自のGadgetBuilder定義を優先的に読み込ませることが可能です。(テナント別にGadgetBuilder定義を作成したい場合も、パブリックストレージを使用してください。)コラム
システムストレージにGadgetBuilder定義(XMLファイル)を配置する場合、ガジェットのインポート時にパブリックストレージにコピーしてください。ガジェットインポートのジョブは、「%パブリックストレージ%/kaiden/generic/gadget」フォルダに配置されたGadgetBuilder定義をインポートします。
4.1.2. 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.GadgetBuilderLogic</javaPath> <sortKey>51001</sortKey> <surfaceKey>chapterTitle</surfaceKey> <descriptions> <!-- 略 --> </descriptions> <blocks> <!-- 略 --> </blocks> <surfaces> <!-- 略 --> </surfaces> <tags> <!-- 略 --> </tags> </gadgetBuilderSettings>コラム
GadgetBuilder定義は、申請書ガジェットマスタへ登録されます。
申請書ガジェットマスタ 設定値ガジェットクラス GadgetBuilder定義のガジェットクラスガジェットバリエーション GadgetBuilder定義のガジェットバリエーションJSPパス GadgetBuilder定義のJSPパスJavaパス GadgetBuilder定義のJavaパスソートキー GadgetBuilder定義のソートキーサーフィスキー GadgetBuilder定義のサーフィスキー解説
ガジェットクラス(gadgetBuilderSettings / gadgetClass):必須ガジェットクラスを設定します。 ガジェットバリエーション(gadgetBuilderSettings / gadgetVariation):必須ガジェットバリエーションを設定します。 JSPパス(gadgetBuilderSettings / jspPath):必須ガジェットのJSPパスを定義します。コラム
標準のJSPパスを使用する場合、「/WEB-INF/views/kaiden/v2/extension_imw/generic/gadget/generic_v01.jsp」を設定します。検索画面のガジェットを作成する場合、「/WEB-INF/views/kaiden/v2/extension_imw/generic/gadget/search_v01.jsp」を設定します。標準のJSPパスから変更する場合、独自に作成したJSPパスを設定してください。 Javaパス(gadgetBuilderSettings / javaPath):必須ガジェットのJavaクラスパス(Logicクラスのクラスパス)を設定します。コラム
標準のLogicクラスを使用する場合、「jp.co.slcs.kaiden.v2.extension_imw.feature.logic.kaiden.gadget.builder.GadgetBuilderLogic」を設定します。標準のLogicクラスから変更する場合、独自に作成したLogicクラスのパスを設定してください。コラム
Logicクラスを独自に作成する場合、「jp.co.slcs.kaiden.v2.extension_imw.feature.logic.kaiden.gadget.builder.AbstractGadgetBuilderLogic」を継承してください。 ソートキー(gadgetBuilderSettings / sortKey):必須ガジェットの表示順等で使用するソートキーを設定します。 サーフィスキー(gadgetBuilderSettings / surfaceKey):必須ガジェットのサーフィスキーを設定します。 ガジェットタイトル表示有無(gadgetBuilderSettings / displayTitle):任意JSP上でガジェットのタイトルを表示するか否かを設定します。省略時は「true:表示する」が設定されます。 ガジェット引数設定(gadgetBuilderSettings / args):任意ガジェット引数を設定します。 拡張設定(gadgetBuilderSettings / extension):任意標準機能を拡張(カスタマイズ)する場合の拡張先の設定を行います。 拡張設定(Logic)(gadgetBuilderSettings / extension / logic):任意標準のLogicクラスを変更する場合に設定します。コラム
標準のLogicクラス「jp.co.slcs.kaiden.v2.base.feature.logic.kaiden.generic.impl.GadgetLogic」を変更する場合に設定します。GadgetBuilder定義で拡張できるLogicクラスの役割は次の通りです。
Javaパス ワークフローイベントの申請・承認・再申請・一時保存などを行います。拡張設定(Logic) 構成情報の返却やデータの登録・更新・削除・検索などを行います。「拡張設定(Logic)」で設定したクラスは、「Javaパス」に設定したクラスから使用されます。 拡張設定(URL)(gadgetBuilderSettings / extension / url):任意標準のURLを変更する場合に設定します。コラム
標準のURL「kaiden/v2/gadget/gadgetBuilder」を変更する場合に設定します。標準のURLを変更することで、Controllerクラスの拡張が行えます。
4.1.2.1. ガジェット概要設定¶
ガジェット概要設定では、申請書マスタメンテナンス機能などで表示される、各ガジェットの概要を設定します。ガジェット概要設定は、「gadgetBuilderSettings / descriptions / description」階層に設定を行います。「gadgetBuilderSettings / descriptions / description」階層は、1件以上の複数設定(ロケール別)が可能です。設定<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <gadgetBuilderSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/gadgetBuilderSettings"> <!-- 略 --> <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> <!-- 略 --> </gadgetBuilderSettings>コラム
ガジェット概要設定は、申請書ガジェット概要マスタへ登録されます。
申請書ガジェット概要マスタ 設定値ロケールID ガジェット概要設定のロケールIDガジェット名 ガジェット概要設定のガジェット名ガジェット概要 ガジェット概要設定のガジェット概要解説
ロケールID(gadgetBuilderSettings / descriptions / description @ localeId):必須ロケールIDを設定します。 ガジェット名(gadgetBuilderSettings / descriptions / description @ gadgetName):必須ガジェット名を設定します。 ガジェット概要(gadgetBuilderSettings / descriptions / description @ description):必須ガジェット概要を設定します。
4.1.2.2. ガジェットブロック設定¶
ガジェットブロック設定では、ガジェットブロックの定義を設定します。ガジェットブロック設定は、「gadgetBuilderSettings / blocks / block」階層に設定を行います。「gadgetBuilderSettings / blocks / block」階層は、複数設定が可能です。設定コラム
ガジェットブロック設定は、申請書ガジェットブロックマスタへ登録されます。
申請書ガジェットブロックマスタ 設定値ブロックID ガジェットブロック設定のブロックIDブロックタイプ ガジェットブロック設定のブロックタイプソートキー ガジェットブロック設定のソートキーサーフィスキー ガジェットブロック設定のサーフィスキー解説
ブロックID(gadgetBuilderSettings / blocks / block @ id):必須ブロックIDを設定します。 ブロックタイプ(gadgetBuilderSettings / blocks / block @ type):必須ガジェットブロックの種類を設定します。コラム
「NORMAL」「DETAIL」のいずれかを設定します。
- 明細行を保持しない場合は「NORMAL」を設定します。
- 明細行を保持する場合は「DETAIL」を設定します。
モード(gadgetBuilderSettings / blocks / block @ mode):任意ガジェットブロックのモードを設定します。ブロックタイプが「DETAIL」の場合、「card」を設定可能です。「card」を設定すると、明細行の表示形式がカード方式になります。標準ガジェットはモードを設定した状態で検証していません。モードを設定する場合、十分な検証が必要です。 ソートキー(gadgetBuilderSettings / blocks / block @ sortKey):任意ソートキーを設定します。未設定の場合はガジェットブロック設定順に連番となります。 サーフィスキー(gadgetBuilderSettings / blocks / block @ surfaceKey):必須ガジェットブロックのサーフィスキーを設定します。 サービス設定(gadgetBuilderSettings / blocks / block / service):任意サービスやSQLパスなどを設定します。 基本サービスクラス(gadgetBuilderSettings / blocks / block / service @ basic):任意基本テーブルのサービスクラス(コンポーネント名)を設定します。コラム
基本テーブルとは、申請時のデータを保存するトランザクションテーブルです。 アーカイブサービスクラス(gadgetBuilderSettings / blocks / block / service @ archive):任意アーカイブテーブルのサービスクラス(コンポーネント名)を設定します。コラム
アーカイブテーブルとは、案件退避時に基本テーブルのデータを保存するトランザクションテーブルです。 SQL設定(gadgetBuilderSettings / blocks / block / service / sqls / sql):任意検索などで使用するSQLや検索用クラスを設定します。 SQLID(gadgetBuilderSettings / blocks / block / service / sqls / sql @ id):必須SQL設定のIDを設定します。コラム
SQL設定を使用した検索を行う場合、検索条件にSQLIDも含まれます。SQLIDと主な用途は次の通りです。
ID 主な用途 INIT 初期表示時のデータ検索(一時保存、処理、各詳細画面などで使用します)INIT_ARCHIVE アーカイブデータ初期表示時のデータ検索(過去案件詳細画面で使用します)COPY コピー時のコピー元データ検索(申請書コピーで使用します)MERGE マージ元データ検索(承認時や再申請時にリクエストデータで不足しているデータを基本テーブルから補完する用途で使用します)ARCHIVE アーカイブ時のアーカイブ元データ検索(案件退避処理で使用します)SELECT 対象検索(事前申請書検索による申請書紐付け時、検索画面ガジェットの初期検索などで使用します)SEARCH 一覧検索(検索画面ガジェットで使用します)コラム
申請画面表示時など、システム案件ID、ユーザデータIDが検索条件に設定されない場合、検索されません。 SQLパス(gadgetBuilderSettings / blocks / block / service / sqls / sql @ path):任意SQLパスを設定します。 代替クラス(gadgetBuilderSettings / blocks / block / service / sqls / sql @ component):任意検索を代替するクラス(コンポーネント名)を設定します。API等を使用して検索を行う場合に使用します。コラム
設定クラスは次のクラスを継承したクラスである必要があります。
- jp.co.slcs.kaiden.v2.base.foundation.gadget.builder.select.AbstractGadgetSelect
コラム
検索を行わない場合(初期表示しない、コピーしないなど)、次の様に設定することで検索を抑止できます。(「notSelect」クラス(コンポーネント名)は検索を行わないクラスです。)<sql id=”copy” component=”notSelect”/> フィールドグループ設定(gadgetBuilderSettings / blocks / block / groups):任意フィールドグループを設定します。後述の「フィールドグループ設定」を参照してください。 構成設定(gadgetBuilderSettings / blocks / block / table):任意PC用画面のガジェット構成を設定します。未設定の場合、ガジェット構成時にフィールドグループ設定順で構成されます。コラム
スマートフォン用画面のガジェット構成は、フィールドグループ設定順で構成されます。ブロック引数設定(gadgetBuilderSettings / blocks / block / args)に「キー:tableFormatSp、値:true」を指定することで、tableタグの設定順に従って表示することが可能です。 構成タイプ(gadgetBuilderSettings / blocks / block / table @ type):必須ガジェット構成のタイプを設定します。「HORIZONTAL」「VERTICAL」のいずれかを設定します。 行番号フィールド(gadgetBuilderSettings / blocks / block / table @ rowNumberTarget):任意ブロックタイプ「DETAIL」を設定した場合の行番号フィールドを設定します。TmTableタグの「rowNumberTarget」属性に設定されます。コラム
TmTableについては『intra-mart Accel Kaiden! プログラミングガイド』の「基本」→「仕様解説」→「TMTable」を参照してください。 カラムグループ設定(gadgetBuilderSettings / blocks / block / table / colgroups / colgroup):任意ガジェット構成時のカラムグループを設定します。 カラムグループスタイル(gadgetBuilderSettings / blocks / block / table / colgroups / colgroup @ style):任意ガジェット構成時のカラムグループのスタイルを設定します。 行 - 列設定(gadgetBuilderSettings / blocks / block / table / rows / row / cols / col):任意ガジェット構成時の行 - 列を設定します。コラム
構成タイプで「HORIZONTAL」を設定した場合に使用します。 フィールドグループID(gadgetBuilderSettings / blocks / block / table / rows / row / cols / col @ groupId):任意当該構成を行うフィールドグループのIDを設定します。 列結合数(gadgetBuilderSettings / blocks / block / table / rows / row / cols / col @ colspan):任意当該構成の列結合数を設定します。 行結合数(gadgetBuilderSettings / blocks / block / table / rows / row / cols / col @ rowspan):任意当該構成の行結合数を設定します。 列 - 行設定(gadgetBuilderSettings / blocks / block / table / cols / col / rows / row):任意ガジェット構成時の列 - 行を設定します。コラム
構成タイプで「VERTICAL」を設定した場合に使用します。 フィールドグループID(gadgetBuilderSettings / blocks / block / table / cols / col / rows / row @ groupId):任意当該構成を行うフィールドグループのIDを設定します。 列結合数(gadgetBuilderSettings / blocks / block / table / cols / col / rows / row @ colspan):任意当該構成の列結合数を設定します。 行結合数(gadgetBuilderSettings / blocks / block / table / cols / col / rows / row @ rowspan):任意当該構成の行結合数を設定します。 インクルード設定(gadgetBuilderSettings / blocks / block / includes):任意JSPへのインクルード先を設定します。後述の「インクルード設定」を参照してください。 ブロック引数設定(gadgetBuilderSettings / blocks / block / args):任意ブロック引数を設定します。主に、「class」属性や「style」属性の値となります。コラム
ブロック引数設定に、申請データの初期表示や申請書コピーの際にSQLで取得したデータの内、設定不要なデータを除外することができます。「key」に「loadDataExclude」及び「loadData4CopyExclude」を設定し、「value」に除外する項目(予備項目等)をカンマ区切りで設定してください。
4.1.2.2.1. フィールドグループ設定¶
フィールドグループ設定では、単一または複数のフィールドをまとめたグループの定義を設定します。フィールドグループ設定は、「gadgetBuilderSettings / blocks / block / groups / group」階層に設定を行います。「gadgetBuilderSettings / blocks / block / groups / group」階層は、複数設定が可能です。設定コラム
フィールドグループ設定は、申請書ガジェットフィールドグループマスタへ登録されます。
申請書ガジェットフィールドグループマスタ 設定値ブロックID ガジェットブロックマスタのブロックIDフィールドグループID フィールドグループ設定のフィールドグループIDサーフィスキー フィールドグループ設定のサーフィスキー必須タイプ フィールドグループ設定の必須タイプ以下、必須タイプによる設定値「0:SETTING_ANY」「1:SETTING_REQ」「a:ALWAYS_ANY」「b:ALWAYS_REQ」入力タイプ フィールドグループ設定の入力タイプ以下、入力タイプによる設定値「0:CONFIG」「a:LABEL」「b:TEXT」「c:TEXT_LABEL」ソートキー フィールドグループ設定のソートキー解説
フィールドグループID(gadgetBuilderSettings / blocks / block / groups / group @ id):必須フィールドグループIDを設定します。 サーフィスキー(gadgetBuilderSettings / blocks / block / groups / group @ surfaceKey):必須フィールドグループのサーフィスキーを設定します。 必須タイプ(gadgetBuilderSettings / blocks / block / groups / group @ requiredType):任意フィールドグループの必須タイプを設定します。未設定の場合は「SETTING_ANY」(変更可能(デフォルト任意))となります。選択可能な必須タイプは次の通りです。変更可能な場合、申請書マスタの必須/任意設定で設定をデフォルトから変更可能です。
設定値 説明 SETTING_ANY 変更可能(デフォルト任意) SETTING_REQ 変更可能(デフォルト必須) ALWAYS_ANY 常時任意 ALWAYS_REQ 常時必須 入力タイプ(gadgetBuilderSettings / blocks / block / groups / group @ inputType):任意フィールドグループの入力タイプを設定します。未設定の場合は「CONFIG」(テキスト(処理時入力不可・変更可能))となります。選択可能な入力タイプは次の通りです。変更可能な場合、申請書マスタの入力/ラベル設定で再申請、処理画面の設定を変更可能です。
設定値 説明 CONFIG テキスト(処理時入力不可・変更可能) LABEL 常時ラベル(変更不可) TEXT 常時テキスト(変更不可) TEXT_LABEL テキスト(処理時入力不可・変更不可) ソートキー(gadgetBuilderSettings / blocks / block / groups / group @ sortKey):任意ソートキーを設定します。未設定の場合はフィールドグループ設定順に連番となります。 必須マーク(gadgetBuilderSettings / blocks / block / groups / group @ requiredMark):任意フィールドグループの必須マーク(true / false)を設定します。コラム
申請書用のガジェットの場合は、申請書マスタメンテナンスでの設定で上書きされます。 フィールド設定(gadgetBuilderSettings / blocks / block / groups / group / fields):任意内包するフィールドを設定します。後述の「フィールド設定」を参照してください。 引数設定(gadgetBuilderSettings / blocks / block / groups / group / args):任意フィールドグループへの引数を設定します。主に、「class」属性や「style」属性の値となります。
4.1.2.2.2. フィールド設定¶
フィールド設定では、フィールドの構成やバリデーションなどを設定します。フィールド設定は、「gadgetBuilderSettings / blocks / block / groups / group / fields / field」階層に設定を行います。「gadgetBuilderSettings / blocks / block / groups / group / fields / field」階層は、複数設定が可能です。設定コラム
フィールド設定は、申請書ガジェットフィールドマスタへ登録されます。
申請書ガジェットフィールドマスタ 設定値ブロックID ガジェットブロックマスタのブロックIDフィールドキー フィールド設定のフィールドIDフィールドグループID ガジェットフィールドマスタのフィールドグループIDサーフィスキー フィールド設定のサーフィスキー必須タイプ フィールド設定の必須タイプ以下、必須タイプによる設定値「0:SETTING_ANY」「1:SETTING_REQ」「a:ALWAYS_ANY」「b:ALWAYS_REQ」「z:INHERIT」入力タイプ フィールド設定の入力タイプ以下、入力タイプによる設定値「0:CONFIG」「a:LABEL」「b:TEXT」「c:TEXT_LABEL」「z:INHERIT」ソートキー フィールド設定のソートキー解説
フィールドID(gadgetBuilderSettings / blocks / block / groups / group / fields / field @ id):必須フィールドIDを設定します。 サーフィスキー(gadgetBuilderSettings / blocks / block / groups / group / fields / field @ surfaceKey):必須フィールドのサーフィスキーを設定します。 必須タイプ(gadgetBuilderSettings / blocks / block / groups / group / fields / field @ requiredType):任意フィールドの必須タイプを設定します。未設定の場合は「INHERIT」(フィールドグループの設定を引き継ぐ)となります。選択可能な必須タイプは次の通りです。
設定値 説明 SETTING_ANY 変更可能(デフォルト任意)(将来拡張用) SETTING_REQ 変更可能(デフォルト必須)(将来拡張用) ALWAYS_ANY 常時任意 ALWAYS_REQ 常時必須 INHERIT フィールドグループの設定を引き継ぐ 入力タイプ(gadgetBuilderSettings / blocks / block / groups / group / fields / field @ inputType):任意フィールドの入力タイプを設定します。未設定の場合は「INHERIT」(フィールドグループの設定を引き継ぐ)となります。選択可能な入力タイプは次の通りです。
設定値 説明 CONFIG テキスト(処理時入力不可・変更可能)(将来拡張用) LABEL 常時ラベル(変更不可) TEXT 常時テキスト(変更不可) TEXT_LABEL テキスト(処理時入力不可・変更不可) INHERIT フィールドグループの設定を引き継ぐ ソートキー(gadgetBuilderSettings / blocks / block / groups / group / fields / field @ sortKey):任意ソートキーを設定します。未設定の場合はフィールド設定順に連番となります。 フィールドタイプ(gadgetBuilderSettings / blocks / block / groups / group / fields / field @ type):任意フィールドタイプを設定します。設定可能なフィールドタイプは「フィールドタイプ」を参照してください。 引数設定(gadgetBuilderSettings / blocks / block / groups / group / fields / field / args/ arg):任意フィールドへの引数を設定します。設定可能な引数(属性)はフィールドタイプに依存します。詳細は「フィールドタイプ」を参照してください。 バリデート設定(gadgetBuilderSettings / blocks / block / groups / group / fields / field / validates / validate):任意フィールドへのバリデートを設定します。 バリデート実行イベント(gadgetBuilderSettings / blocks / block / groups / group / fields / field / validates / validate @ event):必須フィールドバリデートの実行イベントを設定します。主なイベントは次の通りです。
設定値 説明 default 全てのイベントで実行 apply 申請イベント(PC版)のみ実行 applysp 申請イベント(SP(スマートフォン)版)のみ実行 tempsave 一時保存イベント(PC版)のみ実行 tempsavesp 一時保存イベント(SP(スマートフォン)版)のみ実行 reapply 再申請イベント(PC版)のみ実行 reapplysp 再申請イベント(SP(スマートフォン)版)のみ実行 process 処理イベント(PC版)のみ実行 processsp 処理イベント(SP(スマートフォン)版)のみ実行 warning アラート処理を実行(情報明細ガジェットにコメント必須)information アラート処理を実行(情報明細ガジェットのコメントは任意)コラム
バリデート実行イベントに、「apply」、「tempsave」、「reapply」、「process」のいずれかを設定した場合、各イベントのPC版のクライアントサイドチェック、PC版とSP(スマートフォン)版のサーバーサイドチェックを実施します。SP(スマートフォン)版のクライアントサイドチェックを実施したい場合は「applysp」、「tempsavesp」、「reapplysp」、「processsp」をあわせて設定してください。「applysp」、「tempsavesp」、「reapplysp」、「processsp」のバリデート実行対象を「ALWAYS」に設定してもサーバーサイドチェックは実施されません。コラム
「warning」、「information」を設定したガジェットは、情報明細ガジェットを同じ申請書に組み込んでください。「warning」、「information」を設定した場合、チェックがNGの際も申請可能です。アラート処理の詳細は『intra-mart Accel Kaiden! 経費旅費 / 管理者操作ガイド』を参照してください。
バリデート実行対象(gadgetBuilderSettings / blocks / block / groups / group / fields / field / validates / validate @ target):任意フィールドバリデートの実行対象を設定します。選択可能な実行対象は次の通りです。(省略時は「ALWAYS」)
設定値 説明 CLIENT クライアントサイドのみ実行 SERVER サーバーサイドのみ実行 ALWAYS クライアントサイド、サーバーサイドの両方で実行 バリデート内容(gadgetBuilderSettings / blocks / block / groups / group / fields / field / validates / validate @ config):任意フィールドバリデートの内容を設定します。詳細は「バリデート処理」を参照してください。
4.1.2.2.3. 補完設定¶
補完設定では、各フィールドに対する補完処理を設定します。補完設定は、「gadgetBuilderSettings / blocks / block / completions / completion」階層に設定を行います。「gadgetBuilderSettings / blocks / block / completions / completion」階層は、複数設定が可能です。設定<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <gadgetBuilderSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/gadgetBuilderSettings"> <!-- 略 --> <blocks> <block id="expenseDetail" type="DETAIL" surfaceKey="chapterTitle"> <!-- 略 --> <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> <!-- 略 --> </block> </blocks> <!-- 略 --> </gadgetBuilderSettings>解説
補完フィールド名(gadgetBuilderSettings / blocks / block / completions / completion @ name):必須補完結果を設定するフィールド名を設定します。 補完順(gadgetBuilderSettings / blocks / block / completions / completion @ position):必須補完処理の実行順を設定します。本設定に従って補完処理の実行順を制御します。 補完対象(gadgetBuilderSettings / blocks / block / completions / completion @ target):任意次の補完処理対象を設定します。(未設定の場合は「ALWAYS」)
設定値 説明 CLIENT クライアントサイドのみ補完 SERVER サーバーサイドのみ補完 ALWAYS クライアントサイド、サーバーサイドの両方で補完 補完モード(gadgetBuilderSettings / blocks / block / completions / completion @ mode):任意次の補完処理モードを設定します。(未設定の場合は「ALWAYS」)
設定値 説明 EMPTY 補完フィールドに値がない場合補完 NOT_EMPTY 補完フィールドに値がある場合補完 ALWAYS 常に補完 補完タイプ(gadgetBuilderSettings / blocks / block / completions / completion @ type):必須補完処理を行うタイプを設定します。詳細は「補完処理」を参照してください。 引数(gadgetBuilderSettings / blocks / block / completions / completion / args):任意補完処理の引数を設定します。詳細は「補完処理」を参照してください。コラム
補完処理実行タイミング
初期表示時 申請時 一時保存時 処理時 再申請時 入力チェックダイアログの「再チェック」ボタンクリック時 検索系ガジェットの検索結果をガジェットに反映時 明細行追加時コラム
フィールド設定の引数設定に、イベントを設定している場合フィールドに設定できるイベントはフィールドタイプによって異なるため「フィールドタイプ」を参照してください。
フィールドに「click」イベントを設定している場合、そのフィールドのクリック時にも補完処理が実行されます。<field id="targetField" surfaceKey="targetField" requiredType="INHERIT" inputType="INHERIT" type="BUTTON"> <args> <arg key="event" value="click"/> </args> </field>
フィールドに「change」イベントを設定している場合、そのフィールドの変更時にも補完処理が実行されます。<field id="targetField" surfaceKey="targetField" requiredType="INHERIT" inputType="INHERIT" type="TEXT_NUMERIC"> <args> <arg key="event" value="change"/> </args> </field>
4.1.2.2.4. 通信設定¶
通信設定では、各ブロックのガジェット間(ブロック間)通信を設定します。通信設定は、「gadgetBuilderSettings / blocks / block / claims / claim」階層に設定を行います。「gadgetBuilderSettings / blocks / block / claims / claim」階層は、複数設定が可能です。設定<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <gadgetBuilderSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/gadgetBuilderSettings"> <!-- 略 --> <blocks> <block id="expenseDetail" type="DETAIL" surfaceKey="chapterTitle"> <!-- 略 --> <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"/> <!-- 略 --> </claims> <!-- 略 --> </block> </blocks> <!-- 略 --> </gadgetBuilderSettings>解説
通信名(gadgetBuilderSettings / blocks / block / claims / claim @ name):必須通信処理の名称を設定します。 通信対象(gadgetBuilderSettings / blocks / block / claims / claim @ target):任意次の通信処理対象を設定します。(未設定の場合は「ALWAYS」)
設定値 説明 CLIENT クライアントサイドのみ通信 SERVER サーバーサイドのみ通信 ALWAYS クライアントサイド、サーバーサイドの両方で通信 通信タイプ(gadgetBuilderSettings / blocks / block / claims / claim @ type):必須通信処理を行うタイプを設定します。詳細は「通信処理」を参照してください。 引数(gadgetBuilderSettings / blocks / block / claims / claim / args):任意通信処理の引数を設定します。詳細は「通信処理」を参照してください。コラム
通信処理実行タイミング
初期表示時 申請時 一時保存時 処理時 再申請時
4.1.2.2.5. イベント設定¶
イベント設定では、各ブロックのイベント処理を設定します。イベント設定は、「gadgetBuilderSettings / blocks / block / events / event」階層に設定を行います。「gadgetBuilderSettings / blocks / block / events / event」階層は、複数設定が可能です。設定<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <gadgetBuilderSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/gadgetBuilderSettings"> <!-- 略 --> <blocks> <block id="expenseDetail" type="DETAIL" surfaceKey="chapterTitle"> <!-- 略 --> <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> <!-- 略 --> </block> </blocks> <!-- 略 --> </gadgetBuilderSettings>解説
対象イベント(gadgetBuilderSettings / blocks / block / events / event @ target):必須対象のイベントキーを設定します。詳細は「イベント処理」を参照してください。 イベント名(gadgetBuilderSettings / blocks / block / events / event @ name):必須イベント名(コンポーネント名)を設定します。詳細は「イベント処理」を参照してください。 イベント引数(gadgetBuilderSettings / blocks / block / events / event / args):任意イベント処理の引数を設定します。詳細は「イベント処理」を参照してください。
4.1.2.2.6. インクルード設定¶
インクルード設定では、各ブロックのクライアントサイドでインクルードを行うJSPを設定します。インクルード設定は、「gadgetBuilderSettings / blocks / block / includes / include」階層に設定を行います。「gadgetBuilderSettings / blocks / block / includes / include」階層は、複数設定が可能です。設定<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <gadgetBuilderSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/gadgetBuilderSettings"> <!-- 略 --> <blocks> <block id="expenseDetail" type="DETAIL" surfaceKey="chapterTitle"> <!-- 略 --> <includes> <include path="/WEB-INF/views/kaiden/v2/product_workflow/generic/gadget/include/defaultDepartmentProject.jsp" /> <!-- 略 --> </includes> <!-- 略 --> </block> </blocks> <!-- 略 --> </gadgetBuilderSettings>解説
インクルードパス(gadgetBuilderSettings / blocks / block / includes / include @ path):必須インクルードを行うJSPのパスを設定します。詳細は「インクルードJSP」を参照してください。 インクルード引数(gadgetBuilderSettings / blocks / block / includes / include / args):必須インクルードJSPに対する引数を設定します。詳細は「インクルードJSP」を参照してください。コラム
インクルードJSPは、設定順でインクルードされます。設定順によって想定の処理が行われない場合があるので、優先順位を確認して設定してください。
4.1.2.3. ガジェットサーフィス設定¶
ガジェットサーフィス設定では、ガジェットが使用するサーフィスを設定します。ガジェットサーフィス設定は、「gadgetBuilderSettings / surfaces / surface」階層に設定を行います。「gadgetBuilderSettings / surfaces / surface」階層は、複数設定が可能です。設定<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <gadgetBuilderSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/gadgetBuilderSettings"> <!-- 略 --> <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> <!-- 略 --> </surfaces> <!-- 略 --> </gadgetBuilderSettings>コラム
ガジェットサーフィス設定は、申請書ガジェットサーフィスマスタへ登録されます。
申請書ガジェットサーフィスマスタ 設定値サーフィスキー ガジェットサーフィス設定のサーフィスキーロケールID ガジェットサーフィス設定のロケールIDサーフィス ガジェットサーフィス設定のサーフィス解説
サーフィスキー(gadgetBuilderSettings / surfaces / surface @ surfaceKey):必須サーフィスキーを設定します。 ロケールID(gadgetBuilderSettings / surfaces / surface / name @ localeId):必須ロケールIDを設定します。 サーフィス(gadgetBuilderSettings / surfaces / surface / name @ surface):必須サーフィスを設定します。コラム
ロケールIDの設定では、システムとして使用していないロケールは設定不要です。コラム
サーフィスキーに「gadget_header_surface_01~05」を設定すると、ガジェットの上部に設定したサーフィスを表示します。サーフィスキーに「gadget_footer_surface_01~05」を設定すると、ガジェットの下部に設定したサーフィスを表示します。
4.1.2.4. ガジェットタグ設定¶
ガジェットタグ設定では、ガジェットの属性を設定します。ガジェット概要設定は、「gadgetBuilderSettings / tags / tag」階層に設定を行います。「gadgetBuilderSettings / tags / tag」階層は、複数設定が可能です。設定<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <gadgetBuilderSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/gadgetBuilderSettings"> <!-- 略 --> <tags> <tag value="appNormal"/> <tag value="appAdvance"/> <tag value="appSettle"/> <tag value="spSupport"/> <tag value="checkRule"/> </tags> </gadgetBuilderSettings>コラム
ガジェットタグ設定は、申請書ガジェットタグマスタへ登録されます。
申請書ガジェットタグマスタ 設定値タグ ガジェットタグ設定のタグ解説
タグ(gadgetBuilderSettings / tags / tag @ value):必須ガジェットの属性を判定するタグを設定します。コラム
次のタグが存在し、設定することでガジェットに属性が付与され、ガジェット属性ごとの振る舞いを定義できます。intra-mart Accel Kaiden!標準のガジェットには次のタグ以外も設定されていますが、将来拡張用のタグです。
タグ分類 タグ名 説明 制約 constraintDuplicationSelf 申請書内で自身と重複を禁止します。制約 constraintDuplicationClass 申請書内で同ガジェットクラスと重複を禁止します。申請書タイプ appAdvance 対象申請書タイプ「事前申請」を設定します。申請書マスタメンテナンスで申請書タイプ「事前申請書」を選択した場合、選択できるガジェットです。申請書タイプ appSettle 対象申請書タイプ「精算申請」を設定します。申請書マスタメンテナンスで申請書タイプ「精算申請書」を選択した場合、選択できるガジェットです。申請書タイプ appNormal 対象申請書タイプ「一般」を設定します。申請書マスタメンテナンスで申請書タイプ「一般」を選択した場合、選択できるガジェットです。申請書タイプ appBill 対象申請書タイプ「請求書払申請」を設定します。申請書マスタメンテナンスで申請書タイプ「請求書払申請書」を選択した場合、選択できるガジェットです。SPサポート spSupport SP(スマートフォン)画面をサポートする場合に設定します。SPサポート対象外 spNoSupport SP(スマートフォン)画面をサポートしない場合に設定します。チェックルール checkRule 申請書マスタメンテナンスのチェックルール画面で入力チェックの設定を可能にする場合設定します。申請書マスタメンテナンスの詳細は、『intra-mart Accel Kaiden! 経費旅費 / 管理者操作ガイド』を参照してください。検索画面のSPサポート spSearch SP(スマートフォン)画面をサポートする検索画面の場合に設定します。
4.1.3. Sample¶
次の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>