/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JSYejbEKK0021D010TMCK
*	ソースファイル名：JSYejbEKK0021D010TMCK.java
*	作成者			：EK957701
*	日付			：2022/02/07
*＜機能概要＞
*	申込明細登録 単項目チェック部品です。 
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*	ｖ60.00.00	2022/08/22	FJ)藤本涼	【ANK-4262-00-00】量販・訪販Webでの電子交付同意聞き取り方法変更
*	ｖ71.00.11	2024/04/24	FJ)森下		【ANK-4468-11-00】eo光ネット「シンプルプラン」追加対応 仕変11
*	ｖ71.00.04	2024/05/27	FJ)森下		【ANK-4468-04-00】eo光ネット「シンプルプラン」追加対応 仕変4
*	ｖ75.00.00	2025/02/19	FJ)寺田		【ANK-4640-00-00】typeN：追加要件対応
*
********************************************************************************/

package eo.ejb.check.item;

import java.util.ArrayList;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;
import com.fujitsu.futurity.model.ejb.common.ComPatternsCheck;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;
import com.fujitsu.futurity.model.ejb.common.fw.TankomokuCheckHandler;
import eo.ejb.cbs.cbsmsg.EKK0021D010CBSMsg;
import eo.ejb.domain.JSYejbBaseDomain;

/**
 * 申込明細登録(EKK0021D010)の単項目チェッククラス
 */
public class JSYejbEKK0021D010TMCK implements TankomokuCheckHandler {

	/**
	 * 申込明細登録(EKK0021D010)の単項目チェックを行う
	 *
	 * @param inCBSMsg  CBSMsg
	 * @param inContext Agentから渡されたAgentDispatchContext
	 */
	public void invoke(CAANMsg inCBSMsg, AgentDispatchContext inContext) {

		//チェック対象項目の配列
		final String[][] tmckArgs = {
			//{項目,項目エラー,必須ErrFlg,ドメインErrFlg,桁ErrFlg,リファErrFlg,必須CHK区分,ドメインID,桁CHK区分,桁From,桁to,リファ型,リファレンス値}
			//申込番号 必須あり，ドメイン：番号(12桁)(識別子)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.MSKM_NO, EKK0021D010CBSMsg.MSKM_NO_ERR, "E1", "E2", "E3", "E4", "1", "C0000026", "1", "", "", "9", "" },
			//申込書番号 必須なし，ドメイン：番号(10桁)(半角英数字8)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.MSKMSHO_NO, EKK0021D010CBSMsg.MSKMSHO_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000387", "1", "", "", "9", "" },
			//申込年月日 必須あり，ドメイン：年月日(yyyyMMdd)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.MSKM_YMD, EKK0021D010CBSMsg.MSKM_YMD_ERR, "E1", "E2", "E3", "E4", "1", "C0000001", "1", "", "", "9", "" },
			//SYSID 必須あり，ドメイン：ID(10桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.SYSID, EKK0021D010CBSMsg.SYSID_ERR, "E1", "E2", "E3", "E4", "1", "C0000095", "1", "", "", "9", "" },
			//WEB受付番号 必須なし，ドメイン：番号(1桁-13桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.WEB_UK_NO, EKK0021D010CBSMsg.WEB_UK_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000191", "1", "", "", "9", "" },
			//申込形態コード 必須なし，ドメイン：コード(2桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.MSKM_FORM_CD, EKK0021D010CBSMsg.MSKM_FORM_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000071", "1", "", "", "9", "" },
			//申込明細種別コード 必須なし，ドメイン：コード(3桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.MSKM_DTL_SBT_CD, EKK0021D010CBSMsg.MSKM_DTL_SBT_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000072", "1", "", "", "9", "" },
			//連絡先携帯電話番号 必須なし，ドメイン：電話番号(10桁-11桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.RRKS_KTAI_TELNO, EKK0021D010CBSMsg.RRKS_KTAI_TELNO_ERR, "E1", "E2", "E3", "E4", "0", "C0000083", "1", "", "", "9", "" },
			//連絡先勤務先名 必須なし，ドメイン：名，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.RRKS_OFFC_NM, EKK0021D010CBSMsg.RRKS_OFFC_NM_ERR, "E1", "E2", "E3", "E4", "0", "C0000030", "1", "", "", "9", "" },
			//昼間連絡先電話番号 必須なし，ドメイン：電話番号(10桁-11桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.DT_RRKS_TELNO, EKK0021D010CBSMsg.DT_RRKS_TELNO_ERR, "E1", "E2", "E3", "E4", "0", "C0000083", "1", "", "", "9", "" },
			//新規申込種別コード 必須なし，ドメイン：コード(3桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.NEW_MSKM_SBT_CD, EKK0021D010CBSMsg.NEW_MSKM_SBT_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000072", "1", "", "", "9", "" },
			//申込契機コード 必須なし，ドメイン：コード(2桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.MSKM_OPTNTY_CD, EKK0021D010CBSMsg.MSKM_OPTNTY_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000071", "1", "", "", "9", "" },
			//宅内調査希望アポ期限年月日 必須なし，ドメイン：年月日(yyyyMMdd)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD, EKK0021D010CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD_ERR, "E1", "E2", "E3", "E4", "0", "C0000001", "1", "", "", "9", "" },
			//工事アポ連絡先指定コード 必須なし，ドメイン：コード(1桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.KOJI_APO_RRKS_SHITEI_CD, EKK0021D010CBSMsg.KOJI_APO_RRKS_SHITEI_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000070", "1", "", "", "9", "" },
			//工事アポ連絡先電話番号 必須なし，ドメイン：電話番号(10桁-11桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.KOJI_APO_RRKS_TELNO, EKK0021D010CBSMsg.KOJI_APO_RRKS_TELNO_ERR, "E1", "E2", "E3", "E4", "0", "C0000083", "1", "", "", "9", "" },
			//連絡事項登録年月日時分秒 必須なし，ドメイン：年月日時分秒(yyyyMMddHHmmssSSS)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.RRK_JIKO_ADD_DTM, EKK0021D010CBSMsg.RRK_JIKO_ADD_DTM_ERR, "E1", "E2", "E3", "E4", "0", "C0000004", "1", "", "", "9", "" },
			//申込連絡先メールアドレス 必須なし，ドメイン：メールアドレス(半角英数字2/不備データ含む)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.MSKM_RRKS_MLAD, EKK0021D010CBSMsg.MSKM_RRKS_MLAD_ERR, "E1", "E2", "E3", "E4", "0", "C0000437", "1", "", "", "9", "" },
			//工事進捗通知メールアドレス 必須なし，ドメイン：メールアドレス(E-mail1)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.KOJI_PRG_TCHI_MLAD, EKK0021D010CBSMsg.KOJI_PRG_TCHI_MLAD_ERR, "E1", "E2", "E3", "E4", "0", "C0000109", "1", "", "", "9", "" },
			//連絡事項 必須なし，ドメイン：可変長記入欄(MIX)，桁：可変長:最小:1、最大:1000，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.RRK_JIKO, EKK0021D010CBSMsg.RRK_JIKO_ERR, "E1", "E2", "E3", "E4", "0", "M0000007", "3", "1", "1000", "9", "" },
			//工事進捗通知携帯メールアドレス 必須なし，ドメイン：メールアドレス(E-mail1)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.KJSC_TCH_KTAI_MLAD, EKK0021D010CBSMsg.KJSC_TCH_KTAI_MLAD_ERR, "E1", "E2", "E3", "E4", "0", "C0000109", "1", "", "", "9", "" },
			//メール送信除外フラグ 必須なし，ドメイン：フラグ，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.ML_SEND_JGI_FLG, EKK0021D010CBSMsg.ML_SEND_JGI_FLG_ERR, "E1", "E2", "E3", "E4", "0", "C0000022", "1", "", "", "9", "" },
			//メール送信除外理由メモ 必須なし，ドメイン：可変長記入欄(MIX)，桁：可変長:最小:1、最大:1000，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.ML_SEND_JGI_RSN_MEMO, EKK0021D010CBSMsg.ML_SEND_JGI_RSN_MEMO_ERR, "E1", "E2", "E3", "E4", "0", "M0000007", "3", "1", "1000", "9", "" },
			//番ポ申込連絡先電話番号 必須なし，ドメイン：電話番号(10桁-11桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.BMP_MSKM_RRKS_TLN, EKK0021D010CBSMsg.BMP_MSKM_RRKS_TLN_ERR, "E1", "E2", "E3", "E4", "0", "C0000083", "1", "", "", "9", "" },
			//オプションサービス引継有無 必須なし，ドメイン：有無，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.OP_SVC_HKTGI_UM, EKK0021D010CBSMsg.OP_SVC_HKTGI_UM_ERR, "E1", "E2", "E3", "E4", "0", "C0000024", "1", "", "", "9", "" },
			//解約書類送付希望有無 必須なし，ドメイン：有無，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.DSL_ATICLE_SOHU_KIBO_UM, EKK0021D010CBSMsg.DSL_ATICLE_SOHU_KIBO_UM_ERR, "E1", "E2", "E3", "E4", "0", "C0000024", "1", "", "", "9", "" },
			//連絡手段補記 必須なし，ドメイン：可変長記入欄(MIX)，桁：可変長:最小:1、最大:40，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.RRK_WAY_HOKI, EKK0021D010CBSMsg.RRK_WAY_HOKI_ERR, "E1", "E2", "E3", "E4", "0", "M0000007", "3", "1", "40", "9", "" },
			//新築物件コード 必須なし，ドメイン：コード(1桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.NEWCONST_BUKKEN_CD, EKK0021D010CBSMsg.NEWCONST_BUKKEN_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000070", "1", "", "", "9", "" },
			//復活案件フラグ 必須なし，ドメイン：フラグ，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.HUKKAT_ANKEN_FLG, EKK0021D010CBSMsg.HUKKAT_ANKEN_FLG_ERR, "E1", "E2", "E3", "E4", "0", "C0000022", "1", "", "", "9", "" },
			//同一設備再申込コード 必須なし，ドメイン：コード(1桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.SAME_EQUIP_RE_MSKM_CD, EKK0021D010CBSMsg.SAME_EQUIP_RE_MSKM_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000070", "1", "", "", "9", "" },
			//本人確認書類種別コード 必須なし，ドメイン：コード(1桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.HNIN_CFM_ATICLE_SBT_CD, EKK0021D010CBSMsg.HNIN_CFM_ATICLE_SBT_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000070", "1", "", "", "9", "" },
			//申込書種別コード 必須なし，ドメイン：コード(1桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.MSKMSHO_SBT_CD, EKK0021D010CBSMsg.MSKMSHO_SBT_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000070", "1", "", "", "9", "" },
			//契約付加コード 必須なし，ドメイン：コード(3桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.KEI_HUKA_CD, EKK0021D010CBSMsg.KEI_HUKA_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000072", "1", "", "", "9", "" },
			//地図添付有無 必須なし，ドメイン：有無，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.MAP_TEMP_UM, EKK0021D010CBSMsg.MAP_TEMP_UM_ERR, "E1", "E2", "E3", "E4", "0", "C0000024", "1", "", "", "9", "" },
			//KCNSTB申込台数 必須なし，ドメイン：数値(2桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.KCN_STB_MSKM_CNT, EKK0021D010CBSMsg.KCN_STB_MSKM_CNT_ERR, "E1", "E2", "E3", "E4", "0", "C0000068", "1", "", "", "9", "" },
			//KCNSTB種類コード 必須なし，ドメイン：コード(1桁-10桁)(半角英数字2)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.KCN_STB_KIND_CD, EKK0021D010CBSMsg.KCN_STB_KIND_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000228", "1", "", "", "9", "" },
			//マンション設備システム連携用記事欄 必須なし，ドメイン：可変長記入欄(全角)，桁：可変長:最小:1、最大:100，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN, EKK0021D010CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN_ERR, "E1", "E2", "E3", "E4", "0", "M0000030", "3", "1", "100", "9", "" },
			//マンションID 必須なし，ドメイン：ID(10桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.MANSION_ID, EKK0021D010CBSMsg.MANSION_ID_ERR, "E1", "E2", "E3", "E4", "0", "C0000095", "1", "", "", "9", "" },
			//CAT-ID 必須なし，ドメイン：ID(10桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.CATID, EKK0021D010CBSMsg.CATID_ERR, "E1", "E2", "E3", "E4", "0", "C0000095", "1", "", "", "9", "" },
			//申込受付種別コード 必須なし，ドメイン：コード(1桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.MKM_UK_SBT_CD, EKK0021D010CBSMsg.MKM_UK_SBT_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000070", "1", "", "", "9", "" },
			//申込書取扱情報担当者名 必須なし，ドメイン：氏名，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM, EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM_ERR, "E1", "E2", "E3", "E4", "0", "C0000110", "1", "", "", "9", "" },
			//申込書取扱情報電話番号 必須なし，ドメイン：電話番号(10桁-11桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TELNO, EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TELNO_ERR, "E1", "E2", "E3", "E4", "0", "C0000083", "1", "", "", "9", "" },
			//更新年月日時分秒(更新前) 必須あり，ドメイン：年月日時分秒(yyyyMMddHHmmssSSS)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.UPD_DTM_BF, EKK0021D010CBSMsg.UPD_DTM_BF_ERR, "E1", "E2", "E3", "E4", "1", "C0000004", "1", "", "", "9", "" },
			//申込書明細番号 必須なし，ドメイン：番号(10桁)(半角英数字8)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.MSKMSHO_DTL_NO, EKK0021D010CBSMsg.MSKMSHO_DTL_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000387", "1", "", "", "9", "" },
			//本人確認書類名 必須なし，ドメイン：名，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.HNIN_CFM_ATICLE_NM, EKK0021D010CBSMsg.HNIN_CFM_ATICLE_NM_ERR, "E1", "E2", "E3", "E4", "0", "C0000030", "1", "", "", "9", "" },
			//割引自動適用対象外フラグ 必須なし，ドメイン：フラグ，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.WRIB_AUTO_APLY_TG_GAI_FLG, EKK0021D010CBSMsg.WRIB_AUTO_APLY_TG_GAI_FLG_ERR, "E1", "E2", "E3", "E4", "0", "C0000022", "1", "", "", "9", "" },
			//他システム連携_工事連絡先氏名 必須なし，ドメイン：可変長記入欄(MIX)，桁：可変長:最小:1、最大:40，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.TSYRN_KJ_RRKS_NM, EKK0021D010CBSMsg.TSYRN_KJ_RRKS_NM_ERR, "E1", "E2", "E3", "E4", "0", "M0000007", "3", "1", "40", "9", "" },
			//他システム連携_工事連絡先電話番号 必須なし，ドメイン：コード(1桁-11桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.TSYRN_KJ_RRKS_TLN, EKK0021D010CBSMsg.TSYRN_KJ_RRKS_TLN_ERR, "E1", "E2", "E3", "E4", "0", "C0000234", "1", "", "", "9", "" },
			//他システム連携_宅内調査時連絡先氏名 必須なし，ドメイン：可変長記入欄(MIX)，桁：可変長:最小:1、最大:40，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.TSYRN_TAKCHO_JI_RRKS_NM, EKK0021D010CBSMsg.TSYRN_TAKCHO_JI_RRKS_NM_ERR, "E1", "E2", "E3", "E4", "0", "M0000007", "3", "1", "40", "9", "" },
			//他システム連携_宅内調査時連絡先電話番号 必須なし，ドメイン：コード(1桁-11桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.TSYRN_TAKCHO_JI_RRKS_TLN, EKK0021D010CBSMsg.TSYRN_TAKCHO_JI_RRKS_TLN_ERR, "E1", "E2", "E3", "E4", "0", "C0000234", "1", "", "", "9", "" },
			//他システム連携_連絡希望日時 必須なし，ドメイン：可変長記入欄(MIX)，桁：可変長:最小:1、最大:20，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.TSYRN_RRK_KIBO_DATE, EKK0021D010CBSMsg.TSYRN_RRK_KIBO_DATE_ERR, "E1", "E2", "E3", "E4", "0", "M0000007", "3", "1", "20", "9", "" },
			//他システム連携_宅内調査要否 必須なし，ドメイン：要否，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.TSYRN_TAKCHO_YH, EKK0021D010CBSMsg.TSYRN_TAKCHO_YH_ERR, "E1", "E2", "E3", "E4", "0", "C0000023", "1", "", "", "9", "" },
			//他システム連携_地図有無 必須なし，ドメイン：有無，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.TSYRN_MAP_UM, EKK0021D010CBSMsg.TSYRN_MAP_UM_ERR, "E1", "E2", "E3", "E4", "0", "C0000024", "1", "", "", "9", "" },
			//他システム連携_既存契約情報 必須なし，ドメイン：可変長記入欄(MIX)，桁：可変長:最小:1、最大:50，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.TSYRN_KZN_KEI_INF, EKK0021D010CBSMsg.TSYRN_KZN_KEI_INF_ERR, "E1", "E2", "E3", "E4", "0", "M0000007", "3", "1", "50", "9", "" },
			//他システム連携_不備解消年月日 必須なし，ドメイン：可変長記入欄(MIX)，桁：可変長:最小:1、最大:50，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.TSYRN_HBI_KAISHOU_YMD, EKK0021D010CBSMsg.TSYRN_HBI_KAISHOU_YMD_ERR, "E1", "E2", "E3", "E4", "0", "M0000007", "3", "1", "50", "9", "" },
			// ANK-4468-11-00 MOD START
			////設備流用有無 必須なし，ドメイン：有無，桁：ドメインに従う，リファレンス：ドメインに従う
			//設備流用有無 必須なし，ドメイン：コード(1桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			//{EKK0021D010CBSMsg.EQUIP_RYUYO_UM, EKK0021D010CBSMsg.EQUIP_RYUYO_UM_ERR, "E1", "E2", "E3", "E4", "0", "C0000024", "1", "", "", "9", "" },
			{EKK0021D010CBSMsg.EQUIP_RYUYO_UM, EKK0021D010CBSMsg.EQUIP_RYUYO_UM_ERR, "E1", "E2", "E3", "E4", "0", "C0000070", "1", "", "", "9", "" },
			// ANK-4468-11-00 MOD END
			//流用元工事案件番号 必須なし，ドメイン：番号(10桁)(識別子)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.RYUYO_MOTO_KJAK_NO, EKK0021D010CBSMsg.RYUYO_MOTO_KJAK_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000155", "1", "", "", "9", "" },
			//設備流用工事完了希望年月日 必須なし，ドメイン：年月日(yyyyMMdd)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.SBRY_KJ_FIN_KIBOYMD, EKK0021D010CBSMsg.SBRY_KJ_FIN_KIBOYMD_ERR, "E1", "E2", "E3", "E4", "0", "C0000001", "1", "", "", "9", "" },
			//現在利用先契約回線区分 必須なし，ドメイン：区分(1桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.NOW_USE_SK_KEI_KISN_DIV, EKK0021D010CBSMsg.NOW_USE_SK_KEI_KISN_DIV_ERR, "E1", "E2", "E3", "E4", "0", "C0000161", "1", "", "", "9", "" },
			//機器設置場所変更有無 必須なし，ドメイン：有無，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.KIKI_SETPLC_CHGUM, EKK0021D010CBSMsg.KIKI_SETPLC_CHGUM_ERR, "E1", "E2", "E3", "E4", "0", "C0000024", "1", "", "", "9", "" },
			//同日実施希望有無 必須なし，ドメイン：有無，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.DOJITU_JSSI_KBUM, EKK0021D010CBSMsg.DOJITU_JSSI_KBUM_ERR, "E1", "E2", "E3", "E4", "0", "C0000024", "1", "", "", "9", "" },
			//早期開通早期連絡希望有無 必須なし，ドメイン：有無，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.EARLY_OPEN_EARLY_RRK_KBUM, EKK0021D010CBSMsg.EARLY_OPEN_EARLY_RRK_KBUM_ERR, "E1", "E2", "E3", "E4", "0", "C0000024", "1", "", "", "9", "" },
			// ANK-4262-00-00 MOD START
//			//電子交付同意有無 必須なし，ドメイン：有無，桁：ドメインに従う，リファレンス：ドメインに従う
//			{EKK0021D010CBSMsg.DNSKH_DOI_UM, EKK0021D010CBSMsg.DNSKH_DOI_UM_ERR, "E1", "E2", "E3", "E4", "0", "C0000024", "1", "", "", "9", "" },
			//電子交付同意有無 必須なし，ドメイン：区分(1桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EKK0021D010CBSMsg.DNSKH_DOI_UM, EKK0021D010CBSMsg.DNSKH_DOI_UM_ERR, "E1", "E2", "E3", "E4", "0", "C0000161", "1", "", "", "9", "" },
			// ANK-4262-00-00 MOD END
			// ANK-4468-04-00 MOD START
			////宅内調査アポ架電希望有無 必須なし，ドメイン：有無，桁：ドメインに従う，リファレンス：ドメインに従う
			//宅内調査アポ架電希望有無 必須なし，ドメイン：コード(1桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			//{EKK0021D010CBSMsg.TAKCHO_APO_KADEN_KIBO_UM, EKK0021D010CBSMsg.TAKCHO_APO_KADEN_KIBO_UM_ERR, "E1", "E2", "E3", "E4", "0", "C0000024", "1", "", "", "9", "" }
			{EKK0021D010CBSMsg.TAKCHO_APO_KADEN_KIBO_UM, EKK0021D010CBSMsg.TAKCHO_APO_KADEN_KIBO_UM_ERR, "E1", "E2", "E3", "E4", "0", "C0000070", "1", "", "", "9", "" }
			// ANK-4468-04-00 MOD END
// ANK-4640-00-00 ADD START
			//WAO注文連携抑止フラグ 必須なし，ドメイン：フラグ，桁：ドメインに従う，リファレンス：ドメインに従う
			,{EKK0021D010CBSMsg.WAO_CHUMN_RNKI_YOKSI_FLG, EKK0021D010CBSMsg.WAO_CHUMN_RNKI_YOKSI_FLG_ERR, "E1", "E2", "E3", "E4", "0", "C0000022", "1", "", "", "9", "" }
// ANK-4640-00-00 ADD END
		};
		final String[][] strArMsg = createTMCKArgs(tmckArgs);

		JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"Call");

		//チェックを行う
		ComPatternsCheck.check(inContext, inCBSMsg, strArMsg, EKK0021D010CBSMsg.STATUS);

		JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"End");

	}

	/**
	 * 単項目制約定義とドメイン定義から、単項目チェック定義を生成
	 * @param args 単項目制約定義情報
	 * @return	単項目制約情報（単項目チェック部品へ引き渡すチェック用パラメタ配列）
	 *
	 */
	private String[][] createTMCKArgs(String[][] args) {
		
		ArrayList tmckList = new ArrayList();
		for ( int i=0; i< args.length; i++ ) {
			ArrayList tmckRec = new ArrayList();
			String[] komokuDef = args[i];
			String domainID = komokuDef[7];
			String domainCls = "eo.ejb.domain.JSYejb" + domainID + "Domain";
			try {
				JSYejbBaseDomain domain =
					(JSYejbBaseDomain) Class.forName(domainCls).newInstance();
				tmckRec = domain.getTmckDefine(komokuDef);
				for (int p=0;p<tmckRec.size();p++) {
					tmckList.add(tmckRec.get(p));
				}
			} catch (Exception e) {
			}
		}
	
		return (String[][])tmckList.toArray(new String[tmckList.size()][0]);
	
	}

}
