/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JECK0011C080ETDA
*	ソースファイル名：JECK0011C080ETDA.java
*	作成者			：富士通
*	日付			：2011年10月25日
*＜機能概要＞
*	お客様名寄せ時の副次処理を行う部品
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/10/25	富士通		新規作成
*	v4.00.00	2013/03/18	FJ)沖田		OT-2013-0000308対応
*	v7.00.00	2013/12/05	FJ)大山		ANK-1578-00-00
*	v6.00.00	2014/01/14	FJ)大山		OM-2014-0000120
*	v8.00.00	2014/03/12	FJ)寺園		ST-2014-0000075
*	v8.00.01	2014/03/20	FJ)松枝		ST-2014-0000075
*	v8.00.01	2014/06/17	FJ)窪田		OM-2014-0002141
*	v12.00.00	2015/02/27	FJ)中山		OM-2015-0000191
*	v20.00.00	2015/10/05	FJ)清原		ANK-2553-00-00
*	v23.00.00	2016/04/15	FJ)木庭		ANK-2714-00-00
**********************************************************************/

package eo.ejb.common.db;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.model.base.CAANConnectionMgr;
import com.fujitsu.futurity.model.base.CAANException;
import com.fujitsu.futurity.model.base.CAANJDBCUtil;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.base.CAANRuntimeException;
import com.fujitsu.futurity.model.ejb.common.JSYejbConnection;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.common.util.JZMCommonUtil;
import eo.ejb.cbm.entity.CH0891ETMsg;
import eo.ejb.cbm.entity.CK0011ETMsg;
import eo.ejb.cbm.entity.CK0021ETMsg;
import eo.ejb.cbm.entity.CK0031ETMsg;
import eo.ejb.cbm.entity.CK0041ETMsg;
import eo.ejb.cbm.entity.CK0041LE;
import eo.ejb.cbm.entity.CK0061ETMsg;
import eo.ejb.cbm.entity.CK0061LE;
import eo.ejb.cbm.entity.CK0111ETMsg;
import eo.ejb.cbm.entity.CK0111LE;
import eo.ejb.cbm.entity.CK0121ETMsg;
import eo.ejb.cbm.entity.CK0121LE;
import eo.ejb.cbm.entity.CK0131ETMsg;
import eo.ejb.cbm.entity.CK0131LE;
import eo.ejb.cbm.entity.CK0141ETMsg;
import eo.ejb.cbm.entity.CK0141LE;
import eo.ejb.cbm.entity.CK0201ETMsg;
import eo.ejb.cbm.entity.CK0201LE;
import eo.ejb.cbm.entity.KK0011ETMsg;
import eo.ejb.cbm.entity.KK0011LE;
import eo.ejb.cbm.entity.KK0021ETMsg;
import eo.ejb.cbm.entity.KK0021LE;
import eo.ejb.cbm.entity.KK0051ETMsg;
import eo.ejb.cbm.entity.KK0051LE;
import eo.ejb.cbm.entity.KK0081ETMsg;
import eo.ejb.cbm.entity.KK0081LE;
import eo.ejb.cbm.entity.KK0161ETMsg;
import eo.ejb.cbm.entity.KK0201ETMsg;
import eo.ejb.cbm.entity.KK0201LE;
import eo.ejb.cbm.entity.KK0311ETMsg;
import eo.ejb.cbm.entity.KK0311LE;
import eo.ejb.cbm.entity.KK0341ETMsg;
import eo.ejb.cbm.entity.KK0341LE;
import eo.ejb.cbm.entity.KK0351ETMsg;
import eo.ejb.cbm.entity.KK0351LE;
import eo.ejb.cbm.entity.KK0361ETMsg;
import eo.ejb.cbm.entity.KK0361LE;
import eo.ejb.cbm.entity.KK0441ETMsg;
import eo.ejb.cbm.entity.KK0441LE;
import eo.ejb.cbm.entity.KK0451ETMsg;
import eo.ejb.cbm.entity.KK0451LE;
import eo.ejb.cbm.entity.KK0491ETMsg;
import eo.ejb.cbm.entity.KK0491LE;
import eo.ejb.cbm.entity.KK0561ETMsg;
import eo.ejb.cbm.entity.KK0561LE;
import eo.ejb.cbm.entity.KK0571ETMsg;
import eo.ejb.cbm.entity.KK0571LE;
import eo.ejb.cbm.entity.KK0671ETMsg;
import eo.ejb.cbm.entity.KK0671LE;
import eo.ejb.cbm.entity.KK1041ETMsg;
import eo.ejb.cbm.entity.KK1041LE;
import eo.ejb.cbm.entity.KK1071ETMsg;
import eo.ejb.cbm.entity.KK1071LE;
import eo.ejb.cbm.entity.KK1081ETMsg;
import eo.ejb.cbm.entity.KK1081LE;
import eo.ejb.cbm.entity.KK1121ETMsg;
import eo.ejb.cbm.entity.KK1121LE;
import eo.ejb.cbm.entity.KK1141ETMsg;
import eo.ejb.cbm.entity.KK1141LE;
import eo.ejb.cbm.entity.KK1151ETMsg;
import eo.ejb.cbm.entity.KK1151LE;
import eo.ejb.cbm.entity.KK1261ETMsg;
import eo.ejb.cbm.entity.KK1261LE;
import eo.ejb.cbm.entity.KK1391ETMsg;
import eo.ejb.cbm.entity.KK1391LE;
import eo.ejb.cbm.entity.KK1681ETMsg;
import eo.ejb.cbm.entity.KK1681LE;
import eo.ejb.cbm.entity.KK1931ETMsg;
import eo.ejb.cbm.entity.KK1931LE;
import eo.ejb.cbm.entity.KK1941ETMsg;
import eo.ejb.cbm.entity.KK1941LE;
import eo.ejb.cbm.entity.KK1951ETMsg;
import eo.ejb.cbm.entity.KK1951LE;
import eo.ejb.cbm.entity.KK1961ETMsg;
import eo.ejb.cbm.entity.KK1961LE;
import eo.ejb.cbm.entity.KK2011ETMsg;
import eo.ejb.cbm.entity.KK2011LE;
import eo.ejb.cbm.entity.KK2021ETMsg;
import eo.ejb.cbm.entity.KK2021LE;
import eo.ejb.cbm.entity.KK2031ETMsg;
import eo.ejb.cbm.entity.KK2031LE;
import eo.ejb.cbm.entity.KK2081ETMsg;
import eo.ejb.cbm.entity.KK2081LE;
import eo.ejb.cbm.entity.KK2111ETMsg;
import eo.ejb.cbm.entity.KK2111LE;
import eo.ejb.cbm.entity.KK2811ETMsg;
import eo.ejb.cbm.entity.KK2811LE;
import eo.ejb.cbm.entity.CH0891LE;
import eo.ejb.cbs.cbsmsg.ECK0011C080CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011C080CBSMsg1List;
import eo.ejb.common.JCKModelCommon;
import eo.ejb.common.JKKModelCommon;
import eo.ejb.common.JKKModelConst;

/**
 * <p>
 * お客様名寄せの副次処理を行う部品クラスです。
 * </p>
 * @author 富士通
 */
public class JECK0011C080ETDA
{

	/** 会員種別コード：マスター会員（個人） */
	private static final String MEMBERCD_MASTER_KOJIN = "10";

	/** 会員種別コード：マスター会員（法人） */
	private static final String MEMBERCD_MASTER_HOJIN = "20";

	/** 予約適用コード：予約手続中 */
	private static final String RSVCD_CHARGING = "1";

	/** 予約適用コード：予約確定 */
	private static final String RSVCD_DECIDE = "2";

	/** eonetID未移行フラグ：移行済 */
	private static final String EONETIDFLG_MOVED = "0";

	/** 会員種別特定フラグ：特定済 */
	private static final String MEMBER_SEARCHFLG_SEARCHED = "1";

	/** 無効フラグ：有効 */
	private static final String MKFLG_VALID = "0";

	/** 無効フラグ：無効 */
	private static final String MKFLG_INVALID = "1";

	/** 日付：最大値 */
	private static final String DATE_MAX = "20991231";

	/** 公開コード：非公開 */
	private static final String KOKAICD_CLOSE = "0";

	/** 連絡先分類コード：回線系連絡先 */
	private static final String RRSK_BUNRUICD_KAISEN = "0";

	/** 連絡先分類コード：コンテンツ系連絡先 */
	private static final String RRSK_BUNRUICD_CONTENTS = "1";

	/** 連絡方法コード：メールアドレス */
	private static final String RRK_WAYCD_MAIL = "001";

	/** 連絡方法コード：電話番号 */
	private static final String RRK_WAYCD_TEL = "003";

	/** グループ種別コード：ファミリー */
	private static final String GRP_SBTCD_FAMILY = "001";

	/** グループ-グループコードシーケンス名 */
	private static final String SEQ_GRP_CD = "SEQ_GRP_CD";

	/** 接頭語(G) */
	private static final String PREFIX_G = "G";

	/** グループコード桁数 */
	private static final int SSEQ_GRP_CD_LENGTH = 9;

	/** グループ-グループコードシーケンス名 */
	private static final String SEQ_CUST_GRP_SETTE_NO = "SEQ_CUST_GRP_SETTE_NO";

	/** 桁数 */
	private static final int SEQ_CUST_GRP_SETTE_NO_LENGTH = 12;

	/** シーケンス定義名(連絡先番号) */
	private static final String RRKS_SEQ_NAME = "SEQ_RRKS_NO";

	/** 接頭語(連絡先番号) */
	private static final String PREFIX_RRKSNO = "";

	/** 連絡先番号桁数 */
	private static final int RRSKNO_LENGTH = 12;

	/** お客様グループ設定ステータス */
	private static final String CUST_GRP_STAT_INVALID = "002";

	/** お客様グループ設定ステータス：有効 */
	private static final String CUST_GRP_STAT_VALID = "001";

	/** 業務区分：0 */
	private static final String GYOUMU_KBN_ZERO = "0";

	/** 業務区分：1 */
	private static final String GYOUMU_KBN_ONE = "1";

	/** 業務区分：2 */
	private static final String GYOUMU_KBN_TWO = "2";

	/** 業務区分：3 */
	private static final String GYOUMU_KBN_THR = "3";

	/** 業務区分：4 */
	private static final String GYOUMU_KBN_FOU = "4";

	/** オプトインメール受信設定ステータス：有効 */
	private static final String OPT_ML_STAT_VALID = "010";

	/** オプトインメール受信設定ステータス：無効 */
	private static final String OPT_ML_STAT_INVALID = "020";

	/** 連絡先種別コード：自宅 */
	private static final String RRKS_SBT_MYHOME = "1";

	/**
	 * <p>
	 * お客様名寄せの副次処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	public void execDBAccess(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// 顧客側のDBAccessを行います
		dbAccessOfCK(inCBSMsg, inContext);

		// 契約側のDBAccessを行います
		dbAccessOfKK(inCBSMsg, inContext);

// ANK-2714-00-00 ADD START
		// 請求側のDBAccessを行います
		dbAccessOfCH(inCBSMsg, inContext);
// ANK-2714-00-00 ADD END
	}

	/**
	 * <p>
	 * 顧客のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessOfCK(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// お客様、お客様<個人>、お客様<法人>、法人連絡先、連絡先(コンテンツ系電話番号)のDBアクセス
		dbAccessCusts(inCBSMsg, inContext);

		// 不良顧客のDBアクセス
		dbAccessHuryoCust(inCBSMsg, inContext);

		// グループのDBアクセス
		dbAccessGrp(inCBSMsg, inContext);

		// オプトインメール受信設定のDBアクセス
		List<String> motoMladList = dbAccessOptinmRcvSet(inCBSMsg, inContext);

		// 業務区分 = "4"以外の場合
		if (!"4".equals(inCBSMsg.getString(ECK0011C080CBSMsg.GYOMU_KBN)))
		{
			// オプトインメールに紐付くオプトインメール受信設定の更新
			dbAccessOptinmMkIns(inCBSMsg, inContext, motoMladList);
		}

		// 連絡先のDBアクセス
		dbAccessRrks(inCBSMsg, inContext);
	}

	/**
	 * <p>
	 * お客様のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessCusts(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// 名寄せ元のカレントを取得
		CAANMsg curMsgCK0011Old = new CAANMsg(CK0011ETMsg.class.getName());
		curMsgCK0011Old.set(CK0011ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		curMsgCK0011Old.set(CK0011ETMsg.RSV_APLY_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
		CAANMsg retCurMsgOld = new JCKejbCK0011DBABase().findByCurrent(curMsgCK0011Old);

		String curGeneOld = retCurMsgOld.getString(CK0011ETMsg.GENE_ADD_DTM); // 名寄せ元のカレント世代年月日時分秒
		String memberCd = retCurMsgOld.getString(CK0011ETMsg.MEMBER_SBT_CD);
		if (null == retCurMsgOld || null == memberCd)
		{
			// 会員種別コードが設定されていない場合
			return;
		}

		// 名寄せ先のカレントを取得
		CAANMsg curMsgCK0011New = new CAANMsg(CK0011ETMsg.class.getName());
		curMsgCK0011New.set(CK0011ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
		curMsgCK0011New.set(CK0011ETMsg.RSV_APLY_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
		CAANMsg retCurMsgNew = new JCKejbCK0011DBABase().findByCurrent(curMsgCK0011New);

		// 条件で変更のない項目の設定
		CAANMsg custMsg = setCustCommonColumn(inCBSMsg, inContext, retCurMsgOld, retCurMsgNew);
		String geneNew = custMsg.getString(CK0011ETMsg.GENE_ADD_DTM); // 新規で積まれるお客様の世代登録年月日時分秒

		if (MEMBERCD_MASTER_KOJIN.equals(memberCd)
				&& ("0".equals(inCBSMsg.getString(ECK0011C080CBSMsg.GYOMU_KBN))
					|| "2".equals(inCBSMsg.getString(ECK0011C080CBSMsg.GYOMU_KBN))
					|| "4".equals(inCBSMsg.getString(ECK0011C080CBSMsg.GYOMU_KBN))))
		{
			// 名寄せ元SYSIDに紐づくお客様の会員種別コードがマスター会員(個人)の場合
			custMsg = setMasterKojinColumn(inCBSMsg, inContext, custMsg, retCurMsgOld);
			create(inCBSMsg, custMsg);
			dbAccessCustKojin(inCBSMsg, inContext, curGeneOld, geneNew); // お客様<個人>の登録	
			custHojinInvalid(inCBSMsg, inContext); // お客様<法人>を無効化
			hojinRrksInvalid(inCBSMsg, inContext); // 法人連絡先を無効化
		}
		else if(MEMBERCD_MASTER_HOJIN.equals(memberCd)
				&& ("1".equals(inCBSMsg.getString(ECK0011C080CBSMsg.GYOMU_KBN))
					|| "3".equals(inCBSMsg.getString(ECK0011C080CBSMsg.GYOMU_KBN))
					|| "4".equals(inCBSMsg.getString(ECK0011C080CBSMsg.GYOMU_KBN))))
		{
			// 名寄せ元SYSIDに紐づくお客様の会員種別コードがマスター会員(法人)の場合
			custMsg = setMasterHojinColumn(inCBSMsg, inContext, custMsg, retCurMsgNew);
			create(inCBSMsg, custMsg);
			dbAccessCustHojin(inCBSMsg, inContext, curGeneOld, geneNew); // お客様<法人>の登録
			dbAccessCustHojinRrksMsg(inCBSMsg, inContext); // 法人連絡先の登録
			custKojinInvalid(inCBSMsg, inContext); // お客様<個人>を無効化
		}
		else
		{
			return;
		}
	}

	/**
	 * <p>
	 * お客様の共通する項目の設定を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param curMsgOld 名寄せ元のカレントレコードのMsg
	 * @param curMsgNew 名寄せ先のカレントレコードのMsg
	 * @return 共通な項目の値を設定したMsg
	*/
	private CAANMsg setCustCommonColumn(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg curMsgOld, CAANMsg curMsgNew)
	{
		CAANMsg setCustMsg = new CAANMsg(CK0011ETMsg.class.getName());

		// 名寄せ元項目引継
		setCustMsg.set(CK0011ETMsg.KEISHA_TYPE_CD, curMsgOld.getString(CK0011ETMsg.KEISHA_TYPE_CD));
		setCustMsg.set(CK0011ETMsg.CUST_NM, curMsgOld.getString(CK0011ETMsg.CUST_NM));
		setCustMsg.set(CK0011ETMsg.CUST_KANA, curMsgOld.getString(CK0011ETMsg.CUST_KANA));
		setCustMsg.set(CK0011ETMsg.CUST_SEX_CD, curMsgOld.getString(CK0011ETMsg.CUST_SEX_CD));
		setCustMsg.set(CK0011ETMsg.CUST_BIRTHD, curMsgOld.getString(CK0011ETMsg.CUST_BIRTHD));
		setCustMsg.set(CK0011ETMsg.NM_KISHO, curMsgOld.getString(CK0011ETMsg.NM_KISHO));
		setCustMsg.set(CK0011ETMsg.KEISHA_AD_CD, curMsgOld.getString(CK0011ETMsg.KEISHA_AD_CD));
		setCustMsg.set(CK0011ETMsg.KEISHA_PCD, curMsgOld.getString(CK0011ETMsg.KEISHA_PCD));
		setCustMsg.set(CK0011ETMsg.KEISHA_STATE_NM, curMsgOld.getString(CK0011ETMsg.KEISHA_STATE_NM));
		setCustMsg.set(CK0011ETMsg.KEISHA_CITY_NM, curMsgOld.getString(CK0011ETMsg.KEISHA_CITY_NM));
		setCustMsg.set(CK0011ETMsg.KEISHA_OAZTSU_NM, curMsgOld.getString(CK0011ETMsg.KEISHA_OAZTSU_NM));
		setCustMsg.set(CK0011ETMsg.KEISHA_AZCHO_NM, curMsgOld.getString(CK0011ETMsg.KEISHA_AZCHO_NM));
		setCustMsg.set(CK0011ETMsg.KEISHA_BNCHIGO, curMsgOld.getString(CK0011ETMsg.KEISHA_BNCHIGO));
		setCustMsg.set(CK0011ETMsg.KEISHA_ADRTTM, curMsgOld.getString(CK0011ETMsg.KEISHA_ADRTTM));
		setCustMsg.set(CK0011ETMsg.KEISHA_ADRRM, curMsgOld.getString(CK0011ETMsg.KEISHA_ADRRM));
		setCustMsg.set(CK0011ETMsg.KEISHA_AD_MAN_INPUT_FLG, curMsgOld.getString(CK0011ETMsg.KEISHA_AD_MAN_INPUT_FLG));
		setCustMsg.set(CK0011ETMsg.KEISHA_TELNO, curMsgOld.getString(CK0011ETMsg.KEISHA_TELNO));
	    setCustMsg.set(CK0011ETMsg.CSSTI_SHS_AD_CD, curMsgOld.getString(CK0011ETMsg.CSSTI_SHS_AD_CD));
	    setCustMsg.set(CK0011ETMsg.CSSTI_SHS_PCD, curMsgOld.getString(CK0011ETMsg.CSSTI_SHS_PCD));
	    setCustMsg.set(CK0011ETMsg.CSSTI_SHS_STATE_NM, curMsgOld.getString(CK0011ETMsg.CSSTI_SHS_STATE_NM));
	    setCustMsg.set(CK0011ETMsg.CSSTI_SHS_CITY_NM, curMsgOld.getString(CK0011ETMsg.CSSTI_SHS_CITY_NM));
	    setCustMsg.set(CK0011ETMsg.CSSTI_SHS_OAZTSU_NM, curMsgOld.getString(CK0011ETMsg.CSSTI_SHS_OAZTSU_NM));
	    setCustMsg.set(CK0011ETMsg.CSSTI_SHS_AZCHO_NM, curMsgOld.getString(CK0011ETMsg.CSSTI_SHS_AZCHO_NM));
	    setCustMsg.set(CK0011ETMsg.CSSTI_SHS_BNCHIGO, curMsgOld.getString(CK0011ETMsg.CSSTI_SHS_BNCHIGO));
	    setCustMsg.set(CK0011ETMsg.CSSTI_SHS_ADRTTM, curMsgOld.getString(CK0011ETMsg.CSSTI_SHS_ADRTTM));
	    setCustMsg.set(CK0011ETMsg.CSSTI_SHS_ADRRM, curMsgOld.getString(CK0011ETMsg.CSSTI_SHS_ADRRM));
	    setCustMsg.set(CK0011ETMsg.CSSTI_SHS_AD_MAN_INPUT_FLG, curMsgOld.getString(CK0011ETMsg.CSSTI_SHS_AD_MAN_INPUT_FLG));
		setCustMsg.set(CK0011ETMsg.RRK_WAY_CD, curMsgOld.getString(CK0011ETMsg.RRK_WAY_CD));
		setCustMsg.set(CK0011ETMsg.RRK_WAY_HOKI, curMsgOld.getString(CK0011ETMsg.RRK_WAY_HOKI));
		setCustMsg.set(CK0011ETMsg.MEMBER_SBT_CD, curMsgOld.getString(CK0011ETMsg.MEMBER_SBT_CD));
		setCustMsg.set(CK0011ETMsg.CONT_ISP_USE_FAIL_FLG, curMsgOld.getString(CK0011ETMsg.CONT_ISP_USE_FAIL_FLG));
		setCustMsg.set(CK0011ETMsg.NAIHAN_GAIHAN_CD, curMsgOld.getString(CK0011ETMsg.NAIHAN_GAIHAN_CD));
		setCustMsg.set(CK0011ETMsg.NAIHAN_COMP_SKBT_CD, curMsgOld.getString(CK0011ETMsg.NAIHAN_COMP_SKBT_CD));
		setCustMsg.set(CK0011ETMsg.NECESSARY_HOJO_CD, curMsgOld.getString(CK0011ETMsg.NECESSARY_HOJO_CD));
		setCustMsg.set(CK0011ETMsg.SHK_EOID, curMsgOld.getString(CK0011ETMsg.SHK_EOID));
		setCustMsg.set(CK0011ETMsg.SHK_EOID_PWD, curMsgOld.getString(CK0011ETMsg.SHK_EOID_PWD));
		setCustMsg.set(CK0011ETMsg.EOID_TCHISHO_HAKKOJSKI_CD, curMsgOld.getString(CK0011ETMsg.EOID_TCHISHO_HAKKOJSKI_CD));
		setCustMsg.set(CK0011ETMsg.MMB_ISP_KSSAI_STAT_CD, curMsgOld.getString(CK0011ETMsg.MMB_ISP_KSSAI_STAT_CD));

		// 名寄せ先項目引継
		setCustMsg.set(CK0011ETMsg.CUST_STAT, curMsgNew.getString(CK0011ETMsg.CUST_STAT));
		setCustMsg.set(CK0011ETMsg.CUST_CFM_BIKO, curMsgNew.getString(CK0011ETMsg.CUST_CFM_BIKO));
		setCustMsg.set(CK0011ETMsg.CUST_RANK_CD, curMsgNew.getString(CK0011ETMsg.CUST_RANK_CD));
		setCustMsg.set(CK0011ETMsg.CONT_AD_BNKT_STA_PST, curMsgNew.getString(CK0011ETMsg.CONT_AD_BNKT_STA_PST));
		setCustMsg.set(CK0011ETMsg.KARI_ADD_YMD, curMsgNew.getString(CK0011ETMsg.KARI_ADD_YMD));
		setCustMsg.set(CK0011ETMsg.JOIN_YMD, curMsgNew.getString(CK0011ETMsg.JOIN_YMD));
		setCustMsg.set(CK0011ETMsg.LOGIN_NINSHO_KH, curMsgNew.getString(CK0011ETMsg.LOGIN_NINSHO_KH));
		setCustMsg.set(CK0011ETMsg.CUST_TKJK_CD, curMsgNew.getString(CK0011ETMsg.CUST_TKJK_CD));
		setCustMsg.set(CK0011ETMsg.CUST_NTAIKAI_CD, curMsgNew.getString(CK0011ETMsg.CUST_NTAIKAI_CD));
		setCustMsg.set(CK0011ETMsg.CUST_TAIKAI_YMD, curMsgNew.getString(CK0011ETMsg.CUST_TAIKAI_YMD));
		setCustMsg.set(CK0011ETMsg.CUST_TAIKAI_RSN_CD, curMsgNew.getString(CK0011ETMsg.CUST_TAIKAI_RSN_CD));
		setCustMsg.set(CK0011ETMsg.CUST_KAIHK_YMD, curMsgNew.getString(CK0011ETMsg.CUST_KAIHK_YMD));
		setCustMsg.set(CK0011ETMsg.LOGIN_NINSHO_STP_YMD, curMsgNew.getString(CK0011ETMsg.LOGIN_NINSHO_STP_YMD));
		setCustMsg.set(CK0011ETMsg.NAYOSE_SAKI_SYSID, curMsgNew.getString(CK0011ETMsg.NAYOSE_SAKI_SYSID));
		setCustMsg.set(CK0011ETMsg.NAYOSE_YMD, curMsgNew.getString(CK0011ETMsg.NAYOSE_YMD));
		setCustMsg.set(CK0011ETMsg.CUST_MK_YMD, curMsgNew.getString(CK0011ETMsg.CUST_MK_YMD));
		setCustMsg.set(CK0011ETMsg.DEL_TRGT_GAI_FLG, curMsgNew.getString(CK0011ETMsg.DEL_TRGT_GAI_FLG));
		setCustMsg.set(CK0011ETMsg.KYUMIN_FLG, curMsgNew.getString(CK0011ETMsg.KYUMIN_FLG));
		setCustMsg.set(CK0011ETMsg.KYUMIN_YMD, curMsgNew.getString(CK0011ETMsg.KYUMIN_YMD));
		setCustMsg.set(CK0011ETMsg.SVCTK_BUT_DEL_TRN_JSSI_DTM, curMsgNew.getString(CK0011ETMsg.SVCTK_BUT_DEL_TRN_JSSI_DTM));
		setCustMsg.set(CK0011ETMsg.EOID_KNRN_INF_CHG_SKCD, curMsgNew.getString(CK0011ETMsg.EOID_KNRN_INF_CHG_SKCD));
		setCustMsg.set(CK0011ETMsg.EOID_KNRN_INF_CHG_DTM, curMsgNew.getString(CK0011ETMsg.EOID_KNRN_INF_CHG_DTM));
		
		setCustMsg.set(CK0011ETMsg.KEPG_KJNIF_TRAT_DOI_UM, curMsgNew.getString(CK0011ETMsg.KEPG_KJNIF_TRAT_DOI_UM));
		setCustMsg.set(CK0011ETMsg.KEPG_KJNIF_TRAT_DOI_YMD, curMsgNew.getString(CK0011ETMsg.KEPG_KJNIF_TRAT_DOI_YMD));
		setCustMsg.set(CK0011ETMsg.KEPG_KJNIFT_FFG, curMsgNew.getString(CK0011ETMsg.KEPG_KJNIFT_FFG));
		setCustMsg.set(CK0011ETMsg.KEPG_KJNIFT_FFG_CHG_YMD, curMsgNew.getString(CK0011ETMsg.KEPG_KJNIFT_FFG_CHG_YMD));
		setCustMsg.set(CK0011ETMsg.KEPG_KJNIFT_FFG_CHG_UWY_CD, curMsgNew.getString(CK0011ETMsg.KEPG_KJNIFT_FFG_CHG_UWY_CD));
		setCustMsg.set(CK0011ETMsg.KEPG_KJNIFT_JOKYO_CD, curMsgNew.getString(CK0011ETMsg.KEPG_KJNIFT_JOKYO_CD));
		setCustMsg.set(CK0011ETMsg.KEPG_KJNIFT_STAYMD, curMsgNew.getString(CK0011ETMsg.KEPG_KJNIFT_STAYMD));
		setCustMsg.set(CK0011ETMsg.KEPG_KJNIFT_RSCD, curMsgNew.getString(CK0011ETMsg.KEPG_KJNIFT_RSCD));
		setCustMsg.set(CK0011ETMsg.KEPG_KJNIFT_RSCD_CHG_YMD, curMsgNew.getString(CK0011ETMsg.KEPG_KJNIFT_RSCD_CHG_YMD));
//v20.00.00 Add Start
		setCustMsg.set(CK0011ETMsg.MMB_ISP_KSSAI_USE_JDG_CD, curMsgNew.getString(CK0011ETMsg.MMB_ISP_KSSAI_USE_JDG_CD));
//v20.00.00 Add End

		// 業務区分判定
		if ("4".equals(inCBSMsg.getString(ECK0011C080CBSMsg.GYOMU_KBN)))
		{
			setCustMsg.set(CK0011ETMsg.EOID, curMsgNew.getString(CK0011ETMsg.EOID));
			setCustMsg.set(CK0011ETMsg.EOID_CHGE_YMD, curMsgNew.getString(CK0011ETMsg.EOID_CHGE_YMD));
			setCustMsg.set(CK0011ETMsg.PWD_REMINDER_QS_CD, curMsgNew.getString(CK0011ETMsg.PWD_REMINDER_QS_CD));
			setCustMsg.set(CK0011ETMsg.PWD_REMINDER_QS_NAIYO, curMsgNew.getString(CK0011ETMsg.PWD_REMINDER_QS_NAIYO));
			setCustMsg.set(CK0011ETMsg.PWD_REMINDER_ANS, curMsgNew.getString(CK0011ETMsg.PWD_REMINDER_ANS));
			setCustMsg.set(CK0011ETMsg.NKNAME_CHGE_YMD, curMsgNew.getString(CK0011ETMsg.NKNAME_CHGE_YMD));
			setCustMsg.set(CK0011ETMsg.NKNAME, curMsgNew.getString(CK0011ETMsg.NKNAME));
		}
		else
		{
			setCustMsg.set(CK0011ETMsg.EOID, inCBSMsg.getString(ECK0011C080CBSMsg.EOID));
			setCustMsg.set(CK0011ETMsg.PWD_REMINDER_QS_CD, inCBSMsg.getString(ECK0011C080CBSMsg.PWD_REMINDER_QS_CD));
			setCustMsg.setNull(CK0011ETMsg.PWD_REMINDER_QS_NAIYO);
			setCustMsg.set(CK0011ETMsg.PWD_REMINDER_ANS, inCBSMsg.getString(ECK0011C080CBSMsg.PWD_REMINDER_ANS));
			setCustMsg.set(CK0011ETMsg.NKNAME, inCBSMsg.getString(ECK0011C080CBSMsg.NKNAME));

			// 入力パラメータ、名寄せ先カレントレコードのeoIDをそれぞれ取得
			String inputEoId = inCBSMsg.getString(ECK0011C080CBSMsg.EOID);
			String nayosesakiEoId = curMsgNew.getString(CK0011ETMsg.EOID);

			// eoID変更年月日判定
			// 入力パラメータ．eoID = null かつ、名寄せ先カレントレコード．eoID ≠ null 
			// または、名寄せ先カレントレコード．eoID = null かつ、入力パラメータ．eoID ≠ null の場合
			if ((inputEoId == null && nayosesakiEoId != null)
					|| (nayosesakiEoId == null && inputEoId != null))
			{
				// システム日付を設定
				setCustMsg.set(CK0011ETMsg.EOID_CHGE_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
			}
			// 入力パラメータ、名寄せ先カレントレコードそれぞれがnullの場合
			else if (inputEoId == null && nayosesakiEoId == null)
			{
				// 名寄せ先カレントレコード．eoID変更年月日を設定
				setCustMsg.set(CK0011ETMsg.EOID_CHGE_YMD, curMsgNew.getString(CK0011ETMsg.EOID_CHGE_YMD));
			}
			// 入力パラメータ．eoID ≠ 名寄せ先カレントレコード．eoIDの場合
			else if (!inputEoId.equals(nayosesakiEoId))
			{
				// システム日付を設定
				setCustMsg.set(CK0011ETMsg.EOID_CHGE_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
			}
			// 上記以外
			else
			{
				// 名寄せ先カレントレコード．eoID変更年月日を設定
				setCustMsg.set(CK0011ETMsg.EOID_CHGE_YMD, curMsgNew.getString(CK0011ETMsg.EOID_CHGE_YMD));
			}

			// 入力パラメータ、名寄せ先カレントレコードのニックネームをそれぞれ取得
			String inputNkNm = inCBSMsg.getString(ECK0011C080CBSMsg.NKNAME);
			String nayosesakiNkNm = curMsgNew.getString(CK0011ETMsg.NKNAME);

			// ニックネーム変更年月日判定
			// 入力パラメータ．ニックネーム = null かつ、名寄せ先カレントレコード．ニックネーム ≠ null の場合
			if (inputNkNm == null && nayosesakiNkNm != null)
			{
				// nullを設定
				setCustMsg.setNull(CK0011ETMsg.NKNAME_CHGE_YMD);
			}
			// 名寄せ先カレントレコード．ニックネーム = null かつ、入力パラメータ．ニックネーム ≠ null の場合
			else if (nayosesakiNkNm == null && inputNkNm != null)
			{
				// システム日付を設定
				setCustMsg.set(CK0011ETMsg.NKNAME_CHGE_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
			}
			// 入力パラメータ、名寄せ先カレントレコードのニックネームそれぞれnullの場合
			else if (inputNkNm == null && nayosesakiNkNm == null)
			{
				// 名寄せ先カレントレコード．ニックネーム変更年月日を設定
				setCustMsg.set(CK0011ETMsg.NKNAME_CHGE_YMD, curMsgNew.getString(CK0011ETMsg.NKNAME_CHGE_YMD));
			}
			// 入力パラメータ．ニックネーム ≠ 名寄せ先カレントレコード．ニックネームの場合
			else if (!inputNkNm.equals(nayosesakiNkNm))
			{
				// システム日付を設定
				setCustMsg.set(CK0011ETMsg.NKNAME_CHGE_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
			}
			// 上記以外
			else
			{
				// 名寄せ先カレントレコード．ニックネーム変更年月日を設定
				setCustMsg.set(CK0011ETMsg.NKNAME_CHGE_YMD, curMsgNew.getString(CK0011ETMsg.NKNAME_CHGE_YMD));
			}
		}
		
		// 入力値または固定値
		setCustMsg.set(CK0011ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
		setCustMsg.set(CK0011ETMsg.GENE_ADD_DTM, JCKModelCommon.getSysDateTimeStamp());
		setCustMsg.set(CK0011ETMsg.RSV_APLY_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
		setCustMsg.setNull(CK0011ETMsg.RSV_CL_YMD);
		setCustMsg.set(CK0011ETMsg.RSV_APLY_CD, RSVCD_DECIDE);
		setCustMsg.set(CK0011ETMsg.EONETID_MI_IKO_FLG, EONETIDFLG_MOVED);
		setCustMsg.set(CK0011ETMsg.MMB_SBT_TOKUT_FLG, MEMBER_SEARCHFLG_SEARCHED);
		setCustMsg.set(CK0011ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		setCustMsg.set(CK0011ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		setCustMsg.set(CK0011ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		setCustMsg.set(CK0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		setCustMsg.set(CK0011ETMsg.MK_FLG, MKFLG_VALID);
		setCustMsg.setNull(CK0011ETMsg.CONT_ISP_USE_STP_YMD);
		setCustMsg.setNull(CK0011ETMsg.OLD_EONETMB_NINSHO_ID);

		return setCustMsg;
	}

	/**
	 * <p>
	 * 名寄せ元がマスター会員(個人)の場合の項目の設定を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param custMsg 共通項目が設定されたお客様のMsg
	 * @param curMsgOld 名寄せ元のカレントレコードのMsg
	 * @return マスター会員(個人)の場合の値を設定したMsg
	*/
	private CAANMsg setMasterKojinColumn(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg custMsg, CAANMsg curMsgOld)
	{
		
		// 部品に渡す値の取得
		// 契約者都道府県名
		String stateNm = curMsgOld.getString(CK0011ETMsg.KEISHA_STATE_NM);
		// 契約者市区町村名
		String cityNm = curMsgOld.getString(CK0011ETMsg.KEISHA_CITY_NM);
		// 契約者大字通称名
		String oaztsuNm = curMsgOld.getString(CK0011ETMsg.KEISHA_OAZTSU_NM);
		// 契約者字丁目名
		String azchoNm = curMsgOld.getString(CK0011ETMsg.KEISHA_AZCHO_NM);
		// 契約者番地号
		String bnchigo = curMsgOld.getString(CK0011ETMsg.KEISHA_BNCHIGO);

		custMsg.set(CK0011ETMsg.CONT_CUST_NM, curMsgOld.getString(CK0011ETMsg.CUST_NM));
		custMsg.set(CK0011ETMsg.CONT_CUST_KANA, curMsgOld.getString(CK0011ETMsg.CUST_KANA));
		custMsg.set(CK0011ETMsg.CONT_CUST_SEX_CD, curMsgOld.getString(CK0011ETMsg.CUST_SEX_CD));
		custMsg.set(CK0011ETMsg.CONT_CUST_BIRTHD, curMsgOld.getString(CK0011ETMsg.CUST_BIRTHD));
		custMsg.set(CK0011ETMsg.CONT_AD_CD, curMsgOld.getString(CK0011ETMsg.KEISHA_AD_CD));
		custMsg.set(CK0011ETMsg.CONT_PCD, curMsgOld.getString(CK0011ETMsg.KEISHA_PCD));
		custMsg.setNull(CK0011ETMsg.CONT_STATE_NM);
		custMsg.setNull(CK0011ETMsg.CONT_CITY_NM);
		custMsg.setNull(CK0011ETMsg.CONT_OAZTSU_NM);
		custMsg.setNull(CK0011ETMsg.CONT_AZCHO_NM);

		// 住所編集部品の戻り値をセット
		String[] resultBhn = JZMCommonUtil.getPtn05(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, null, null);
		custMsg.set(CK0011ETMsg.CONT_BNCHIGO, resultBhn[0]);
		custMsg.set(CK0011ETMsg.CONT_ADRTTM, curMsgOld.getString(CK0011ETMsg.KEISHA_ADRTTM));
		custMsg.set(CK0011ETMsg.CONT_ADRRM, curMsgOld.getString(CK0011ETMsg.KEISHA_ADRRM));
		custMsg.set(CK0011ETMsg.CONT_AD_BNKT_STA_PST, resultBhn[3]);

		return custMsg;
	}

	/**
	 * <p>
	 * 名寄せ元がマスター会員(法人)の場合の項目の設定を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param custMsg 共通項目が設定されたお客様のMsg
	 * @param curMsgNew 名寄せ先のカレントレコードのMsg
	 * @return マスター会員(法人)の場合の値を設定したMsg
	*/
	private CAANMsg setMasterHojinColumn(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg custMsg, CAANMsg curMsgNew)
	{
		if ("4".equals(inCBSMsg.getString(ECK0011C080CBSMsg.GYOMU_KBN)))
		{
			custMsg.set(CK0011ETMsg.CONT_CUST_NM, curMsgNew.getString(CK0011ETMsg.CONT_CUST_NM));
			custMsg.set(CK0011ETMsg.CONT_CUST_KANA, curMsgNew.getString(CK0011ETMsg.CONT_CUST_KANA));
			custMsg.set(CK0011ETMsg.CONT_CUST_SEX_CD, curMsgNew.getString(CK0011ETMsg.CONT_CUST_SEX_CD));
			custMsg.set(CK0011ETMsg.CONT_CUST_BIRTHD, curMsgNew.getString(CK0011ETMsg.CONT_CUST_BIRTHD));
			custMsg.set(CK0011ETMsg.CONT_AD_CD, curMsgNew.getString(CK0011ETMsg.CONT_AD_CD));
			custMsg.set(CK0011ETMsg.CONT_PCD, curMsgNew.getString(CK0011ETMsg.CONT_PCD));
			custMsg.set(CK0011ETMsg.CONT_STATE_NM, curMsgNew.getString(CK0011ETMsg.CONT_STATE_NM));
			custMsg.set(CK0011ETMsg.CONT_CITY_NM, curMsgNew.getString(CK0011ETMsg.CONT_CITY_NM));
			custMsg.set(CK0011ETMsg.CONT_OAZTSU_NM, curMsgNew.getString(CK0011ETMsg.CONT_OAZTSU_NM));
			custMsg.set(CK0011ETMsg.CONT_AZCHO_NM, curMsgNew.getString(CK0011ETMsg.CONT_AZCHO_NM));
			custMsg.set(CK0011ETMsg.CONT_BNCHIGO, curMsgNew.getString(CK0011ETMsg.CONT_BNCHIGO));
			custMsg.set(CK0011ETMsg.CONT_ADRTTM, curMsgNew.getString(CK0011ETMsg.CONT_ADRTTM));
			custMsg.set(CK0011ETMsg.CONT_ADRRM, curMsgNew.getString(CK0011ETMsg.CONT_ADRRM));
		}
		else
		{
			custMsg.set(CK0011ETMsg.CONT_CUST_NM, inCBSMsg.getString(ECK0011C080CBSMsg.CONT_CUST_NM));
			custMsg.set(CK0011ETMsg.CONT_CUST_KANA, inCBSMsg.getString(ECK0011C080CBSMsg.CONT_CUST_KANA));
			custMsg.set(CK0011ETMsg.CONT_CUST_SEX_CD, inCBSMsg.getString(ECK0011C080CBSMsg.CONT_CUST_SEX_CD));
			custMsg.set(CK0011ETMsg.CONT_CUST_BIRTHD, inCBSMsg.getString(ECK0011C080CBSMsg.CONT_CUST_BIRTHD));
			custMsg.setNull(CK0011ETMsg.CONT_AD_CD);
			custMsg.set(CK0011ETMsg.CONT_PCD, inCBSMsg.getString(ECK0011C080CBSMsg.CONT_PCD));
			custMsg.setNull(CK0011ETMsg.CONT_STATE_NM);
			custMsg.setNull(CK0011ETMsg.CONT_CITY_NM);
			custMsg.setNull(CK0011ETMsg.CONT_OAZTSU_NM);
			custMsg.setNull(CK0011ETMsg.CONT_AZCHO_NM);
			custMsg.set(CK0011ETMsg.CONT_BNCHIGO, inCBSMsg.getString(ECK0011C080CBSMsg.CONT_BNCHIGO));
			custMsg.set(CK0011ETMsg.CONT_ADRTTM, inCBSMsg.getString(ECK0011C080CBSMsg.CONT_ADRTTM));
			custMsg.setNull(CK0011ETMsg.CONT_ADRRM);
			custMsg.set(CK0011ETMsg.CONT_AD_BNKT_STA_PST, inCBSMsg.getString(ECK0011C080CBSMsg.CONT_AD_BNKT_STA_PST));
		}
		return custMsg;
	}

	/**
	 * <p>
	 * お客様<個人>のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param curGeneOld 名寄せ元お客様のカレントレコードの世代年月日時分秒
	 * @param geneNew 積まれる名寄せ先お客様の世代年月日時分秒
	*/
	private void dbAccessCustKojin(CAANMsg inCBSMsg, AgentDispatchContext inContext, String curGeneOld, String geneNew)
	{
		// 名寄せ元のお客様<個人>を名寄せ元のお客様のプライマリキーで検索
		CAANMsg priMsgCK0021 = new CAANMsg(CK0021ETMsg.class.getName());
		priMsgCK0021.set(CK0021ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		priMsgCK0021.set(CK0021ETMsg.GENE_ADD_DTM, curGeneOld);
		CAANMsg retPriMsgCK0021 = new JCKejbCK0021DBABase().findByPrimaryKey(priMsgCK0021);

		// お客様<個人>の設定
		retPriMsgCK0021.set(CK0021ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
		retPriMsgCK0021.set(CK0021ETMsg.GENE_ADD_DTM, geneNew);		
		retPriMsgCK0021.set(CK0021ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		retPriMsgCK0021.set(CK0021ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		retPriMsgCK0021.set(CK0021ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		retPriMsgCK0021.set(CK0021ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		retPriMsgCK0021.setNull(CK0021ETMsg.DEL_DTM);
		retPriMsgCK0021.setNull(CK0021ETMsg.DEL_OPEACNT);
		retPriMsgCK0021.set(CK0021ETMsg.MK_FLG, MKFLG_VALID);

		create(inCBSMsg, retPriMsgCK0021);
	}

	/**
	 * <p>
	 * お客様<法人>のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param curGeneOld 名寄せ元お客様のカレントレコードの世代年月日時分秒
	 * @param geneNew 積まれる名寄せ先お客様の世代年月日時分秒
	*/
	private void dbAccessCustHojin(CAANMsg inCBSMsg, AgentDispatchContext inContext, String curGeneOld, String geneNew)
	{
		// 名寄せ元のお客様<法人>を名寄せ元のお客様のプライマリキーで検索
		CAANMsg priMsgCK0031 = new CAANMsg(CK0031ETMsg.class.getName());
		priMsgCK0031.set(CK0031ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		priMsgCK0031.set(CK0031ETMsg.GENE_ADD_DTM, curGeneOld);
		CAANMsg retPriMsgCK0031 = new JCKejbCK0031DBABase().findByPrimaryKey(priMsgCK0031);

		// お客様<法人>の設定
		retPriMsgCK0031.set(CK0031ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
		retPriMsgCK0031.set(CK0031ETMsg.GENE_ADD_DTM, geneNew);
		retPriMsgCK0031.set(CK0031ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		retPriMsgCK0031.set(CK0031ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		retPriMsgCK0031.set(CK0031ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		retPriMsgCK0031.set(CK0031ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		retPriMsgCK0031.setNull(CK0031ETMsg.DEL_DTM);
		retPriMsgCK0031.setNull(CK0031ETMsg.DEL_OPEACNT);
		retPriMsgCK0031.set(CK0031ETMsg.MK_FLG, MKFLG_VALID);

		create(inCBSMsg, retPriMsgCK0031);
	}

	/**
	 * <p>
	 * 法人連絡先のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessCustHojinRrksMsg(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgCK0041 = new CAANMsg(CK0041ETMsg.class.getName());
		condMsgCK0041.set(CK0041ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		condMsgCK0041.set(CK0041ETMsg.MK_FLG, MKFLG_VALID);
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new CK0041LE().findByCondition(condMsgCK0041);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		String primaryKey = null;
		HashMap<String, String> escapeMap = new HashMap<String, String>();

		for (int i = 0; i < retConMsg.length; i++)
		{
			// プライマリキーを取得
			primaryKey = retConMsg[i].getString(CK0041ETMsg.RRKS_CD);

			if (!escapeMap.containsKey(primaryKey))
			{
				// 初検索の場合
				escapeMap.put(primaryKey, null);

				CAANMsg curMsgCK0041 = new CAANMsg(CK0041ETMsg.class.getName());
				curMsgCK0041.set(CK0041ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
				curMsgCK0041.set(CK0041ETMsg.RRKS_CD, primaryKey);
				CAANMsg retCurMsg = new JCKejbCK0041DBABase().findByCurrent(curMsgCK0041);
				if (null != retCurMsg)
				{
					retCurMsg.set(CK0041ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
					retCurMsg.set(CK0041ETMsg.GENE_ADD_DTM, JCKModelCommon.getSysDateTimeStamp());
					retCurMsg.set(CK0041ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(CK0041ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.set(CK0041ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(CK0041ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.setNull(CK0041ETMsg.DEL_DTM);
					retCurMsg.setNull(CK0041ETMsg.DEL_OPEACNT);
					retCurMsg.set(CK0041ETMsg.MK_FLG, MKFLG_VALID);

					// カレント情報を元に登録
					create(inCBSMsg, retCurMsg);
				}
			}
		}
	}

	/**
	 * <p>
	 * 不良顧客のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessHuryoCust(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgCK0061 = new CAANMsg(CK0061ETMsg.class.getName());
		condMsgCK0061.set(CK0061ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		condMsgCK0061.set(CK0061ETMsg.MK_FLG, MKFLG_VALID);
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new CK0061LE().findByCondition(condMsgCK0061);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		for (int i = 0; i < retConMsg.length; i++)
		{
			retConMsg[i].set(CK0061ETMsg.HURYO_CUST_NO, JCKModelCommon.getHuryoCustNoCK0061(inCBSMsg, inContext));
			retConMsg[i].set(CK0061ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(CK0061ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(CK0061ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			retConMsg[i].set(CK0061ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(CK0061ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			retConMsg[i].setNull(CK0061ETMsg.DEL_DTM);
			retConMsg[i].setNull(CK0061ETMsg.DEL_OPEACNT);
			retConMsg[i].set(CK0061ETMsg.MK_FLG, MKFLG_VALID);

			// 登録
			create(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * グループの項目のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessGrp(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// 業務区分が4の場合
		if (GYOUMU_KBN_FOU.equals(inCBSMsg.getString(ECK0011C080CBSMsg.GYOMU_KBN)))
		{
			// 名寄せ先SYSIDを元に、お客様グループ設定の無効化を行う
			custGrpNasakiInvalid(inCBSMsg);
		}

		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgCK0111 = new CAANMsg(CK0111ETMsg.class.getName());
		condMsgCK0111.set(CK0111ETMsg.GRP_LEADER_SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		condMsgCK0111.set(CK0111ETMsg.MK_FLG, MKFLG_VALID);
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new CK0111LE().findByCondition(condMsgCK0111);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}
		List<String> tyohukuList = new ArrayList<String>();
		for (int i = 0; i < retConMsg.length; i++)
		{
			String grpCd = retConMsg[i].getString(CK0111ETMsg.GRP_CD);
			
			if (!tyohukuList.contains(grpCd))
			{
				tyohukuList.add(grpCd);
				
				CAANMsg curMsgCK0111 = new CAANMsg(CK0111ETMsg.class.getName());
				curMsgCK0111.set(CK0111ETMsg.GRP_CD, grpCd);
				CAANMsg retCurMsg = new JCKejbCK0111DBABase().findByCurrent(curMsgCK0111);

				// グループ適用終了年月日を取得
				String wkGrpTendYmd = retCurMsg.getString(CK0111ETMsg.GRP_TENDYMD);

				// カレントレコードのグループリーダーSYSIDと入力値のSYSIDが同じ場合、かつ
				// カレントレコード．グループ適用終了年月日が運用日付より未来日の場合
				if (inCBSMsg.getString(ECK0011C080CBSMsg.SYSID).equals(retCurMsg.getString(CK0111ETMsg.GRP_LEADER_SYSID))
						&& JKKModelCommon.isFutureDateKRCK(retCurMsg, inContext, wkGrpTendYmd, 0))
				{
					CAANMsg inMsg = new CAANMsg(CK0111ETMsg.class.getName());
					inMsg.set(CK0111ETMsg.GRP_CD, JCKModelCommon.getFormatedNextSeq(SEQ_GRP_CD, PREFIX_G, SSEQ_GRP_CD_LENGTH));
					inMsg.set(CK0111ETMsg.GENE_ADD_DTM, JCKModelCommon.getSysDateTimeStamp());
					inMsg.set(CK0111ETMsg.GRP_SBT_CD, GRP_SBTCD_FAMILY);
					inMsg.set(CK0111ETMsg.GRP_NM, retCurMsg.getString(CK0111ETMsg.GRP_NM));
					inMsg.set(CK0111ETMsg.GRP_LEADER_SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
					inMsg.set(CK0111ETMsg.GRP_TSTAYMD, JCKModelCommon.getOpeDate(inCBSMsg));
					inMsg.set(CK0111ETMsg.GRP_TENDYMD, DATE_MAX);
					inMsg.set(CK0111ETMsg.GRP_JOIN_CD, retCurMsg.getString(CK0111ETMsg.GRP_JOIN_CD));
					inMsg.set(CK0111ETMsg.GRP_JOIN_CD_PWD, retCurMsg.getString(CK0111ETMsg.GRP_JOIN_CD_PWD));
					inMsg.set(CK0111ETMsg.SHK_GRP_JOIN_CD, retCurMsg.getString(CK0111ETMsg.SHK_GRP_JOIN_CD));
					inMsg.set(CK0111ETMsg.SHK_GRP_JOIN_CD_PWD, retCurMsg.getString(CK0111ETMsg.SHK_GRP_JOIN_CD_PWD));
					inMsg.set(CK0111ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					inMsg.set(CK0111ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					inMsg.set(CK0111ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					inMsg.set(CK0111ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					inMsg.set(CK0111ETMsg.MK_FLG, MKFLG_VALID);

					// 登録
					create(inCBSMsg, inMsg);

					// 名寄せ元レコードを無効レコードに編集
					CAANMsg motoInMsg = new CAANMsg(CK0111ETMsg.class.getName());
					motoInMsg.set(CK0111ETMsg.GRP_CD, retCurMsg.getString(CK0111ETMsg.GRP_CD));
					motoInMsg.set(CK0111ETMsg.GENE_ADD_DTM, JCKModelCommon.getSysDateTimeStamp());
					motoInMsg.set(CK0111ETMsg.GRP_SBT_CD, GRP_SBTCD_FAMILY);
					motoInMsg.set(CK0111ETMsg.GRP_NM, retCurMsg.getString(CK0111ETMsg.GRP_NM));
					motoInMsg.set(CK0111ETMsg.GRP_LEADER_SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
					motoInMsg.set(CK0111ETMsg.GRP_TSTAYMD, retCurMsg.getString(CK0111ETMsg.GRP_TSTAYMD));
					motoInMsg.set(CK0111ETMsg.GRP_TENDYMD, JCKModelCommon.getOpeDate(inCBSMsg));
					motoInMsg.set(CK0111ETMsg.GRP_JOIN_CD, retCurMsg.getString(CK0111ETMsg.GRP_JOIN_CD));
					motoInMsg.set(CK0111ETMsg.GRP_JOIN_CD_PWD, retCurMsg.getString(CK0111ETMsg.GRP_JOIN_CD_PWD));
					motoInMsg.set(CK0111ETMsg.SHK_GRP_JOIN_CD, retCurMsg.getString(CK0111ETMsg.SHK_GRP_JOIN_CD));
					motoInMsg.set(CK0111ETMsg.SHK_GRP_JOIN_CD_PWD, retCurMsg.getString(CK0111ETMsg.SHK_GRP_JOIN_CD_PWD));
					motoInMsg.set(CK0111ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					motoInMsg.set(CK0111ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					motoInMsg.set(CK0111ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					motoInMsg.set(CK0111ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					motoInMsg.set(CK0111ETMsg.MK_FLG, MKFLG_VALID);

					// 名寄せ元の無効レコードを登録
					create(inCBSMsg, motoInMsg);

					// グループに紐づくお客様に対して処理を行う
					dbAccessGrpToCustGrpSette(inCBSMsg, inContext, inMsg.getString(CK0111ETMsg.GRP_CD), retConMsg[i].getString(CK0111ETMsg.GRP_CD));

					// グループに紐づくお客様に対して処理を行う(ファミリー会員分)
					dbAccessGrpToCustGrpFamily(inCBSMsg, inContext, inMsg.getString(CK0111ETMsg.GRP_CD), retConMsg[i].getString(CK0111ETMsg.GRP_CD));
				}
			}
		}
	}

	/**
	 * <p>
	 * グループに紐づくお客様グループ設定のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param newGrpCd 登録したグループコード
	 * @param oldGrpCd 無効化されたグループコード
	*/
	private void dbAccessGrpToCustGrpSette(CAANMsg inCBSMsg, AgentDispatchContext inContext, String newGrpCd, String oldGrpCd)
	{
		// 名寄せ元SYSIDのお客様グループ設定を名寄せ先SYSIDで登録する
		CAANMsg condMsgCK0121 = new CAANMsg(CK0121ETMsg.class.getName());
		condMsgCK0121.set(CK0121ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		condMsgCK0121.set(CK0121ETMsg.MK_FLG, MKFLG_VALID);
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new CK0121LE().findByCondition(condMsgCK0121);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		String primaryKey = null;
		HashMap<String, String> escapeMap = new HashMap<String, String>();

		// 取得したデータを新しいグループで登録する
		for (int i = 0; i < retConMsg.length; i++)
		{
			// プライマリキーを取得
			primaryKey = retConMsg[i].getString(CK0121ETMsg.CUST_GRP_SETTE_NO);

			if (!escapeMap.containsKey(primaryKey))
			{
				// 初検索の場合
				escapeMap.put(primaryKey, null);

				CAANMsg curMsgCK0121 = new CAANMsg(CK0121ETMsg.class.getName());
				curMsgCK0121.set(CK0121ETMsg.CUST_GRP_SETTE_NO, primaryKey);
				curMsgCK0121.set(CK0121ETMsg.RSV_APLY_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
				CAANMsg retCurMsg = new JCKejbCK0121DBABase().findByCurrent(curMsgCK0121);

				// カレントの情報が抽出条件に一致する場合
				if (null != retCurMsg
						&& inCBSMsg.getString(ECK0011C080CBSMsg.SYSID).equals(retCurMsg.getString(CK0121ETMsg.SYSID))
						&& MKFLG_VALID.equals(retCurMsg.getString(CK0121ETMsg.MK_FLG))
						&& CUST_GRP_STAT_VALID.equals(retCurMsg.getString(CK0121ETMsg.CUST_GRP_SETTE_STAT)))
				{
					// 新しいグループで登録
					CAANMsg inMsg = new CAANMsg(CK0121ETMsg.class.getName());
					//お客様グループ設定番号
					inMsg.set(CK0121ETMsg.CUST_GRP_SETTE_NO, JCKModelCommon.getFormatedNextSeq(SEQ_CUST_GRP_SETTE_NO, "", SEQ_CUST_GRP_SETTE_NO_LENGTH));
					inMsg.set(CK0121ETMsg.GENE_ADD_DTM, JCKModelCommon.getSysDateTimeStamp());
					inMsg.set(CK0121ETMsg.CUST_GRP_SETTE_STAT, retCurMsg.getString(CK0121ETMsg.CUST_GRP_SETTE_STAT));
					inMsg.set(CK0121ETMsg.GRP_CD, newGrpCd);
					inMsg.set(CK0121ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
					inMsg.set(CK0121ETMsg.CUST_GRP_SETTE_MK_YMD, retCurMsg.getString(CK0121ETMsg.CUST_GRP_SETTE_MK_YMD));
					inMsg.set(CK0121ETMsg.CUST_GRP_SETTE_KAIHK_YMD, retCurMsg.getString(CK0121ETMsg.CUST_GRP_SETTE_KAIHK_YMD));
					inMsg.set(CK0121ETMsg.GRP_WRIB_APLY_SHONIN_YMD, retCurMsg.getString(CK0121ETMsg.GRP_WRIB_APLY_SHONIN_YMD));
					inMsg.set(CK0121ETMsg.RSV_APLY_YMD, retCurMsg.getString(CK0121ETMsg.RSV_APLY_YMD));
					inMsg.set(CK0121ETMsg.RSV_CL_YMD, retCurMsg.getString(CK0121ETMsg.RSV_CL_YMD));
					inMsg.set(CK0121ETMsg.RSV_APLY_CD, retCurMsg.getString(CK0121ETMsg.RSV_APLY_CD));
					inMsg.set(CK0121ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					inMsg.set(CK0121ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					inMsg.set(CK0121ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					inMsg.set(CK0121ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					inMsg.set(CK0121ETMsg.MK_FLG, MKFLG_VALID);

					// 登録
					create(inCBSMsg, inMsg);

					// 元データを無効化
					CAANMsg motoInMsg = new CAANMsg(CK0121ETMsg.class.getName());
					//お客様グループ設定番号
					motoInMsg.set(CK0121ETMsg.CUST_GRP_SETTE_NO, retCurMsg.getString(CK0121ETMsg.CUST_GRP_SETTE_NO));
					motoInMsg.set(CK0121ETMsg.GENE_ADD_DTM, JCKModelCommon.getSysDateTimeStamp());
					motoInMsg.set(CK0121ETMsg.CUST_GRP_SETTE_STAT, CUST_GRP_STAT_INVALID);
					motoInMsg.set(CK0121ETMsg.GRP_CD, retCurMsg.getString(CK0121ETMsg.GRP_CD));
					motoInMsg.set(CK0121ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
					motoInMsg.set(CK0121ETMsg.CUST_GRP_SETTE_MK_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
					motoInMsg.set(CK0121ETMsg.CUST_GRP_SETTE_KAIHK_YMD, retCurMsg.getString(CK0121ETMsg.CUST_GRP_SETTE_KAIHK_YMD));
					motoInMsg.set(CK0121ETMsg.GRP_WRIB_APLY_SHONIN_YMD, retCurMsg.getString(CK0121ETMsg.GRP_WRIB_APLY_SHONIN_YMD));
					motoInMsg.set(CK0121ETMsg.RSV_APLY_YMD, retCurMsg.getString(CK0121ETMsg.RSV_APLY_YMD));
					motoInMsg.set(CK0121ETMsg.RSV_CL_YMD, retCurMsg.getString(CK0121ETMsg.RSV_CL_YMD));
					motoInMsg.set(CK0121ETMsg.RSV_APLY_CD, retCurMsg.getString(CK0121ETMsg.RSV_APLY_CD));
					motoInMsg.set(CK0121ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					motoInMsg.set(CK0121ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					motoInMsg.set(CK0121ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					motoInMsg.set(CK0121ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					motoInMsg.set(CK0121ETMsg.MK_FLG, MKFLG_VALID);

					// 名寄せ元無効データ登録
					create(inCBSMsg, motoInMsg);
				}
			}
		}
	}

	/**
	 * <p>
	 * グループに紐づくお客様グループ設定のDBアクセス処理を行います。(ファミリー会員分)
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param newGrpCd 登録したグループコード
	 * @param oldGrpCd 無効化されたグループコード
	*/
	private void dbAccessGrpToCustGrpFamily(CAANMsg inCBSMsg, AgentDispatchContext inContext, String newGrpCd, String oldGrpCd)
	{
		// 無効化したグループに紐づくお客様グループ設定を取得する
		CAANMsg condMsgCK0121 = new CAANMsg(CK0121ETMsg.class.getName());
		condMsgCK0121 = new CAANMsg(CK0121ETMsg.class.getName());
		condMsgCK0121.set(CK0121ETMsg.GRP_CD, oldGrpCd);
		condMsgCK0121.set(CK0121ETMsg.MK_FLG, MKFLG_VALID);
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new CK0121LE().findByCondition(condMsgCK0121);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		String primaryKey = null;
		HashMap<String, String> escapeMap = new HashMap<String, String>();

		// 取得したデータを新しいグループで登録する
		for (int i = 0; i < retConMsg.length; i++)
		{
			// プライマリキーを取得
			primaryKey = retConMsg[i].getString(CK0121ETMsg.CUST_GRP_SETTE_NO);

			if (!escapeMap.containsKey(primaryKey))
			{
				// 初検索の場合
				escapeMap.put(primaryKey, null);

				CAANMsg curMsgCK0121 = new CAANMsg(CK0121ETMsg.class.getName());
				curMsgCK0121.set(CK0121ETMsg.CUST_GRP_SETTE_NO, primaryKey);
				curMsgCK0121.set(CK0121ETMsg.RSV_APLY_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
				CAANMsg retCurMsg = new JCKejbCK0121DBABase().findByCurrent(curMsgCK0121);

				// カレントの情報が抽出条件に一致する場合
				if (null != retCurMsg
						&& oldGrpCd.equals(retCurMsg.getString(CK0121ETMsg.GRP_CD))
						&& MKFLG_VALID.equals(retCurMsg.getString(CK0121ETMsg.MK_FLG))
						&& CUST_GRP_STAT_VALID.equals(retCurMsg.getString(CK0121ETMsg.CUST_GRP_SETTE_STAT)))
				{

					// お客様グループ設定のSYSIDと、名寄せ元SYSIDまたは名寄せ先SYSIDが同じ場合は対象外
					if (retConMsg[i].getString(CK0121ETMsg.SYSID).equals(inCBSMsg.getString(ECK0011C080CBSMsg.SYSID))
							|| retConMsg[i].getString(CK0121ETMsg.SYSID).equals(inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID)))
					{
						continue;
					}

					// 新しいグループで登録
					insertCustGrpSettei(inCBSMsg, retCurMsg, newGrpCd);

					// 元データを無効化
					insertCustGrpSetteiInvalid(inCBSMsg, retCurMsg);
				}
			}
		}
	}

	/**
	 * <p>
	 * 名寄せ先SYSIDに紐付くお客様グループ設定の無効化処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	*/
	private void custGrpNasakiInvalid(CAANMsg inCBSMsg)
	{
		// 入力パラメータ．名寄せ先SYSIDで検索を行う
		CAANMsg condMsgCK0121 = new CAANMsg(CK0121ETMsg.class.getName());
		condMsgCK0121.set(CK0121ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
		condMsgCK0121.set(CK0121ETMsg.MK_FLG, MKFLG_VALID);
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new CK0121LE().findByCondition(condMsgCK0121);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		String primaryKey = null;
		List<String> tyohukuList = new ArrayList<String>();

		// 取得したデータを新しいグループで登録する
		for (int i = 0; i < retConMsg.length; i++)
		{
			// プライマリキーを取得
			primaryKey = retConMsg[i].getString(CK0121ETMsg.CUST_GRP_SETTE_NO);

			if (!tyohukuList.contains(primaryKey))
			{
				// キーを格納
				tyohukuList.add(primaryKey);

				// カレントレコードを取得
				CAANMsg curMsgCK0121 = new CAANMsg(CK0121ETMsg.class.getName());
				curMsgCK0121.set(CK0121ETMsg.CUST_GRP_SETTE_NO, primaryKey);
				curMsgCK0121.set(CK0121ETMsg.RSV_APLY_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
				CAANMsg retCurMsg = new JCKejbCK0121DBABase().findByCurrent(curMsgCK0121);

				// 名寄せ先カレントレコード ≠ null
				// かつ、入力パラメータ．名寄せ先SYSID = 名寄せ先カレントレコード．SYSID
				// かつ、名寄せ先カレントレコード．SYSID = 有効の場合
				if (null != retCurMsg
						&& inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID).equals(retCurMsg.getString(CK0121ETMsg.SYSID))
						&& CUST_GRP_STAT_VALID.equals(retCurMsg.getString(CK0121ETMsg.CUST_GRP_SETTE_STAT)))
				{
					// 無効にする
					CAANMsg inMsg = new CAANMsg(CK0121ETMsg.class.getName());
					// お客様グループ設定番号
					inMsg.set(CK0121ETMsg.CUST_GRP_SETTE_NO, retCurMsg.getString(CK0121ETMsg.CUST_GRP_SETTE_NO));
					// 世代登録年月日時分秒
					inMsg.set(CK0121ETMsg.GENE_ADD_DTM, JCKModelCommon.getSysDateTimeStamp());
					// お客様グループ設定ステータス
					inMsg.set(CK0121ETMsg.CUST_GRP_SETTE_STAT, CUST_GRP_STAT_INVALID);
					// グループコード
					inMsg.set(CK0121ETMsg.GRP_CD, retCurMsg.getString(CK0121ETMsg.GRP_CD));
					// SYSID
					inMsg.set(CK0121ETMsg.SYSID, retCurMsg.getString(CK0121ETMsg.SYSID));
					// お客様グループ設定無効年月日
					inMsg.set(CK0121ETMsg.CUST_GRP_SETTE_MK_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
					// お客様グループ設定回復年月日
					inMsg.set(CK0121ETMsg.CUST_GRP_SETTE_KAIHK_YMD, retCurMsg.getString(CK0121ETMsg.CUST_GRP_SETTE_KAIHK_YMD));
					// グループ割引適用承認年月日
					inMsg.set(CK0121ETMsg.GRP_WRIB_APLY_SHONIN_YMD, retCurMsg.getString(CK0121ETMsg.GRP_WRIB_APLY_SHONIN_YMD));
					// 予約適用年月日
					inMsg.set(CK0121ETMsg.RSV_APLY_YMD, retCurMsg.getString(CK0121ETMsg.RSV_APLY_YMD));
					// 予約取消年月日
					inMsg.set(CK0121ETMsg.RSV_CL_YMD, retCurMsg.getString(CK0121ETMsg.RSV_CL_YMD));
					// 予約適用コード
					inMsg.set(CK0121ETMsg.RSV_APLY_CD, retCurMsg.getString(CK0121ETMsg.RSV_APLY_CD));
					// 登録年月日時分秒
					inMsg.set(CK0121ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					// 登録オペレータアカウント
					inMsg.set(CK0121ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					// 更新年月日時分秒
					inMsg.set(CK0121ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					// 更新オペレータアカウント
					inMsg.set(CK0121ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					// 無効フラグ
					inMsg.set(CK0121ETMsg.MK_FLG, MKFLG_VALID);

					// 登録
					create(inCBSMsg, inMsg);
				}
			}
		}
	}

	/**
	 * <p>
	 * オプトインメール受信設定のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @return mlAdlist 名寄せ元カレントレコード．メールアドレスリスト
	*/
	private List<String> dbAccessOptinmRcvSet(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// 入力パラメータ．業務区分
		String wkGyomuKbn = inCBSMsg.getString(ECK0011C080CBSMsg.GYOMU_KBN);
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgCK0141 = new CAANMsg(CK0141ETMsg.class.getName());
		condMsgCK0141.set(CK0141ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		condMsgCK0141.set(CK0141ETMsg.MK_FLG, MKFLG_VALID);
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new CK0141LE().findByCondition(condMsgCK0141);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}
		
		List<String> tyohukulist = new ArrayList<String>();

		// 名寄せ元カレントレコード．メールアドレス格納リスト
		List<String> mlAdlist = new ArrayList<String>();

		for (int i = 0; i < retConMsg.length; i++)
		{
			String optNm = retConMsg[i].getString(CK0141ETMsg.OPTINM_NO);
			String sysId = inCBSMsg.getString(ECK0011C080CBSMsg.SYSID);
			String mailAdress = retConMsg[i].getString(CK0141ETMsg.MLAD);

			String priKeys = optNm + "_" + sysId + "_" + mailAdress;

			if (!tyohukulist.contains(priKeys))
			{
				tyohukulist.add(priKeys);
				
				// カレント検索
				CAANMsg curMsgCK0141 = new CAANMsg(CK0141ETMsg.class.getName());
				curMsgCK0141.set(CK0141ETMsg.OPTINM_NO, retConMsg[i].getString(CK0141ETMsg.OPTINM_NO));
				curMsgCK0141.set(CK0141ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
				curMsgCK0141.set(CK0141ETMsg.MLAD, mailAdress);
				CAANMsg retCurMsgCK0141 = new JCKejbCK0141DBABase().findByCurrent(curMsgCK0141);

				// オプトインメール受信設定ステータスが有効のみ、登録を行う
				if (OPT_ML_STAT_VALID.equals(retCurMsgCK0141.getString(CK0141ETMsg.OPTINM_RCV_SETTE_STAT)))
				{
					// 名寄せ元カレントレコード．メールアドレスをリストに格納
					mlAdlist.add(retCurMsgCK0141.getString(CK0141ETMsg.MLAD));

					// 業務区分 = 0，1，2，3 の場合
					if (!GYOUMU_KBN_FOU.equals(wkGyomuKbn))
					{
						// オプトインメール受信設定ステータスが有効のレコードを登録
						insOptinJyushinValid(inCBSMsg, retCurMsgCK0141);
					}
					// 上記以外(業務区分 = 4 の場合)
					else
					{
						// 名寄せ先レコードの取得(同一キー存在判定用検索)
						CAANMsg curMsgSaki = new CAANMsg(CK0141ETMsg.class.getName());
						curMsgSaki.set(CK0141ETMsg.OPTINM_NO, retCurMsgCK0141.getString(CK0141ETMsg.OPTINM_NO));
						curMsgSaki.set(CK0141ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
						curMsgSaki.set(CK0141ETMsg.MLAD, retCurMsgCK0141.getString(CK0141ETMsg.MLAD));
						CAANMsg retCurMsgSaki = new JCKejbCK0141DBABase().findByCurrent(curMsgSaki);

						// 名寄せ先キー検索結果が存在し、オプトインメール受信設定ステータスが無効の場合
						if (retCurMsgSaki != null
								&& OPT_ML_STAT_INVALID.equals(retCurMsgSaki.getString(CK0141ETMsg.OPTINM_RCV_SETTE_STAT)))
						{
							// オプトインメール受信設定ステータスが有効のレコードを登録
							insOptinJyushinValid(inCBSMsg, retCurMsgCK0141);
						}
						// 名寄せ先キー検索結果が存在しない場合
						else if (retCurMsgSaki == null)
						{
							// オプトインメール受信設定ステータスが有効のレコードを登録
							insOptinJyushinValid(inCBSMsg, retCurMsgCK0141);
						}	
					}

					// 名寄せ元レコードを無効状態に編集
					CAANMsg insMkMsgCK0141 = new CAANMsg(CK0141ETMsg.class.getName());
					insMkMsgCK0141.set(CK0141ETMsg.OPTINM_NO, retCurMsgCK0141.getString(CK0141ETMsg.OPTINM_NO));
					insMkMsgCK0141.set(CK0141ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
					insMkMsgCK0141.set(CK0141ETMsg.MLAD, retCurMsgCK0141.getString(CK0141ETMsg.MLAD));
					insMkMsgCK0141.set(CK0141ETMsg.GENE_ADD_DTM, JCKModelCommon.getSysDateTimeStamp());
					insMkMsgCK0141.set(CK0141ETMsg.OPTINM_RCV_SETTE_STAT, OPT_ML_STAT_INVALID);
					insMkMsgCK0141.set(CK0141ETMsg.RCV_DIV, retCurMsgCK0141.getString(CK0141ETMsg.RCV_DIV));
					insMkMsgCK0141.set(CK0141ETMsg.RCV_SETTE_YMD, retCurMsgCK0141.getString(CK0141ETMsg.RCV_SETTE_YMD));
					insMkMsgCK0141.set(CK0141ETMsg.RCV_RLS_YMD, retCurMsgCK0141.getString(CK0141ETMsg.RCV_RLS_YMD));
					insMkMsgCK0141.set(CK0141ETMsg.OPTINM_RCV_SETTE_MK_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
					insMkMsgCK0141.set(CK0141ETMsg.OPTINM_RCV_SETTE_KAIHK_YMD, retCurMsgCK0141.getString(CK0141ETMsg.OPTINM_RCV_SETTE_KAIHK_YMD));
					insMkMsgCK0141.set(CK0141ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					insMkMsgCK0141.set(CK0141ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					insMkMsgCK0141.set(CK0141ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					insMkMsgCK0141.set(CK0141ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					insMkMsgCK0141.set(CK0141ETMsg.MK_FLG, MKFLG_VALID);

					// 無効レコードを登録
					create(inCBSMsg, insMkMsgCK0141);

				}
			}
		}
		// メールアドレス格納リストを返却
		return mlAdlist;
	}

	/**
	 * <p>
	 * オプトインメール受信設定の有効レコードの登録処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param retCurMsgCK0141 オプトインメール受信設定の名寄せ元カレントレコード
	*/
	private void insOptinJyushinValid(CAANMsg inCBSMsg, CAANMsg retCurMsgCK0141)
	{
		// 登録処理
		CAANMsg insMsgCK0141 = new CAANMsg(CK0141ETMsg.class.getName());
		// オプトインメール受信番号
		insMsgCK0141.set(CK0141ETMsg.OPTINM_NO, retCurMsgCK0141.getString(CK0141ETMsg.OPTINM_NO));
		// SYSID
		insMsgCK0141.set(CK0141ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
		// メールアドレス
		insMsgCK0141.set(CK0141ETMsg.MLAD, retCurMsgCK0141.getString(CK0141ETMsg.MLAD));
		// 世代登録年月日時分秒
		insMsgCK0141.set(CK0141ETMsg.GENE_ADD_DTM, JCKModelCommon.getSysDateTimeStamp());
		// オプトインメール受信設定ステータス
		insMsgCK0141.set(CK0141ETMsg.OPTINM_RCV_SETTE_STAT, retCurMsgCK0141.getString(CK0141ETMsg.OPTINM_RCV_SETTE_STAT));
		// 受信区分
		insMsgCK0141.set(CK0141ETMsg.RCV_DIV, retCurMsgCK0141.getString(CK0141ETMsg.RCV_DIV));
		// 受信設定年月日
		insMsgCK0141.set(CK0141ETMsg.RCV_SETTE_YMD, retCurMsgCK0141.getString(CK0141ETMsg.RCV_SETTE_YMD));
		// 受信解除年月日
		insMsgCK0141.set(CK0141ETMsg.RCV_RLS_YMD, retCurMsgCK0141.getString(CK0141ETMsg.RCV_RLS_YMD));
		// オプトインメール受信設定無効年月日
		insMsgCK0141.set(CK0141ETMsg.OPTINM_RCV_SETTE_MK_YMD, retCurMsgCK0141.getString(CK0141ETMsg.OPTINM_RCV_SETTE_MK_YMD));
		// オプトインメール受信設定回復年月日
		insMsgCK0141.set(CK0141ETMsg.OPTINM_RCV_SETTE_KAIHK_YMD, retCurMsgCK0141.getString(CK0141ETMsg.OPTINM_RCV_SETTE_KAIHK_YMD));
		// 登録年月日時分秒
		insMsgCK0141.set(CK0141ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		// 登録オペレータアカウント
		insMsgCK0141.set(CK0141ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		// 更新年月日時分秒
		insMsgCK0141.set(CK0141ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		// 更新オペレータアカウント
		insMsgCK0141.set(CK0141ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		// 無効フラグ
		insMsgCK0141.set(CK0141ETMsg.MK_FLG, MKFLG_VALID);

		// 登録
		create(inCBSMsg, insMsgCK0141);
	}

	/**
	 * <p>
	 * 連絡先のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessRrks(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// 回線系連絡先の登録
		dbAccessRrksKaise(inCBSMsg, inContext);

		// コンテンツ系連絡先の登録(連絡方法コードがメールアドレスのみ)
		dbAccessRrksCntntsMl(inCBSMsg, inContext);

		// コンテンツ系連絡先の登録(連絡方法コードが電話番号のみ)
		dbAccessRrksCntntsTel(inCBSMsg, inContext);
	}

	/**
	 * <p>
	 * お客様<個人>を無効にします。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void custKojinInvalid(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		CAANMsg invalidMsg = new CAANMsg(CK0021ETMsg.class.getName());
		invalidMsg.set(CK0021ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
		JKKejbDBAUtil dbu = new JKKejbDBAUtil(inCBSMsg);
		dbu.invalidAll(invalidMsg);
	}

	/**
	 * <p>
	 * お客様<法人>を無効にします。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void custHojinInvalid(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		CAANMsg invalidMsg = new CAANMsg(CK0031ETMsg.class.getName());
		invalidMsg.set(CK0031ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
		JKKejbDBAUtil dbu = new JKKejbDBAUtil(inCBSMsg);
		dbu.invalidAll(invalidMsg);
	}

	/**
	 * <p>
	 * 法人連絡先を無効にします。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void hojinRrksInvalid(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		CAANMsg invalidMsg = new CAANMsg(CK0041ETMsg.class.getName());
		invalidMsg.set(CK0041ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
		invalidMsg.set(CK0041ETMsg.MK_FLG, MKFLG_VALID);
		CAANMsg[] retInvalidMsg = null;
		try
		{
			retInvalidMsg = new CK0041LE().findByCondition(invalidMsg);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		for (int i = 0; i < retInvalidMsg.length; i++)
		{
			retInvalidMsg[i].set(CK0041ETMsg.UPD_DTM, inCBSMsg.getObject(JCMConstants.OPERATE_DATETIME_KEY));
			retInvalidMsg[i].set(CK0041ETMsg.UPD_OPEACNT, inCBSMsg.getObject(JCMConstants.OPERATOR_ID_KEY));
			retInvalidMsg[i].set(CK0041ETMsg.DEL_DTM, inCBSMsg.getObject(JCMConstants.OPERATE_DATETIME_KEY));
			retInvalidMsg[i].set(CK0041ETMsg.DEL_OPEACNT, inCBSMsg.getObject(JCMConstants.OPERATOR_ID_KEY));
			retInvalidMsg[i].set(CK0041ETMsg.MK_FLG, MKFLG_INVALID);

			// 更新処理の実行
			update(inCBSMsg, retInvalidMsg[i]);
		}
	}


	/**
	 * <p>
	 * オプトインメール受信設定にDBアクセス処理を行います。(無効レコード作成)
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param motoMladList オプトインメール受信設定の名寄せ元カレントレコードのメールアドレスリスト
	*/
	private void dbAccessOptinmMkIns(CAANMsg inCBSMsg, AgentDispatchContext inContext, List<String> motoMladList)
	{
		// 連絡先テーブルより名寄せ先会員分のコンテンツ系連絡先メールアドレスデータの抽出を行う。
		CAANMsg condMsgCK0201 = new CAANMsg(CK0201ETMsg.class.getName());

		// SYSIDに名寄せ先SYSIDをセット
		condMsgCK0201.set(CK0201ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));

		// 連絡方法コードにメールアドレス("001")をセット
		condMsgCK0201.set(CK0201ETMsg.RRK_WAY_CD, RRK_WAYCD_MAIL);

		// 連絡先分類コードにコンテンツ系連絡先("1")をセット
		condMsgCK0201.set(CK0201ETMsg.RRKS_BUNRUI_CD, RRSK_BUNRUICD_CONTENTS);

		// 無効フラグに有効("0")をセット
		condMsgCK0201.set(CK0201ETMsg.MK_FLG, MKFLG_VALID);
		CAANMsg[] retConSkMsg = null;
		
		try
		{
			retConSkMsg = new CK0201LE().findByCondition(condMsgCK0201);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}
		// キー格納リスト
		List<String> keyList = new ArrayList<String>();

		// 抽出した連絡先分、処理を繰り返す
		for (int i = 0; i < retConSkMsg.length; i++)
		{
			// 連絡先のキーを取得
			String priKeys = retConSkMsg[i].getString(CK0201ETMsg.RRKS_NO);

			// キーがリスト内に存在した場合			
			if (keyList.contains(priKeys))
			{
				// 次レコードを処理する
				continue;
			}
			// キーをリストに格納
			keyList.add(priKeys);

			// カレントレコードを取得
			CAANMsg curMsgCK0201 = new CAANMsg(CK0201ETMsg.class.getName());
			curMsgCK0201.set(CK0201ETMsg.RRKS_NO, priKeys);
			curMsgCK0201.set(CK0201ETMsg.RSV_APLY_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
			CAANMsg retCurMsg = new JCKejbCK0201DBABase().findByCurrent(curMsgCK0201);

			// 連絡方法コードが ’メールアドレス’、かつ
			// 連絡先分類コードが ’コンテンツ系連絡先’、かつ
			// 名寄せ先SYSIDと同じ場合
			if (RRK_WAYCD_MAIL.equals(retCurMsg.getString(CK0201ETMsg.RRK_WAY_CD))
					&& RRSK_BUNRUICD_CONTENTS.equals(retCurMsg.getString(CK0201ETMsg.RRKS_BUNRUI_CD))
					&& retCurMsg.getString(CK0201ETMsg.SYSID).equals(inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID)))
			{
				// 入力パラメータ．連絡先メールアドレス ≠ NULL、かつ
				// 抽出したデータ(カレント)のメールアドレス ≠ 入力パラメータ．連絡先メールアドレス、かつ
				// 名寄せ元連絡先．メールアドレス(複数件) ≠ 名寄せ先連絡先．メールアドレスの場合
				if (inCBSMsg.getString(ECK0011C080CBSMsg.RRSK_MLAD) != null
						&& !retCurMsg.getString(CK0201ETMsg.MLAD).equals(inCBSMsg.getString(ECK0011C080CBSMsg.RRSK_MLAD))
						&& !motoMladList.contains(retCurMsg.getString(CK0201ETMsg.MLAD)))
				{
					// 無効レコードに更新する(無効レコードを登録)
					createOptMladMkIns(inCBSMsg, retCurMsg);
				}
	
				// 入力パラメータ．連絡先メールアドレス ≠ NULL、かつ
				// 抽出したデータ(カレント)のメールアドレス ≠ 入力パラメータ．連絡先メールアドレス、かつ
				// 名寄せ元連絡先．メールアドレス(複数件) ≠ 入力パラメータ．連絡先メールアドレスの場合
				if (inCBSMsg.getString(ECK0011C080CBSMsg.RRSK_MLAD) != null
						&& !retCurMsg.getString(CK0201ETMsg.MLAD).equals(inCBSMsg.getString(ECK0011C080CBSMsg.RRSK_MLAD))
						&& !motoMladList.contains(inCBSMsg.getString(ECK0011C080CBSMsg.RRSK_MLAD)))
				{
					// オプトインメール受信設定のDBアクセス(入力パラメータ．オプトインメール番号分、登録)
					dbAccessCreateOptMladIns(inCBSMsg);
		
					// オプトインメール受信設定のDBアクセス(非公開分のみ登録)
					dbAccessCreateOptMlCloseIns(inCBSMsg, inContext);
				}
				// 上記以外の場合
				else
				{
					// 登録項目の編集をし、登録を行う
					createOptMlEquIns(inCBSMsg, retCurMsg);
				}
			}
		}
	}

	/**
	 * <p>
	 * 連絡先(回線系連絡先)のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessRrksKaise(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSID、連絡先分類コード="回線系連絡先"に紐付くレコードを取得
		CAANMsg condMsgCK0201 = new CAANMsg(CK0201ETMsg.class.getName());
		condMsgCK0201.set(CK0201ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		condMsgCK0201.set(CK0201ETMsg.RRKS_BUNRUI_CD, RRSK_BUNRUICD_KAISEN);
		condMsgCK0201.set(CK0201ETMsg.MK_FLG, MKFLG_VALID);
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new CK0201LE().findByCondition(condMsgCK0201);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		String primaryKey = null;
		HashMap<String, String> escapeMap = new HashMap<String, String>();

		for (int i = 0; i < retConMsg.length; i++)
		{
			// プライマリキーを取得
			primaryKey = retConMsg[i].getString(CK0201ETMsg.RRKS_NO);

			if (!escapeMap.containsKey(primaryKey))
			{
				// 初検索の場合
				escapeMap.put(primaryKey, null);

				CAANMsg curMsgCK0201 = new CAANMsg(CK0201ETMsg.class.getName());
				curMsgCK0201.set(CK0201ETMsg.RRKS_NO, primaryKey);
				curMsgCK0201.set(CK0201ETMsg.RSV_APLY_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
				CAANMsg retCurMsg = new JCKejbCK0201DBABase().findByCurrent(curMsgCK0201);

				// カレントの情報が抽出条件に一致する場合
				if (null != retCurMsg
						&& inCBSMsg.getString(ECK0011C080CBSMsg.SYSID).equals(retCurMsg.getString(CK0201ETMsg.SYSID))
						&& RRSK_BUNRUICD_KAISEN.equals(retCurMsg.getString(CK0201ETMsg.RRKS_BUNRUI_CD))
						&& MKFLG_VALID.equals(retCurMsg.getString(CK0201ETMsg.MK_FLG)))
				{
					retCurMsg.set(CK0201ETMsg.RRKS_NO, JCKModelCommon.getFormatedNextSeq(RRKS_SEQ_NAME, PREFIX_RRKSNO, RRSKNO_LENGTH));
					retCurMsg.set(CK0201ETMsg.GENE_ADD_DTM, JCKModelCommon.getSysDateTimeStamp());
					retCurMsg.set(CK0201ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
					retCurMsg.set(CK0201ETMsg.RRKS_BUNRUI_CD, RRSK_BUNRUICD_KAISEN);
					retCurMsg.set(CK0201ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(CK0201ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.set(CK0201ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(CK0201ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.setNull(CK0201ETMsg.DEL_DTM);
					retCurMsg.setNull(CK0201ETMsg.DEL_OPEACNT);
					retCurMsg.set(CK0201ETMsg.MK_FLG, MKFLG_VALID);

					// カレント情報を元に登録
					create(inCBSMsg, retCurMsg);
				}
			}
		}
	}


	/**
	 * <p>
	 * 連絡先(コンテンツ系連絡先)のDBアクセス処理を行います。(連絡方法コードがメールアドレスのみ)
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessRrksCntntsMl(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSID、連絡方法コード="メールアドレス"、連絡先分類コード="コンテンツ系連絡先"に紐付くレコードを取得
		CAANMsg condMsgCK0201 = new CAANMsg(CK0201ETMsg.class.getName());
		condMsgCK0201.set(CK0201ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
		condMsgCK0201.set(CK0201ETMsg.RRK_WAY_CD, RRK_WAYCD_MAIL);
		condMsgCK0201.set(CK0201ETMsg.RRKS_BUNRUI_CD, RRSK_BUNRUICD_CONTENTS);
		condMsgCK0201.set(CK0201ETMsg.MK_FLG, MKFLG_VALID);
		CAANMsg[] retConMsg = null;

		// 業務区分を取得
		String gyomuKbn = inCBSMsg.getString(ECK0011C080CBSMsg.GYOMU_KBN);
		try
		{
			retConMsg = new CK0201LE().findByCondition(condMsgCK0201);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		// キー格納リスト
		List<String> keyList = new ArrayList<String>();

		// 名寄せ先レコード分、処理を行う
		for (int i = 0; i < retConMsg.length; i++)
		{
			// 連絡先のキーを取得
			String priKeys = retConMsg[i].getString(CK0201ETMsg.RRKS_NO);

			// キーがリスト内に存在した場合
			if (keyList.contains(priKeys))
			{
				// 次レコードを処理する
				continue;
			}
			// キーをリストに格納
			keyList.add(priKeys);

			// カレントレコードを取得
			CAANMsg curMsgCK0201 = new CAANMsg(CK0201ETMsg.class.getName());
			curMsgCK0201.set(CK0201ETMsg.RRKS_NO, priKeys);
			curMsgCK0201.set(CK0201ETMsg.RSV_APLY_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
			CAANMsg retCurMsg = new JCKejbCK0201DBABase().findByCurrent(curMsgCK0201);

			// 連絡方法コードが ’メールアドレス’、かつ
			// 連絡先分類コードが ’コンテンツ系連絡先’、かつ
			// 名寄せ先SYSIDと同じ場合
			if (RRK_WAYCD_MAIL.equals(retCurMsg.getString(CK0201ETMsg.RRK_WAY_CD))
					&& RRSK_BUNRUICD_CONTENTS.equals(retCurMsg.getString(CK0201ETMsg.RRKS_BUNRUI_CD))
					&& retCurMsg.getString(CK0201ETMsg.SYSID).equals(inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID)))
			{
				// 入力パラメータ．業務区分が"0"または"1"、かつ
				// 入力パラメータ．連絡先メールアドレス ≠ NULL、かつ
				// 名寄せ先レコード(カレント)．メールアドレス ≠ 入力パラメータ．連絡先メールアドレスの場合
				if ((GYOUMU_KBN_ZERO.equals(gyomuKbn)
						|| GYOUMU_KBN_ONE.equals(gyomuKbn))
						&& inCBSMsg.getString(ECK0011C080CBSMsg.RRSK_MLAD) != null
						&& !retCurMsg.getString(CK0201ETMsg.MLAD).equals(inCBSMsg.getString(ECK0011C080CBSMsg.RRSK_MLAD)))
				{
					// 連絡先メールアドレスの登録
					createRrkMladIns(inCBSMsg, retCurMsg, "1");
				}
				// 入力パラメータ．業務区分が"2"または"3"、かつ
				// 入力パラメータ．変更手続中メールアドレス ≠ NULLの場合
				else if ((GYOUMU_KBN_TWO.equals(gyomuKbn)
						|| GYOUMU_KBN_THR.equals(gyomuKbn))
						&& inCBSMsg.getString(ECK0011C080CBSMsg.HENKO_TETUZUKITYU_MLAD) != null)
				{
					// 変更手続中メールアドレスの登録
					createRrkMladIns(inCBSMsg, retCurMsg, "2");
				}
			}
		}
	}

	/**
	 * <p>
	 * 連絡先(コンテンツ系連絡先)のDBアクセス処理を行います。(連絡方法コードが電話番号のみ)
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessRrksCntntsTel(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSID、連絡方法コード="電話番号"、連絡先分類コード="コンテンツ系連絡先"に紐付くレコードを取得
		CAANMsg condMsgCK0201 = new CAANMsg(CK0201ETMsg.class.getName());
		condMsgCK0201.set(CK0201ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
		condMsgCK0201.set(CK0201ETMsg.RRK_WAY_CD, RRK_WAYCD_TEL);
		condMsgCK0201.set(CK0201ETMsg.RRKS_BUNRUI_CD, RRSK_BUNRUICD_CONTENTS);
		condMsgCK0201.set(CK0201ETMsg.MK_FLG, MKFLG_VALID);
		CAANMsg[] retConMsg = null;
		// WK_契約者電話番号
		String wkKeiTel = null;
		// 業務区分
		String gyomuKbn = inCBSMsg.getString(ECK0011C080CBSMsg.GYOMU_KBN);

		try
		{
			retConMsg = new CK0201LE().findByCondition(condMsgCK0201);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		// キー格納リスト
		List<String> keyList = new ArrayList<String>();

		// 対象データが存在する場合
		if (retConMsg.length != 0)
		{
			// 取得データ分処理を行う
			for (int i = 0; i < retConMsg.length; i++)
			{
				// 業務区分が"1"，"3"、かつ入力パラメータ．電話番号 = nullの場合
				if ((GYOUMU_KBN_ONE.equals(gyomuKbn)
						|| GYOUMU_KBN_THR.equals(gyomuKbn))
						&& inCBSMsg.getString(ECK0011C080CBSMsg.TELNO) == null)
				{
					// 抽出したデータを無効に更新する
					retConMsg[i].set(CK0201ETMsg.UPD_DTM, inCBSMsg.getObject(JCMConstants.OPERATE_DATETIME_KEY));
					retConMsg[i].set(CK0201ETMsg.UPD_OPEACNT, inCBSMsg.getObject(JCMConstants.OPERATOR_ID_KEY));
					retConMsg[i].set(CK0201ETMsg.DEL_DTM, inCBSMsg.getObject(JCMConstants.OPERATE_DATETIME_KEY));
					retConMsg[i].set(CK0201ETMsg.DEL_OPEACNT, inCBSMsg.getObject(JCMConstants.OPERATOR_ID_KEY));
					retConMsg[i].set(CK0201ETMsg.MK_FLG, MKFLG_INVALID);

					// 無効に更新
					update(inCBSMsg, retConMsg[i]);
				}
				// 上記以外の場合
				else
				{
					// 連絡先のキーを取得
					String priKeys = retConMsg[i].getString(CK0201ETMsg.RRKS_NO);

					// キーがリスト内に存在した場合			
					if (keyList.contains(priKeys))
					{
						// 次レコードを処理する
						continue;
					}
					// キーをリストに格納
					keyList.add(priKeys);

					// カレントレコードを取得
					CAANMsg curMsgCK0201 = new CAANMsg(CK0201ETMsg.class.getName());
					curMsgCK0201.set(CK0201ETMsg.RRKS_NO, priKeys);
					curMsgCK0201.set(CK0201ETMsg.RSV_APLY_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
					CAANMsg retCurMsg = new JCKejbCK0201DBABase().findByCurrent(curMsgCK0201);

					// 連絡方法コードが ’電話番号’、かつ
					// 連絡先分類コードが ’コンテンツ系連絡先’、かつ
					// 名寄せ先SYSIDと同じ場合
					if (RRK_WAYCD_TEL.equals(retCurMsg.getString(CK0201ETMsg.RRK_WAY_CD))
							&& RRSK_BUNRUICD_CONTENTS.equals(retCurMsg.getString(CK0201ETMsg.RRKS_BUNRUI_CD))
							&& retCurMsg.getString(CK0201ETMsg.SYSID).equals(inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID)))
					{
						// 契約者電話番号取得
						wkKeiTel = getKeiTel(inCBSMsg, retCurMsg);
	
						// 処理続行判定
						// WK_契約者電話番号がnullの場合
						if ("".equals(wkKeiTel) || wkKeiTel == null)
						{
							// 次レコードを処理する
							continue;
						}
						// 電話番号の登録を行う
						createRrkTelIns(inCBSMsg, retCurMsg, wkKeiTel);
					}
				}
			}
		}
		// 対象データが存在しない場合
		else
		{
			// 契約者電話番号取得
			wkKeiTel = getKeiTelNone(inCBSMsg);

			// 処理続行判定
			// WK_契約者電話番号がnullの場合
			if ("".equals(wkKeiTel) || wkKeiTel == null)
			{
				// 処理を終了する
				return;
			}
			// 電話番号の登録を行う
			createRrkTelNoneIns(inCBSMsg, wkKeiTel);
		}
	}


	/**
	 * <p>
	 * 契約のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessOfKK(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// 申込のDBアクセス
		dbAccessMskm(inCBSMsg, inContext);

		// 申込明細のDBアクセス
		dbAccessMskmDtl(inCBSMsg, inContext);

		// アンケート回答のDBアクセス
		dbAccessEnqueteAns(inCBSMsg, inContext);

		// サービス契約排他制御のDBアクセス
		dbAccessSvcHaita(inCBSMsg, inContext);

		// サービス契約のDBアクセス
		dbAccessSvcKei(inCBSMsg, inContext);

		// サービス契約内訳<eoモバイル>のDBアクセス
		dbAccessSvcKeiUcwkEomoba(inCBSMsg, inContext);

		// 紹介のDBアクセス
		dbAccessIntr(inCBSMsg, inContext);

		// 機器提供サービス契約のDBアクセス
		dbAccessKktkSvcKei(inCBSMsg, inContext);

		// オプションサービス契約<ISP>のDBアクセス
		dbAccessOpsvkeiIsp(inCBSMsg, inContext);

		// オプションサービス契約のDBアクセス
		dbAccessOpSvcKei(inCBSMsg, inContext);

		// 請求オプションサービス契約のDBアクセス
		dbAccessSeiopsvcKei(inCBSMsg, inContext);

		// 割引サービス契約のDBアクセス
		dbAccessWribSvcKei(inCBSMsg, inContext);

		// 請求契約のDBアクセス
		dbAccessSeikyKei(inCBSMsg, inContext);

		// 通知書のDBアクセス
		dbAccessTchisho(inCBSMsg, inContext);

		// 通知対象物のDBアクセス
		dbAccessTchiTgBpin(inCBSMsg, inContext);

		// はぴeポイント契約のDBアクセス
		dbAccessHapiePointKei(inCBSMsg, inContext);

		// オーダ設定のDBアクセス
		dbAccessOdrSet(inCBSMsg, inContext);

		// 審査のDBアクセス
		dbAccessJudge(inCBSMsg, inContext);

		// オーダ発行条件のDBアクセス
		dbAccessOdrHakkoJoken(inCBSMsg, inContext);

		// メール情報のDBアクセス
		dbAccessMailInfo(inCBSMsg, inContext);

		// 自動照査結果のDBアクセス
		dbAccessAutoSyosaRet(inCBSMsg, inContext);

		// 加入御礼書発行のDBアクセス
		dbAccessKanuoresoHakko(inCBSMsg, inContext);

		// PMPお客様情報変更依頼のDBアクセス
		dbAccessPmpCsifChgreq(inCBSMsg, inContext);

		// データ抽出項目設定のDBアクセス
		dbAccessDchskmst(inCBSMsg, inContext);

		// 異動予約のDBアクセス
		dbAccessIdoRsv(inCBSMsg, inContext);

		// 住所変更申込一時保存のDBアクセス
		dbAccessAdchmTp(inCBSMsg, inContext);

		// 住所変更申込STB一時保存のDBアクセス
		dbAccessAdStbTp(inCBSMsg, inContext);

		// 住所変更申込VA一時保存のDBアクセス
		dbAccessAdVaTp(inCBSMsg, inContext);

		// 住所変更申込電話番号一時保存のDBアクセス
		dbAccessAdTlnTp(inCBSMsg, inContext);

		// 住所変更申込送付先一時保存のDBアクセス
		dbAccessAdShsTp(inCBSMsg, inContext);

		// 住所変更申込利用機器一時保存のDBアクセス
		dbAccessAdKkTp(inCBSMsg, inContext);

		// 住所変更申込オプション一時保存のDBアクセス
		dbAccessAdOpTp(inCBSMsg, inContext);

		// 申込保留内容一時保存のDBアクセス
		dbAccessMskmPnyTp(inCBSMsg, inContext);
		
		// 機器オプションサービス契約のDBアクセス
		dbAccessKkopSvcKei(inCBSMsg, inContext);
	}

	/**
	 * <p>
	 * 申込のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessMskm(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK0011 = new CAANMsg(KK0011ETMsg.class.getName());
		condMsgKK0011.set(KK0011ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK0011LE().findByCondition(condMsgKK0011);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		String primaryKey = null;
		HashMap<String, String> escapeMap = new HashMap<String, String>();

		for (int i = 0; i < retConMsg.length; i++)
		{
			// プライマリキーを取得
			primaryKey = retConMsg[i].getString(KK0011ETMsg.MSKM_NO);

			if (!escapeMap.containsKey(primaryKey))
			{
				// 初検索の場合
				escapeMap.put(primaryKey, null);

				CAANMsg curMsgKK0011 = new CAANMsg(KK0011ETMsg.class.getName());
				curMsgKK0011.set(KK0011ETMsg.MSKM_NO, primaryKey);
				CAANMsg retCurMsg = new JKKejbKK0011DBABase().findByCurrent(curMsgKK0011);
				if (null != retCurMsg && inCBSMsg.getString(ECK0011C080CBSMsg.SYSID).equals(retCurMsg.getString(KK0011ETMsg.SYSID)))
				{
					retCurMsg.set(KK0011ETMsg.GENE_ADD_DTM, JKKModelCommon.getSysDateTimeStamp());
					retCurMsg.set(KK0011ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
					retCurMsg.set(KK0011ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0011ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.set(KK0011ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.setNull(KK0011ETMsg.DEL_DTM);
					retCurMsg.setNull(KK0011ETMsg.DEL_OPEACNT);
					retCurMsg.set(KK0011ETMsg.MK_FLG, MKFLG_VALID);

					// カレント情報を元に登録
					create(inCBSMsg, retCurMsg);
				}
			}

			retConMsg[i].set(KK0011ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK0011ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * 申込明細のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessMskmDtl(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK0021 = new CAANMsg(KK0021ETMsg.class.getName());
		condMsgKK0021.set(KK0021ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK0021LE().findByCondition(condMsgKK0021);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		String primaryKey = null;
		HashMap<String, String> escapeMap = new HashMap<String, String>();

		for (int i = 0; i < retConMsg.length; i++)
		{
			// プライマリキーを取得
			primaryKey = retConMsg[i].getString(KK0021ETMsg.MSKM_DTL_NO);

			if (!escapeMap.containsKey(primaryKey))
			{
				// 初検索の場合
				escapeMap.put(primaryKey, null);

				CAANMsg curMsgKK0021 = new CAANMsg(KK0021ETMsg.class.getName());
				curMsgKK0021.set(KK0021ETMsg.MSKM_DTL_NO, primaryKey);
				CAANMsg retCurMsg = new JKKejbKK0021DBABase().findByCurrent(curMsgKK0021);
				if (null != retCurMsg && inCBSMsg.getString(ECK0011C080CBSMsg.SYSID).equals(retCurMsg.getString(KK0021ETMsg.SYSID)))
				{
					retCurMsg.set(KK0021ETMsg.GENE_ADD_DTM, JKKModelCommon.getSysDateTimeStamp());
					retCurMsg.set(KK0021ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
					retCurMsg.set(KK0021ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0021ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.set(KK0021ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0021ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.setNull(KK0021ETMsg.DEL_DTM);
					retCurMsg.setNull(KK0021ETMsg.DEL_OPEACNT);
					retCurMsg.set(KK0021ETMsg.MK_FLG, MKFLG_VALID);

					// カレント情報を元に登録
					create(inCBSMsg, retCurMsg);
				}
			}

			retConMsg[i].set(KK0021ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK0021ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK0021ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * アンケート回答のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessEnqueteAns(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK0051 = new CAANMsg(KK0051ETMsg.class.getName());
		condMsgKK0051.set(KK0051ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK0051LE().findByCondition(condMsgKK0051);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		for (int i = 0; i < retConMsg.length; i++)
		{
			retConMsg[i].set(KK0051ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK0051ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK0051ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * サービス契約のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessSvcKei(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK0081 = new CAANMsg(KK0081ETMsg.class.getName());
		condMsgKK0081.set(KK0081ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK0081LE().findByCondition(condMsgKK0081);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		String primaryKey = null;
		HashMap<String, String> escapeMap = new HashMap<String, String>();

		for (int i = 0; i < retConMsg.length; i++)
		{
			// プライマリキーを取得
			primaryKey = retConMsg[i].getString(KK0081ETMsg.SVC_KEI_NO);

			if (!escapeMap.containsKey(primaryKey))
			{
				// 初検索の場合
				escapeMap.put(primaryKey, null);

				String opeDate = JKKModelCommon.getOpeDate(inCBSMsg);

				CAANMsg curMsgKK0081 = new CAANMsg(KK0081ETMsg.class.getName());
				curMsgKK0081.set(KK0081ETMsg.SVC_KEI_NO, primaryKey);
				curMsgKK0081.set(KK0081ETMsg.RSV_APLY_YMD, opeDate);
				CAANMsg retCurMsg = new JKKejbKK0081DBABase().findByCurrent(curMsgKK0081);
				if (null != retCurMsg && inCBSMsg.getString(ECK0011C080CBSMsg.SYSID).equals(retCurMsg.getString(KK0081ETMsg.SYSID)))
				{
					retCurMsg.set(KK0081ETMsg.GENE_ADD_DTM, JKKModelCommon.getSysDateTimeStamp());
					retCurMsg.set(KK0081ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));

					String svc_stat = retCurMsg.getString(KK0081ETMsg.SVC_KEI_STAT);
					
//OM-2015-0000191 MOD START
					if(JKKModelConst.SVC_KEI_STAT_CNC_ZM.compareTo(svc_stat) < 0
							&& JKKModelConst.SVC_KEI_STAT_DSL_ZM.compareTo(svc_stat) > 0)
					{
						retCurMsg.set(KK0081ETMsg.RSV_APLY_YMD, opeDate);
					}
//OM-2015-0000191 MOD END
					retCurMsg.set(KK0081ETMsg.RSV_APLY_CD, RSVCD_DECIDE);
					retCurMsg.set(KK0081ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0081ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.set(KK0081ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0081ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.setNull(KK0081ETMsg.DEL_DTM);
					retCurMsg.setNull(KK0081ETMsg.DEL_OPEACNT);
					retCurMsg.set(KK0081ETMsg.MK_FLG, MKFLG_VALID);

					// カレント情報を元に登録
					create(inCBSMsg, retCurMsg);

					// サブタイプ登録処理
					createSubTypeKK0081(inCBSMsg, retCurMsg);
				}
			}

			retConMsg[i].set(KK0081ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK0081ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK0081ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * サービス契約内訳<eoモバイル>のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessSvcKeiUcwkEomoba(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK0201 = new CAANMsg(KK0201ETMsg.class.getName());
		condMsgKK0201.set(KK0201ETMsg.SPOT_LOGIN_SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK0201LE().findByCondition(condMsgKK0201);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		String primaryKey = null;
		HashMap<String, String> escapeMap = new HashMap<String, String>();

		for (int i = 0; i < retConMsg.length; i++)
		{
			// プライマリキーを取得
			primaryKey = retConMsg[i].getString(KK0201ETMsg.SVC_KEI_UCWK_NO);

			if (!escapeMap.containsKey(primaryKey))
			{
				// 初検索の場合
				escapeMap.put(primaryKey, null);

				CAANMsg curMsgKK0201 = new CAANMsg(KK0201ETMsg.class.getName());
				curMsgKK0201.set(KK0201ETMsg.SVC_KEI_UCWK_NO, primaryKey);
				CAANMsg retCurMsg = new JKKejbKK0201DBABase().findByCurrent(curMsgKK0201);
				if (null != retCurMsg && inCBSMsg.getString(ECK0011C080CBSMsg.SYSID).equals(retCurMsg.getString(KK0201ETMsg.SPOT_LOGIN_SYSID)))
				{
					String currentGene = retCurMsg.getString(KK0201ETMsg.GENE_ADD_DTM);

					retCurMsg.set(KK0201ETMsg.GENE_ADD_DTM, JKKModelCommon.getSysDateTimeStamp());
					retCurMsg.set(KK0201ETMsg.SPOT_LOGIN_SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
					retCurMsg.set(KK0201ETMsg.RSV_APLY_CD, RSVCD_DECIDE);
					retCurMsg.set(KK0201ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0201ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.set(KK0201ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0201ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.setNull(KK0201ETMsg.DEL_DTM);
					retCurMsg.setNull(KK0201ETMsg.DEL_OPEACNT);
					retCurMsg.set(KK0201ETMsg.MK_FLG, MKFLG_VALID);

					// カレント情報を元に登録
					create(inCBSMsg, retCurMsg);

					// スーパータイプ登録処理
					createSuperTypeKK0161(inCBSMsg, currentGene, retCurMsg);
				}
			}
		}
	}

	/**
	 * <p>
	 * 紹介のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessIntr(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK0311 = new CAANMsg(KK0311ETMsg.class.getName());
		condMsgKK0311.set(KK0311ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK0311LE().findByCondition(condMsgKK0311);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		for (int i = 0; i < retConMsg.length; i++)
		{
			retConMsg[i].set(KK0311ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK0311ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK0311ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * 機器提供サービス契約のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessKktkSvcKei(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK0341 = new CAANMsg(KK0341ETMsg.class.getName());
		condMsgKK0341.set(KK0341ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK0341LE().findByCondition(condMsgKK0341);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		String primaryKey = null;
		HashMap<String, String> escapeMap = new HashMap<String, String>();

		for (int i = 0; i < retConMsg.length; i++)
		{
			// プライマリキーを取得
			primaryKey = retConMsg[i].getString(KK0341ETMsg.KKTK_SVC_KEI_NO);

			if (!escapeMap.containsKey(primaryKey))
			{
				// 初検索の場合
				escapeMap.put(primaryKey, null);

				String opeDate = JKKModelCommon.getOpeDate(inCBSMsg);

				CAANMsg curMsgKK0341 = new CAANMsg(KK0341ETMsg.class.getName());
				curMsgKK0341.set(KK0341ETMsg.KKTK_SVC_KEI_NO, primaryKey);
				curMsgKK0341.set(KK0341ETMsg.RSV_APLY_YMD, opeDate);
				CAANMsg retCurMsg = new JKKejbKK0341DBABase().findByCurrent(curMsgKK0341);
				if (null != retCurMsg && inCBSMsg.getString(ECK0011C080CBSMsg.SYSID).equals(retCurMsg.getString(KK0341ETMsg.SYSID)))
				{
					retCurMsg.set(KK0341ETMsg.GENE_ADD_DTM, JKKModelCommon.getSysDateTimeStamp());
					retCurMsg.set(KK0341ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));

//OM-2015-0000191 MOD START
					String stat = retCurMsg.getString(KK0341ETMsg.KKTK_SVC_KEI_STAT);
					
					if (JKKModelConst.KKTK_SVC_KEI_STAT_DSL_ZM.compareTo(stat) > 0)
					{
						retCurMsg.set(KK0341ETMsg.RSV_APLY_YMD, opeDate);
					}
//OM-2015-0000191 MOD END
					retCurMsg.set(KK0341ETMsg.RSV_APLY_CD, RSVCD_DECIDE);
					retCurMsg.set(KK0341ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0341ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.set(KK0341ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0341ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.setNull(KK0341ETMsg.DEL_DTM);
					retCurMsg.setNull(KK0341ETMsg.DEL_OPEACNT);
					retCurMsg.set(KK0341ETMsg.MK_FLG, MKFLG_VALID);

					// カレント情報を元に登録
					create(inCBSMsg, retCurMsg);
				}
			}

			retConMsg[i].set(KK0341ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK0341ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK0341ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * オプションサービス契約<ISP>のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessOpsvkeiIsp(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK0361 = new CAANMsg(KK0361ETMsg.class.getName());
		condMsgKK0361.set(KK0361ETMsg.SPOT_YGSITEBLCK_TRGT_SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK0361LE().findByCondition(condMsgKK0361);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		String primaryKey = null;
		HashMap<String, String> escapeMap = new HashMap<String, String>();

		for (int i = 0; i < retConMsg.length; i++)
		{
			// プライマリキーを取得
			primaryKey = retConMsg[i].getString(KK0361ETMsg.OP_SVC_KEI_NO);

			if (!escapeMap.containsKey(primaryKey))
			{
				// 初検索の場合
				escapeMap.put(primaryKey, null);

				CAANMsg curMsgKK0361 = new CAANMsg(KK0361ETMsg.class.getName());
				curMsgKK0361.set(KK0361ETMsg.OP_SVC_KEI_NO, primaryKey);
				CAANMsg retCurMsg = new JKKejbKK0361DBABase().findByCurrent(curMsgKK0361);
				if (null != retCurMsg && inCBSMsg.getString(ECK0011C080CBSMsg.SYSID).equals(retCurMsg.getString(KK0361ETMsg.SPOT_YGSITEBLCK_TRGT_SYSID)))
				{
					String currentGene = retCurMsg.getString(KK0361ETMsg.GENE_ADD_DTM);

					retCurMsg.set(KK0361ETMsg.GENE_ADD_DTM, JKKModelCommon.getSysDateTimeStamp());
					retCurMsg.set(KK0361ETMsg.SPOT_YGSITEBLCK_TRGT_SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
					retCurMsg.set(KK0361ETMsg.RSV_APLY_CD, RSVCD_DECIDE);
					retCurMsg.set(KK0361ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0361ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.set(KK0361ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0361ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.setNull(KK0361ETMsg.DEL_DTM);
					retCurMsg.setNull(KK0361ETMsg.DEL_OPEACNT);
					retCurMsg.set(KK0361ETMsg.MK_FLG, MKFLG_VALID);

					// カレント情報を元に登録
					create(inCBSMsg, retCurMsg);

					// スーパータイプ登録処理
					createSuperTypeKK0351(inCBSMsg, currentGene, retCurMsg);
				}
			}
		}
	}

	/**
	 * <p>
	 * オプションサービス契約のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessOpSvcKei(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK0351 = new CAANMsg(KK0351ETMsg.class.getName());
		condMsgKK0351.set(KK0351ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK0351LE().findByCondition(condMsgKK0351);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		String primaryKey = null;
		HashMap<String, String> escapeMap = new HashMap<String, String>();

		for (int i = 0; i < retConMsg.length; i++)
		{
			// プライマリキーを取得
			primaryKey = retConMsg[i].getString(KK0351ETMsg.OP_SVC_KEI_NO);

			if (!escapeMap.containsKey(primaryKey))
			{
				// 初検索の場合
				escapeMap.put(primaryKey, null);

				String opeDate = JKKModelCommon.getOpeDate(inCBSMsg);

				CAANMsg curMsgKK0351 = new CAANMsg(KK0351ETMsg.class.getName());
				curMsgKK0351.set(KK0351ETMsg.OP_SVC_KEI_NO, primaryKey);
				curMsgKK0351.set(KK0351ETMsg.RSV_APLY_YMD, opeDate);
				CAANMsg retCurMsg = new JKKejbKK0351DBABase().findByCurrent(curMsgKK0351);
				if (null != retCurMsg && inCBSMsg.getString(ECK0011C080CBSMsg.SYSID).equals(retCurMsg.getString(KK0351ETMsg.SYSID)))
				{
					retCurMsg.set(KK0351ETMsg.GENE_ADD_DTM, JKKModelCommon.getSysDateTimeStamp());
					retCurMsg.set(KK0351ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
					
//OM-2015-0000191 MOD START
					String stat = retCurMsg.getString(KK0351ETMsg.OP_SVC_KEI_STAT);
					
					if (JKKModelConst.OP_SVC_KEI_STAT_DSL_ZM.compareTo(stat) > 0)
					{
						retCurMsg.set(KK0351ETMsg.RSV_APLY_YMD, opeDate);
					}
//OM-2015-0000191 MOD END
					retCurMsg.set(KK0351ETMsg.RSV_APLY_CD, RSVCD_DECIDE);
					retCurMsg.set(KK0351ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0351ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.set(KK0351ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0351ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.setNull(KK0351ETMsg.DEL_DTM);
					retCurMsg.setNull(KK0351ETMsg.DEL_OPEACNT);
					retCurMsg.set(KK0351ETMsg.MK_FLG, MKFLG_VALID);

					// カレント情報を元に登録
					create(inCBSMsg, retCurMsg);

					// サブタイプ登録処理
					createSubTypeKK0351(inCBSMsg, retCurMsg);
				}
			}

			retConMsg[i].set(KK0351ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK0351ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK0351ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * 請求オプションサービス契約のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessSeiopsvcKei(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK0441 = new CAANMsg(KK0441ETMsg.class.getName());
		condMsgKK0441.set(KK0441ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK0441LE().findByCondition(condMsgKK0441);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		String primaryKey = null;
		HashMap<String, String> escapeMap = new HashMap<String, String>();

		for (int i = 0; i < retConMsg.length; i++)
		{
			// プライマリキーを取得
			primaryKey = retConMsg[i].getString(KK0441ETMsg.SEIOPSVC_KEI_NO);

			if (!escapeMap.containsKey(primaryKey))
			{
				// 初検索の場合
				escapeMap.put(primaryKey, null);

				String opeDate = JKKModelCommon.getOpeDate(inCBSMsg);

				CAANMsg curMsgKK0441 = new CAANMsg(KK0441ETMsg.class.getName());
				curMsgKK0441.set(KK0441ETMsg.SEIOPSVC_KEI_NO, primaryKey);
				curMsgKK0441.set(KK0441ETMsg.RSV_APLY_YMD, opeDate);
				CAANMsg retCurMsg = new JKKejbKK0441DBABase().findByCurrent(curMsgKK0441);
				if (null != retCurMsg && inCBSMsg.getString(ECK0011C080CBSMsg.SYSID).equals(retCurMsg.getString(KK0441ETMsg.SYSID)))
				{
					retCurMsg.set(KK0441ETMsg.GENE_ADD_DTM, JKKModelCommon.getSysDateTimeStamp());
					retCurMsg.set(KK0441ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));

//OM-2015-0000191 MOD START
					String stat = retCurMsg.getString(KK0441ETMsg.SEIOPSVC_KEI_STAT);
					
					if (JKKModelConst.SEIOPSVC_KEI_STAT_DSL_ZM.compareTo(stat) > 0)
					{
						retCurMsg.set(KK0441ETMsg.RSV_APLY_YMD, opeDate);
					}
//OM-2015-0000191 MOD END
					retCurMsg.set(KK0441ETMsg.RSV_APLY_CD, RSVCD_DECIDE);
					retCurMsg.set(KK0441ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0441ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.set(KK0441ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0441ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.setNull(KK0441ETMsg.DEL_DTM);
					retCurMsg.setNull(KK0441ETMsg.DEL_OPEACNT);
					retCurMsg.set(KK0441ETMsg.MK_FLG, MKFLG_VALID);

					// カレント情報を元に登録
					create(inCBSMsg, retCurMsg);
				}
			}

			retConMsg[i].set(KK0441ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK0441ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK0441ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * 割引サービス契約のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessWribSvcKei(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK0451 = new CAANMsg(KK0451ETMsg.class.getName());
		condMsgKK0451.set(KK0451ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK0451LE().findByCondition(condMsgKK0451);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		String primaryKey = null;
		HashMap<String, String> escapeMap = new HashMap<String, String>();

		for (int i = 0; i < retConMsg.length; i++)
		{
			// プライマリキーを取得
			primaryKey = retConMsg[i].getString(KK0451ETMsg.WRIB_SVC_KEI_NO);

			if (!escapeMap.containsKey(primaryKey))
			{
				// 初検索の場合
				escapeMap.put(primaryKey, null);

				String opeDate = JKKModelCommon.getOpeDate(inCBSMsg);

				CAANMsg curMsgKK0451 = new CAANMsg(KK0451ETMsg.class.getName());
				curMsgKK0451.set(KK0451ETMsg.WRIB_SVC_KEI_NO, primaryKey);
				curMsgKK0451.set(KK0451ETMsg.RSV_APLY_YMD, opeDate);
				CAANMsg retCurMsg = new JKKejbKK0451DBABase().findByCurrent(curMsgKK0451);
				if (null != retCurMsg && inCBSMsg.getString(ECK0011C080CBSMsg.SYSID).equals(retCurMsg.getString(KK0451ETMsg.SYSID)))
				{
					retCurMsg.set(KK0451ETMsg.GENE_ADD_DTM, JKKModelCommon.getSysDateTimeStamp());
					retCurMsg.set(KK0451ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
					
//OM-2015-0000191 MOD START
					String stat = retCurMsg.getString(KK0451ETMsg.WRIB_SVC_KEI_STAT);
					
					if (JKKModelConst.WRIB_SVC_KEI_STAT_DSL_ZM.compareTo(stat) > 0)
					{
						retCurMsg.set(KK0451ETMsg.RSV_APLY_YMD, opeDate);
					}
//OM-2015-0000191 MOD END
					retCurMsg.set(KK0451ETMsg.RSV_APLY_CD, RSVCD_DECIDE);
					retCurMsg.set(KK0451ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0451ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.set(KK0451ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0451ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.setNull(KK0451ETMsg.DEL_DTM);
					retCurMsg.setNull(KK0451ETMsg.DEL_OPEACNT);
					retCurMsg.set(KK0451ETMsg.MK_FLG, MKFLG_VALID);

					// カレント情報を元に登録
					create(inCBSMsg, retCurMsg);

				}
			}

			retConMsg[i].set(KK0451ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK0451ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK0451ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * 請求契約のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessSeikyKei(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK0491 = new CAANMsg(KK0491ETMsg.class.getName());
		condMsgKK0491.set(KK0491ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK0491LE().findByCondition(condMsgKK0491);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		String primaryKey = null;
		HashMap<String, String> escapeMap = new HashMap<String, String>();

		for (int i = 0; i < retConMsg.length; i++)
		{
			// プライマリキーを取得
			primaryKey = retConMsg[i].getString(KK0491ETMsg.SEIKY_KEI_NO);

			if (!escapeMap.containsKey(primaryKey))
			{
				// 初検索の場合
				escapeMap.put(primaryKey, null);

				String opeDate = JKKModelCommon.getOpeDate(inCBSMsg);

				CAANMsg curMsgKK0491 = new CAANMsg(KK0491ETMsg.class.getName());
				curMsgKK0491.set(KK0491ETMsg.SEIKY_KEI_NO, primaryKey);
				curMsgKK0491.set(KK0491ETMsg.RSV_APLY_YMD, opeDate);
				CAANMsg retCurMsg = new JKKejbKK0491DBABase().findByCurrent(curMsgKK0491);
				if (null != retCurMsg && inCBSMsg.getString(ECK0011C080CBSMsg.SYSID).equals(retCurMsg.getString(KK0491ETMsg.SYSID)))
				{
					retCurMsg.set(KK0491ETMsg.GENE_ADD_DTM, JKKModelCommon.getSysDateTimeStamp());
					retCurMsg.set(KK0491ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
					
//OM-2015-0000191 MOD START
					String stat = retCurMsg.getString(KK0491ETMsg.SEIKY_KEI_STAT);
					
					if (JKKModelConst.SEIKY_KEI_STAT_DSL_ZM.compareTo(stat) > 0)
					{
						retCurMsg.set(KK0491ETMsg.RSV_APLY_YMD, opeDate);
					}
//OM-2015-0000191 MOD END
					retCurMsg.set(KK0491ETMsg.RSV_APLY_CD, RSVCD_DECIDE);
					retCurMsg.set(KK0491ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0491ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.set(KK0491ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK0491ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.setNull(KK0491ETMsg.DEL_DTM);
					retCurMsg.setNull(KK0491ETMsg.DEL_OPEACNT);
					retCurMsg.set(KK0491ETMsg.MK_FLG, MKFLG_VALID);

					// カレント情報を元に登録
					create(inCBSMsg, retCurMsg);
				}
			}

			retConMsg[i].set(KK0491ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK0491ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK0491ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * 通知書のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessTchisho(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK0561 = new CAANMsg(KK0561ETMsg.class.getName());
		condMsgKK0561.set(KK0561ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK0561LE().findByCondition(condMsgKK0561);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		for (int i = 0; i < retConMsg.length; i++)
		{
			retConMsg[i].set(KK0561ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK0561ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK0561ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * 通知対象物のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessTchiTgBpin(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK0571 = new CAANMsg(KK0571ETMsg.class.getName());
		condMsgKK0571.set(KK0571ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK0571LE().findByCondition(condMsgKK0571);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		for (int i = 0; i < retConMsg.length; i++)
		{
			retConMsg[i].set(KK0571ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK0571ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK0571ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * はぴeポイント契約のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessHapiePointKei(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK0671 = new CAANMsg(KK0671ETMsg.class.getName());
		condMsgKK0671.set(KK0671ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK0671LE().findByCondition(condMsgKK0671);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		for (int i = 0; i < retConMsg.length; i++)
		{
			retConMsg[i].set(KK0671ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK0671ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK0671ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * オーダ設定のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessOdrSet(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK1041 = new CAANMsg(KK1041ETMsg.class.getName());
		condMsgKK1041.set(KK1041ETMsg.SPOT_LOGIN_SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK1041LE().findByCondition(condMsgKK1041);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		for (int i = 0; i < retConMsg.length; i++)
		{
			retConMsg[i].set(KK1041ETMsg.SPOT_LOGIN_SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK1041ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK1041ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * 審査のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessJudge(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK1071 = new CAANMsg(KK1071ETMsg.class.getName());
		condMsgKK1071.set(KK1071ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK1071LE().findByCondition(condMsgKK1071);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		for (int i = 0; i < retConMsg.length; i++)
		{
			retConMsg[i].set(KK1071ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK1071ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK1071ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * オーダ発行条件のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessOdrHakkoJoken(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK1081 = new CAANMsg(KK1081ETMsg.class.getName());
		condMsgKK1081.set(KK1081ETMsg.SPOT_LOGIN_SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK1081LE().findByCondition(condMsgKK1081);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		for (int i = 0; i < retConMsg.length; i++)
		{
			retConMsg[i].set(KK1081ETMsg.SPOT_LOGIN_SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK1081ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK1081ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * メール情報のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessMailInfo(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK1121 = new CAANMsg(KK1121ETMsg.class.getName());
		condMsgKK1121.set(KK1121ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK1121LE().findByCondition(condMsgKK1121);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		for (int i = 0; i < retConMsg.length; i++)
		{
			retConMsg[i].set(KK1121ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK1121ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK1121ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * 自動照査結果のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessAutoSyosaRet(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK1141 = new CAANMsg(KK1141ETMsg.class.getName());
		condMsgKK1141.set(KK1141ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK1141LE().findByCondition(condMsgKK1141);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		// 名寄せ元SYSID分、処理を行う
		for (int i = 0; i < retConMsg.length; i++)
		{
			// SYSID
			retConMsg[i].set(KK1141ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			// 更新年月日時分秒
			retConMsg[i].set(KK1141ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 更新オペレータアカウント
			retConMsg[i].set(KK1141ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * 加入御礼書発行のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessKanuoresoHakko(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK1151 = new CAANMsg(KK1151ETMsg.class.getName());
		condMsgKK1151.set(KK1151ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK1151LE().findByCondition(condMsgKK1151);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		for (int i = 0; i < retConMsg.length; i++)
		{
			retConMsg[i].set(KK1151ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK1151ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK1151ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * PMPお客様情報変更依頼のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessPmpCsifChgreq(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK1261 = new CAANMsg(KK1261ETMsg.class.getName());
		condMsgKK1261.set(KK1261ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK1261LE().findByCondition(condMsgKK1261);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		for (int i = 0; i < retConMsg.length; i++)
		{
			retConMsg[i].set(KK1261ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK1261ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK1261ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * データ抽出項目設定のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessDchskmst(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK1391 = new CAANMsg(KK1391ETMsg.class.getName());
		condMsgKK1391.set(KK1391ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK1391LE().findByCondition(condMsgKK1391);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		String primaryKey = null;
		HashMap<String, String> escapeMap = new HashMap<String, String>();

		for (int i = 0; i < retConMsg.length; i++)
		{
			// プライマリキーを取得
			primaryKey = retConMsg[i].getString(KK1391ETMsg.DCHSKMST_NO);

			if (!escapeMap.containsKey(primaryKey))
			{
				// 初検索の場合
				escapeMap.put(primaryKey, null);

				CAANMsg curMsgKK1391 = new CAANMsg(KK1391ETMsg.class.getName());
				curMsgKK1391.set(KK1391ETMsg.DCHSKMST_NO, primaryKey);
				CAANMsg retCurMsg = new JKKejbKK1391DBABase().findByCurrent(curMsgKK1391);
				if (null != retCurMsg && inCBSMsg.getString(ECK0011C080CBSMsg.SYSID).equals(retCurMsg.getString(KK1391ETMsg.SYSID)))
				{
					retCurMsg.set(KK1391ETMsg.GENE_ADD_DTM, JKKModelCommon.getSysDateTimeStamp());
					retCurMsg.set(KK1391ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
					retCurMsg.set(KK1391ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK1391ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.set(KK1391ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK1391ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.setNull(KK1391ETMsg.DEL_DTM);
					retCurMsg.setNull(KK1391ETMsg.DEL_OPEACNT);
					retCurMsg.set(KK1391ETMsg.MK_FLG, MKFLG_VALID);

					// カレント情報を元に登録
					create(inCBSMsg, retCurMsg);
				}
			}

			retConMsg[i].set(KK1391ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK1391ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK1391ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * 異動予約のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessIdoRsv(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得(SYSID)
		CAANMsg condMsgKK1681 = new CAANMsg(KK1681ETMsg.class.getName());
		condMsgKK1681.set(KK1681ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK1681LE().findByCondition(condMsgKK1681);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		for (int i = 0; i < retConMsg.length; i++)
		{
			retConMsg[i].set(KK1681ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK1681ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK1681ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}

		// SYSIDに紐付くレコードを取得(併合先SYSID)
		condMsgKK1681 = new CAANMsg(KK1681ETMsg.class.getName());
		retConMsg = null;
		condMsgKK1681.set(KK1681ETMsg.HEIGO_SK_SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		try
		{
			retConMsg = new KK1681LE().findByCondition(condMsgKK1681);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		for (int i = 0; i < retConMsg.length; i++)
		{
			retConMsg[i].set(KK1681ETMsg.HEIGO_SK_SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK1681ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK1681ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}

		// SYSIDに紐付くレコードを取得(分割先SYSID)
		condMsgKK1681 = new CAANMsg(KK1681ETMsg.class.getName());
		retConMsg = null;
		condMsgKK1681.set(KK1681ETMsg.BUNKATSU_SK_SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		try
		{
			retConMsg = new KK1681LE().findByCondition(condMsgKK1681);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		for (int i = 0; i < retConMsg.length; i++)
		{
			retConMsg[i].set(KK1681ETMsg.BUNKATSU_SK_SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK1681ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK1681ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * 住所変更申込STB一時保存のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessAdStbTp(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK1931 = new CAANMsg(KK1931ETMsg.class.getName());
		condMsgKK1931.set(KK1931ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		condMsgKK1931.set(KK1931ETMsg.MK_FLG, MKFLG_VALID);
		// 登録用メッセージクラス
		CAANMsg[] retConMsg = null;
		// 更新用メッセージクラス
		CAANMsg[] updMsg = null;

		try
		{
			retConMsg = new KK1931LE().findByCondition(condMsgKK1931);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		// 検索結果を更新用メッセージクラスに格納
		updMsg = retConMsg;

		// 名寄せ元SYSID分、処理を行う
		for (int i = 0; i < retConMsg.length; i++)
		{
			// 名寄せ元を名寄せ先SYSIDに変更し、登録する
			// SYSID
			retConMsg[i].set(KK1931ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			// 住所変更申込一時保存番号
			retConMsg[i].set(KK1931ETMsg.ADCHM_TPPV_NO, retConMsg[i].getString(KK1931ETMsg.ADCHM_TPPV_NO));
			// 住所変更申込STB一時保存番号
			retConMsg[i].set(KK1931ETMsg.ADCHM_STB_TPPV_NO, retConMsg[i].getString(KK1931ETMsg.ADCHM_STB_TPPV_NO));
			// 登録年月日時分秒
			retConMsg[i].set(KK1931ETMsg.ADD_DTM,  inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 登録オペレータアカウント
			retConMsg[i].set(KK1931ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 更新年月日時分秒
			retConMsg[i].set(KK1931ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 更新オペレータアカウント
			retConMsg[i].set(KK1931ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 削除年月日時分秒
			retConMsg[i].setNull(KK1931ETMsg.DEL_DTM);
			// 削除オペレータアカウント
			retConMsg[i].setNull(KK1931ETMsg.DEL_OPEACNT);
			// 無効フラグ
			retConMsg[i].set(KK1931ETMsg.MK_FLG, MKFLG_VALID);

			// 登録
			create(inCBSMsg, retConMsg[i]);

			// 名寄せ元SYSIDを元に名寄せ元を無効に更新する
			// SYSID
			updMsg[i].set(KK1931ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
			// 更新年月日時分秒
			updMsg[i].set(KK1931ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 更新オペレータアカウント
			updMsg[i].set(KK1931ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 削除年月日時分秒
			updMsg[i].set(KK1931ETMsg.DEL_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 削除オペレータアカウント
			updMsg[i].set(KK1931ETMsg.DEL_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 無効フラグ
			updMsg[i].set(KK1931ETMsg.MK_FLG, MKFLG_INVALID);

			// 更新
			update(inCBSMsg, updMsg[i]);
		}
	}

	/**
	 * <p>
	 * 住所変更申込VA一時保存のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessAdVaTp(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK1941 = new CAANMsg(KK1941ETMsg.class.getName());
		condMsgKK1941.set(KK1941ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		condMsgKK1941.set(KK1941ETMsg.MK_FLG, MKFLG_VALID);
		// 登録用メッセージクラス
		CAANMsg[] retConMsg = null;
		// 更新用メッセージクラス
		CAANMsg[] updMsg = null;

		try
		{
			retConMsg = new KK1941LE().findByCondition(condMsgKK1941);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		// 検索結果を更新用メッセージクラスに格納
		updMsg = retConMsg;

		// 名寄せ元SYSID分、処理を行う
		for (int i = 0; i < retConMsg.length; i++)
		{
			// 名寄せ元を名寄せ先SYSIDに変更し、登録する
			// SYSID
			retConMsg[i].set(KK1941ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			// 住所変更申込一時保存番号
			retConMsg[i].set(KK1941ETMsg.ADCHM_TPPV_NO, retConMsg[i].getString(KK1941ETMsg.ADCHM_TPPV_NO));
			// 機器提供サービス契約番号
			retConMsg[i].set(KK1941ETMsg.KKTK_SVC_KEI_NO, retConMsg[i].getString(KK1941ETMsg.KKTK_SVC_KEI_NO));
			// 登録年月日時分秒
			retConMsg[i].set(KK1941ETMsg.ADD_DTM,  inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 登録オペレータアカウント
			retConMsg[i].set(KK1941ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 更新年月日時分秒
			retConMsg[i].set(KK1941ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 更新オペレータアカウント
			retConMsg[i].set(KK1941ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 削除年月日時分秒
			retConMsg[i].setNull(KK1941ETMsg.DEL_DTM);
			// 削除オペレータアカウント
			retConMsg[i].setNull(KK1941ETMsg.DEL_OPEACNT);
			// 無効フラグ
			retConMsg[i].set(KK1941ETMsg.MK_FLG, MKFLG_VALID);

			// 登録
			create(inCBSMsg, retConMsg[i]);

			// 名寄せ元SYSIDを元に名寄せ元を無効に更新する
			// SYSID
			updMsg[i].set(KK1941ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
			// 更新年月日時分秒
			updMsg[i].set(KK1941ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 更新オペレータアカウント
			updMsg[i].set(KK1941ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 削除年月日時分秒
			updMsg[i].set(KK1941ETMsg.DEL_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 削除オペレータアカウント
			updMsg[i].set(KK1941ETMsg.DEL_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 無効フラグ
			updMsg[i].set(KK1941ETMsg.MK_FLG, MKFLG_INVALID);

			// 更新
			update(inCBSMsg, updMsg[i]);
		}
	}

	/**
	 * <p>
	 * 住所変更申込電話番号一時保存のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessAdTlnTp(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK1951 = new CAANMsg(KK1951ETMsg.class.getName());
		condMsgKK1951.set(KK1951ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		condMsgKK1951.set(KK1951ETMsg.MK_FLG, MKFLG_VALID);
		// 登録用メッセージクラス
		CAANMsg[] retConMsg = null;
		// 更新用メッセージクラス
		CAANMsg[] updMsg = null;

		try
		{
			retConMsg = new KK1951LE().findByCondition(condMsgKK1951);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		// 検索結果を更新用メッセージクラスに格納
		updMsg = retConMsg;

		// 名寄せ元SYSID分、処理を行う
		for (int i = 0; i < retConMsg.length; i++)
		{
			// 名寄せ元を名寄せ先SYSIDに変更し、登録する
			// SYSID
			retConMsg[i].set(KK1951ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			// 住所変更申込一時保存番号
			retConMsg[i].set(KK1951ETMsg.ADCHM_TPPV_NO, retConMsg[i].getString(KK1951ETMsg.ADCHM_TPPV_NO));
			// 住所変更申込電話番号一時保存番号
			retConMsg[i].set(KK1951ETMsg.ADCHM_TLN_TPPV_NO, retConMsg[i].getString(KK1951ETMsg.ADCHM_TLN_TPPV_NO));
			// 登録年月日時分秒
			retConMsg[i].set(KK1951ETMsg.ADD_DTM,  inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 登録オペレータアカウント
			retConMsg[i].set(KK1951ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 更新年月日時分秒
			retConMsg[i].set(KK1951ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 更新オペレータアカウント
			retConMsg[i].set(KK1951ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 削除年月日時分秒
			retConMsg[i].setNull(KK1951ETMsg.DEL_DTM);
			// 削除オペレータアカウント
			retConMsg[i].setNull(KK1951ETMsg.DEL_OPEACNT);
			// 無効フラグ
			retConMsg[i].set(KK1951ETMsg.MK_FLG, MKFLG_VALID);

			// 登録
			create(inCBSMsg, retConMsg[i]);

			// 名寄せ元SYSIDを元に名寄せ元を無効に更新する
			// SYSID
			updMsg[i].set(KK1951ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
			// 更新年月日時分秒
			updMsg[i].set(KK1951ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 更新オペレータアカウント
			updMsg[i].set(KK1951ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 削除年月日時分秒
			updMsg[i].set(KK1951ETMsg.DEL_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 削除オペレータアカウント
			updMsg[i].set(KK1951ETMsg.DEL_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 無効フラグ
			updMsg[i].set(KK1951ETMsg.MK_FLG, MKFLG_INVALID);

			// 更新
			update(inCBSMsg, updMsg[i]);
		}
	}

	/**
	 * <p>
	 * 住所変更申込送付先一時保存のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessAdShsTp(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK1961 = new CAANMsg(KK1961ETMsg.class.getName());
		condMsgKK1961.set(KK1961ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		condMsgKK1961.set(KK1961ETMsg.MK_FLG, MKFLG_VALID);
		// 登録用メッセージクラス
		CAANMsg[] retConMsg = null;
		// 更新用メッセージクラス
		CAANMsg[] updMsg = null;

		try
		{
			retConMsg = new KK1961LE().findByCondition(condMsgKK1961);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		// 検索結果を更新用メッセージクラスに格納
		updMsg = retConMsg;

		// 名寄せ元SYSID分、処理を行う
		for (int i = 0; i < retConMsg.length; i++)
		{
			// 名寄せ元を名寄せ先SYSIDに変更し、登録する
			// SYSID
			retConMsg[i].set(KK1961ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			// 住所変更申込一時保存番号
			retConMsg[i].set(KK1961ETMsg.ADCHM_TPPV_NO, retConMsg[i].getString(KK1961ETMsg.ADCHM_TPPV_NO));
			// 住所変更申込送付先一時保存番号
			retConMsg[i].set(KK1961ETMsg.ADCHM_SHS_TPPV_NO, retConMsg[i].getString(KK1961ETMsg.ADCHM_SHS_TPPV_NO));
			// 登録年月日時分秒
			retConMsg[i].set(KK1961ETMsg.ADD_DTM,  inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 登録オペレータアカウント
			retConMsg[i].set(KK1961ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 更新年月日時分秒
			retConMsg[i].set(KK1961ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 更新オペレータアカウント
			retConMsg[i].set(KK1961ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 削除年月日時分秒
			retConMsg[i].setNull(KK1961ETMsg.DEL_DTM);
			// 削除オペレータアカウント
			retConMsg[i].setNull(KK1961ETMsg.DEL_OPEACNT);
			// 無効フラグ
			retConMsg[i].set(KK1961ETMsg.MK_FLG, MKFLG_VALID);

			// 登録
			create(inCBSMsg, retConMsg[i]);

			// 名寄せ元SYSIDを元に名寄せ元を無効に更新する
			// SYSID
			updMsg[i].set(KK1961ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
			// 更新年月日時分秒
			updMsg[i].set(KK1961ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 更新オペレータアカウント
			updMsg[i].set(KK1961ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 削除年月日時分秒
			updMsg[i].set(KK1961ETMsg.DEL_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 削除オペレータアカウント
			updMsg[i].set(KK1961ETMsg.DEL_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 無効フラグ
			updMsg[i].set(KK1961ETMsg.MK_FLG, MKFLG_INVALID);

			// 更新
			update(inCBSMsg, updMsg[i]);
		}
	}

	/**
	 * <p>
	 * 住所変更申込一時保存のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessAdchmTp(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK2011 = new CAANMsg(KK2011ETMsg.class.getName());
		condMsgKK2011.set(KK2011ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		condMsgKK2011.set(KK2011ETMsg.MK_FLG, MKFLG_VALID);
		// 登録用メッセージクラス
		CAANMsg[] retConMsg = null;
		// 更新用メッセージクラス
		CAANMsg[] updMsg = null;

		try
		{
			retConMsg = new KK2011LE().findByCondition(condMsgKK2011);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		// 検索結果を更新用メッセージクラスに格納
		updMsg = retConMsg;

		// 名寄せ元SYSID分、処理を行う
		for (int i = 0; i < retConMsg.length; i++)
		{
			// 名寄せ元を名寄せ先SYSIDに変更し、登録する
			// SYSID
			retConMsg[i].set(KK2011ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			// 住所変更申込一時保存番号
			retConMsg[i].set(KK2011ETMsg.ADCHM_TPPV_NO, retConMsg[i].getString(KK2011ETMsg.ADCHM_TPPV_NO));
			// 登録年月日時分秒
			retConMsg[i].set(KK2011ETMsg.ADD_DTM,  inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 登録オペレータアカウント
			retConMsg[i].set(KK2011ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 更新年月日時分秒
			retConMsg[i].set(KK2011ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 更新オペレータアカウント
			retConMsg[i].set(KK2011ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 削除年月日時分秒
			retConMsg[i].setNull(KK2011ETMsg.DEL_DTM);
			// 削除オペレータアカウント
			retConMsg[i].setNull(KK2011ETMsg.DEL_OPEACNT);
			// 無効フラグ
			retConMsg[i].set(KK2011ETMsg.MK_FLG, MKFLG_VALID);

			// 登録
			create(inCBSMsg, retConMsg[i]);

			// 名寄せ元SYSIDを元に名寄せ元を無効に更新する
			// SYSID
			updMsg[i].set(KK2011ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
			// 更新年月日時分秒
			updMsg[i].set(KK2011ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 更新オペレータアカウント
			updMsg[i].set(KK2011ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 削除年月日時分秒
			updMsg[i].set(KK2011ETMsg.DEL_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 削除オペレータアカウント
			updMsg[i].set(KK2011ETMsg.DEL_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 無効フラグ
			updMsg[i].set(KK2011ETMsg.MK_FLG, MKFLG_INVALID);

			// 更新
			update(inCBSMsg, updMsg[i]);
		}
	}

	/**
	 * <p>
	 * 住所変更申込利用機器一時保存のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessAdKkTp(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK2021 = new CAANMsg(KK2021ETMsg.class.getName());
		condMsgKK2021.set(KK2021ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		condMsgKK2021.set(KK2021ETMsg.MK_FLG, MKFLG_VALID);
		// 登録用メッセージクラス
		CAANMsg[] retConMsg = null;
		// 更新用メッセージクラス
		CAANMsg[] updMsg = null;

		try
		{
			retConMsg = new KK2021LE().findByCondition(condMsgKK2021);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		// 検索結果を更新用メッセージクラスに格納
		updMsg = retConMsg;

		// 名寄せ元SYSID分、処理を行う
		for (int i = 0; i < retConMsg.length; i++)
		{
			// 名寄せ元を名寄せ先SYSIDに変更し、登録する
			// SYSID
			retConMsg[i].set(KK2021ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			// 住所変更申込一時保存番号
			retConMsg[i].set(KK2021ETMsg.ADCHM_TPPV_NO, retConMsg[i].getString(KK2021ETMsg.ADCHM_TPPV_NO));
			// 機器提供サービス契約番号
			retConMsg[i].set(KK2021ETMsg.KKTK_SVC_KEI_NO, retConMsg[i].getString(KK2021ETMsg.KKTK_SVC_KEI_NO));
			// 登録年月日時分秒
			retConMsg[i].set(KK2021ETMsg.ADD_DTM,  inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 登録オペレータアカウント
			retConMsg[i].set(KK2021ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 更新年月日時分秒
			retConMsg[i].set(KK2021ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 更新オペレータアカウント
			retConMsg[i].set(KK2021ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 削除年月日時分秒
			retConMsg[i].setNull(KK2021ETMsg.DEL_DTM);
			// 削除オペレータアカウント
			retConMsg[i].setNull(KK2021ETMsg.DEL_OPEACNT);
			// 無効フラグ
			retConMsg[i].set(KK2021ETMsg.MK_FLG, MKFLG_VALID);

			// 登録
			create(inCBSMsg, retConMsg[i]);

			// 名寄せ元SYSIDを元に名寄せ元を無効に更新する
			// SYSID
			updMsg[i].set(KK2021ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
			// 更新年月日時分秒
			updMsg[i].set(KK2021ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 更新オペレータアカウント
			updMsg[i].set(KK2021ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 削除年月日時分秒
			updMsg[i].set(KK2021ETMsg.DEL_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 削除オペレータアカウント
			updMsg[i].set(KK2021ETMsg.DEL_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 無効フラグ
			updMsg[i].set(KK2021ETMsg.MK_FLG, MKFLG_INVALID);

			// 更新
			update(inCBSMsg, updMsg[i]);
		}
	}

	/**
	 * <p>
	 * 住所変更申込オプション一時保存のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessAdOpTp(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK2031 = new CAANMsg(KK2031ETMsg.class.getName());
		condMsgKK2031.set(KK2031ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		condMsgKK2031.set(KK2031ETMsg.MK_FLG, MKFLG_VALID);
		// 登録用メッセージクラス
		CAANMsg[] retConMsg = null;
		// 更新用メッセージクラス
		CAANMsg[] updMsg = null;

		try
		{
			retConMsg = new KK2031LE().findByCondition(condMsgKK2031);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		// 検索結果を更新用メッセージクラスに格納
		updMsg = retConMsg;

		// 名寄せ元SYSID分、処理を行う
		for (int i = 0; i < retConMsg.length; i++)
		{
			// 名寄せ元を名寄せ先SYSIDに変更し、登録する
			// SYSID
			retConMsg[i].set(KK2031ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			// 住所変更申込一時保存番号
			retConMsg[i].set(KK2031ETMsg.ADCHM_TPPV_NO, retConMsg[i].getString(KK2031ETMsg.ADCHM_TPPV_NO));
			// 住所変更申込サービスタブ種別コード
			retConMsg[i].set(KK2031ETMsg.ADCHM_SVC_TAB_SBT_CD, retConMsg[i].getString(KK2031ETMsg.ADCHM_SVC_TAB_SBT_CD));
			// 住所変更申込オプション一時保存番号
			retConMsg[i].set(KK2031ETMsg.ADCHM_OP_TPPV_NO, retConMsg[i].getString(KK2031ETMsg.ADCHM_OP_TPPV_NO));
			// 登録年月日時分秒
			retConMsg[i].set(KK2031ETMsg.ADD_DTM,  inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 登録オペレータアカウント
			retConMsg[i].set(KK2031ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 更新年月日時分秒
			retConMsg[i].set(KK2031ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 更新オペレータアカウント
			retConMsg[i].set(KK2031ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 削除年月日時分秒
			retConMsg[i].setNull(KK2031ETMsg.DEL_DTM);
			// 削除オペレータアカウント
			retConMsg[i].setNull(KK2031ETMsg.DEL_OPEACNT);
			// 無効フラグ
			retConMsg[i].set(KK2031ETMsg.MK_FLG, MKFLG_VALID);

			// 登録
			create(inCBSMsg, retConMsg[i]);

			// 名寄せ元SYSIDを元に名寄せ元を無効に更新する
			// SYSID
			updMsg[i].set(KK2031ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
			// 更新年月日時分秒
			updMsg[i].set(KK2031ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 更新オペレータアカウント
			updMsg[i].set(KK2031ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 削除年月日時分秒
			updMsg[i].set(KK2031ETMsg.DEL_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 削除オペレータアカウント
			updMsg[i].set(KK2031ETMsg.DEL_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 無効フラグ
			updMsg[i].set(KK2031ETMsg.MK_FLG, MKFLG_INVALID);

			// 更新
			update(inCBSMsg, updMsg[i]);
		}
	}

	/**
	 * <p>
	 * 申込保留内容一時保存のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessMskmPnyTp(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK2081 = new CAANMsg(KK2081ETMsg.class.getName());
		condMsgKK2081.set(KK2081ETMsg.ADD_MT_SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK2081LE().findByCondition(condMsgKK2081);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		// 名寄せ元SYSID分、処理を行う
		for (int i = 0; i < retConMsg.length; i++)
		{
			// SYSID
			retConMsg[i].set(KK2081ETMsg.ADD_MT_SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			// 更新年月日時分秒
			retConMsg[i].set(KK2081ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 更新オペレータアカウント
			retConMsg[i].set(KK2081ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}

	/**
	 * <p>
	 * サービス契約サブタイプ登録処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param retCurMsg サービス契約カレントレコードのETMsg
	*/
	private void createSubTypeKK0081(CAANMsg inCBSMsg, CAANMsg retCurMsg)
	{
		JKKejbKK0081SubTypeCreate instance = new JKKejbKK0081SubTypeCreate(inCBSMsg);
		instance.setSvcKeiNo(retCurMsg.getString(KK0081ETMsg.SVC_KEI_NO));
		instance.setGeneAddDtm(retCurMsg.getString(KK0081ETMsg.GENE_ADD_DTM));
		instance.createSubTypeKK0081();
	}

	/**
	 * <p>
	 * サービス契約内訳スーパータイプ登録処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param currentGene サービス契約内訳サブタイプの名寄せ前の世代登録年月日時分秒
	 * @param retCurMsg サービス契約内訳サブタイプのカレントレコードのETMsg
	*/
	private void createSuperTypeKK0161(CAANMsg inCBSMsg, String currentGene, CAANMsg retCurMsg)
	{
		CAANMsg priMsgKK0161 = new CAANMsg(KK0161ETMsg.class.getName());
		priMsgKK0161.set(KK0161ETMsg.SVC_KEI_UCWK_NO, retCurMsg.getString(KK0161ETMsg.SVC_KEI_UCWK_NO));
		priMsgKK0161.set(KK0161ETMsg.GENE_ADD_DTM, currentGene);
		CAANMsg retPriMsg = new JKKejbKK0161DBABase().findByPrimaryKey(priMsgKK0161);

		retPriMsg.set(KK0161ETMsg.GENE_ADD_DTM, retCurMsg.getString(KK0161ETMsg.GENE_ADD_DTM));
		retPriMsg.set(KK0161ETMsg.RSV_APLY_YMD, JKKModelCommon.getOpeDate(inCBSMsg));
		retPriMsg.set(KK0161ETMsg.RSV_APLY_CD, RSVCD_DECIDE);
		retPriMsg.set(KK0161ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		retPriMsg.set(KK0161ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		retPriMsg.set(KK0161ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		retPriMsg.set(KK0161ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		retPriMsg.setNull(KK0161ETMsg.DEL_DTM);
		retPriMsg.setNull(KK0161ETMsg.DEL_OPEACNT);
		retPriMsg.set(KK0161ETMsg.MK_FLG, MKFLG_VALID);

		create(inCBSMsg, retPriMsg);
	}

	/**
	 * <p>
	 * オプションサービス契約スーパータイプ登録処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param currentGene オプションサービス契約サブタイプの名寄せ前の世代登録年月日時分秒
	 * @param retCurMsg オプションサービス契約サブタイプのカレントレコードのETMsg
	*/
	private void createSuperTypeKK0351(CAANMsg inCBSMsg, String currentGene, CAANMsg retCurMsg)
	{
		CAANMsg priMsgKK0351 = new CAANMsg(KK0351ETMsg.class.getName());
		priMsgKK0351.set(KK0351ETMsg.OP_SVC_KEI_NO, retCurMsg.getString(KK0351ETMsg.OP_SVC_KEI_NO));
		priMsgKK0351.set(KK0351ETMsg.GENE_ADD_DTM, currentGene);
		CAANMsg retPriMsg = new JKKejbKK0351DBABase().findByPrimaryKey(priMsgKK0351);

		retPriMsg.set(KK0351ETMsg.GENE_ADD_DTM, retCurMsg.getString(KK0351ETMsg.GENE_ADD_DTM));
		if (inCBSMsg.getString(ECK0011C080CBSMsg.SYSID).equals(retPriMsg.getString(KK0351ETMsg.SYSID)))
		{
			// オプションサービス契約のSYSIDと入力値のSYSIDが等しい場合、この時点でオプションサービス契約のSYSIDを名寄せ先に変更
			retPriMsg.set(KK0351ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
		}
		retPriMsg.set(KK0351ETMsg.RSV_APLY_YMD, JKKModelCommon.getOpeDate(inCBSMsg));
		retPriMsg.set(KK0351ETMsg.RSV_APLY_CD, RSVCD_DECIDE);
		retPriMsg.set(KK0351ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		retPriMsg.set(KK0351ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		retPriMsg.set(KK0351ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		retPriMsg.set(KK0351ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		retPriMsg.setNull(KK0351ETMsg.DEL_DTM);
		retPriMsg.setNull(KK0351ETMsg.DEL_OPEACNT);
		retPriMsg.set(KK0351ETMsg.MK_FLG, MKFLG_VALID);

		create(inCBSMsg, retPriMsg);
	}

	/**
	 * <p>
	 * オプションサービス契約サブタイプ登録処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param retCurMsg サービス契約カレントレコードのETMsg
	*/
	private void createSubTypeKK0351(CAANMsg inCBSMsg, CAANMsg retCurMsg)
	{
		JKKejbKK0351SubTypeCreate instance = new JKKejbKK0351SubTypeCreate(inCBSMsg);
		instance.setOpSvcKeiNo(retCurMsg.getString(KK0351ETMsg.OP_SVC_KEI_NO));
		instance.setGeneAddDtm(retCurMsg.getString(KK0351ETMsg.GENE_ADD_DTM));
		instance.createSubTypeKK0351();
	}

	/**
	 * <p>
	 * 登録処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inETMsg 登録用のETMsg
	*/
	private void create(CAANMsg inCBSMsg, CAANMsg inETMsg)
	{
		JKKejbDBAUtil dbaUtil = new JKKejbDBAUtil(inCBSMsg);
		dbaUtil.create(inETMsg);
	}

	/**
	 * <p>
	 * 更新処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inETMsg 登録用のETMsg
	*/
	private void update(CAANMsg inCBSMsg, CAANMsg inETMsg)
	{
		JKKejbDBAUtil dbaUtil = new JKKejbDBAUtil(inCBSMsg);
		dbaUtil.update(inETMsg);
	}

	/**
	 * <p>
	 * オプトインメール受信設定登録処理を行います。(無効レコード作成)
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param retConSkMsg 名寄せ先会員の抽出データ
	*/
	private void createOptMladMkIns(CAANMsg inCBSMsg, CAANMsg retConSkMsg)
	{
		// 名寄せ先SYSIDと連絡先．メールアドレスで対象のデータを再検索する
		CAANMsg resMsgCK0141 = new CAANMsg(CK0141ETMsg.class.getName());
		resMsgCK0141.set(CK0141ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
		CAANMsg[] retInsMsg = null;
		try
		{
			retInsMsg = new CK0141LE().findByCondition(resMsgCK0141);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		// キー格納リスト
		List<String> keyList = new ArrayList<String>();

		// 抽出した連絡先分、処理を繰り返す
		for (int i = 0; i < retInsMsg.length; i++)
		{
			// キーを取得し、連結する
			String optNm = retInsMsg[i].getString(CK0141ETMsg.OPTINM_NO);
			String nSakiSId = retInsMsg[i].getString(CK0141ETMsg.SYSID);
			String mailAdress = retInsMsg[i].getString(CK0141ETMsg.MLAD);
			String priKeys = optNm + "_" + nSakiSId + "_" + mailAdress;

			// リスト内に存在した場合
			if (keyList.contains(priKeys))
			{
				// 次レコードの処理を行う
				continue;
			}
			
			// キーをリストに格納
			keyList.add(priKeys);

			// キーを元に再検索を行う
			CAANMsg resCurCK0141 = new CAANMsg(CK0141ETMsg.class.getName());
			resCurCK0141.set(CK0141ETMsg.OPTINM_NO, optNm);
			resCurCK0141.set(CK0141ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			resCurCK0141.set(CK0141ETMsg.MLAD, mailAdress);
			CAANMsg retCurMsgCK0141 = new JCKejbCK0141DBABase().findByCurrent(resCurCK0141);

			// オプトインメール受信設定ステータスが有効のみ、登録を行う
			if (OPT_ML_STAT_VALID.equals(retCurMsgCK0141.getString(CK0141ETMsg.OPTINM_RCV_SETTE_STAT)))
			{
				// オプトインメール受信カレントレコードが存在する、かつ
				// 連絡先カレントレコード．SYSID = 入力パラメータ．名寄せ先SYSIDが同じ、かつ
				// オプトインメール受信カレントレコード．メールアドレス = 連絡先カレントレコード．メールアドレスの場合
				if (null != retCurMsgCK0141
						&& inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID).equals(retConSkMsg.getString(CK0201ETMsg.SYSID))
						&& mailAdress.equals(retConSkMsg.getString(CK0201ETMsg.MLAD)))
				{
					// オプトインメール番号
					retCurMsgCK0141.set(CK0141ETMsg.OPTINM_NO, retCurMsgCK0141.getString(CK0141ETMsg.OPTINM_NO));
					// SYSID
					retCurMsgCK0141.set(CK0141ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
					// メールアドレス
					retCurMsgCK0141.set(CK0141ETMsg.MLAD, retConSkMsg.getString(CK0201ETMsg.MLAD));
					// 世代登録年月日時分秒
					retCurMsgCK0141.set(CK0141ETMsg.GENE_ADD_DTM, JCKModelCommon.getSysDateTimeStamp());
					// オプトインメール受信設定ステータス
					retCurMsgCK0141.set(CK0141ETMsg.OPTINM_RCV_SETTE_STAT, OPT_ML_STAT_INVALID);
					// 受信区分
					retCurMsgCK0141.set(CK0141ETMsg.RCV_DIV, retCurMsgCK0141.getString(CK0141ETMsg.RCV_DIV));
					// 受信設定年月日
					retCurMsgCK0141.set(CK0141ETMsg.RCV_SETTE_YMD, retCurMsgCK0141.getString(CK0141ETMsg.RCV_SETTE_YMD));
					// 受信解除年月日
					retCurMsgCK0141.set(CK0141ETMsg.RCV_RLS_YMD, retCurMsgCK0141.getString(CK0141ETMsg.RCV_RLS_YMD));
					// オプトインメール受信設定無効年月日
					retCurMsgCK0141.set(CK0141ETMsg.OPTINM_RCV_SETTE_MK_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
					// オプトインメール受信設定回復年月日
					retCurMsgCK0141.set(CK0141ETMsg.OPTINM_RCV_SETTE_KAIHK_YMD, retCurMsgCK0141.getString(CK0141ETMsg.OPTINM_RCV_SETTE_KAIHK_YMD));
					// 登録年月日時分秒
					retCurMsgCK0141.set(CK0141ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					// 登録オペレーターアカウント
					retCurMsgCK0141.set(CK0141ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					// 更新年月日時分秒
					retCurMsgCK0141.set(CK0141ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					// 更新オペレーターアカウント
					retCurMsgCK0141.set(CK0141ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					// 無効フラグ
					retCurMsgCK0141.set(CK0141ETMsg.MK_FLG, MKFLG_VALID);
		
					// 登録
					create(inCBSMsg, retCurMsgCK0141);
				}
			}
		}
	}

	/**
	 * <p>
	 * オプトインメール受信設定登録処理を行います。(オプトインメール番号分レコード作成)
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	*/
	private void dbAccessCreateOptMladIns(CAANMsg inCBSMsg)
	{
		// 入力パラメータ．オプトインメール番号分、登録を行う
		CAANMsg[] optInpList = inCBSMsg.getCAANMsgList(ECK0011C080CBSMsg.ECK0011C080CBSMSG1LIST);
		CAANMsg retMladList = new CAANMsg(CK0141ETMsg.class.getName());

		// 存在する、かつ入力パラメータ．連絡先メールアドレス ≠ nullの場合
		if (optInpList.length != 0
				&& inCBSMsg.getString(ECK0011C080CBSMsg.RRSK_MLAD) != null)
		{
			for (int i = 0; i < optInpList.length; i++)
			{
				// オプトインメール番号
				retMladList.set(CK0141ETMsg.OPTINM_NO, optInpList[i].getString(ECK0011C080CBSMsg1List.OPTINM_NO));
				// SYSID
				retMladList.set(CK0141ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
				// メールアドレス
				retMladList.set(CK0141ETMsg.MLAD, inCBSMsg.getString(ECK0011C080CBSMsg.RRSK_MLAD));
				// 世代登録年月日時分秒
				retMladList.set(CK0141ETMsg.GENE_ADD_DTM, JCKModelCommon.getSysDateTimeStamp());
				// オプトインメール受信設定ステータス
				retMladList.set(CK0141ETMsg.OPTINM_RCV_SETTE_STAT, OPT_ML_STAT_VALID);
				// 受信区分
				retMladList.set(CK0141ETMsg.RCV_DIV, optInpList[i].getString(ECK0011C080CBSMsg1List.RCV_DIV));
				// 受信設定年月日
				retMladList.set(CK0141ETMsg.RCV_SETTE_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
				// 受信解除年月日
				retMladList.setNull(CK0141ETMsg.RCV_RLS_YMD);
				// オプトインメール受信設定無効年月日
				retMladList.setNull(CK0141ETMsg.OPTINM_RCV_SETTE_MK_YMD);
				// オプトインメール受信設定回復年月日
				retMladList.setNull(CK0141ETMsg.OPTINM_RCV_SETTE_KAIHK_YMD);
				// 登録年月日時分秒
				retMladList.set(CK0141ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
				// 登録オペレーターアカウント
				retMladList.set(CK0141ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
				// 更新年月日時分秒
				retMladList.set(CK0141ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
				// 更新オペレーターアカウント
				retMladList.set(CK0141ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
				// 無効フラグ
				retMladList.set(CK0141ETMsg.MK_FLG, MKFLG_VALID);
	
				// 登録
				create(inCBSMsg, retMladList);
			}
		}
	}

	/**
	 * <p>
	 * オプトインメール受信設定登録処理を行います。(非公開分登録)
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessCreateOptMlCloseIns(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// 入力パラメータ．連絡先メールアドレス ≠ nullの場合
		if (inCBSMsg.getString(ECK0011C080CBSMsg.RRSK_MLAD) != null)
		{
			// オプトインメール.公開コード="非公開"に紐付くレコードを取得
			CAANMsg condMsgCK0131 = new CAANMsg(CK0131ETMsg.class.getName());
			condMsgCK0131.set(CK0131ETMsg.KOKAI_CD, KOKAICD_CLOSE);
			condMsgCK0131.set(CK0131ETMsg.MK_FLG, MKFLG_VALID);
			CAANMsg[] retConMsg = null;
			CAANMsg retOptClsList = new CAANMsg(CK0141ETMsg.class.getName());
			try
			{
				retConMsg = new CK0131LE().findByCondition(condMsgCK0131);
			}
			catch (CAANException ce)
			{
				throw new CAANRuntimeException(ce);
			}
			List<String> keyList = new ArrayList<String>();
	
			// 非公開分、処理を行う
			for (int i = 0; i < retConMsg.length; i++)
			{
				// キー情報を格納する
				String priKeys = retConMsg[i].getString(CK0131ETMsg.OPTINM_NO);
	
				// キーが存在する場合
				if (keyList.contains(priKeys))
				{
					// 次レコードの処理を行う
					continue;
				}
	
				// キーをリストに格納する
				keyList.add(priKeys);

				// カレントレコードを取得
				CAANMsg curMsgCK0131 = new CAANMsg(CK0131ETMsg.class.getName());
				curMsgCK0131.set(CK0131ETMsg.OPTINM_NO, priKeys);
				curMsgCK0131.set(CK0131ETMsg.RSV_APLY_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
				CAANMsg retCurMsgCK0131 = new JCKejbCK0131DBABase().findByCurrent(curMsgCK0131);

				// オプトインメール適用終了年月日を取得
				String wkOptinTendYmd = retCurMsgCK0131.getString(CK0131ETMsg.OPTINM_TENDYMD);

				// カレントレコード．オプトインメール適用終了年月日が運用日付より未来日、かつ
				// 非公開コードの場合
				if (JKKModelCommon.isFutureDateKRCK(retCurMsgCK0131, inContext, wkOptinTendYmd, 0)
						&& KOKAICD_CLOSE.equals(retCurMsgCK0131.getString(CK0131ETMsg.KOKAI_CD)))
				{
					// 登録項目の編集
					// オプトインメール番号
					retOptClsList.set(CK0141ETMsg.OPTINM_NO, retCurMsgCK0131.getString(CK0131ETMsg.OPTINM_NO));
					// SYSID
					retOptClsList.set(CK0141ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
					// メールアドレス
					retOptClsList.set(CK0141ETMsg.MLAD, inCBSMsg.getString(ECK0011C080CBSMsg.RRSK_MLAD));
					// 世代登録年月日時分秒
					retOptClsList.set(CK0141ETMsg.GENE_ADD_DTM, JCKModelCommon.getSysDateTimeStamp());
					// オプトインメール受信設定ステータス
					retOptClsList.set(CK0141ETMsg.OPTINM_RCV_SETTE_STAT, OPT_ML_STAT_VALID);
					// 受信区分
					retOptClsList.set(CK0141ETMsg.RCV_DIV, retCurMsgCK0131.getString(CK0131ETMsg.SHK_VALUE_FLG));
					// 受信設定年月日
					retOptClsList.set(CK0141ETMsg.RCV_SETTE_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
					// 受信解除年月日
					retOptClsList.setNull(CK0141ETMsg.RCV_RLS_YMD);
					// オプトインメール受信設定無効年月日
					retOptClsList.setNull(CK0141ETMsg.OPTINM_RCV_SETTE_MK_YMD);
					// オプトインメール受信設定回復年月日
					retOptClsList.setNull(CK0141ETMsg.OPTINM_RCV_SETTE_KAIHK_YMD);
					// 登録年月日時分秒
					retOptClsList.set(CK0141ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					// 登録オペレーターアカウント
					retOptClsList.set(CK0141ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					// 更新年月日時分秒
					retOptClsList.set(CK0141ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					// 更新オペレーターアカウント
					retOptClsList.set(CK0141ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					// 無効フラグ
					retOptClsList.set(CK0141ETMsg.MK_FLG, MKFLG_VALID);
		
					// 登録
					create(inCBSMsg, retOptClsList);
				}
			}
		}
	}

	/**
	 * <p>
	 * オプトインメール受信設定登録処理を行います。(名寄せ先．メールアドレス = 入力値．連絡先メールアドレス)
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param retConSkMsg 名寄せ先会員の抽出データ
	*/
	private void createOptMlEquIns(CAANMsg inCBSMsg, CAANMsg retConSkMsg)
	{
		// 入力パラメータ．オプトインメール番号分、登録を行う
		CAANMsg[] optInList = inCBSMsg.getCAANMsgList(ECK0011C080CBSMsg.ECK0011C080CBSMSG1LIST);

		// 存在する場合
		if (optInList.length != 0)
		{
			// 対象件数分、登録処理を行う
			for (int i = 0; i < optInList.length; i++)
			{
				// キーを元に再検索を行う
				CAANMsg resMsgCK0141 = new CAANMsg(CK0141ETMsg.class.getName());
				resMsgCK0141.set(CK0141ETMsg.OPTINM_NO, optInList[i].getString(ECK0011C080CBSMsg1List.OPTINM_NO));
				resMsgCK0141.set(CK0141ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
				resMsgCK0141.set(CK0141ETMsg.MLAD, inCBSMsg.getString(ECK0011C080CBSMsg.RRSK_MLAD));
				CAANMsg retCurMsgCK0141 = new JCKejbCK0141DBABase().findByCurrent(resMsgCK0141);

				// オプトインメール受信設定ステータスが有効のみ、登録を行う
				if (null != retCurMsgCK0141
						&& OPT_ML_STAT_VALID.equals(retCurMsgCK0141.getString(CK0141ETMsg.OPTINM_RCV_SETTE_STAT)))
				{
					// 登録処理を行う
					// 世代登録年月日時分秒
					retCurMsgCK0141.set(CK0141ETMsg.GENE_ADD_DTM, JCKModelCommon.getSysDateTimeStamp());
					// 受信区分
					retCurMsgCK0141.set(CK0141ETMsg.RCV_DIV, optInList[i].getString(ECK0011C080CBSMsg1List.RCV_DIV));
					// 受信設定年月日
					retCurMsgCK0141.set(CK0141ETMsg.RCV_SETTE_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
					// 受信解除年月日
					retCurMsgCK0141.setNull(CK0141ETMsg.RCV_RLS_YMD);
					// 登録年月日時分秒
					retCurMsgCK0141.set(CK0141ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					// 登録オペレーターアカウント
					retCurMsgCK0141.set(CK0141ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					// 更新年月日時分秒
					retCurMsgCK0141.set(CK0141ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					// 更新オペレーターアカウント
					retCurMsgCK0141.set(CK0141ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					// 無効フラグ
					retCurMsgCK0141.set(CK0141ETMsg.MK_FLG, MKFLG_VALID);

					// 登録
					create(inCBSMsg, retCurMsgCK0141);
				}
			}
		}
	}

	/**
	 * <p>
	 * 連絡先スキーマ登録処理を行います。(区分が1⇒連絡先メールアドレス、2⇒変更手続中メールアドレス)
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param retCurMsg 名寄せ先会員の抽出データ(カレント)
	 * @param kbn 編集内容を判定する区分
	*/
	private void createRrkMladIns(CAANMsg inCBSMsg, CAANMsg retCurMsg, String kbn)
	{
		// 項目編集
		// 連絡先番号
		retCurMsg.set(CK0201ETMsg.RRKS_NO, retCurMsg.getString(CK0201ETMsg.RRKS_NO));
		// 世代登録年月日時分秒
		retCurMsg.set(CK0201ETMsg.GENE_ADD_DTM, JCKModelCommon.getSysDateTimeStamp());
		// SYSID
		retCurMsg.set(CK0201ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
		// 連絡先分類コード
		retCurMsg.set(CK0201ETMsg.RRKS_BUNRUI_CD, RRSK_BUNRUICD_CONTENTS);		
		// メールアドレス変更受付年月日
		retCurMsg.set(CK0201ETMsg.MLAD_CHGE_UK_YMD, JCKModelCommon.getOpeDate(inCBSMsg));		
		// 登録年月日時分秒
		retCurMsg.set(CK0201ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		// 登録オペレーターアカウント
		retCurMsg.set(CK0201ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		// 更新年月日時分秒
		retCurMsg.set(CK0201ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		// 更新オペレーターアカウント
		retCurMsg.set(CK0201ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		// 無効フラグ
		retCurMsg.set(CK0201ETMsg.MK_FLG, MKFLG_VALID);
		
		// 区分が"1"の場合(業務区分"0"，"1")
		if ("1".equals(kbn))
		{
			// メールアドレス
			retCurMsg.set(CK0201ETMsg.MLAD, inCBSMsg.getString(ECK0011C080CBSMsg.RRSK_MLAD));			
			// メールアドレス変更年月日
			retCurMsg.set(CK0201ETMsg.MLAD_CHGE_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
		}
		// 区分が"2"の場合(業務区分"2"，"3")
		else if ("2".equals(kbn))
		{
			// メールアドレス
			retCurMsg.set(CK0201ETMsg.MLAD, inCBSMsg.getString(ECK0011C080CBSMsg.HENKO_TETUZUKITYU_MLAD));			
			// 予約適用年月日
			retCurMsg.setNull(CK0201ETMsg.RSV_APLY_YMD);
			// 予約取消年月日
			retCurMsg.setNull(CK0201ETMsg.RSV_CL_YMD);
			// 予約適用コード
			retCurMsg.set(CK0201ETMsg.RSV_APLY_CD, RSVCD_CHARGING);
		}

		// カレント情報を元に登録
		create(inCBSMsg, retCurMsg);
	}

	/**
	 * <p>
	 * 契約者電話番号を取得します。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param retCurMsg 名寄せ先会員の抽出データ(カレント)
	 * @return keiTelNo 契約者電話番号
	*/
	private String getKeiTel(CAANMsg inCBSMsg, CAANMsg retCurMsg)
	{
		// 名寄せ元情報をお客様スキーマから取得
		CAANMsg curMsgCK0011 = new CAANMsg(CK0011ETMsg.class.getName());
		curMsgCK0011.set(CK0011ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		curMsgCK0011.set(CK0011ETMsg.RSV_APLY_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
		CAANMsg custCurMsg = new JCKejbCK0011DBABase().findByCurrent(curMsgCK0011);

		// 業務区分を取得
		String gyomuKbn = inCBSMsg.getString(ECK0011C080CBSMsg.GYOMU_KBN);
		// 契約者電話番号
		String keiTelNo = null;

		// 業務区分が"0"，"2"、かつ抽出した(カレント)電話番号 ≠ 名寄せ元(お客様)．契約者電話番号の場合
		if ((GYOUMU_KBN_ZERO.equals(gyomuKbn)
				|| GYOUMU_KBN_TWO.equals(gyomuKbn))
				&& !retCurMsg.getString(CK0201ETMsg.TELNO).equals(custCurMsg.getString(CK0011ETMsg.KEISHA_TELNO)))
		{
			// 名寄せ元(お客様)．契約者電話番号を取得
			keiTelNo = custCurMsg.getString(CK0011ETMsg.KEISHA_TELNO);
		}
		// 業務区分が"1"，"3"、
		// かつ入力パラメータ．電話番号 ≠ null、
		// かつ抽出した(カレント)電話番号 ≠ 入力パラメータ．電話番号の場合
		else if ((GYOUMU_KBN_ONE.equals(gyomuKbn)
				|| GYOUMU_KBN_THR.equals(gyomuKbn))
				&& inCBSMsg.getString(ECK0011C080CBSMsg.TELNO) != null
				&& !retCurMsg.getString(CK0201ETMsg.TELNO).equals(inCBSMsg.getString(ECK0011C080CBSMsg.TELNO)))
		{
			// 入力パラメータ．電話番号を取得
			keiTelNo = inCBSMsg.getString(ECK0011C080CBSMsg.TELNO);
		}
		// 業務区分が"4"、
		// かつ名寄せ元(お客様)．会員種別コード = マスター会員(個人)、
		// かつ抽出した(カレント)電話番号 ≠ 名寄せ元(お客様)．契約者電話番号の場合
		else if (GYOUMU_KBN_FOU.equals(gyomuKbn)
				&& custCurMsg.getString(CK0011ETMsg.MEMBER_SBT_CD).equals(MEMBERCD_MASTER_KOJIN)
				&& !retCurMsg.getString(CK0201ETMsg.TELNO).equals(custCurMsg.getString(CK0011ETMsg.KEISHA_TELNO)))
		{
			// 名寄せ元(お客様)．契約者電話番号を取得
			keiTelNo = custCurMsg.getString(CK0011ETMsg.KEISHA_TELNO);
		}
		// 上記以外
		else
		{
			// nullをセット
			keiTelNo = null;
		}
		return keiTelNo;
	}

	/**
	 * <p>
	 * 連絡先スキーマ登録処理を行います。(連絡先が存在する場合)
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param retCurMsg 名寄せ先会員の抽出データ(カレント)
	 * @param wkKeiTelNo WK_契約者電話番号
	*/
	private void createRrkTelIns(CAANMsg inCBSMsg, CAANMsg retCurMsg, String wkKeiTelNo)
	{
		// 項目編集
		// 連絡先番号
		retCurMsg.set(CK0201ETMsg.RRKS_NO, retCurMsg.getString(CK0201ETMsg.RRKS_NO));
		// 世代登録年月日時分秒
		retCurMsg.set(CK0201ETMsg.GENE_ADD_DTM, JCKModelCommon.getSysDateTimeStamp());
		// SYSID
		retCurMsg.set(CK0201ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
		// 連絡先分類コード
		retCurMsg.set(CK0201ETMsg.RRKS_BUNRUI_CD, RRSK_BUNRUICD_CONTENTS);
		// 電話番号
		retCurMsg.set(CK0201ETMsg.TELNO, wkKeiTelNo);
		// 予約適用年月日
		retCurMsg.set(CK0201ETMsg.RSV_APLY_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
		// 予約取消年月日
		retCurMsg.setNull(CK0201ETMsg.RSV_CL_YMD);
		// 予約適用コード
		retCurMsg.set(CK0201ETMsg.RSV_APLY_CD, RSVCD_DECIDE);
		// 登録年月日時分秒
		retCurMsg.set(CK0201ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		// 登録オペレーターアカウント
		retCurMsg.set(CK0201ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		// 更新年月日時分秒
		retCurMsg.set(CK0201ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		// 更新オペレーターアカウント
		retCurMsg.set(CK0201ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		// 無効フラグ
		retCurMsg.set(CK0201ETMsg.MK_FLG, MKFLG_VALID);

		// カレント情報を元に登録
		create(inCBSMsg, retCurMsg);
	}

	/**
	 * <p>
	 * 契約者電話番号を取得します。(対象データが存在しない場合)
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @return keiTelNo 契約者電話番号
	*/
	private String getKeiTelNone(CAANMsg inCBSMsg)
	{
		// 名寄せ元情報をお客様スキーマから取得
		CAANMsg curMsgCK0011 = new CAANMsg(CK0011ETMsg.class.getName());
		curMsgCK0011.set(CK0011ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		curMsgCK0011.set(CK0011ETMsg.RSV_APLY_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
		CAANMsg custCurMsg = new JCKejbCK0011DBABase().findByCurrent(curMsgCK0011);

		// 業務区分を取得
		String gyomuKbn = inCBSMsg.getString(ECK0011C080CBSMsg.GYOMU_KBN);
		// 契約者電話番号
		String keiTelNo = null;

		// 業務区分が"0"，"2"の場合
		if (GYOUMU_KBN_ZERO.equals(gyomuKbn)
				|| GYOUMU_KBN_TWO.equals(gyomuKbn))
		{
			// 名寄せ元(お客様)．契約者電話番号を取得
			keiTelNo = custCurMsg.getString(CK0011ETMsg.KEISHA_TELNO);
		}
		// 業務区分が"1"，"3"、
		// かつ入力パラメータ．電話番号 ≠ null の場合
		else if ((GYOUMU_KBN_ONE.equals(gyomuKbn)
				|| GYOUMU_KBN_THR.equals(gyomuKbn))
				&& inCBSMsg.getString(ECK0011C080CBSMsg.TELNO) != null)
		{
			// 入力パラメータ．電話番号を取得
			keiTelNo = inCBSMsg.getString(ECK0011C080CBSMsg.TELNO);
		}
		// 業務区分が"4"、
		// かつ名寄せ元(お客様)．会員種別コード = マスター会員(個人)
		else if (GYOUMU_KBN_FOU.equals(gyomuKbn)
				&& custCurMsg.getString(CK0011ETMsg.MEMBER_SBT_CD).equals(MEMBERCD_MASTER_KOJIN))
		{
			// 名寄せ元(お客様)．契約者電話番号を取得
			keiTelNo = custCurMsg.getString(CK0011ETMsg.KEISHA_TELNO);
		}
		// 上記以外
		else
		{
			// nullをセット
			keiTelNo = null;
		}
		return keiTelNo;
	}

	/**
	 * <p>
	 * 連絡先スキーマ登録処理を行います。(連絡先が存在する場合)
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param wkKeiTelNo WK_契約者電話番号
	*/
	private void createRrkTelNoneIns(CAANMsg inCBSMsg, String wkKeiTelNo)
	{
		// 項目編集
		CAANMsg retIns = new CAANMsg(CK0201ETMsg.class.getName());
		// 連絡先番号
		retIns.set(CK0201ETMsg.RRKS_NO, JCKModelCommon.getFormatedNextSeq(RRKS_SEQ_NAME, PREFIX_RRKSNO, RRSKNO_LENGTH));
		// 世代登録年月日時分秒
		retIns.set(CK0201ETMsg.GENE_ADD_DTM, JCKModelCommon.getSysDateTimeStamp());
		// SYSID
		retIns.set(CK0201ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
		// 連絡先コード
		retIns.setNull(CK0201ETMsg.RRKS_CD);
		// 連絡方法コード
		retIns.set(CK0201ETMsg.RRK_WAY_CD, RRK_WAYCD_TEL);
		// 連絡先種別コード
		retIns.set(CK0201ETMsg.RRKS_SBT_CD, RRKS_SBT_MYHOME);
		// 連絡先分類コード
		retIns.set(CK0201ETMsg.RRKS_BUNRUI_CD, RRSK_BUNRUICD_CONTENTS);
		// メールアドレス
		retIns.setNull(CK0201ETMsg.MLAD);
		// 電話番号
		retIns.set(CK0201ETMsg.TELNO, wkKeiTelNo);
		// 内線番号
		retIns.setNull(CK0201ETMsg.NISNNO);
		// FAX番号
		retIns.setNull(CK0201ETMsg.FAX_NO);
		// メールアドレス変更受付年月日
		retIns.setNull(CK0201ETMsg.MLAD_CHGE_UK_YMD);
		// メールアドレス変更年月日
		retIns.setNull(CK0201ETMsg.MLAD_CHGE_YMD);
		// 予約適用年月日
		retIns.set(CK0201ETMsg.RSV_APLY_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
		// 予約取消年月日
		retIns.setNull(CK0201ETMsg.RSV_CL_YMD);
		// 予約適用コード
		retIns.set(CK0201ETMsg.RSV_APLY_CD, RSVCD_DECIDE);
		// 登録年月日時分秒
		retIns.set(CK0201ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		// 登録オペレーターアカウント
		retIns.set(CK0201ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		// 更新年月日時分秒
		retIns.set(CK0201ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		// 更新オペレーターアカウント
		retIns.set(CK0201ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		// 無効フラグ
		retIns.set(CK0201ETMsg.MK_FLG, MKFLG_VALID);

		// 新規登録
		create(inCBSMsg, retIns);
	}

	/**
	 * <p>
	 * サービス契約排他制御のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessSvcHaita(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK0081 = new CAANMsg(KK0081ETMsg.class.getName());
		condMsgKK0081.set(KK0081ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK0081LE().findByCondition(condMsgKK0081);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		String primaryKey = null;
		List<String> keyList = new ArrayList<String>();

		// 取得件数分、処理を行う
		for (int i = 0; i < retConMsg.length; i++)
		{
			// キー情報を格納する
			primaryKey = retConMsg[i].getString(KK0081ETMsg.SVC_KEI_NO);

			// キーが存在する場合
			if (keyList.contains(primaryKey))
			{
				// 次レコードの処理を行う
				continue;
			}

			// キーをリストに格納する
			keyList.add(primaryKey);

			// サービス契約のカレントレコードを検索
			CAANMsg curMsgKK0081 = new CAANMsg(KK0081ETMsg.class.getName());
			curMsgKK0081.set(KK0081ETMsg.SVC_KEI_NO, primaryKey);
			curMsgKK0081.set(KK0081ETMsg.RSV_APLY_YMD, JKKModelCommon.getOpeDate(inCBSMsg));
			CAANMsg retCurKK0081Msg = new JKKejbKK0081DBABase().findByCurrent(curMsgKK0081);

			// 
			if (null != retCurKK0081Msg
					&& inCBSMsg.getString(ECK0011C080CBSMsg.SYSID).equals(retCurKK0081Msg.getString(KK0081ETMsg.SYSID)))
			{
				// サービス契約排他制御を検索
				CAANMsg inKK2111Msg = new CAANMsg(KK2111ETMsg.class.getName());
				inKK2111Msg.set(KK2111ETMsg.SVC_KEI_NO, retCurKK0081Msg.getString(KK0081ETMsg.SVC_KEI_NO));
				CAANMsg retCon2111Msg = new KK2111LE().findByPrimaryKey(inKK2111Msg);
				
				// 存在しない場合は処理しない
				if(null == retCon2111Msg)
				{
					// 次レコードの処理を行う
					continue;
				}

				// 更新情報を設定
				retCon2111Msg.set(KK2111ETMsg.LAST_UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
				retCon2111Msg.set(KK2111ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
				retCon2111Msg.set(KK2111ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

				// 更新処理を行う
				new JKKejbDBAUtil(inCBSMsg).update(retCon2111Msg);
			}
		}
	}

	/**
	 * <p>
	 * お客様グループ設定のDBアクセス処理を行います。(ファミリー会員分_有効)
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param retCurMsg カレントレコード
	 * @param newGrpCd 登録したグループコード
	*/
	private void insertCustGrpSettei(CAANMsg inCBSMsg, CAANMsg retCurMsg, String newGrpCd)
	{
		// 登録用メッセージクラス生成
		CAANMsg inMsg = new CAANMsg(CK0121ETMsg.class.getName());

		// 入力パラメータ．名寄せ先SYSIDを設定
		//お客様グループ設定番号
		inMsg.set(CK0121ETMsg.CUST_GRP_SETTE_NO, JCKModelCommon.getFormatedNextSeq(SEQ_CUST_GRP_SETTE_NO, "", SEQ_CUST_GRP_SETTE_NO_LENGTH));
		// 世代登録年月日時分秒
		inMsg.set(CK0121ETMsg.GENE_ADD_DTM, JCKModelCommon.getSysDateTimeStamp());
		// お客様グループ設定ステータス
		inMsg.set(CK0121ETMsg.CUST_GRP_SETTE_STAT, retCurMsg.getString(CK0121ETMsg.CUST_GRP_SETTE_STAT));
		// グループコード
		inMsg.set(CK0121ETMsg.GRP_CD, newGrpCd);

		// 入力パラメータ．SYSIDとカレントレコード．SYSIDが同じ場合
		if (inCBSMsg.getString(ECK0011C080CBSMsg.SYSID).equals(retCurMsg.getString(CK0121ETMsg.SYSID)))
		{
			// SYSIDに入力パラメータ．名寄せ先SYSIDを設定
			inMsg.set(CK0121ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
		}
		// 上記以外
		else
		{
			// SYSIDにカレントレコード値を設定
			inMsg.set(CK0121ETMsg.SYSID, retCurMsg.getString(CK0121ETMsg.SYSID));
		}
		// お客様グループ設定無効年月日
		inMsg.set(CK0121ETMsg.CUST_GRP_SETTE_MK_YMD, retCurMsg.getString(CK0121ETMsg.CUST_GRP_SETTE_MK_YMD));
		// お客様グループ設定回復年月日
		inMsg.set(CK0121ETMsg.CUST_GRP_SETTE_KAIHK_YMD, retCurMsg.getString(CK0121ETMsg.CUST_GRP_SETTE_KAIHK_YMD));
		// グループ割引適用承認年月日
		inMsg.set(CK0121ETMsg.GRP_WRIB_APLY_SHONIN_YMD, retCurMsg.getString(CK0121ETMsg.GRP_WRIB_APLY_SHONIN_YMD));
		// 予約適用年月日
		inMsg.set(CK0121ETMsg.RSV_APLY_YMD, retCurMsg.getString(CK0121ETMsg.RSV_APLY_YMD));
		// 予約取消年月日
		inMsg.set(CK0121ETMsg.RSV_CL_YMD, retCurMsg.getString(CK0121ETMsg.RSV_CL_YMD));
		// 予約適用コード
		inMsg.set(CK0121ETMsg.RSV_APLY_CD, retCurMsg.getString(CK0121ETMsg.RSV_APLY_CD));
		// 登録年月日時分秒
		inMsg.set(CK0121ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		// 登録オペレータアカウント
		inMsg.set(CK0121ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		// 更新年月日時分秒
		inMsg.set(CK0121ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		// 更新オペレータアカウント
		inMsg.set(CK0121ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		// 無効フラグ
		inMsg.set(CK0121ETMsg.MK_FLG, MKFLG_VALID);

		// 登録
		create(inCBSMsg, inMsg);
	}

	/**
	 * <p>
	 * お客様グループ設定のDBアクセス処理を行います。(ファミリー会員分_無効)
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param retCurMsg カレントレコード
	*/
	private void insertCustGrpSetteiInvalid(CAANMsg inCBSMsg, CAANMsg retCurMsg)
	{
		// 登録用メッセージクラス生成
		CAANMsg inMsg = new CAANMsg(CK0121ETMsg.class.getName());

		//お客様グループ設定番号
		inMsg.set(CK0121ETMsg.CUST_GRP_SETTE_NO, retCurMsg.getString(CK0121ETMsg.CUST_GRP_SETTE_NO));
		// 世代登録年月日時分秒
		inMsg.set(CK0121ETMsg.GENE_ADD_DTM, JCKModelCommon.getSysDateTimeStamp());
		// お客様グループ設定ステータス
		inMsg.set(CK0121ETMsg.CUST_GRP_SETTE_STAT, CUST_GRP_STAT_INVALID);
		// グループコード
		inMsg.set(CK0121ETMsg.GRP_CD, retCurMsg.getString(CK0121ETMsg.GRP_CD));
		// SYSID
		inMsg.set(CK0121ETMsg.SYSID, retCurMsg.getString(CK0121ETMsg.SYSID));
		// お客様グループ設定無効年月日
		inMsg.set(CK0121ETMsg.CUST_GRP_SETTE_MK_YMD, JCKModelCommon.getOpeDate(inCBSMsg));
		// お客様グループ設定回復年月日
		inMsg.set(CK0121ETMsg.CUST_GRP_SETTE_KAIHK_YMD, retCurMsg.getString(CK0121ETMsg.CUST_GRP_SETTE_KAIHK_YMD));
		// グループ割引適用承認年月日
		inMsg.set(CK0121ETMsg.GRP_WRIB_APLY_SHONIN_YMD, retCurMsg.getString(CK0121ETMsg.GRP_WRIB_APLY_SHONIN_YMD));
		// 予約適用年月日
		inMsg.set(CK0121ETMsg.RSV_APLY_YMD, retCurMsg.getString(CK0121ETMsg.RSV_APLY_YMD));
		// 予約取消年月日
		inMsg.set(CK0121ETMsg.RSV_CL_YMD, retCurMsg.getString(CK0121ETMsg.RSV_CL_YMD));
		// 予約適用コード
		inMsg.set(CK0121ETMsg.RSV_APLY_CD, retCurMsg.getString(CK0121ETMsg.RSV_APLY_CD));
		// 登録年月日時分秒
		inMsg.set(CK0121ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		// 登録オペレータアカウント
		inMsg.set(CK0121ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		// 更新年月日時分秒
		inMsg.set(CK0121ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		// 更新オペレータアカウント
		inMsg.set(CK0121ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		// 無効フラグ
		inMsg.set(CK0121ETMsg.MK_FLG, MKFLG_VALID);

		// 登録
		create(inCBSMsg, inMsg);
	}

	/**
	 * <p>
	 * 機器オプションサービス契約のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessKkopSvcKei(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// SYSIDに紐付くレコードを取得
		CAANMsg condMsgKK2811 = new CAANMsg(KK2811ETMsg.class.getName());
		condMsgKK2811.set(KK2811ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));
		CAANMsg[] retConMsg = null;
		try
		{
			retConMsg = new KK2811LE().findByCondition(condMsgKK2811);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		String primaryKey = null;
		HashMap<String, String> escapeMap = new HashMap<String, String>();

		for (int i = 0; i < retConMsg.length; i++)
		{
			// プライマリキーを取得
			primaryKey = retConMsg[i].getString(KK2811ETMsg.KKOP_SVC_KEI_NO);

			if (!escapeMap.containsKey(primaryKey))
			{
				// 初検索の場合
				escapeMap.put(primaryKey, null);

				String opeDate = JKKModelCommon.getOpeDate(inCBSMsg);

				CAANMsg curMsgKK2811 = new CAANMsg(KK2811ETMsg.class.getName());
				curMsgKK2811.set(KK2811ETMsg.KKOP_SVC_KEI_NO, primaryKey);
				curMsgKK2811.set(KK2811ETMsg.RSV_APLY_YMD, opeDate);
				CAANMsg retCurMsg = new JKKejbKK2811DBABase().findByCurrent(curMsgKK2811);
				
				if (null != retCurMsg && inCBSMsg.getString(ECK0011C080CBSMsg.SYSID).equals(retCurMsg.getString(KK2811ETMsg.SYSID)))
				{
					retCurMsg.set(KK2811ETMsg.GENE_ADD_DTM, JKKModelCommon.getSysDateTimeStamp());
					retCurMsg.set(KK2811ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));

//OM-2015-0000191 MOD START
					String stat = retCurMsg.getString(KK2811ETMsg.KKOP_SVC_KEI_STAT);
					
					if (JKKModelConst.KKOP_SVC_KEI_STAT_DSL_ZM.compareTo(stat) > 0)
					{
						retCurMsg.set(KK2811ETMsg.RSV_APLY_YMD, opeDate);
					}
//OM-2015-0000191 MOD END
					retCurMsg.set(KK2811ETMsg.RSV_APLY_CD, RSVCD_DECIDE);
					retCurMsg.set(KK2811ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK2811ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.set(KK2811ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
					retCurMsg.set(KK2811ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
					retCurMsg.setNull(KK2811ETMsg.DEL_DTM);
					retCurMsg.setNull(KK2811ETMsg.DEL_OPEACNT);
					retCurMsg.set(KK2811ETMsg.MK_FLG, MKFLG_VALID);

					// カレント情報を元に登録
					create(inCBSMsg, retCurMsg);
				}
			}

			retConMsg[i].set(KK2811ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			retConMsg[i].set(KK2811ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			retConMsg[i].set(KK2811ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

			// 更新
			update(inCBSMsg, retConMsg[i]);
		}
	}
	
// ANK-2714-00-00 ADD START
	/**
	 * <p>
	 * 請求のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessOfCH(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// 月別請求契約_お客様のDBアクセス
		dbAccessSeikyCustM(inCBSMsg, inContext);
	}
	
	/**
	 * <p>
	 * 月別請求契約_お客様のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void dbAccessSeikyCustM(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		
		// 名寄せされる会員の請求契約紐付け情報の検索する。
		CAANMsg[] retMsgArray = null;
		
		retMsgArray = findByCH0891(inCBSMsg);
		
		// 名寄せ先会員のSYSIDと名寄せされる会員の請求年月、請求契約番号で請求契約紐付け情報の検索する。
		for(CAANMsg remNayosemoto : retMsgArray)
		{
			CAANMsg msgCH0891 = new CAANMsg(CH0891ETMsg.class.getName());
			msgCH0891.set(CH0891ETMsg.SEIKY_YM, remNayosemoto.getString(CH0891ETMsg.SEIKY_YM));
			msgCH0891.set(CH0891ETMsg.SEIKY_KEI_NO, remNayosemoto.getString(CH0891ETMsg.SEIKY_KEI_NO));
			msgCH0891.set(CH0891ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
			CAANMsg retMsg = new CH0891LE().findByPrimaryKey(msgCH0891);
			
			// 請求契約紐付け情報がある場合
			if(null != retMsg)
			{
				// 名寄せされる会員の請求契約紐付け情報を無効にする。
				// 請求契約紐付け情報がない場合も無効にするので最後に行う。
			}
			else
			{
			// 請求契約紐付け情報がない場合
			
				// 名寄せ先会員のSYSIDと名寄せされる会員の請求年月、請求契約番号で請求契約紐付け情報を登録する。
				CAANMsg creMsg = new CAANMsg(CH0891ETMsg.class.getName());
				creMsg.set(CH0891ETMsg.SEIKY_YM, remNayosemoto.getString(CH0891ETMsg.SEIKY_YM));
				creMsg.set(CH0891ETMsg.SEIKY_KEI_NO, remNayosemoto.getString(CH0891ETMsg.SEIKY_KEI_NO));
				creMsg.set(CH0891ETMsg.SYSID, inCBSMsg.getString(ECK0011C080CBSMsg.NAYOSE_SAKI_SYSID));
				creMsg.set(CH0891ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
				creMsg.set(CH0891ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
				creMsg.set(CH0891ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
				creMsg.set(CH0891ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
				creMsg.set(CH0891ETMsg.MK_FLG, MKFLG_VALID);
				
				create(inCBSMsg, creMsg);
				
				// 名寄せされる会員の請求契約紐付け情報を無効にする。
				// 請求契約紐付け情報がある場合も無効にするので最後に行う。
			}
			
			// 名寄せされる会員の請求契約紐付け情報を無効にする。
			CAANMsg updMsg = remNayosemoto;
			updMsg.set(CH0891ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			updMsg.set(CH0891ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			updMsg.set(CH0891ETMsg.DEL_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			updMsg.set(CH0891ETMsg.DEL_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			updMsg.set(CH0891ETMsg.MK_FLG, MKFLG_INVALID);
			
			update(inCBSMsg, updMsg);
		}
	}
	
	/**
	 * <p>
	 * サービス契約番号に紐付く、全てのオプションサービス契約のカレントの取得を行います。
	 * </p>
	 * @param  svcKeiNo サービス契約番号
	 * @param  opeDate 運用日付
	 * @return サービス契約番号に紐付くオプションサービス契約のカレントレコードの配列
	 */
	private CAANMsg[] findByCH0891(CAANMsg inCBSMsg)
	{
		// コネクション
		Connection con = null;
		// プリペアステートメント
		PreparedStatement pstmt = null;
		// リザルトセット
		ResultSet rsltQuery = null;

		try
		{
			// 対象テーブルのコネクション取得
			con = JSYejbConnection.getConnection(KK0351ETMsg.getTableName());

			// SQL文
			StringBuffer sql_Buff = new StringBuffer();

			sql_Buff.append(" SELECT ");
			sql_Buff.append("     CH0891.SEIKY_YM, ");
			sql_Buff.append("     CH0891.SEIKY_KEI_NO, ");
			sql_Buff.append("     CH0891.SYSID, ");
			sql_Buff.append("     CH0891.ADD_DTM, ");
			sql_Buff.append("     CH0891.ADD_OPEACNT, ");
			sql_Buff.append("     CH0891.UPD_DTM, ");
			sql_Buff.append("     CH0891.UPD_OPEACNT, ");
			sql_Buff.append("     CH0891.DEL_DTM, ");
			sql_Buff.append("     CH0891.DEL_OPEACNT, ");
			sql_Buff.append("     CH0891.MK_FLG, ");
			sql_Buff.append("     CH0891.ADD_UNYO_YMD, ");
			sql_Buff.append("     CH0891.ADD_TRN_ID, ");
			sql_Buff.append("     CH0891.UPD_UNYO_YMD, ");
			sql_Buff.append("     CH0891.UPD_TRN_ID, ");
			sql_Buff.append("     CH0891.DEL_UNYO_YMD, ");
			sql_Buff.append("     CH0891.DEL_TRN_ID ");
			sql_Buff.append(" FROM ");
			sql_Buff.append("     CH_T_TKBT_SKKEI_CUST CH0891 ");
			sql_Buff.append(" WHERE ");
			sql_Buff.append("     CH0891.SYSID = ? ");

			// repareStatementにSQL文をセット
			pstmt = con.prepareStatement(sql_Buff.toString());

			//ログ出力(SQL文の出力)
			JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), sql_Buff);

			// パラメータの設定(サービス契約番号を指定)
			CAANJDBCUtil.setParam(pstmt, 1, inCBSMsg.getString(ECK0011C080CBSMsg.SYSID));

			// ResultSetの取得
			rsltQuery = pstmt.executeQuery();

			// 返却用リスト
			ArrayList<CAANMsg> retArray = new ArrayList<CAANMsg>();

			// 結果の設定
			while (rsltQuery.next())
			{
				CAANMsg retMsgCH0891 = new CAANMsg(CH0891ETMsg.class.getName());
				retMsgCH0891.set(CH0891ETMsg.SEIKY_YM, rsltQuery.getString(CH0891ETMsg.SEIKY_YM));
				retMsgCH0891.set(CH0891ETMsg.SEIKY_KEI_NO, rsltQuery.getString(CH0891ETMsg.SEIKY_KEI_NO));
				retMsgCH0891.set(CH0891ETMsg.SYSID, rsltQuery.getString(CH0891ETMsg.SYSID));
				retMsgCH0891.set(CH0891ETMsg.ADD_DTM, rsltQuery.getString(CH0891ETMsg.ADD_DTM));
				retMsgCH0891.set(CH0891ETMsg.ADD_OPEACNT, rsltQuery.getString(CH0891ETMsg.ADD_OPEACNT));
				retMsgCH0891.set(CH0891ETMsg.UPD_DTM, rsltQuery.getString(CH0891ETMsg.UPD_DTM));
				retMsgCH0891.set(CH0891ETMsg.UPD_OPEACNT, rsltQuery.getString(CH0891ETMsg.UPD_OPEACNT));
				retMsgCH0891.set(CH0891ETMsg.DEL_DTM, rsltQuery.getString(CH0891ETMsg.DEL_DTM));
				retMsgCH0891.set(CH0891ETMsg.DEL_OPEACNT, rsltQuery.getString(CH0891ETMsg.DEL_OPEACNT));
				retMsgCH0891.set(CH0891ETMsg.MK_FLG, rsltQuery.getString(CH0891ETMsg.MK_FLG));
				retMsgCH0891.set(CH0891ETMsg.ADD_UNYO_YMD, rsltQuery.getString(CH0891ETMsg.ADD_UNYO_YMD));
				retMsgCH0891.set(CH0891ETMsg.ADD_TRN_ID, rsltQuery.getString(CH0891ETMsg.ADD_TRN_ID));
				retMsgCH0891.set(CH0891ETMsg.UPD_UNYO_YMD, rsltQuery.getString(CH0891ETMsg.UPD_UNYO_YMD));
				retMsgCH0891.set(CH0891ETMsg.UPD_TRN_ID, rsltQuery.getString(CH0891ETMsg.UPD_TRN_ID));
				retMsgCH0891.set(CH0891ETMsg.DEL_UNYO_YMD, rsltQuery.getString(CH0891ETMsg.DEL_UNYO_YMD));
				retMsgCH0891.set(CH0891ETMsg.DEL_TRN_ID, rsltQuery.getString(CH0891ETMsg.DEL_TRN_ID));
				retArray.add(retMsgCH0891);
			}

			return retArray.toArray(new CAANMsg[0]);
		}
		catch(SQLException se)
		{
			throw new CAANRuntimeException(se);
		}
		finally
		{
			// 資源の解放
			try
			{
				if(rsltQuery != null)
				{
					rsltQuery.close();
				}
				if(pstmt != null)
				{
					pstmt.close();
				}
				if(con != null)
				{
					CAANConnectionMgr.getInstance().close(con);
				}
			}
			catch(SQLException se)
			{
				throw new CAANRuntimeException(se);
			}
		}
	}
	// ANK-2714-00-00 ADD END

}
