/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKSvcKeiElecAddCC
*   ソースファイル名：JKKSvcKeiElecAddCC.java
*   作成者          ：富士通
*   日付            ：2015年06月05日
*＜機能概要＞
*   eo電気登録コモンコンポーネント部品
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v16.00.00   2015/06/05   FJ）野々下  ANK-2480-00-00 新電力対応
*   v16.00.01	2016/01/14   FJ) 鯵坂  【OT-2016-0000004】関連チェック処理不備
*   v29.00.00   2016/10/03   FJ) 藤本  【ANK-2990-00-00】【eo電気】同時申込・量販訪販対応（STEP2-2）
*   v34.00.00   2017/09/19   FJ) 藤本  【ANK-3210-00-00】【eo電気】電気単独対応（STEP3）
*   v34.00.01   2017/12/18   FJ) 三原  【ANK-3210-16-00】【eo電気】eo電気の取扱コード連携機能追加
*   v40.00.00   2019/01/21   FJ) 謝    【ANK-3520-01-00】開通前の支払登録慫慂メール送信機能追加
*   v45.00.00	2019/07/17   FJ前田    【ANK-3602-00-00】 特定クレジットカードの売上オーソリ実施対応
*   v54.00.00	2021/09/09   FJ上村    【IT1-2021-0000072】 電気申込メール送信不正
*   v59.00.00	2022/03/23   FJ) 南    【ANK-4194-00-00】請求書送付先名欠落防止対応
*   v58.00.00	2022/03/28	 FJ) 藤本涼【ANK-3846-00-00】【クレカ】クリアパス→ペイジェント移行
*   v75.00.00   2025/05/20   FJ) 謝    【ANK-4619-00-00】3Dセキュア対応
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import com.fujitsu.futurity.bp.x21.bpm.ServiceComponentRequestInvoker;
import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.CCException;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.common.x01.sc.ErrorInfoMapKeys;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.mapping.bp.common.TemplateErrorUtil;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;

import eo.common.constant.JACStrConst;
import eo.common.constant.JCKStrConst;
import eo.common.constant.JFUStrConst;
import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JKKStringConverter;
import eo.common.util.JKKStringUtil;
import eo.ejb.cbs.cbsmsg.ECC0021D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECC0021D010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECC0021D010CBSMsg2List;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0031A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0031A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0041A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0041A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0201B001CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0201B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0201B011CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0201B011CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0011D020CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0011D020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0071D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0491C240CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0491D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0501C030CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0501C080CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0501D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0521D020CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1031D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK2961D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2981D010CBSMsg;

/**
 * eo電気登録コモンコンポーネント部品です。
 * <br>
 * @author 富士通
 */
public class JKKSvcKeiElecAddCC extends AbstractCommonComponent
{
	/** リターンメッセージ */
	private static final String RETURN_MESSAGE_STRING = "RETURN_MESSAGE_";
	/** リターンメッセージ */
	private static final String RETURN_MESSAGE_FORMAT = "%1$04d";
	/** リターンコード(正常)  */
	private static final int RETURN_CODE_NORMAL = 0;
	/** エラー項目文字列 */
	private static final String STR_ERR = "_err";

	/** エラー用 */
	private static final String SC_ERROR_STRING = "サービスコンポーネントエラー";

	/** 作業マップ名 */
	private static final String CC_WORK_AREA_ADD_SVC_KEI_ELEC = "JKKSvcKeiElecAddCC";

	/** ワークマップ用定数 */
	/** (照会処理の戻り値)サービス契約番号 */
	private static final String SRC_KK0081_SVC_KEI_NO = "KK0081_svc_kei_no";
	/** (登録処理の戻り値)申込明細番号 */
	private static final String INS_KK0011_MSKM_DTL_NO = "KK0011_mskm_dtl_no";
	/** (登録処理の戻り値)サービス契約番号 */
	private static final String INS_KK2951_SVC_KEI_NO = "KK2951_svc_kei_no";
	// ANK-3210-00-00 ADD START
	/** (照会処理の戻り値)お客様一意照会明細 */
	private static final String SRC_CK0011_ECK0011A010CBSMSG1LIST = "CK0011_eck0011a010cbsmsg1list";
	/** (照会処理の戻り値)連絡先一覧照会明細 */
	private static final String SRC_CK0201_ECK0201B001CBSMSG1LIST = "CK0201_eck0201b001cbsmsg1list";
	/** (照会処理の戻り値)お客様<法人>一意照会明細 */
	private static final String SRC_CK0031_ECK0031A010CBSMSG1LIST = "CK0031_eck0031a010cbsmsg1list";
	/** (照会処理の戻り値)法人連絡先一意照会明細 */
	private static final String SRC_CK0041_ECK0041A010CBSMSG1LIST = "CK0041_eck0041a010cbsmsg1list";
	/** (登録処理の戻り値)更新年月日時分秒(請求契約) */
	private static final String INS_KK0491_UPD_DTM = "KK0491_upd_dtm";
	/** (登録処理の戻り値)請求方法番号(口座) */
	private static final String INS_KK0501_SEIKY_WAY_NO_KOZA = "KK0501_seiky_way_no_koza";
	/** (登録処理の戻り値)請求方法番号(クレジットカード) */
	private static final String INS_KK0521_SEIKY_WAY_NO_CRECARD = "KK0521_seiky_way_no_crecard";
	/** (登録処理の戻り値)世代登録年月日時分秒(クレジットカード) */
	private static final String INS_KK0521_GENE_ADD_DTM = "KK0521_gene_add_dtm";
	/** (登録処理の戻り値)請求契約番号 */
	private static final String INS_KK0491_SEIKY_KEI_NO = "KK0491_seiky_kei_no";
	/** (登録処理の戻り値)世代登録年月日時分秒(請求契約) */
	private static final String INS_KK0491_GENE_ADD_DTM = "KK0491_gene_add_dtm";
	// ANK-3210-00-00 ADD END
// ANK-3520-01-00 ADD START
	/** (照会処理の戻り値)契約者情報連絡先一覧照会明細 */
	private static final String SRC_CK0201_ECK0201B011CBSMSG1LIST = "CK0201_eck0201b011cbsmsg1list";
// ANK-3520-01-00 ADD END
	// ANK-3210-16-00 ADD START
	/** 取扱コード1-1 */
	private static final String TRAT_CD_1_1 = "trat_cd_1_1";
	/** 取扱コード1-2 */
	private static final String TRAT_CD_1_2 = "trat_cd_1_2";
	/** 取扱コード2-1 */
	private static final String TRAT_CD_2_1 = "trat_cd_2_1";
	/** 取扱コード2-2 */
	private static final String TRAT_CD_2_2 = "trat_cd_2_2";
	// ANK-3210-16-00 ADD END

	/** サービス契約グループ種別コード：同一利用場所 */
	private static final String SVKEI_GRP_SBT_CD_SAME_PLACE = "01";
	/** サービス契約グループ設定適用開始年月日：19000101 */
	private static final String SVKEI_GRP_SETE_TSTAYMD_19000101 = "19000101";

	/** エラー固定文字列：E1 */
	private static final String E1_ERR = "E1";
	// ANK-3210-16-00 ADD START
	/** エラー固定文字列：E2 */
	private static final String E2_ERR = "E2";
	// ANK-3210-16-00 ADD END
	/** エラー固定文字列：E3 */
	private static final String E3_ERR = "E3";
	// ▽▽ OT-2016-0000004 ADD START ▽▽
	/** エラー固定文字列：EA */
	private static final String EA_ERR = "EA";
	// △△ OT-2016-0000004  ADD  END △△
	/** エラー固定文字列：EB */
	private static final String EB_ERR = "EB";
	// ANK-3210-16-00 ADD START
	/** エラー固定文字列：EC */
	private static final String EC_ERR = "EC";
	/** エラー固定文字列：ED */
	private static final String ED_ERR = "ED";
	// ANK-3210-16-00 ADD END

	/** 海外住所コード */
	public static final String FOREIGN_ADCD = "00000000000";
	/** 住所桁数チェック結果 */
	public static final String AD_DIGITNO_CKRLT = "adDigitnoCkrlt";
	/** 都道府県名桁数チェック結果 */
	public static final String STATE_NM_CKRLT = "stateNmCkrlt";
	/** 都道府県名最大桁数  */
	public static final String STATE_NM_MAX_DIGITNO = "stateNmMaxDigitno";
	/** 市区町村名桁数チェック結果 */
	public static final String CITY_NM_CKRLT = "cityNmCkrlt";
	/** 市区町村名最大桁数 */
	public static final String CITY_NM_MAX_DIGITNO = "cityNmMaxDigitno";
	/** 大字通称名桁数チェック結果 */
	public static final String OAZTSU_NM_CKRLT = "oaztsuNmCkrlt";
	/** 大字通称名最大桁数 */
	public static final String OAZTSU_NM_MAX_DIGITNO = "oaztsuNmMaxDigitno";
	/** 字丁目名桁数チェック結果 */
	public static final String AZCHO_NM_CKRLT = "azchoNmCkrlt";
	/** 字丁目名最大桁数  */
	public static final String AZCHO_NM_MAX_DIGITNO = "azchoNmMaxDigitno";
	/** 番地号桁数チェック結果 */
	public static final String BNCHIGO_CKRLT = "bnchigoCkrlt";
	/** 番地号最大桁数 */
	public static final String BNCHIGO_MAX_DIGITNO = "bnchigoMaxDigitno";
	/** 海外住所チェック */
	public static final String FOREIGN_AD_CHK = "foreignAdChk";
	/** 海外住所判定チェック結果 */
	public static final String FOREIGN_AD_CKRLT = "foreignAdCkrlt";

	// ANK-3210-00-00 ADD START
	/** 売上オーソリ金額：初期値 */
	public static final String SALES_AUTHORI_AMNT_SHK_VALUE = "1";
	// ANK-3210-00-00 ADD END
	// ANK-3210-16-00 ADD START
	/** 申込_代理店番号_001 */
	private static final String MSKM_AGNT_NO_001 = "001";
	/** 申込_代理店番号_002 */
	private static final String MSKM_AGNT_NO_002 = "002";
	/** 申込_代理店番号_003 */
	private static final String MSKM_AGNT_NO_003 = "003";
	/** 申込_代理店番号_004 */
	private static final String MSKM_AGNT_NO_004 = "004";
	/** 表示順_1 */
	private static final String DSP_JUN_1 = "1";
	/** 表示順_2 */
	private static final String DSP_JUN_2 = "2";
	/** 表示順_3 */
	private static final String DSP_JUN_3 = "3";
	/** 表示順_4 */
	private static final String DSP_JUN_4 = "4";
	// ANK-3210-16-00 ADD END

	/**
	 * CAANMsgに必要なデータのマッピング処理を行います。
	 * <br>
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @return パラメータマップ
	 * @throws RequestParameterException
	 */
	public HashMap<String, Object> getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
			throws RequestParameterException
	{
		//BPチェックは行わない

		HashMap<String, Object> paramMap = setSCInputCommonData(param, new HashMap<String, Object>());
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{});

		return paramMap;
	}

	/**
	 * SCの実行ステータスの取得処理を行います。
	 * <br>
	 * @param param
	 * @return SCの実行ステータス
	 * @throws Exception
	 */
	private int getReturnCode(IRequestParameterReadWrite param) throws Exception
	{
		return Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
	}

	/**
	 * eo電気登録処理を行います。
	 * <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite addSvcKeiElec(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		HashMap<String, Object> paramMap = setSCInputCommonData(param, new HashMap<String, Object>());
		Map<?, ?> result = null;
		CAANMsg template = null;

		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)(param.getData(fixedText));
		if (inMap == null)
		{
			return param;
		}

		// 単関連チェック
		itemRelationCheck(param, fixedText);
		if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
		{
			// ステータスが単項目エラー以上であれば例外をスロー
			throw new CCException(SC_ERROR_STRING, new Exception());
		}

		// サービス契約一意照会SC呼出判定
		if (inMap.get("knrn_svc_kei_no") != null && !"".equals(inMap.get("knrn_svc_kei_no")))
		{
			// サービス契約一意照会
			template = editInEKK0081A010Msg(param, fixedText);				// 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle);	// SC呼び出し
			editOutEKK0081A010Msg(result, param, fixedText);				// 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{
				// ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}

			// サービス契約存在チェック
			kk0081SvcKeiNoCheck(param, fixedText);
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{
				// ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}

		// 申込内容承認登録
		template = editInEKK0011D020Msg(param, fixedText);				// 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle);	// SC呼び出し
		editOutEKK0011D020Msg(result, param, fixedText);				// 下りマッピング
		if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
		{
			// ステータスが単項目エラー以上であれば例外をスロー
			throw new CCException(SC_ERROR_STRING, new Exception());
		}
		
		// ANK-3210-16-00 ADD START
		// 申込番号を取得
		String mskmNo = template.getString(EKK0011D020CBSMsg.MSKM_NO);
		// ANK-3210-16-00 ADD END

		// ANK-3210-00-00 ADD START
		// 請求契約番号が設定されていない場合
		if (JKKStringUtil.isNullBlank((String)inMap.get("hikiate_seiky_kei_no")))
		{
			// 新規請求契約情報登録
			addNewSeikyKei(handle, param, fixedText);
		}
		// ANK-3210-00-00 ADD END

		// サービス契約＜eo電気＞登録
		template = editInEKK2981D010Msg(param, fixedText);				// 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle);	// SC呼び出し
		editOutEKK2981D010Msg(result, param, fixedText);				// 下りマッピング
		if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
		{
			// ステータスが単項目エラー以上であれば例外をスロー
			throw new CCException(SC_ERROR_STRING, new Exception());
		}

		// eo電気登録マップ.サービス契約回線内訳番号存在チェック
		if(inMap.get("svc_kei_kaisen_ucwk_no") != null && !"".equals(inMap.get("svc_kei_kaisen_ucwk_no")))
		{
			// サービス契約グループ設定登録
			template = editInEKK2961D010Msg(param, fixedText);				// 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle);	// SC呼び出し
			editOutEKK2961D010Msg(result, param, fixedText);				// 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{
				// ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}

		// 進捗登録
		template = editInEKK1091D010Msg(param, fixedText);				// 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle);	// SC呼び出し
		editOutEKK1091D010Msg(result, param, fixedText);				// 下りマッピング
		if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
		{ // ステータスが単項目エラー以上であれば例外をスロー
			throw new CCException(SC_ERROR_STRING, new Exception());
		}

		// ANK-3210-16-00 ADD START
		// 申込_代理店登録
		String tratCd1_1 = (String)inMap.get(TRAT_CD_1_1);
		String tratCd1_2 = (String)inMap.get(TRAT_CD_1_2);
		String tratCd2_1 = (String)inMap.get(TRAT_CD_2_1);
		String tratCd2_2 = (String)inMap.get(TRAT_CD_2_2);
		
		if (!JKKStringUtil.isNullBlank(tratCd1_1))
		{
			template = editInEKK0071D010Msg(param, fixedText, tratCd1_1, MSKM_AGNT_NO_001, DSP_JUN_1, mskmNo);	// 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle);										// SC呼び出し
			editOutEKK0071D010Msg(result, param, fixedText, TRAT_CD_1_1);										// 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{ // ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}
		
		if (!JKKStringUtil.isNullBlank(tratCd1_2))
		{
			template = editInEKK0071D010Msg(param, fixedText, tratCd1_2, MSKM_AGNT_NO_002, DSP_JUN_2, mskmNo);	// 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle);										// SC呼び出し
			editOutEKK0071D010Msg(result, param, fixedText, TRAT_CD_1_2);										// 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{ // ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}
		
		if (!JKKStringUtil.isNullBlank(tratCd2_1))
		{
			template = editInEKK0071D010Msg(param, fixedText, tratCd2_1, MSKM_AGNT_NO_003, DSP_JUN_3, mskmNo);	// 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle);										// SC呼び出し
			editOutEKK0071D010Msg(result, param, fixedText, TRAT_CD_2_1);										// 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{ // ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}
		
		if (!JKKStringUtil.isNullBlank(tratCd2_2))
		{
			template = editInEKK0071D010Msg(param, fixedText, tratCd2_2, MSKM_AGNT_NO_004, DSP_JUN_4, mskmNo);	// 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle);										// SC呼び出し
			editOutEKK0071D010Msg(result, param, fixedText, TRAT_CD_2_2);										// 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{ // ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}
		// ANK-3210-16-00 ADD END
// ANK-3520-01-00 ADD START
		// 新規申込 かつ請求契約番号が設定されていない かつ請求方法コードが窓口払いの場合
		if (JKKStrConst.MSKM_SBT_CD_NEW_KEI.equals((String)inMap.get("mskm_sbt_cd"))
				&& JKKStringUtil.isNullBlank((String)inMap.get("hikiate_seiky_kei_no"))
				&& JKKStrConst.SEIKY_WAY_CD_MADOGUCHI.equals((String)inMap.get("seiky_way_cd")))
		{
			// 支払登録慫慂メール送信
			sendMailPayAddShoyo(handle, param, fixedText);
		}
// ANK-3520-01-00 ADD END

		// 戻り値設定
		setReturnMsg(param, fixedText);

		return param;
	}

	/**
	 * サービスコンポーネント実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 * @param param リクエストパラメータ
	 * @param templates テンプレート
	 * @param returnCode リターンコード
	 * @param fixedText
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException RequestParameterException
	 */
	public IRequestParameterReadWrite editErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, String fixedText)
			throws RequestParameterException
	{
		//BPチェックは行わない

		return param;
	}

	/**
	 * SCインプット共通データ設定処理を行います。
	 * <br>
	 * @param param
	 * @param paramMap
	 * @return パラメータマップ
	 * @throws RequestParameterException
	 */
	private HashMap<String, Object> setSCInputCommonData(IRequestParameterReadWrite param, HashMap<String, Object> paramMap)
			throws RequestParameterException
	{
		/* SCインプット共通データ */
		// **********************************************
		// 【取得元：電文ヘッダ(ヘッダ)】
		// **********************************************
		// 電文ID
		paramMap.put(JCMConstants.TRANZACTION_ID_KEY, param.getTelegramID());
		// ユースケースID
		paramMap.put(JCMConstants.USECASE_ID_KEY, param.getUsecaseID());
		// オペレーションID
		paramMap.put(JCMConstants.OPERATION_ID_KEY, param.getOperationID());
		// サービス呼び出し区分
		paramMap.put(JCMConstants.CALL_TYPE_KEY, param.getCallType());

		// **********************************************
		// 【取得元：ユーザエリア(コントロールマップ)】
		// **********************************************
		// 依頼先ホスト名
		paramMap.put(JCMConstants.CLIENT_HOST_NAME_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTNAME));
		// 依頼元IPアドレス
		paramMap.put(JCMConstants.CLIENT_IP_ADDRESS_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTIP));
		// 依頼元画面ID
		paramMap.put(JCMConstants.INVOKE_GAMEN_ID_KEY, param.getControlMapData(SCControlMapKeys.REQ_VIEWID));
		// オペレータID
		paramMap.put(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));

		return paramMap;
	}

	/**
	 * 単一CAANMsgのマッピング処理を行います。
	 * <br>
	 * @param paramMap
	 * @param template
	 * @return パラメータマップ
	 * @throws RequestParameterException
	 */
	private HashMap<String, Object> putParamMap(HashMap<String, Object> paramMap, CAANMsg template) throws RequestParameterException
	{
		CAANMsg[] templates = { template };
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}

	// ANK-3210-00-00 ADD START
	/**
	 * 新規請求契約情報を登録します。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @throws Exception 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private void addNewSeikyKei(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
	throws Exception
	{
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		HashMap<String, Object> paramMap = setSCInputCommonData(param, new HashMap<String, Object>());
		Map<?, ?> result = null;
		CAANMsg template = null;

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		HashMap inMap = (HashMap)(param.getData(fixedText));

		// お客様一意照会
		template = editInECK0011A010Msg(param, fixedText);				// 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle);	// SC呼び出し
		editOutECK0011A010Msg(result, param, fixedText);				// 下りマッピング
		checkReturnCode(param);

		// 連絡先一覧照会
		template = editInECK0201B001Msg(param, fixedText);				// 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle);	// SC呼び出し
		editOutECK0201B001Msg(result, param, fixedText);				// 下りマッピング
		checkReturnCode(param);

		CAANMsg custMap = new CAANMsg();
		if (elecWorkMap.get(SRC_CK0011_ECK0011A010CBSMSG1LIST) != null)
		{
			custMap = ((CAANMsg[])elecWorkMap.get(SRC_CK0011_ECK0011A010CBSMSG1LIST))[0];
		}
		// 契約者タイプコードが「個人」でない場合
		if (!JCKStrConst.CD00036_KOJIN.equals(custMap.getString(ECK0011A010CBSMsg1List.KEISHA_TYPE_CD)))
		{
			// お客様<法人>一意照会
			template = editInECK0031A010Msg(param, fixedText);				// 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle);	// SC呼び出し
			editOutECK0031A010Msg(result, param, fixedText);				// 下りマッピング
			checkReturnCode(param);

			// 法人連絡先一意照会
			template = editInECK0041A010Msg(param, fixedText);				// 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle);	// SC呼び出し
			editOutECK0041A010Msg(result, param, fixedText);				// 下りマッピング
			checkReturnCode(param);
		}

		// 請求契約登録
		template = editInEKK0491D010Msg(param, fixedText);				// 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle);	// SC呼び出し
		editOutEKK0491D010Msg(result, param, fixedText);				// 下りマッピング
		checkReturnCode(param);

		String seikyWayCd = (String)inMap.get("seiky_way_cd");
		// 請求方法コードが「預金口座振替」または「郵便自動振込」の場合
		if (JKKStrConst.SEIKY_WAY_CD_YOKIN.equals(seikyWayCd) || JKKStrConst.SEIKY_WAY_CD_YUCHO.equals(seikyWayCd))
		{
			// 口振手続
			template = editInEKK0501D010Msg(param, fixedText);				// 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle);	// SC呼び出し
			editOutEKK0501D010Msg(result, param, fixedText);				// 下りマッピング
			checkReturnCode(param);

			// 口振審査依頼
			template = editInEKK0501C030Msg(param, fixedText);				// 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle);	// SC呼び出し
			editOutEKK0501C030Msg(result, param, fixedText);				// 下りマッピング
			checkReturnCode(param);

			// 口振審査結果OK登録
			template = editInEKK0501C080Msg(param, fixedText);				// 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle);	// SC呼び出し
			editOutEKK0501C080Msg(result, param, fixedText);				// 下りマッピング
			checkReturnCode(param);
		}
		// 請求方法コードが「クレジット」の場合
		else if (JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(seikyWayCd))
		{
			// 審査済クレジットカード登録
			template = editInEKK0521D020Msg(param, fixedText);				// 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle);	// SC呼び出し
			editOutEKK0521D020Msg(result, param, fixedText);				// 下りマッピング
			checkReturnCode(param);
		}

		// 請求方法コードが「預金口座振替」または「郵便自動振込」または「クレジット」の場合
		if (JKKStrConst.SEIKY_WAY_CD_YOKIN.equals(seikyWayCd) || JKKStrConst.SEIKY_WAY_CD_YUCHO.equals(seikyWayCd)
			|| JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(seikyWayCd))
		{
			// 請求支払先変更
			template = editInEKK0491C240Msg(param, fixedText);				// 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle);	// SC呼び出し
			editOutEKK0491C240Msg(result, param, fixedText);				// 下りマッピング
			checkReturnCode(param);
		}

		// 請求方法コードが「4:クレジット」の場合
		if (JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(seikyWayCd))
		{
			// クレジットオーソリ実績登録
			template = editInEKK1031D010Msg(param, fixedText);				// 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle);	// SC呼び出し
			editOutEKK1031D010Msg(result, param, fixedText);				// 下りマッピング
			checkReturnCode(param);
		}
	}

	/**
	 * SCのリターンコードをチェックし、正常でない場合は例外を送出します。
	 * <br>
	 * @param param リクエストパラメータ
	 * @throws Exception 例外が発生した場合
	 */
	private void checkReturnCode(IRequestParameterReadWrite param)
	throws Exception
	{
		if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
		{
			// ステータスが単項目エラー以上であれば例外をスロー
			throw new CCException(SC_ERROR_STRING, new Exception());
		}
	}
	// ANK-3210-00-00 ADD END

	/**
	 * サービス契約一意照会の上りマッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0081A010Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0081A010CBSMsg.class.getName());
		String prefix = "";

		// テンプレートID
		template.set(EKK0081A010CBSMsg.TEMPLATEID, "EKK0081A010");

		// 機能コード
		template.set(EKK0081A010CBSMsg.FUNC_CODE, "2");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// サービス契約一意照会.ＫＥＹ＿サービス契約番号
		setTemplate(template, EKK0081A010CBSMsg.KEY_SVC_KEI_NO, inMap, prefix, "knrn_svc_kei_no");

		// サービス契約一意照会.ＫＥＹ＿予約適用年月日
		String gyomuOpDate = JCCBPCommon.getOpeDate(null);
		template.set(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD, gyomuOpDate);

		return template;
	}

	/**
	 * 申込内容承認登録の上りマッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0011D020Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0011D020CBSMsg.class.getName());
		CAANMsg[] templateArray = null;
		String prefix = "";

		// テンプレートID
		template.set(EKK0011D020CBSMsg.TEMPLATEID, "EKK0011D020");

		// 機能コード（デフォルト：１）
		template.set(EKK0011D020CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 機能コード
		template.set(EKK0011D020CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		String operateDateTimeGet = JCCBPCommon.getOpeDateTimeStamp(null);

		// 申込内容承認登録.SYSID
		setTemplate(template, EKK0011D020CBSMsg.SYSID, inMap, prefix, "sysid");

		// 申込内容承認登録.申込種別コード
		setTemplate(template, EKK0011D020CBSMsg.MSKM_SBT_CD, inMap, prefix, "mskm_sbt_cd");

		// 申込内容承認登録.申込書到着年月日
		if (inMap == null || inMap.get("mskmsho_ariv_ymd") == null || "".equals(inMap.get("mskmsho_ariv_ymd")))
		{
			String operateDateGet = JCCBPCommon.getOpeDate(null);
			template.set(EKK0011D020CBSMsg.MSKMSHO_ARIV_YMD, operateDateGet);
		}
		else
		{
			template.set(EKK0011D020CBSMsg.MSKMSHO_ARIV_YMD, (String)inMap.get("mskmsho_ariv_ymd"));
		}

		// 申込内容承認登録.申込受付年月日時分秒
		template.set(EKK0011D020CBSMsg.MSKM_UK_DTM, operateDateTimeGet);

		// 申込内容承認登録.申込受付担当ユーザーID
		setTemplate(template, EKK0011D020CBSMsg.MSKM_UK_TNT_USER_ID, inMap, prefix, "mskm_uk_tnt_user_id");

		// 申込内容承認登録.申込年月日
		setTemplate(template, EKK0011D020CBSMsg.MSKM_YMD, inMap, prefix, "mskm_ymd");

		// 申込内容承認登録.関西電力お客様情報授受同意有無(0:同意しない)
		template.set(EKK0011D020CBSMsg.KEPCO_CUSTINFO_JUJU_DOI_UM, "0");

		// 申込内容承認登録.照査前連絡事項要否(0：否)
		template.set(EKK0011D020CBSMsg.SHOSA_BF_RRK_JIKO_YH, JKKStrConst.CD00001_0);

		// 申込内容承認登録.コンシューマ営業用申込状態識別コード(04：承認済)
		template.set(EKK0011D020CBSMsg.CONSMBSN_MSKM_STAT_SKBT_CD, JKKStrConst.CD00760_04);

		// 申込内容承認登録.代理店申込取次有無(0：無)
		template.set(EKK0011D020CBSMsg.AGNT_MSKM_TRTG_UM, JKKStrConst.CD_DIV_UM_NASHI);

		templateArray = template.getCAANMsgList(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST);

		if (templateArray == null)
		{
			templateArray = new CAANMsg[1];
		}

		CAANMsg childTemplate = templateArray[0];
		if (childTemplate == null)
		{
			childTemplate = new CAANMsg(EKK0011D020CBSMsg1List.class.getName());
		}

		// 申込内容承認登録明細.申込書番号
		setTemplate(childTemplate, EKK0011D020CBSMsg1List.MSKMSHO_NO, inMap, prefix, "mskmsho_no");

		// 申込内容承認登録明細.申込形態コード
		setTemplate(childTemplate, EKK0011D020CBSMsg1List.MSKM_FORM_CD, inMap, prefix, "mskm_form_cd");

		// 申込内容承認登録明細.連絡事項登録年月日時分秒(連絡事項の設定値で判断)
		if (inMap == null || inMap.get("rrk_jiko") == null || "".equals(inMap.get("rrk_jiko")))
		{
			childTemplate.setNull(EKK0011D020CBSMsg1List.RRK_JIKO_ADD_DTM);
		}
		else
		{
			childTemplate.set(EKK0011D020CBSMsg1List.RRK_JIKO_ADD_DTM, operateDateTimeGet);
		}

		// 申込内容承認登録明細.連絡事項
		setTemplate(childTemplate, EKK0011D020CBSMsg1List.RRK_JIKO, inMap, prefix, "rrk_jiko");

		// 申込内容承認登録明細.オプションサービス引継有無(0：無)
		childTemplate.set(EKK0011D020CBSMsg1List.OP_SVC_HKTGI_UM, JKKStrConst.CD_DIV_UM_NASHI);

		// 申込内容承認登録明細.新築物件コード(0：新築物件でない)
		childTemplate.set(EKK0011D020CBSMsg1List.NEWCONST_BUKKEN_CD, JKKStrConst.NEWCONST_BUKKEN_NO);

		// 申込内容承認登録明細.復活案件フラグ(0：復活案件でない)
		childTemplate.set(EKK0011D020CBSMsg1List.HUKKAT_ANKEN_FLG, JKKStrConst.HUKKAT_ANKEN_NO);

		// 申込内容承認登録明細.同一設備再申込コード(0：初期値)
		childTemplate.set(EKK0011D020CBSMsg1List.SAME_EQUIP_RE_MSKM_CD, "0");

		// ANK-3210-00-00 ADD START
		// 申込内容承認登録明細.本人確認書類種別コード
		setTemplate(childTemplate, EKK0011D020CBSMsg1List.HNIN_CFM_ATICLE_SBT_CD, inMap, prefix, "hnin_cfm_aticle_sbt_cd");
		// ANK-3210-00-00 ADD END

		// 申込内容承認登録明細.申込書種別コード
		setTemplate(childTemplate, EKK0011D020CBSMsg1List.MSKMSHO_SBT_CD, inMap, prefix, "mskmsho_sbt_cd");

		// ANK-3210-00-00 ADD START
		// 申込内容承認登録明細.本人確認書類名
		setTemplate(childTemplate, EKK0011D020CBSMsg1List.HNIN_CFM_ATICLE_NM, inMap, prefix, "hnin_cfm_aticle_nm");
		// ANK-3210-00-00 ADD END

		// 申込内容承認登録明細.割引自動適用対象外フラグ(0：対象)
		childTemplate.set(EKK0011D020CBSMsg1List.WRIB_AUTO_APLY_TG_GAI_FLG, "0");

		// ANK-2990-00-00 ADD START
		// 申込内容承認登録明細.同時申込eo光申込書番号
		setTemplate(childTemplate, EKK0011D020CBSMsg1List.DOJI_MSKM_EOH_MSKMSHO_NO, inMap, prefix, "eoh_mskmsho_no");
		// ANK-2990-00-00 ADD END

		templateArray[0] = childTemplate;

		template.set(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST, templateArray);

		return template;
	}

	/**
	 * サービス契約＜eo電気＞登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK2981D010Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK2981D010CBSMsg.class.getName());
		String prefix = "";

		// テンプレートID
		template.set(EKK2981D010CBSMsg.TEMPLATEID, "EKK2981D010");

		// 機能コード（デフォルト：１）
		template.set(EKK2981D010CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 機能コード
		template.set(EKK2981D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* 作業項目情報 */
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// サービス契約＜eo電気＞登録.SYSID
		setTemplate(template, EKK2981D010CBSMsg.SYSID, inMap, prefix, "sysid");

		// サービス契約＜eo電気＞登録.サービスコード(05：電気サービス)
		template.set(EKK2981D010CBSMsg.SVC_CD, JKKStrConst.CD00130_05);

		// サービス契約＜eo電気＞登録.申込明細番号
		template.set(EKK2981D010CBSMsg.MSKM_DTL_NO, (String)elecWorkMap.get(INS_KK0011_MSKM_DTL_NO));

		// サービス契約＜eo電気＞登録.料金グループコード(17：ｅｏ電気)
		template.set(EKK2981D010CBSMsg.PRC_GRP_CD, JKKStrConst.CD00133_17);

		// サービス契約＜eo電気＞登録.料金コースコード(A82：ｅｏ電気コース)
		template.set(EKK2981D010CBSMsg.PCRS_CD, JKKStrConst.CD00134_A82);

		// サービス契約＜eo電気＞登録.料金プランコード(PA8201：ｅｏ電気プラン)
		template.set(EKK2981D010CBSMsg.PPLAN_CD, JKKStrConst.CD00565_EOELEC);

		// サービス契約＜eo電気＞登録.支払い方法継続フラグ
		template.set(EKK2981D010CBSMsg.PAYWAY_KEIZOKU_FLG, JKKStrConst.PAYWAY_KEIZOKU_USE);

		// サービス契約＜eo電気＞登録.異動区分
		setTemplate(template, EKK2981D010CBSMsg.IDO_DIV, inMap, prefix, "mskm_sbt_cd");

		// サービス契約＜eo電気＞登録.自動照査処理状態コード(2：対象外)
		template.set(EKK2981D010CBSMsg.AUTO_SHOSA_TRAN_STAT_CD, JKKStrConst.CD00628_TGG);

		// サービス契約＜eo電気＞登録.請求契約番号
		// ANK-3210-00-00 ADD START
		// 請求契約番号が設定されていない場合
		if (JKKStringUtil.isNullBlank((String)inMap.get("hikiate_seiky_kei_no")))
		{
			template.set(EKK2981D010CBSMsg.SEIKY_KEI_NO, (String)elecWorkMap.get(INS_KK0491_SEIKY_KEI_NO));
		}
		else
		{
		// ANK-3210-00-00 ADD END
			template.set(EKK2981D010CBSMsg.SEIKY_KEI_NO, (String)inMap.get("hikiate_seiky_kei_no"));
		// ANK-3210-00-00 ADD START
		}
		// ANK-3210-00-00 ADD END

		return template;
	}

	/**
	 * サービス契約グループ設定登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK2961D010Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK2961D010CBSMsg.class.getName());
		String prefix = "";

		// テンプレートID
		template.set(EKK2961D010CBSMsg.TEMPLATEID, "EKK2961D010");

		// 機能コード（デフォルト：１）
		template.set(EKK2961D010CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 機能コード
		template.set(EKK2961D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* 作業項目情報 */
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// サービス契約グループ設定登録.サービス契約番号
		template.set(EKK2961D010CBSMsg.SVC_KEI_NO, (String)elecWorkMap.get(INS_KK2951_SVC_KEI_NO));

		// サービス契約グループ設定登録.サービス契約グループ種別コード(01：同一利用場所)
		template.set(EKK2961D010CBSMsg.SVKEI_GRP_SBT_CD, SVKEI_GRP_SBT_CD_SAME_PLACE);

		// サービス契約グループ設定登録.サービス契約グループ識別番号
		setTemplate(template, EKK2961D010CBSMsg.SVKEI_GRP_SKBT_NO, inMap, prefix, "svc_kei_kaisen_ucwk_no");

		// サービス契約グループ設定登録.サービス契約グループ設定適用開始年月日
		template.set(EKK2961D010CBSMsg.SVKEI_GRP_SETE_TSTAYMD, SVKEI_GRP_SETE_TSTAYMD_19000101);

		return template;
	}

	/**
	 * 進捗登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK1091D010Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK1091D010CBSMsg.class.getName());
		CAANMsg[] templateArray = null;
		String prefix = "";

		// テンプレートID
		template.set(EKK1091D010CBSMsg.TEMPLATEID, "EKK1091D010");

		// 機能コード（デフォルト：１）
		template.set(EKK1091D010CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 機能コード
		template.set(EKK1091D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* 作業項目情報 */
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// 進捗登録.申込明細番号
		template.set(EKK1091D010CBSMsg.MSKM_DTL_NO, (String)elecWorkMap.get(INS_KK0011_MSKM_DTL_NO));

		// 進捗登録.サービス契約番号
		template.set(EKK1091D010CBSMsg.SVC_KEI_NO, (String)elecWorkMap.get(INS_KK2951_SVC_KEI_NO));

		// 進捗登録.異動区分
		setTemplate(template, EKK1091D010CBSMsg.IDO_DIV, inMap, prefix, "mskm_sbt_cd");

		// 進捗登録.異動年月日時分秒
		String sysDateTimeGet = JCCBPCommon.getSysDateTimeStamp();
		template.set(EKK1091D010CBSMsg.IDO_DTM, sysDateTimeGet);

		// 進捗登録.進捗ステータス
		template.set(EKK1091D010CBSMsg.PRG_STAT, JKKStrConst.CD00647_MSKMSHOUK);

		templateArray = template.getCAANMsgList(EKK1091D010CBSMsg.EKK1091D010CBSMSG1LIST);

		if (templateArray == null)
		{
			templateArray = new CAANMsg[1];
		}

		CAANMsg childTemplate = templateArray[0];
		if (childTemplate == null)
		{
			childTemplate = new CAANMsg(EKK1091D010CBSMsg1List.class.getName());
		}

		// 異動理由明細.異動理由コード
		childTemplate.set(EKK1091D010CBSMsg1List.IDO_RSN_CD, JKKStrConst.CD00846_OTHER);

		templateArray[0] = childTemplate;

		template.set(EKK1091D010CBSMsg.EKK1091D010CBSMSG1LIST, templateArray);

		return template;
	}

	// ANK-3210-00-00 ADD START
	/**
	 * お客様一意照会の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return 上り情報
	 * @throws RequestParameterException 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInECK0011A010Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(ECK0011A010CBSMsg.class.getName());
		String prefix = "";

		// テンプレートID
		template.set(ECK0011A010CBSMsg.TEMPLATEID, "ECK0011A010");

		// 機能コード（2：お客様一意照会(カレント)）
		template.set(ECK0011A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_2);

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 運用年月日
		String opeDate = JCCBPCommon.getOpeDate(null);

		// お客様一意照会.ＫＥＹ＿SYSID
		setTemplate(template, ECK0011A010CBSMsg.KEY_SYSID, inMap, prefix, "sysid");
		// お客様一意照会.ＫＥＹ＿予約適用年月日
		template.set(ECK0011A010CBSMsg.KEY_RSV_APLY_YMD, opeDate);

		return template;
	}

	/**
	 * 連絡先一覧照会の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return 上り情報
	 * @throws RequestParameterException 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInECK0201B001Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(ECK0201B001CBSMsg.class.getName());
		String prefix = "";

		// テンプレートID
		template.set(ECK0201B001CBSMsg.TEMPLATEID, "ECK0201B001");

		// 機能コード（1：連絡先一覧照会）
		template.set(ECK0201B001CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 連絡先一覧照会.ＫＥＹ＿SYSID
		setTemplate(template, ECK0201B001CBSMsg.KEY_SYSID, inMap, prefix, "sysid");
		// 連絡先一覧照会.ＫＥＹ＿連絡方法コード (001：メールアドレス)
		template.set(ECK0201B001CBSMsg.KEY_RRK_WAY_CD, JCKStrConst.RRK_WAY_CD_MLAD);
		// 連絡先一覧照会.ＫＥＹ＿連絡先種別コード (1：自宅)
		template.set(ECK0201B001CBSMsg.KEY_RRKS_SBT_CD, JCKStrConst.RRKS_SBT_CD_HOME);

		return template;
	}

	/**
	 * お客様<法人>一意照会の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return 上り情報
	 * @throws RequestParameterException 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInECK0031A010Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(ECK0031A010CBSMsg.class.getName());
		String prefix = "";

		// テンプレートID
		template.set(ECK0031A010CBSMsg.TEMPLATEID, "ECK0031A010");

		// 機能コード（2：お客様<法人>一意照会(カレント)）
		template.set(ECK0031A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_2);

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// お客様<法人>一意照会.ＫＥＹ＿SYSID
		setTemplate(template, ECK0031A010CBSMsg.KEY_SYSID, inMap, prefix, "sysid");

		return template;
	}

	/**
	 * 法人連絡先一意照会の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return 上り情報
	 * @throws RequestParameterException 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInECK0041A010Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(ECK0041A010CBSMsg.class.getName());
		String prefix = "";

		// テンプレートID
		template.set(ECK0041A010CBSMsg.TEMPLATEID, "ECK0041A010");

		// 機能コード（2：法人連絡先一意照会(カレント)）
		template.set(ECK0041A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_2);

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 法人連絡先一意照会.ＫＥＹ＿SYSID
		setTemplate(template, ECK0041A010CBSMsg.KEY_SYSID, inMap, prefix, "sysid");
		// 法人連絡先一意照会.ＫＥＹ＿連絡先コード
		template.set(ECK0041A010CBSMsg.KEY_RRKS_CD, JCKStrConst.RRKS_CD_KEISHA);	// 「契約者」

		return template;
	}

	/**
	 * 請求契約登録の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return 上り情報
	 * @throws RequestParameterException 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0491D010Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0491D010CBSMsg.class.getName());
		String prefix = "";

		// テンプレートID
		template.set(EKK0491D010CBSMsg.TEMPLATEID, "EKK0491D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0491D010CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// お客様一意照会明細
		CAANMsg custMsg = new CAANMsg();
		if (elecWorkMap.get(SRC_CK0011_ECK0011A010CBSMSG1LIST) != null)
		{
			custMsg = ((CAANMsg[])elecWorkMap.get(SRC_CK0011_ECK0011A010CBSMSG1LIST))[0];
		}
		// 連絡先一覧照会明細
		CAANMsg rrksMsg = new CAANMsg();
		if (elecWorkMap.get(SRC_CK0201_ECK0201B001CBSMSG1LIST) != null)
		{
			rrksMsg = ((CAANMsg[])elecWorkMap.get(SRC_CK0201_ECK0201B001CBSMSG1LIST))[0];
		}
		// お客様<法人>一意照会明細
		CAANMsg custHojinMsg = new CAANMsg();
		if (elecWorkMap.get(SRC_CK0031_ECK0031A010CBSMSG1LIST) != null)
		{
			custHojinMsg = ((CAANMsg[])elecWorkMap.get(SRC_CK0031_ECK0031A010CBSMSG1LIST))[0];
		}
		// 法人連絡先一意照会明細
		CAANMsg hojinRrksMsg = new CAANMsg();
		if (elecWorkMap.get(SRC_CK0041_ECK0041A010CBSMSG1LIST) != null)
		{
			hojinRrksMsg = ((CAANMsg[])elecWorkMap.get(SRC_CK0041_ECK0041A010CBSMSG1LIST))[0];
		}
		// 請求方法コード
		String seikyWayCd = (String)inMap.get("seiky_way_cd");

		// 機能コード
		template.set(EKK0491D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 請求契約登録.SYSID
		setTemplate(template, EKK0491D010CBSMsg.SYSID, inMap, prefix, "sysid");
		// 請求契約登録.申込明細番号
		template.set(EKK0491D010CBSMsg.MSKM_DTL_NO, (String)elecWorkMap.get(INS_KK0011_MSKM_DTL_NO));
		// 請求契約登録.請求方法コード
		setTemplate(template, EKK0491D010CBSMsg.SEIKY_WAY_CD, inMap, prefix, "seiky_way_cd");
		// 請求契約登録.契約締結年月日
		template.set(EKK0491D010CBSMsg.KEI_CNC_YMD, JCCBPCommon.getOpeDate(null));
		// 請求方法コードが「預金口座振替」または「郵便自動振込」の場合
		if (JKKStrConst.SEIKY_WAY_CD_YOKIN.equals(seikyWayCd) || JKKStrConst.SEIKY_WAY_CD_YUCHO.equals(seikyWayCd))
		{
			// 請求契約登録.請求契約カナ名 (口座名義人カナ名を設定)
			setTemplate(template, EKK0491D010CBSMsg.SEIKY_KEI_KANA, inMap, prefix, "koza_meigin_kana");
		}
		// 請求方法コードが「クレジット」の場合
		else if (JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(seikyWayCd))
		{
// ANK-4619-00-00 MOD START
//			// 請求契約登録.請求契約カナ名 (クレジットカード名義カナ名を設定)
//			setTemplate(template, EKK0491D010CBSMsg.SEIKY_KEI_KANA, inMap, prefix, "crecard_nm_kana");
			// クレジットカード名義カナ名が未設定かつクレジットカード名義(ローマ字)が設定の場合
			if (JKKStringUtil.isNullBlank((String)inMap.get("crecard_nm_kana")) && !JKKStringUtil.isNullBlank((String)inMap.get("crecard_nm_romaji")))
			{
				// 請求契約登録.請求契約カナ名 (クレジットカード名義(ローマ字)を全角変換した値を設定)
				template.set(EKK0491D010CBSMsg.SEIKY_KEI_KANA, JKKStringConverter.convertFullMark((String)inMap.get("crecard_nm_romaji")));
			}
			else
			{
				// 請求契約登録.請求契約カナ名 (クレジットカード名義カナ名を設定)
				setTemplate(template, EKK0491D010CBSMsg.SEIKY_KEI_KANA, inMap, prefix, "crecard_nm_kana");
			}
// ANK-4619-00-00 MOD END
		}
		// 請求契約登録.請求書発行要否 (0：否)
		template.set(EKK0491D010CBSMsg.SEIKYUS_HAKKO_YH, JACStrConst.SKS_HAK_YH_H);
		// 請求契約登録.請求書送付先_契約者住所差異フラグ (0：差異なし)
		template.set(EKK0491D010CBSMsg.SKS_SHS_KSH_AD_SAI_FLG, JKKStrConst.CD_DIV_UM_NASHI);
		// 請求契約登録.請求書送付先名_お客様名差異フラグ (0：差異なし)
		template.set(EKK0491D010CBSMsg.SKS_SHS_NM_CUST_NM_SAI_FLG, JKKStrConst.CD_DIV_UM_NASHI);
		// 請求契約登録.送付先法人格種別コード
		template.set(EKK0491D010CBSMsg.SHS_HOJIN_SBT_CD, custHojinMsg.getString(ECK0031A010CBSMsg1List.HOJIN_SBT_CD));
		// 請求契約登録.送付先法人格前後指定コード
		template.set(EKK0491D010CBSMsg.SHS_HOJIN_ZENGO_SHITEI_CD, custHojinMsg.getString(ECK0031A010CBSMsg1List.HOJIN_ZENGO_SHITEI_CD));
		// 請求契約登録.送付先カナ名
		template.set(EKK0491D010CBSMsg.SHS_KANA, custMsg.getString(ECK0011A010CBSMsg1List.CUST_KANA));
		
		// ANK-4194-00-00 ADD START
		ArrayList<String> custNmBnktList = new ArrayList<String>();
		// お客様名を、15文字毎に分割
		custNmBnktList = bnktParam(custMsg, ECK0011A010CBSMsg1List.CUST_NM, 0, 15, 45);
		// お客様名が登録されている場合
		if (null != custNmBnktList && custNmBnktList.size()>0 )
		{
			// 請求契約登録.送付先名
			template.set(EKK0491D010CBSMsg.SOHUS_NM, custNmBnktList.get(0));
			// 請求契約登録.送付先部課名
			template.set(EKK0491D010CBSMsg.SOHUS_BKM, custNmBnktList.get(1));
			// 請求契約登録.送付先担当者名
			template.set(EKK0491D010CBSMsg.SOHUS_TNTSHA_NM, custNmBnktList.get(2));
		}
		// ANK-4194-00-00 ADD END
		
		// ANK-4194-00-00 DEL START
//		// 請求契約登録.送付先名
//		template.set(EKK0491D010CBSMsg.SOHUS_NM, custMsg.getString(ECK0011A010CBSMsg1List.CUST_NM));
//		// 請求契約登録.送付先部課名
//		template.set(EKK0491D010CBSMsg.SOHUS_BKM, hojinRrksMsg.getString(ECK0041A010CBSMsg1List.HJRRKS_TNTSHA_SHOZKBSHO_NM));
//		// 請求契約登録.送付先担当者名
//		template.set(EKK0491D010CBSMsg.SOHUS_TNTSHA_NM, hojinRrksMsg.getString(ECK0041A010CBSMsg1List.HJRRKS_TNTSHA_NM));
		// ANK-4194-00-00 DEL END
		
		// 請求契約登録.送付先住所コード
		template.set(EKK0491D010CBSMsg.SOHUS_AD_CD, custMsg.getString(ECK0011A010CBSMsg1List.KEISHA_AD_CD));
		// 請求契約登録.送付先郵便番号
		template.set(EKK0491D010CBSMsg.SOHUS_PCD, custMsg.getString(ECK0011A010CBSMsg1List.KEISHA_PCD));
		// 請求契約登録.送付先都道府県名
		template.set(EKK0491D010CBSMsg.SOHUS_STATE_NM, custMsg.getString(ECK0011A010CBSMsg1List.KEISHA_STATE_NM));
		// 請求契約登録.送付先市区町村名
		template.set(EKK0491D010CBSMsg.SOHUS_CITY_NM, custMsg.getString(ECK0011A010CBSMsg1List.KEISHA_CITY_NM));
		// 請求契約登録.送付先大字通称名
		template.set(EKK0491D010CBSMsg.SOHUS_OAZTSU_NM, custMsg.getString(ECK0011A010CBSMsg1List.KEISHA_OAZTSU_NM));
		// 請求契約登録.送付先字丁目名
		template.set(EKK0491D010CBSMsg.SOHUS_AZCHO_NM, custMsg.getString(ECK0011A010CBSMsg1List.KEISHA_AZCHO_NM));
		// 請求契約登録.送付先住所補記・建物名
		template.set(EKK0491D010CBSMsg.SOHUS_ADRTTM, custMsg.getString(ECK0011A010CBSMsg1List.KEISHA_ADRTTM));
		// 請求契約登録.送付先住所補記・部屋番号
		template.set(EKK0491D010CBSMsg.SOHUS_ADRRM, custMsg.getString(ECK0011A010CBSMsg1List.KEISHA_ADRRM));
		// 請求契約登録.送付先番地号
		template.set(EKK0491D010CBSMsg.SOHUS_BNCHIGO, custMsg.getString(ECK0011A010CBSMsg1List.KEISHA_BNCHIGO));
		// 請求契約登録.送付先電話番号
		template.set(EKK0491D010CBSMsg.SOHUS_TELNO, custMsg.getString(ECK0011A010CBSMsg1List.KEISHA_TELNO));
		// 請求契約登録.送付先メールアドレス
		template.set(EKK0491D010CBSMsg.SOHUS_MLAD, rrksMsg.getString(ECK0201B001CBSMsg1List.MLAD));
		// 請求契約登録.異動区分
		setTemplate(template, EKK0491D010CBSMsg.IDO_DIV, inMap, prefix, "mskm_sbt_cd");
		// 請求契約登録.初回支払申込書受領年月日
		setTemplate(template, EKK0491D010CBSMsg.FIRST_PAY_MSKMSHO_RCP_YMD, inMap, prefix, "first_pay_mskmsho_rcp_ymd");
		// 請求契約登録.送付先住所手動入力フラグ
		template.set(EKK0491D010CBSMsg.SOHUS_AD_MAN_INPUT_FLG, custMsg.getString(ECK0011A010CBSMsg1List.KEISHA_AD_MAN_INPUT_FLG));

		return template;
	}

	/**
	 * 口座手続の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return 上り情報
	 * @throws RequestParameterException 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0501D010Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0501D010CBSMsg.class.getName());
		String prefix = "";

		// テンプレートID
		template.set(EKK0501D010CBSMsg.TEMPLATEID, "EKK0501D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0501D010CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 機能コード
		template.set(EKK0501D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// 口座手続.金融機関コード
		setTemplate(template, EKK0501D010CBSMsg.BANK_CD, inMap, prefix, "bank_cd");
		// 口座手続.金融機関支店コード
		setTemplate(template, EKK0501D010CBSMsg.BANK_SHITEN_CD, inMap, prefix, "bank_shiten_cd");

		String seikyWayCd = (String)inMap.get("seiky_way_cd");
		// 請求方法コードが「預金口座振替」の場合
		if (JKKStrConst.SEIKY_WAY_CD_YOKIN.equals(seikyWayCd))
		{
			// 口座手続.預金種目コード
			setTemplate(template, EKK0501D010CBSMsg.YOKIN_SHUMOKU_CD, inMap, prefix, "yokin_shumoku_cd");
			// 口座手続.口座番号
			setTemplate(template, EKK0501D010CBSMsg.KOZA_NO, inMap, prefix, "koza_no");
		}
		// 請求方法コードが「郵便自動振込」の場合
		else if (JKKStrConst.SEIKY_WAY_CD_YUCHO.equals(seikyWayCd))
		{
			// 口座手続.通帳記号
			setTemplate(template, EKK0501D010CBSMsg.TSUCHO_SYMBOL, inMap, prefix, "tsucho_symbol");
			// 口座手続.通帳番号
			setTemplate(template, EKK0501D010CBSMsg.TSUCHO_NO, inMap, prefix, "tsucho_no");
		}

		// 口座手続.新規コード
		setTemplate(template, EKK0501D010CBSMsg.NEW_CD, inMap, prefix, "new_cd");
		// 口座名義人カナ名
		setTemplate(template, EKK0501D010CBSMsg.KOZA_MEIGIN_KANA, inMap, prefix, "koza_meigin_kana");
		// 口座手続.異動区分
		setTemplate(template, EKK0501D010CBSMsg.IDO_DIV, inMap, prefix, "mskm_sbt_cd");
		// 口座手続.更新年月日時分秒(更新前)
		template.set(EKK0501D010CBSMsg.UPD_DTM_BF, (String)elecWorkMap.get(INS_KK0491_UPD_DTM));

		return template;
	}

	/**
	 * 口振審査依頼の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return 上り情報
	 * @throws RequestParameterException 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0501C030Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0501C030CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0501C030CBSMsg.TEMPLATEID, "EKK0501C030");

		// 機能コード（デフォルト：１）
		template.set(EKK0501C030CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 機能コード
		template.set(EKK0501C030CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// 口振審査依頼.請求方法番号(口座)
		template.set(EKK0501C030CBSMsg.SEIKY_WAY_NO_KOZA, (String)elecWorkMap.get(INS_KK0501_SEIKY_WAY_NO_KOZA));
		// 口振審査依頼.更新年月日時分秒(更新前)
		template.set(EKK0501C030CBSMsg.UPD_DTM_BF, (String)elecWorkMap.get(INS_KK0491_UPD_DTM));

		return template;
	}

	/**
	 * 口振審査結果OK登録の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return 上り情報
	 * @throws RequestParameterException 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0501C080Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0501C080CBSMsg.class.getName());
		String prefix = "";

		// テンプレートID
		template.set(EKK0501C080CBSMsg.TEMPLATEID, "EKK0501C080");

		// 機能コード（デフォルト：１）
		template.set(EKK0501C080CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 機能コード
		template.set(EKK0501C080CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// 運用年月日
		String opeDate = JCCBPCommon.getOpeDate(null);
		// 請求方法コード
		String seikyWayCd = (String)inMap.get("seiky_way_cd");

		// 口振審査結果OK登録.請求方法番号(口座)
		template.set(EKK0501C080CBSMsg.SEIKY_WAY_NO_KOZA, (String)elecWorkMap.get(INS_KK0501_SEIKY_WAY_NO_KOZA));
		// 請求方法コードが「預金口座振替」の場合
		if (JKKStrConst.SEIKY_WAY_CD_YOKIN.equals(seikyWayCd))
		{
			// 口振審査結果OK登録.支払い審査結果コード (「口座振替申請ＯＫ」を設定)
			template.set(EKK0501C080CBSMsg.PAY_SKEKKA_CD, JFUStrConst.CD00249_20);
		}
		// 請求方法コードが「郵便自動振込」の場合
		else if (JKKStrConst.SEIKY_WAY_CD_YUCHO.equals(seikyWayCd))
		{
			// 口振審査結果OK登録.支払い審査結果コード (「郵便自動振込申請ＯＫ」を設定)
			template.set(EKK0501C080CBSMsg.PAY_SKEKKA_CD, JFUStrConst.CD00249_30);
		}
		// 口振審査結果OK登録.異動区分
		setTemplate(template, EKK0501C080CBSMsg.IDO_DIV, inMap, prefix, "mskm_sbt_cd");
		// 口振審査結果OK登録.予約適用年月日
		template.set(EKK0501C080CBSMsg.RSV_APLY_YMD, opeDate);
		// 口振審査結果OK登録.更新年月日時分秒(更新前)
		template.set(EKK0501C080CBSMsg.UPD_DTM_BF, (String)elecWorkMap.get(INS_KK0491_UPD_DTM));

		return template;
	}

	/**
	 * 審査済クレジットカード登録の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return 上り情報
	 * @throws RequestParameterException 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0521D020Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0521D020CBSMsg.class.getName());
		String prefix = "";

		// テンプレートID
		template.set(EKK0521D020CBSMsg.TEMPLATEID, "EKK0521D020");

		// 機能コード（デフォルト：１）
		template.set(EKK0521D020CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 機能コード
		template.set(EKK0521D020CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 審査済クレジットカード登録.クレジットカード事業コード
		setTemplate(template, EKK0521D020CBSMsg.CRECARD_JIGYO_CD, inMap, prefix, "crecard_jigyo_cd");
		// 審査済クレジットカード登録.クレジットカード会社コード
		setTemplate(template, EKK0521D020CBSMsg.CRECARD_COMP_CD, inMap, prefix, "crecard_comp_cd");
		// 審査済クレジットカード登録.クレジットカード番号
		setTemplate(template, EKK0521D020CBSMsg.CRECARD_NO, inMap, prefix, "crecard_no");
		// 審査済クレジットカード登録.クレジットカード有効期限
		setTemplate(template, EKK0521D020CBSMsg.CRECARD_YK_KIGEN, inMap, prefix, "crecard_yk_kigen");
// ANK-4619-00-00 MOD START
//		// 審査済クレジットカード登録.クレジットカード名義カナ名
//		setTemplate(template, EKK0521D020CBSMsg.CRECARD_NM_KANA, inMap, prefix, "crecard_nm_kana");
		// クレジットカード名義カナ名が未設定かつクレジットカード名義(ローマ字)が設定の場合
		if (JKKStringUtil.isNullBlank((String)inMap.get("crecard_nm_kana")) && !JKKStringUtil.isNullBlank((String)inMap.get("crecard_nm_romaji")))
		{
			// 審査済クレジットカード登録.クレジットカード名義カナ名
			template.set(EKK0521D020CBSMsg.CRECARD_NM_KANA, JKKStringConverter.convertFullMark((String)inMap.get("crecard_nm_romaji")));
		}
		else
		{
			// 審査済クレジットカード登録.クレジットカード名義カナ名
			setTemplate(template, EKK0521D020CBSMsg.CRECARD_NM_KANA, inMap, prefix, "crecard_nm_kana");
		}
// ANK-4619-00-00 MOD END
		// 審査済クレジットカード登録.支払い審査結果コード
		template.set(EKK0521D020CBSMsg.PAY_SKEKKA_CD, JFUStrConst.CD00249_40);
		// 審査済クレジットカード登録.オーソリ確認年月日時分秒
		template.set(EKK0521D020CBSMsg.AUTHORI_CFM_DTM, JCCBPCommon.getOpeDateTimeStamp(null));
		// ANK-3846-00-00 DEL START
//		// 審査済クレジットカード登録.オーソリ承認番号
//		setTemplate(template, EKK0521D020CBSMsg.AUTHORI_SHONIN_NO, inMap, prefix, "cr_authnumber");
		// ANK-3846-00-00 DEL END
		// 審査済クレジットカード登録.異動区分
		setTemplate(template, EKK0521D020CBSMsg.IDO_DIV, inMap, prefix, "mskm_sbt_cd");
		// 審査済クレジットカード登録.クレジットカード番号預りID
		setTemplate(template, EKK0521D020CBSMsg.CRECARD_NO_AZKRI_ID, inMap, prefix, "save_id");
		// 審査済クレジットカード登録.仕向先会社コード
		setTemplate(template, EKK0521D020CBSMsg.SHIKOSAKI_COMP_CD, inMap, prefix, "shikosaki_comp_cd");
		// ANK-3602-00-00 2019/07/17 ADD START
		// クレジットカード種別コード
		setTemplate(template, EKK0521D020CBSMsg.CRECARD_SBT_CD, inMap, prefix, "card_type");
		// クレジットイシュア区分
		setTemplate(template, EKK0521D020CBSMsg.CRDT_ISSUER_DIV, inMap, prefix, "issuer_class");
		// ANK-3602-00-00 2019/07/17 ADD END
// ANK-4619-00-00 ADD START
		// 審査済クレジットカード登録.クレジットカード名義(ローマ字)
		setTemplate(template, EKK0521D020CBSMsg.CRECARD_NM_ROMAJI, inMap, prefix, "crecard_nm_romaji");
// ANK-4619-00-00 ADD END

		return template;
	}

	/**
	 * 請求支払先変更の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return 上り情報
	 * @throws RequestParameterException 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0491C240Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0491C240CBSMsg.class.getName());
		String prefix = "";

		// テンプレートID
		template.set(EKK0491C240CBSMsg.TEMPLATEID, "EKK0491C240");

		// 機能コード（デフォルト：１）
		template.set(EKK0491C240CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// 機能コード
		template.set(EKK0491C240CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 運用年月日
		String opeDate = JCCBPCommon.getOpeDate(null);

		// 請求支払先変更.請求契約番号
		template.set(EKK0491C240CBSMsg.SEIKY_KEI_NO, (String)elecWorkMap.get(INS_KK0491_SEIKY_KEI_NO));
		// 請求支払先変更.請求方法コード
		setTemplate(template, EKK0491C240CBSMsg.SEIKY_WAY_CD, inMap, prefix, "seiky_way_cd");
		// 請求支払先変更.予約適用年月日
		template.set(EKK0491C240CBSMsg.RSV_APLY_YMD, opeDate);
		// 請求支払先変更.請求方法番号(口座)
		template.set(EKK0491C240CBSMsg.SEIKY_WAY_NO_KOZA, (String)elecWorkMap.get(INS_KK0501_SEIKY_WAY_NO_KOZA));
		// 請求支払先変更.請求方法番号(クレジットカード)
		template.set(EKK0491C240CBSMsg.SEIKY_WAY_NO_CRECARD, (String)elecWorkMap.get(INS_KK0521_SEIKY_WAY_NO_CRECARD));
		// 請求支払先変更.初回支払申込書受領年月日
		setTemplate(template, EKK0491C240CBSMsg.FIRST_PAY_MSKMSHO_RCP_YMD, inMap, prefix, "first_pay_mskmsho_rcp_ymd");
		// 請求支払先変更.更新年月日時分秒(更新前)
		template.set(EKK0491C240CBSMsg.UPD_DTM_BF, (String)elecWorkMap.get(INS_KK0491_UPD_DTM));

		return template;
	}

	/**
	 * クレジットオーソリ実績登録の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return 上り情報
	 * @throws RequestParameterException 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK1031D010Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK1031D010CBSMsg.class.getName());
		String prefix = "";

		// テンプレートID
		template.set(EKK1031D010CBSMsg.TEMPLATEID, "EKK1031D010");

		// 機能コード（デフォルト：１）
		template.set(EKK1031D010CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// 機能コード
		template.set(EKK1031D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// クレジットオーソリ実績登録.請求契約番号
		template.set(EKK1031D010CBSMsg.SEIKY_KEI_NO, (String)elecWorkMap.get(INS_KK0491_SEIKY_KEI_NO));
		// クレジットオーソリ実績登録.請求契約世代登録年月日時分秒
		template.set(EKK1031D010CBSMsg.SEIKY_KEI_GENE_ADD_DTM, (String)elecWorkMap.get(INS_KK0491_GENE_ADD_DTM));
		// クレジットオーソリ実績登録.請求方法番号(クレジットカード)
		template.set(EKK1031D010CBSMsg.SEIKY_WAY_NO_CRECARD, (String)elecWorkMap.get(INS_KK0521_SEIKY_WAY_NO_CRECARD));
		// クレジットオーソリ実績登録.クレジットカード世代登録年月日時分秒
		template.set(EKK1031D010CBSMsg.CRECARD_GENE_ADD_DTM, (String)elecWorkMap.get(INS_KK0521_GENE_ADD_DTM));
		// クレジットオーソリ実績登録.クレジットカード会社コード
		setTemplate(template, EKK1031D010CBSMsg.CRECARD_COMP_CD, inMap, prefix, "crecard_comp_cd");
		// クレジットオーソリ実績登録.売上オーソリ金額
		template.set(EKK1031D010CBSMsg.SALES_AUTHORI_AMNT, SALES_AUTHORI_AMNT_SHK_VALUE);
		// クレジットオーソリ実績登録.オーソリ処理コード (02：入会オーソリ)
		template.set(EKK1031D010CBSMsg.AUTH_TRAN_CD, JACStrConst.AUTHORI_TRAN_CD_JOIN);
		// クレジットオーソリ実績登録.クレジットカード番号
		setTemplate(template, EKK1031D010CBSMsg.CRECARD_NO, inMap, prefix, "crecard_no");
		// クレジットオーソリ実績登録.加盟店番号
		setTemplate(template, EKK1031D010CBSMsg.MEMBSTR_NO, inMap, prefix, "membstr_no");
		// クレジットオーソリ実績登録.クレジットカード有効期限
		setTemplate(template, EKK1031D010CBSMsg.CRECARD_YK_KIGEN, inMap, prefix, "crecard_yk_kigen");
		// クレジットオーソリ実績登録.オーソリ要求コード (1：新規契約)
		template.set(EKK1031D010CBSMsg.AUTHORI_YOKYU_CD, JKKStrConst.AUTHORI_YOKYU_CD_NEW_CONTRACT);
		// クレジットオーソリ実績登録.処理フラグ (1：処理済)
		template.set(EKK1031D010CBSMsg.TRN_FLG, JACStrConst.AUTHORI_TRAN_FLG_ZUMI);
		// クレジットオーソリ実績登録.抽出フラグ (1：処理済)
		template.set(EKK1031D010CBSMsg.CHSHT_FLG, JACStrConst.AUTHORI_CHSHT_FLG_ZUMI);
		// クレジットオーソリ実績登録.取消コード (0：未処理)
		template.set(EKK1031D010CBSMsg.CL_CD, JACStrConst.AUTHORI_CL_FLG_MI);
		// クレジットオーソリ実績登録.クレジットカード番号預りID
		setTemplate(template, EKK1031D010CBSMsg.CRECARD_NO_AZKRI_ID, inMap, prefix, "save_id");
		// クレジットオーソリ実績登録.仕向先会社コード
		setTemplate(template, EKK1031D010CBSMsg.SHIKOSAKI_COMP_CD, inMap, prefix, "shikosaki_comp_cd");

		return template;
	}
	// ANK-3210-00-00 ADD END

	// ANK-3210-16-00 ADD START
	/**
	 * 申込_代理店登録の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param tratCd 取扱コード
	 * @param mskmAgntNo 申込＿代理店番号
	 * @param dspJun 表示順序
	 * @param mskmNo 申込番号
	 * @return 上り情報
	 * @throws RequestParameterException 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0071D010Msg(IRequestParameterReadWrite param, String fixedText, String tratCd, String mskmAgntNo, String dspJun, String mskmNo)
	throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0071D010CBSMsg.class.getName());
		String prefix = "";

		// テンプレートID
		template.set(EKK0071D010CBSMsg.TEMPLATEID, "EKK0071D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0071D010CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// 機能コード
		template.set(EKK0071D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 申込_代理店登録.申込番号
		template.set(EKK0071D010CBSMsg.MSKM_NO, mskmNo);
		// 申込_代理店登録.代理店コード
		template.set(EKK0071D010CBSMsg.AGNT_CD, tratCd);
		// 申込_代理店登録.申込＿代理店番号
		template.set(EKK0071D010CBSMsg.MSKM_AGNT_NO, mskmAgntNo);
		// 申込_代理店登録.表示順序
		template.set(EKK0071D010CBSMsg.DSP_JUN, dspJun);

		return template;
	}
	// ANK-3210-16-00 ADD END
// ANK-3520-01-00 ADD START
	/**
	 * 契約者情報連絡先一覧照会の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return 上り情報
	 * @throws RequestParameterException 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInECK0201B011Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(ECK0201B011CBSMsg.class.getName());
		String prefix = "";

		// テンプレートID
		template.set(ECK0201B011CBSMsg.TEMPLATEID, "ECK0201B011");

		// 機能コード（1：契約者情報連絡先一覧照会）
		template.set(ECK0201B011CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 契約者情報連絡先一覧照会.ＫＥＹ＿SYSID
		setTemplate(template, ECK0201B011CBSMsg.KEY_SYSID, inMap, prefix, "sysid");

		return template;
	}

	/**
	 * メール送信情報登録の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param mlad 送信先メールアドレス
	 * @return 上り情報
	 * @throws RequestParameterException 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInECC0021D010Msg(IRequestParameterReadWrite param, String fixedText, String mlad) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(ECC0021D010CBSMsg.class.getName());
		CAANMsg childTemplate = null;
		String prefix = "";

		// テンプレートID
		template.set(ECC0021D010CBSMsg.TEMPLATEID, "ECC0021D010");

		// 機能コード（デフォルト：１）
		template.set(ECC0021D010CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// お客様一意照会明細
		CAANMsg custMsg = new CAANMsg();
		if (elecWorkMap.get(SRC_CK0011_ECK0011A010CBSMSG1LIST) != null)
		{
			custMsg = ((CAANMsg[])elecWorkMap.get(SRC_CK0011_ECK0011A010CBSMSG1LIST))[0];
		}

		// 機能コード（1:リアルタイム　登録＆送信）
		template.set(ECC0021D010CBSMsg.FUNC_CODE,  JPCModelConstant.FUNC_CD_1);

		// メール送信情報登録.メールコード
		template.set(ECC0021D010CBSMsg.MAIL_CD, JFUStrConst.MAIL_CD_PAY_ADD_SHOYO);
		// メール送信情報登録.メール送信パターンコード（01:リアルタイム）
		template.set(ECC0021D010CBSMsg.MAIL_SEND_PATTERN_CD, JFUStrConst.CD00789_01);

		// メール送信情報登録.送信先一覧明細
		CAANMsg[] ecc0021D010List1 = new CAANMsg[1];
		childTemplate = new CAANMsg(ECC0021D010CBSMsg1List.class.getName());
		// 送信先メールアドレス
		childTemplate.set(ECC0021D010CBSMsg1List.MLAD, mlad);
		// メールアドレス設定フィールドコード（01:TO）
		childTemplate.set(ECC0021D010CBSMsg1List.MLAD_SET_FIELD_CD, JFUStrConst.CD00788_01);
		ecc0021D010List1[0] = childTemplate;
		template.set(ECC0021D010CBSMsg.ECC0021D010CBSMSG1LIST, ecc0021D010List1);

		// メール送信情報登録.非定型文字列一覧明細
// IT1-2021-0000072 MOD START
//		CAANMsg[] ecc0021D010List2 = new CAANMsg[2];
		CAANMsg[] ecc0021D010List2 = new CAANMsg[1];
// IT1-2021-0000072 MOD END
		childTemplate = new CAANMsg(ECC0021D010CBSMsg2List.class.getName());
		// 本文非定型置換文字（お客様名）
		childTemplate.set(ECC0021D010CBSMsg2List.TEXT_HTK_CKAM_MOJI, custMsg.getString(ECK0011A010CBSMsg1List.CUST_NM));
		ecc0021D010List2[0] = childTemplate;
// IT1-2021-0000072 DEL START
//		childTemplate = new CAANMsg(ECC0021D010CBSMsg2List.class.getName());
//		// 本文非定型置換文字（申込書番号）
//		setTemplate(childTemplate, ECC0021D010CBSMsg2List.TEXT_HTK_CKAM_MOJI, inMap, prefix, "mskmsho_no");
//		ecc0021D010List2[1] = childTemplate;
// IT1-2021-0000072 DEL END
		template.set(ECC0021D010CBSMsg.ECC0021D010CBSMSG2LIST, ecc0021D010List2);

		// メール送信情報登録.電子ファイル一覧明細（未設定）
		CAANMsg[] ecc0021D010List3 = new CAANMsg[0];
		template.set(ECC0021D010CBSMsg.ECC0021D010CBSMSG3LIST, ecc0021D010List3);
		// メール送信情報登録.メール明細一覧明細（未設定）
		CAANMsg[] ecc0021D010List4 = new CAANMsg[0];
		template.set(ECC0021D010CBSMsg.ECC0021D010CBSMSG4LIST, ecc0021D010List4);
		// メール送信情報登録.メールヘッダー一覧明細（未設定）
		CAANMsg[] ecc0021D010List5 = new CAANMsg[0];
		template.set(ECC0021D010CBSMsg.ECC0021D010CBSMSG5LIST, ecc0021D010List5);

		return template;
	}
// ANK-3520-01-00 ADD END

	/**
	 * サービス契約一意照会の下りマッピング処理
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK0081A010Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText)
			throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];
		CAANMsg[] templateArray = null;

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* 作業項目情報 */
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		templateArray = template.getCAANMsgList(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST);

		if (templateArray != null)
		{
			for (int i = 0; i < templateArray.length; i++)
			{
				CAANMsg childTemplate = templateArray[i];

				if (!childTemplate.isNull(EKK0081A010CBSMsg1List.SVC_KEI_NO))
				{
					// eo電気登録作業項目マップ.サービス契約番号 ← サービス契約一意照会明細.サービス契約番号
					elecWorkMap.put(SRC_KK0081_SVC_KEI_NO, childTemplate.getObject(EKK0081A010CBSMsg1List.SVC_KEI_NO));
				}
			}
		}

		// エラー情報の設定
		editErrInfoEKK0081A010Msg(param, template, (Integer)returnCode, fixedText);

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * 申込内容承認登録の下りマッピング処理
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK0011D020Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText)
			throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];
		CAANMsg[] templateArray = null;

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* 作業項目情報 */
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		templateArray = template.getCAANMsgList(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST);

		if (templateArray != null)
		{
			for (int i = 0; i < templateArray.length; i++)
			{
				CAANMsg childTemplate = templateArray[i];

				// eo電気登録作業項目マップ.申込明細番号 ← 申込内容承認登録明細.申込明細番号
				elecWorkMap.put(INS_KK0011_MSKM_DTL_NO, childTemplate.getObject(EKK0011D020CBSMsg1List.MSKM_DTL_NO));
			}
		}

		// エラー情報の設定
		editErrInfoEKK0011D020Msg(param, template, (Integer)returnCode, fixedText);

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * サービス契約＜eo電気＞登録の下りマッピング処理
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK2981D010Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText)
			throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* 作業項目情報 */
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// eo電気登録作業項目マップ.サービス契約番号 ← サービス契約番号
		elecWorkMap.put(INS_KK2951_SVC_KEI_NO, template.getString(EKK2981D010CBSMsg.SVC_KEI_NO));

		// エラー情報の設定
		editErrInfoEKK2981D010Msg(param, template, (Integer)returnCode, fixedText);

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * サービス契約グループ設定登録の下りマッピング処理
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK2961D010Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText)
			throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* 作業項目情報 */
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// エラー情報の設定
		editErrInfoEKK2961D010Msg(param, template, (Integer)returnCode, fixedText);

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * 進捗登録の下りマッピング処理
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK1091D010Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText)
			throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// エラー情報の設定
		editErrInfoEKK1091D010Msg(param, template, (Integer)returnCode, fixedText);

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	// ANK-3210-00-00 ADD START
	/**
	 * お客様一意照会の下りマッピング処理です。
	 * <br>
	 * @param msgList SCの戻り値
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Exception 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutECK0011A010Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText)
	throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		CAANMsg[] templateArray = template.getCAANMsgList(ECK0011A010CBSMsg.ECK0011A010CBSMSG1LIST);

		if (templateArray != null && templateArray.length > 0)
		{
			// eo電気登録作業項目マップ.お客様一意照会明細 ← お客様一意照会明細
			elecWorkMap.put(SRC_CK0011_ECK0011A010CBSMSG1LIST, templateArray);
		}

		// エラー情報の設定
		editErrInfoCommon(param, template, (Integer)returnCode, fixedText);

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * 連絡先一覧照会の下りマッピング処理です。
	 * <br>
	 * @param msgList SCの戻り値
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Exception 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutECK0201B001Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText)
	throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		CAANMsg[] templateArray = template.getCAANMsgList(ECK0201B001CBSMsg.ECK0201B001CBSMSG1LIST);

		if (templateArray != null && templateArray.length > 0)
		{
			// eo電気登録作業項目マップ.連絡先一覧照会明細 ← 連絡先一覧照会明細
			elecWorkMap.put(SRC_CK0201_ECK0201B001CBSMSG1LIST, templateArray);
		}

		// エラー情報の設定
		editErrInfoCommon(param, template, (Integer)returnCode, fixedText);

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * お客様<法人>一意照会の下りマッピング処理です。
	 * <br>
	 * @param msgList SCの戻り値
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Exception 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutECK0031A010Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText)
	throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		CAANMsg[] templateArray = template.getCAANMsgList(ECK0031A010CBSMsg.ECK0031A010CBSMSG1LIST);

		if (templateArray != null && templateArray.length > 0)
		{
			// eo電気登録作業項目マップ.お客様<法人>一意照会明細 ← お客様<法人>一意照会明細
			elecWorkMap.put(SRC_CK0031_ECK0031A010CBSMSG1LIST, templateArray);
		}

		// エラー情報の設定
		editErrInfoCommon(param, template, (Integer)returnCode, fixedText);

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * 法人連絡先一意照会の下りマッピング処理です。
	 * <br>
	 * @param msgList SCの戻り値
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Exception 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutECK0041A010Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText)
	throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		CAANMsg[] templateArray = template.getCAANMsgList(ECK0041A010CBSMsg.ECK0041A010CBSMSG1LIST);

		if (templateArray != null && templateArray.length > 0)
		{
			// eo電気登録作業項目マップ.法人連絡先一意照会明細  ← 法人連絡先一意照会明細 
			elecWorkMap.put(SRC_CK0041_ECK0041A010CBSMSG1LIST, templateArray);
		}

		// エラー情報の設定
		editErrInfoCommon(param, template, (Integer)returnCode, fixedText);

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * 請求契約登録の下りマッピング処理です。
	 * <br>
	 * @param msgList SCの戻り値
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Exception 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK0491D010Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText)
	throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// eo電気登録作業項目マップ.請求契約番号 ← 請求契約番号
		elecWorkMap.put(INS_KK0491_SEIKY_KEI_NO, template.getString(EKK0491D010CBSMsg.SEIKY_KEI_NO));
		// eo電気登録作業項目マップ.世代登録年月日時分秒(請求契約) ← 世代登録年月日時分秒
		elecWorkMap.put(INS_KK0491_GENE_ADD_DTM, template.getString(EKK0491D010CBSMsg.GENE_ADD_DTM));
		// eo電気登録作業項目マップ.更新年月日時分秒(請求契約) ← 更新年月日時分秒
		elecWorkMap.put(INS_KK0491_UPD_DTM, template.getString(EKK0491D010CBSMsg.UPD_DTM));

		// エラー情報の設定
		editErrInfoCommon(param, template, (Integer)returnCode, fixedText);

		// エラー情報マッピング(項目名が異なる)
		HashMap inMap = (HashMap)param.getData(fixedText);
		if (!JKKStringUtil.isNullBlank(template.getString(EKK0491D010CBSMsg.IDO_DIV_ERR)))
		{
			// 異動区分エラー
			inMap.put("mskm_sbt_cd_err", template.getString(EKK0491D010CBSMsg.IDO_DIV_ERR));
		}

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * 口振手続の下りマッピング処理です。
	 * <br>
	 * @param msgList SCの戻り値
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Exception 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK0501D010Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText)
	throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// eo電気登録作業項目マップ.請求方法番号(口座) ← 請求方法番号(口座)
		elecWorkMap.put(INS_KK0501_SEIKY_WAY_NO_KOZA, template.getString(EKK0501D010CBSMsg.SEIKY_WAY_NO_KOZA));
		// eo電気登録作業項目マップ.更新年月日時分秒(請求契約) ← 更新年月日時分秒
		elecWorkMap.put(INS_KK0491_UPD_DTM, template.getString(EKK0501D010CBSMsg.UPD_DTM));

		// エラー情報の設定
		editErrInfoCommon(param, template, (Integer)returnCode, fixedText);

		// エラー情報マッピング(項目名が異なる)
		HashMap inMap = (HashMap)param.getData(fixedText);
		if (!JKKStringUtil.isNullBlank(template.getString(EKK0501D010CBSMsg.IDO_DIV_ERR)))
		{
			// 異動区分エラー
			inMap.put("mskm_sbt_cd_err", template.getString(EKK0501D010CBSMsg.IDO_DIV_ERR));
		}

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * 口振審査依頼の下りマッピング処理です。
	 * <br>
	 * @param msgList SCの戻り値
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Exception 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK0501C030Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText)
	throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// eo電気登録作業項目マップ.更新年月日時分秒(請求契約) ← 更新年月日時分秒
		elecWorkMap.put(INS_KK0491_UPD_DTM, template.getString(EKK0501C030CBSMsg.UPD_DTM));

		// エラー情報の設定
		editErrInfoCommon(param, template, (Integer)returnCode, fixedText);

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * 口振審査結果OK登録の下りマッピング処理です。
	 * <br>
	 * @param msgList SCの戻り値
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Exception 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK0501C080Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText)
	throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// eo電気登録作業項目マップ.更新年月日時分秒(請求契約) ← 更新年月日時分秒
		elecWorkMap.put(INS_KK0491_UPD_DTM, template.getString(EKK0501C080CBSMsg.UPD_DTM));

		// エラー情報の設定
		editErrInfoCommon(param, template, (Integer)returnCode, fixedText);

		// エラー情報マッピング(項目名が異なる)
		HashMap inMap = (HashMap)param.getData(fixedText);
		if (!JKKStringUtil.isNullBlank(template.getString(EKK0501C080CBSMsg.IDO_DIV_ERR)))
		{
			// 異動区分エラー
			inMap.put("mskm_sbt_cd_err", template.getString(EKK0501C080CBSMsg.IDO_DIV_ERR));
		}

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * 審査済クレジットカード登録の下りマッピング処理です。
	 * <br>
	 * @param msgList SCの戻り値
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Exception 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK0521D020Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText)
	throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// eo電気登録作業項目マップ.請求方法番号(クレジットカード) ← 請求方法番号(クレジットカード)
		elecWorkMap.put(INS_KK0521_SEIKY_WAY_NO_CRECARD, template.getString(EKK0521D020CBSMsg.SEIKY_WAY_NO_CRECARD));
		// eo電気登録作業項目マップ.世代登録年月日時分秒(クレジットカード) ← 世代登録年月日時分秒
		elecWorkMap.put(INS_KK0521_GENE_ADD_DTM, template.getString(EKK0521D020CBSMsg.GENE_ADD_DTM));
		// eo電気登録作業項目マップ.更新年月日時分秒(請求契約) ← 更新年月日時分秒
		elecWorkMap.put(INS_KK0491_UPD_DTM, template.getString(EKK0521D020CBSMsg.UPD_DTM));

		// エラー情報の設定
		editErrInfoCommon(param, template, (Integer)returnCode, fixedText);

		// エラー情報マッピング(項目名が異なる)
		HashMap inMap = (HashMap)param.getData(fixedText);
		// ANK-3846-00-00 DEL START
//		if (!JKKStringUtil.isNullBlank(template.getString(EKK0521D020CBSMsg.AUTHORI_SHONIN_NO_ERR)))
//		{
//			// オーソリ承認番号エラー
//			inMap.put("cr_authnumber_err", template.getString(EKK0521D020CBSMsg.AUTHORI_SHONIN_NO_ERR));
//		}
		// ANK-3846-00-00 DEL END
		if (!JKKStringUtil.isNullBlank(template.getString(EKK0521D020CBSMsg.IDO_DIV_ERR)))
		{
			// 異動区分エラー
			inMap.put("mskm_sbt_cd_err", template.getString(EKK0521D020CBSMsg.IDO_DIV_ERR));
		}
		if (!JKKStringUtil.isNullBlank(template.getString(EKK0521D020CBSMsg.CRECARD_NO_AZKRI_ID_ERR)))
		{
			// クレジットカード番号預りIDエラー
			inMap.put("save_id_err", template.getString(EKK0521D020CBSMsg.CRECARD_NO_AZKRI_ID_ERR));
		}

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * 請求支払先変更の下りマッピング処理です。
	 * <br>
	 * @param msgList SCの戻り値
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Exception 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK0491C240Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText)
	throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// eo電気登録作業項目マップ.世代登録年月日時分秒(請求契約) ← 世代登録年月日時分秒
		elecWorkMap.put(INS_KK0491_GENE_ADD_DTM, template.getString(EKK0491C240CBSMsg.GENE_ADD_DTM));
		// eo電気登録作業項目マップ.更新年月日時分秒(請求契約) ← 更新年月日時分秒
		elecWorkMap.put(INS_KK0491_UPD_DTM, template.getString(EKK0491C240CBSMsg.UPD_DTM));

		// エラー情報の設定
		editErrInfoCommon(param, template, (Integer)returnCode, fixedText);

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * クレジットオーソリ実績登録の下りマッピング処理です。
	 * <br>
	 * @param msgList SCの戻り値
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Exception 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK1031D010Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText)
	throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// エラー情報の設定
		editErrInfoCommon(param, template, (Integer)returnCode, fixedText);

		// エラー情報マッピング(項目名が異なる)
		HashMap inMap = (HashMap)param.getData(fixedText);
		if (!JKKStringUtil.isNullBlank(template.getString(EKK1031D010CBSMsg.CRECARD_NO_AZKRI_ID_ERR)))
		{
			// クレジットカード番号預りIDエラー
			inMap.put("save_id_err", template.getString(EKK1031D010CBSMsg.CRECARD_NO_AZKRI_ID_ERR));
		}

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}
	// ANK-3210-00-00 ADD END

	// ANK-3210-16-00 ADD START
	/**
	 * 申込_代理店登録の下りマッピング処理
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @param tratCd
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK0071D010Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText, String tratCd)
			throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// エラー情報の設定
		editErrInfoEKK0071D010Msg(param, template, (Integer)returnCode, fixedText, tratCd);

		// エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}
	// ANK-3210-16-00 ADD END
// ANK-3520-01-00 ADD START
	/**
	 * 契約者情報連絡先一覧照会の下りマッピング処理です。
	 * <br>
	 * @param msgList SCの戻り値
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Exception 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutECK0201B011Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText)
	throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		CAANMsg[] templateArray = template.getCAANMsgList(ECK0201B011CBSMsg.ECK0201B011CBSMSG1LIST);

		if (templateArray != null && templateArray.length > 0)
		{
			// eo電気登録作業項目マップ.契約者情報連絡先一覧照会明細 ← 契約者情報連絡先一覧照会明細
			elecWorkMap.put(SRC_CK0201_ECK0201B011CBSMSG1LIST, templateArray);
		}

		// エラー情報の設定
		editErrInfoCommon(param, template, (Integer)returnCode, fixedText);

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * メール送信情報登録の下りマッピング処理です。
	 * <br>
	 * @param msgList SCの戻り値
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Exception 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutECC0021D010Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText)
	throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// エラー情報の設定
		editErrInfoCommon(param, template, (Integer)returnCode, fixedText);

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}
// ANK-3520-01-00 ADD END

	/**
	 * サービス契約一意照会のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrInfoEKK0081A010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0081A010CBSMsg.STATUS);
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + String.format(RETURN_MESSAGE_FORMAT, templateStatus)) == null)
		{
			templateStatus = 0;
		}

		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}

		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format(RETURN_MESSAGE_FORMAT, templateStatus);
			String message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

		HashMap inMap = null;

		// 作業項目領域
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* ユーザデータ情報 */
		inMap = (HashMap)param.getData(fixedText);

		// サービス契約一意照会.ＫＥＹ＿サービス契約番号 → サービス契約番号のエラー情報返却
		if (!template.isNull(EKK0081A010CBSMsg.KEY_SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey("knrn_svc_kei_no_err"))
			{
				inMap.put("knrn_svc_kei_no_err", template.getString(EKK0081A010CBSMsg.KEY_SVC_KEI_NO_ERR));
			}
		}

		return param;
	}

	/**
	 * 申込内容承認登録のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrInfoEKK0011D020Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		CAANMsg[] templateArray = null;
		int templateStatus = template.getInt(EKK0011D020CBSMsg.STATUS);
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + String.format(RETURN_MESSAGE_FORMAT, templateStatus)) == null)
		{
			templateStatus = 0;
		}

		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}

		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format(RETURN_MESSAGE_FORMAT, templateStatus);
			String message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

		HashMap inMap = null;

		// 作業項目領域
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* ユーザデータ情報 */
		inMap = (HashMap)param.getData(fixedText);

		// 申込内容承認登録マップ.SYSID → SYSID のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.SYSID_ERR))
		{
			if (!inMap.containsKey("sysid_err"))
			{
				inMap.put("sysid_err", template.getString(EKK0011D020CBSMsg.SYSID_ERR));
			}
		}
		// 申込内容承認登録マップ.申込種別コード → 申込種別コード のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.MSKM_SBT_CD_ERR))
		{
			if (!inMap.containsKey("mskm_sbt_cd_err"))
			{
				inMap.put("mskm_sbt_cd_err", template.getString(EKK0011D020CBSMsg.MSKM_SBT_CD_ERR));
			}
		}
		// 申込内容承認登録マップ.申込書到着年月日 → 申込書到着年月日 のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.MSKMSHO_ARIV_YMD_ERR))
		{
			if (!inMap.containsKey("mskmsho_ariv_ymd_err"))
			{
				inMap.put("mskmsho_ariv_ymd_err", template.getString(EKK0011D020CBSMsg.MSKMSHO_ARIV_YMD_ERR));
			}
		}
		// 申込内容承認登録マップ.申込受付担当ユーザーＩＤ → 申込受付担当ユーザーID のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.MSKM_UK_TNT_USER_ID_ERR))
		{
			if (!inMap.containsKey("mskm_uk_tnt_user_id_err"))
			{
				inMap.put("mskm_uk_tnt_user_id_err", template.getString(EKK0011D020CBSMsg.MSKM_UK_TNT_USER_ID_ERR));
			}
		}
		// 申込内容承認登録マップ.申込年月日 → 申込年月日 のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.MSKM_YMD_ERR))
		{
			if (!inMap.containsKey("mskm_ymd_err"))
			{
				inMap.put("mskm_ymd_err", template.getString(EKK0011D020CBSMsg.MSKM_YMD_ERR));
			}
		}

		templateArray = template.getCAANMsgList(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST);

		if (templateArray != null)
		{
			for (int i = 0; i < templateArray.length; i++)
			{
				CAANMsg childTemplate = templateArray[i];

				// 申込内容承認登録マップ.申込内容承認登録明細.申込書番号 → 申込内容承認登録明細.申込書番号 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.MSKMSHO_NO_ERR))
				{
					if (!inMap.containsKey("mskmsho_no_err"))
					{
						inMap.put("mskmsho_no_err", childTemplate.getString(EKK0011D020CBSMsg1List.MSKMSHO_NO_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.申込形態コード → 申込内容承認登録明細.申込形態コード のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.MSKM_FORM_CD_ERR))
				{
					if (!inMap.containsKey("mskm_form_cd_err"))
					{
						inMap.put("mskm_form_cd_err", childTemplate.getString(EKK0011D020CBSMsg1List.MSKM_FORM_CD_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.連絡事項 → 申込内容承認登録明細.連絡事項 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.RRK_JIKO_ERR))
				{
					if (!inMap.containsKey("rrk_jiko_err"))
					{
						inMap.put("rrk_jiko_err", childTemplate.getString(EKK0011D020CBSMsg1List.RRK_JIKO_ERR));
					}
				}
				// 申込内容承認登録マップ.申込登録明細.申込書種別コード → 申込登録明細.申込書種別コード のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.MSKMSHO_SBT_CD_ERR))
				{
					if (!inMap.containsKey("mskmsho_sbt_cd_err"))
					{
						inMap.put("mskmsho_sbt_cd_err", childTemplate.getString(EKK0011D020CBSMsg1List.MSKMSHO_SBT_CD_ERR));
					}
				}
				// ANK-2990-00-00 ADD START
				// 申込内容承認登録マップ.申込登録明細.同時申込eo光申込書番号 → 申込登録明細.同時申込eo光申込書番号 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.DOJI_MSKM_EOH_MSKMSHO_NO_ERR))
				{
					if (!inMap.containsKey("doji_mskm_eoh_mskmsho_no_err"))
					{
						inMap.put("eoh_mskmsho_no_err", childTemplate.getString(EKK0011D020CBSMsg1List.DOJI_MSKM_EOH_MSKMSHO_NO_ERR));
					}
				}
				// ANK-2990-00-00 ADD END
				// ANK-3210-00-00 ADD START
				// 申込内容承認登録マップ.申込登録明細.本人確認書類種別コードー → 申込登録明細.本人確認書類種別コード のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.HNIN_CFM_ATICLE_SBT_CD_ERR))
				{
					if (!inMap.containsKey("hnin_cfm_aticle_sbt_cd_err"))
					{
						inMap.put("hnin_cfm_aticle_sbt_cd_err", childTemplate.getString(EKK0011D020CBSMsg1List.HNIN_CFM_ATICLE_SBT_CD_ERR));
					}
				}
				// 申込内容承認登録マップ.申込登録明細.本人確認書類名 → 申込登録明細.本人確認書類名 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.HNIN_CFM_ATICLE_NM_ERR))
				{
					if (!inMap.containsKey("hnin_cfm_aticle_nm_err"))
					{
						inMap.put("hnin_cfm_aticle_nm_err", childTemplate.getString(EKK0011D020CBSMsg1List.HNIN_CFM_ATICLE_NM_ERR));
					}
				}
				// ANK-3210-00-00 ADD END
			}
		}
		
		return param;
	}

	/**
	 * サービス契約＜eo電気＞登録のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrInfoEKK2981D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK2981D010CBSMsg.STATUS);
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + String.format(RETURN_MESSAGE_FORMAT, templateStatus)) == null)
		{
			templateStatus = 0;
		}

		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}

		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format(RETURN_MESSAGE_FORMAT, templateStatus);
			String message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

		HashMap inMap = null;

		// 作業項目領域
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* ユーザデータ情報 */
		inMap = (HashMap)param.getData(fixedText);

		// サービス契約＜eo電気＞登録.SYSID → SYSID のエラー情報返却
		if (!template.isNull(EKK2981D010CBSMsg.SYSID_ERR))
		{
			if (!inMap.containsKey("sysid_err"))
			{
				inMap.put("sysid_err", template.getString(EKK2981D010CBSMsg.SYSID_ERR));
			}
		}

		// サービス契約＜eo電気＞登録.異動区分 → 異動区分 のエラー情報返却
		if (!template.isNull(EKK2981D010CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey("mskm_sbt_cd_err"))
			{
				inMap.put("mskm_sbt_cd_err", template.getString(EKK2981D010CBSMsg.IDO_DIV_ERR));
			}
		}

		// サービス契約＜eo電気＞登録.請求契約番号 → 請求契約番号 のエラー情報返却
		if (!template.isNull(EKK2981D010CBSMsg.SEIKY_KEI_NO_ERR))
		{
			if (!inMap.containsKey("hikiate_seiky_kei_no_err"))
			{
				inMap.put("hikiate_seiky_kei_no_err", template.getString(EKK2981D010CBSMsg.SEIKY_KEI_NO_ERR));
			}
		}

		return param;
	}

	/**
	 * サービス契約グループ設定登録のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrInfoEKK2961D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK2961D010CBSMsg.STATUS);
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + String.format(RETURN_MESSAGE_FORMAT, templateStatus)) == null)
		{
			templateStatus = 0;
		}

		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}

		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format(RETURN_MESSAGE_FORMAT, templateStatus);
			String message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

		HashMap inMap = null;

		// 作業項目領域
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* ユーザデータ情報 */
		inMap = (HashMap)param.getData(fixedText);

		// サービス契約グループ設定登録.サービス契約番号 → サービス契約番号のエラー情報返却
		if (!template.isNull(EKK2961D010CBSMsg.SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey("svc_kei_no_err"))
			{
				inMap.put("svc_kei_no_err", template.getString(EKK2961D010CBSMsg.SVC_KEI_NO_ERR));
			}
		}

		// サービス契約グループ設定登録.サービス契約回線内訳番号 → サービス契約回線内訳番号のエラー情報返却
		if (!template.isNull(EKK2961D010CBSMsg.SVKEI_GRP_SKBT_NO_ERR))
		{
			if (!inMap.containsKey("svc_kei_kaisen_ucwk_no_err"))
			{
				// ▽▽ OT-2016-0000004 ADD START ▽▽
				if(template.getString(EKK2961D010CBSMsg.SVKEI_GRP_SKBT_NO_ERR).equals("EB"))
				{
					// サービス契約グループ識別番号のエラーコードが"EB"の場合、サービスとしては"EA"を返却する
					inMap.put("svc_kei_kaisen_ucwk_no_err", EA_ERR);
				}
				else
				{
				// △△ OT-2016-0000004  ADD  END △△
					inMap.put("svc_kei_kaisen_ucwk_no_err", template.getString(EKK2961D010CBSMsg.SVKEI_GRP_SKBT_NO_ERR));
				
				// ▽▽ OT-2016-0000004 ADD START ▽▽
				}
				// △△ OT-2016-0000004  ADD  END △△
			}
		}

		return param;
	}

	/**
	 * 進捗登録のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrInfoEKK1091D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK1091D010CBSMsg.STATUS);
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + String.format(RETURN_MESSAGE_FORMAT, templateStatus)) == null)
		{
			templateStatus = 0;
		}

		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}

		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format(RETURN_MESSAGE_FORMAT, templateStatus);
			String message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

		HashMap inMap = null;

		// 作業項目領域
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* ユーザデータ情報 */
		inMap = (HashMap)param.getData(fixedText);

		// 進捗登録マップ.サービス契約番号 → サービス契約番号ド のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey("svc_kei_no_err"))
			{
				inMap.put("svc_kei_no_err", template.getString(EKK1091D010CBSMsg.SVC_KEI_NO_ERR));
			}
		}
		// 進捗登録マップ.異動区分 → 異動区分 のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey("mskm_sbt_cd_err"))
			{
				inMap.put("mskm_sbt_cd_err", template.getString(EKK1091D010CBSMsg.IDO_DIV_ERR));
			}
		}

		return param;
	}

	// ANK-3210-16-00 ADD START
	/**
	 * 申込_代理店登録のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @param tratCd
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrInfoEKK0071D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText, String tratCd)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0071D010CBSMsg.STATUS);
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + String.format(RETURN_MESSAGE_FORMAT, templateStatus)) == null)
		{
			templateStatus = 0;
		}

		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}

		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format(RETURN_MESSAGE_FORMAT, templateStatus);
			String message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

		HashMap inMap = null;

		// 作業項目領域
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* ユーザデータ情報 */
		inMap = (HashMap)param.getData(fixedText);

		// 申込_代理店登録.代理店コード → 代理店コードのエラー情報返却
		if (!template.isNull(EKK0071D010CBSMsg.AGNT_CD_ERR))
		{
			if (!inMap.containsKey(tratCd + "_err"))
			{
				inMap.put(tratCd + "_err", template.getString(EKK0071D010CBSMsg.AGNT_CD_ERR));
				
				// 代理店コードのエラーコードが"EA"の場合、サービスとしては"EC"を返却する
				if(template.getString(EKK0071D010CBSMsg.AGNT_CD_ERR).equals("EA"))
				{
					inMap.put(tratCd + "_err", EC_ERR);
				}
				// 代理店コードのエラーコードが"EB"の場合、サービスとしては"ED"を返却する
				if(template.getString(EKK0071D010CBSMsg.AGNT_CD_ERR).equals("EB"))
				{
					inMap.put(tratCd + "_err", ED_ERR);
				}
			}
		}

		return param;
	}
	// ANK-3210-16-00 ADD END

	// ANK-3210-00-00 ADD START
	/**
	 * エラー情報マッピング処理(共通)を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param template CAANMsgオブジェクト
	 * @param returnCode リターンコード
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws RequestParameterException 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoCommon(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
	throws RequestParameterException 
	{
		int templateStatus = template.getInt(JCMConstants.STATUS_INT_KEY);
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + String.format(RETURN_MESSAGE_FORMAT, templateStatus)) == null)
		{
			templateStatus = 0;
		}

		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}

		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format(RETURN_MESSAGE_FORMAT, templateStatus);
			String message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

		HashMap inMap = null;

		// 作業項目領域
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* ユーザデータ情報 */
		inMap = (HashMap)param.getData(fixedText);

		HashMap map = template.getHashMap();
		Iterator it = map.keySet().iterator();
		while (it.hasNext())
		{
			String key = (String)it.next();
			if (key.endsWith("_err"))
			{
				int keyIdx = key.lastIndexOf("_err");
				if (inMap.containsKey(key.substring(0, keyIdx)))
				{
					inMap.put(key, map.get(key));
				}
			}
		}

		return param;
	}
	// ANK-3210-00-00 ADD END

	/**
	 * CAANMsgに値を設定します。<br>
	 *  @inMap内にデータが存在する場合、inMap内のデータを設定します。<br>
	 *  A上記以外の場合、setNullを呼び出します。<br>
	 * @param template 値を設定するメッセージキャリア
	 * @param setKey 設定先メッセージキャリアのキー名
	 * @param inMap ユーザデータ情報
	 * @param prefix ユーザデータ情報より取得する場合に付加するプレフィックス 
	 * @param getKey ユーザデータ情報より取得するキー名
	 */
	private void setTemplate(CAANMsg template, String setKey, HashMap<String, Object> inMap, String prefix, String getKey)
	{
		
		if (null == inMap || null == inMap.get(prefix + getKey) || 0 == ((String)inMap.get(prefix + getKey)).length())
		{
			template.setNull(setKey);
		}
		else
		{
			template.set(setKey, (String)inMap.get(prefix + getKey));
		}
	}

	/**
	 * インプットパラメータの整合性チェック(単関連)
	 * @param param
	 * @param fixedText
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void itemRelationCheck(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		boolean errExists = false;
		String[] checkList = null;

		ArrayList<Object> errList = new ArrayList<Object>();

		HashMap<String, Object> errorMap = new HashMap<String, Object>();
		HashMap<String, String> errorMapChild = new HashMap<String, String>();

		// ANK-3210-00-00 DEL START
//		// ********************************************************************
//		// 住所チェック
//		// ********************************************************************
//		String paramSohusAdCd = "";				// 送付先住所コード
//		String paramSohusAdManInputFlg = "";	// 送付先住所手動入力フラグ
//		String paramSohusStateNm = "";			// 送付先都道府県名
//		String paramSohusCityNm = "";			// 送付先市区町村名
//		String paramSohusOaztsuNm = "";			// 送付先大字通称名
//		String paramSohusAzchoNm = "";			// 送付先字丁目名
//		String paramSohusBnchigo = "";			// 送付先番地号
//
//		// 送付先住所コード取得
//		if(inMap.get("sohus_ad_cd") != null && !"".equals(inMap.get("sohus_ad_cd")))
//		{
//			paramSohusAdCd = (String)inMap.get("sohus_ad_cd");
//		}
//		// 送付先住所手動入力フラグ取得
//		if(inMap.get("sohus_ad_man_input_flg") != null && !"".equals(inMap.get("sohus_ad_man_input_flg")))
//		{
//			// 送付先住所手動入力フラグがnullの場合は"0"手動入力でないとして扱う
//			paramSohusAdManInputFlg = (String)inMap.get("sohus_ad_man_input_flg");
//		}
//		else
//		{
//			// 送付先住所手動入力フラグがnullの場合は"0"手動入力でないとして扱う
//			paramSohusAdManInputFlg = JKKStrConst.AD_MAN_INPUT_NO;
//		}
//		// 送付先都道府県名取得
//		if(inMap.get("sohus_state_nm") != null && !"".equals(inMap.get("sohus_state_nm")))
//		{
//			paramSohusStateNm = (String)inMap.get("sohus_state_nm");
//		}
//		// 送付先市区町村名取得
//		if(inMap.get("sohus_city_nm") != null && !"".equals(inMap.get("sohus_city_nm")))
//		{
//			paramSohusCityNm = (String)inMap.get("sohus_city_nm");
//		}
//		// 送付先大字通称名取得
//		if(inMap.get("sohus_oaztsu_nm") != null && !"".equals(inMap.get("sohus_oaztsu_nm")))
//		{
//			paramSohusOaztsuNm = (String)inMap.get("sohus_oaztsu_nm");
//		}
//		// 送付先字丁目名取得
//		if(inMap.get("sohus_azcho_nm") != null && !"".equals(inMap.get("sohus_azcho_nm")))
//		{
//			paramSohusAzchoNm = (String)inMap.get("sohus_azcho_nm");
//		}
//		// 送付先番地号取得
//		if(inMap.get("sohus_bnchigo") != null && !"".equals(inMap.get("sohus_bnchigo")))
//		{
//			paramSohusBnchigo = (String)inMap.get("sohus_bnchigo");
//		}
//
//		// 住所チェック処理を呼び出す
//		HashMap<String, Object>  checkRsltMap = getAdChkMap(
//				paramSohusAdCd,
//				paramSohusAdManInputFlg,
//				paramSohusStateNm,
//				paramSohusCityNm,
//				paramSohusOaztsuNm,
//				paramSohusAzchoNm,
//				paramSohusBnchigo);
//
//		// 住所61文字チェック(桁数チェック)
//		if(!(Boolean)checkRsltMap.get(AD_DIGITNO_CKRLT))
//		{
//			// 都道府県名桁数チェック結果
//			if(!(Boolean)checkRsltMap.get(STATE_NM_CKRLT))
//			{
//				// エラーを設定
//				errExists = true;
//				inMap.put("sohus_state_nm" + STR_ERR, E3_ERR);
//				errorMapChild.put("sohus_state_nm" + STR_ERR, E3_ERR);
//			}
//			// 市区町村名桁数チェック結果
//			if(!(Boolean)checkRsltMap.get(CITY_NM_CKRLT))
//			{
//				// エラーを設定
//				errExists = true;
//				inMap.put("sohus_city_nm" + STR_ERR, E3_ERR);
//				errorMapChild.put("sohus_city_nm" + STR_ERR, E3_ERR);
//			}
//			// 大字通称名桁数チェック結果
//			if(!(Boolean)checkRsltMap.get(OAZTSU_NM_CKRLT))
//			{
//				// エラーを設定
//				errExists = true;
//				inMap.put("sohus_oaztsu_nm" + STR_ERR, E3_ERR);
//				errorMapChild.put("sohus_oaztsu_nm" + STR_ERR, E3_ERR);
//			}
//			// 字丁目名桁数チェック結果
//			if(!(Boolean)checkRsltMap.get(AZCHO_NM_CKRLT))
//			{
//				// エラーを設定
//				errExists = true;
//				inMap.put("sohus_azcho_nm" + STR_ERR, E3_ERR);
//				errorMapChild.put("sohus_azcho_nm" + STR_ERR, E3_ERR);
//			}
//			// 番地号桁数チェック結果
//			if(!(Boolean)checkRsltMap.get(BNCHIGO_CKRLT))
//			{
//				// エラーを設定
//				errExists = true;
//				inMap.put("sohus_bnchigo" + STR_ERR, E3_ERR);
//				errorMapChild.put("sohus_bnchigo" + STR_ERR, E3_ERR);
//			}
//		}
//
//		// 海外住所判定チェック
//		if((Boolean)checkRsltMap.get(FOREIGN_AD_CHK))
//		{
//			// 海外住所判定チェック結果
//			if(!(Boolean)checkRsltMap.get(FOREIGN_AD_CKRLT))
//			{
//				// エラーを設定
//				errExists = true;
//				inMap.put("sohus_ad_man_input_flg" + STR_ERR, E1_ERR);
//				errorMapChild.put("sohus_ad_man_input_flg" + STR_ERR, E1_ERR);
//			}
//		}
		// ANK-3210-00-00 DEL END

		// ANK-3210-00-00 ADD START
		// 請求契約番号が設定されていない場合
		if (JKKStringUtil.isNullBlank((String)inMap.get("hikiate_seiky_kei_no")))
		{
			// 請求方法コードの必須チェック
			if (checkNotNull(inMap, errorMapChild, "seiky_way_cd"))
			{
				errExists = true;
			}
			else
			{
				String seikyWayCd = (String)inMap.get("seiky_way_cd");
				// 請求方法コードが「預金口座振替」の場合
				if (JKKStrConst.SEIKY_WAY_CD_YOKIN.equals(seikyWayCd))
				{
					// 金融機関コードの必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "bank_cd");
					// 金融機関支店コードの必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "bank_shiten_cd");
					// 預金種目コードの必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "yokin_shumoku_cd");
					// 口座番号の必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "koza_no");
					// 新規コードの必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "new_cd");
					// 口座名義人カナ名の必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "koza_meigin_kana");
				}
				// 請求方法コードが「郵便自動振込」の場合
				else if (JKKStrConst.SEIKY_WAY_CD_YUCHO.equals(seikyWayCd))
				{
					// 金融機関コードの必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "bank_cd");
					// 金融機関支店コードの必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "bank_shiten_cd");
					// 新規コードの必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "new_cd");
					// 口座名義人カナ名の必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "koza_meigin_kana");
					// 通帳記号の必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "tsucho_symbol");
					// 通帳番号の必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "tsucho_no");
				}
				// 請求方法コードが「クレジット」の場合
				else if (JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(seikyWayCd))
				{
					// クレジットカード事業コードの必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "crecard_jigyo_cd");
					// クレジットカード会社コードの必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "crecard_comp_cd");
					// クレジットカード番号の必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "crecard_no");
					// クレジットカード有効期限の必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "crecard_yk_kigen");
// ANK-4619-00-00 DEL START
//					// クレジットカード名義カナ名の必須チェック
//					errExists = checkNotNull(inMap, errorMapChild, "crecard_nm_kana");
// ANK-4619-00-00 DEL END
					// 加盟店番号の必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "membstr_no");
					// ANK-3846-00-00 DEL START
//					// オーソリ承認番号の必須チェック
//					errExists = checkNotNull(inMap, errorMapChild, "cr_authnumber");
					// ANK-3846-00-00 DEL END
					// 仕向先会社コードの必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "shikosaki_comp_cd");
					// カード預りIDの必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "save_id");
					// ANK-3602-00-00 2019/07/17 ADD START
					// カード種別の必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "card_type");
					// イシュア区分の必須チェック
					errExists = checkNotNull(inMap, errorMapChild, "issuer_class");
					// ANK-3602-00-00 2019/07/17 ADD END
				}
			}

			// 本人確認書類種別コードが「その他」の場合
			if (JKKStrConst.CD00714_3.equals(inMap.get("hnin_cfm_aticle_sbt_cd")))
			{
				// 本人確認書類名の必須チェック
				errExists = checkNotNull(inMap, errorMapChild, "hnin_cfm_aticle_nm");
			}
		}
		// ANK-3210-00-00 ADD END

		// ANK-3210-16-00 ADD START
		// 取扱コード1-2が設定かつ、取扱コード1-1が未設定の場合をチェック
		if (!JKKStringUtil.isNullBlank((String)inMap.get("trat_cd_1_2")) && JKKStringUtil.isNullBlank((String)inMap.get("trat_cd_1_1")))
		{
			errExists = checkNotNull(inMap, errorMapChild, "trat_cd_1_1");
		}
		// 取扱コード2-2が設定かつ、取扱コード2-1が未設定の場合をチェック
		if (!JKKStringUtil.isNullBlank((String)inMap.get("trat_cd_2_2")) && JKKStringUtil.isNullBlank((String)inMap.get("trat_cd_2_1")))
		{
			errExists = checkNotNull(inMap, errorMapChild, "trat_cd_2_1");
		}
		// 取扱コード2-1が設定かつ、取扱コード1-1が未設定の場合をチェック
		if (!JKKStringUtil.isNullBlank((String)inMap.get("trat_cd_2_1")) && JKKStringUtil.isNullBlank((String)inMap.get("trat_cd_1_1")))
		{
			errExists = checkNotNull(inMap, errorMapChild, "trat_cd_1_1");
		}
		// 取扱コード1-2、取扱コード2-2の同一チェック
		if (!JKKStringUtil.isNullBlank((String)inMap.get("trat_cd_1_2")) && !JKKStringUtil.isNullBlank((String)inMap.get("trat_cd_2_2")))
		{
			errExists = checkDup(inMap, errorMapChild, "trat_cd_1_2", "trat_cd_2_2");
		}
		// ANK-3210-16-00 ADD END
// ANK-4619-00-00 ADD START
		// 請求契約番号が設定されていない、かつ、請求方法コードが「クレジット」の場合
		if (JKKStringUtil.isNullBlank((String)inMap.get("hikiate_seiky_kei_no")) && JKKStrConst.SEIKY_WAY_CD_CREDIT.equals((String)inMap.get("seiky_way_cd")))
		{
			// クレジットカード名義カナ名が未設定かつ、クレジットカード名義(ローマ字)が未設定の場合をチェック
			if (JKKStringUtil.isNullBlank((String)inMap.get("crecard_nm_kana")) && JKKStringUtil.isNullBlank((String)inMap.get("crecard_nm_romaji")))
			{
				errExists = checkNotNull(inMap, errorMapChild, "crecard_nm_romaji");
			}
		}
// ANK-4619-00-00 ADD END

		// エラーが存在する場合はエラー値を設定
		if (errExists)
		{
			String formatStatus = String.format(RETURN_MESSAGE_FORMAT, JPCModelConstant.ITEM_RELATION_ERR);
			String message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);

			errorMap.put(ErrorInfoMapKeys.RETURN_CODE, RETURN_CODE_NORMAL);
			errorMap.put(ErrorInfoMapKeys.TEMPLATE_ID, "JKKSvcKeiElecAddCC");
			errorMap.put(ErrorInfoMapKeys.STATUS, JPCModelConstant.ITEM_RELATION_ERR);
			errorMap.put(ErrorInfoMapKeys.ITEM_CHECK_ERRORS, errorMapChild);
			errList.add(errorMap);

			param.setControlMapData(SCControlMapKeys.ERROR_INFO, errList);
		}
	}

	// ANK-3210-00-00 ADD START
	/**
	 * 必須チェックを行い、エラーの場合はエラー情報を設定します。
	 * <br>
	 * @param inMap 入力情報
	 * @param errorMapChild 項目チェックエラー情報
	 * @param itemNm 項目名
	 * @return 必須チェックエラーの場合はtrue、そうでない場合はfalse
	 */
	private boolean checkNotNull(HashMap<String,Object> inMap, HashMap<String, String> errorMapChild, String itemNm)
	{
		if (JKKStringUtil.isNullBlank((String)inMap.get(itemNm)))
		{
			// エラーを設定
			inMap.put(itemNm + STR_ERR, E1_ERR);
			errorMapChild.put(itemNm + STR_ERR, E1_ERR);
			return true;
		}

		return false;
	}
	// ANK-3210-00-00 ADD END

	// ANK-3210-16-00 ADD START
	/**
	 * 重複チェックを行い、エラーの場合はエラー情報を設定します。
	 * <br>
	 * @param inMap 入力情報
	 * @param errorMapChild 項目チェックエラー情報
	 * @param itemNm1 項目名1
	 * @param itemNm2 項目名2
	 * @return 重複チェックエラーの場合はtrue、そうでない場合はfalse
	 */
	private boolean checkDup(HashMap<String, Object> inMap, HashMap<String, String> errorMapChild, String itemNm1, String itemNm2)
	{
		if (!JKKStringUtil.isNullBlank((String)inMap.get(itemNm1)) && !JKKStringUtil.isNullBlank((String)inMap.get(itemNm2)))
		{
			if (((String)inMap.get(itemNm1)).equals((String)inMap.get(itemNm2)))
			{
				// エラーを設定
				inMap.put(itemNm1 + STR_ERR, E2_ERR);
				errorMapChild.put(itemNm1 + STR_ERR, E2_ERR);
				return true;
			}
		}

		return false;
	}
	// ANK-3210-16-00 ADD END

	/**
	 * 住所チェック結果マップ取得処理。
	 * <br/>
	 * @param adcd          住所コード
	 * @param admaninputFlg 手動入力フラグ
	 * @param stateNm       都道府県名
	 * @param cityNm        市区町村名
	 * @param oaztsuNm      大字通称名
	 * @param azchoNm       字丁目名
	 * @param bnchigo       番地号
	 * @return              判定結果マップ
	 */
	public static HashMap<String, Object> getAdChkMap(
			String adcd, String admaninputFlg, String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo)
	{
		HashMap<String, Object> checkRsltMap = new HashMap<String, Object>();

		boolean adDigitnoCkrlt = false;	// 住所桁数チェック結果
		boolean stateNmCkrlt = false;	// 都道府県名桁数チェック結果
		boolean cityNmCkrlt = false;	// 市区町村名桁数チェック結果
		boolean oaztsuNmCkrlt = false;	// 大字通称名桁数チェック結果
		boolean azchoNmCkrlt = false;	// 字丁目名桁数チェック結果
		boolean bnchigoCkrlt = false;	// 番地号桁数チェック結果
		boolean foreignAdChk = false;	// 海外住所チェック
		boolean foreignAdCkrlt = false;	// 海外住所判定チェック結果

		//住所コードの分割を行う
		String adcd1 = "";
		String adcd2 = "";
		String adcd3 = "";
		if (adcd != null && adcd.length() == 11)
		{
			adcd1 = adcd.substring(2, 11);
			adcd2 = adcd.substring(5, 11);
			adcd3 = adcd.substring(8, 11);
		}

		// 各チェック項目の最大文字数の初期値設定
		int stateNmmax  = 0;
		int cityNmmax   = 0;
		int oaztsuNmmax = 0;
		int azchoNmmax  = 0;
		int bnchigomax  = 0;

		// 各項目に対する文字列数を取得
		int stateNmleng  = 0;
		int cityNmleng   = 0;
		int oaztsuNmleng = 0;
		int azchoNmleng  = 0;
		int bnchigoleng  = 0;
		
		// 入力情報の都道府県名の文字列数を取得(nullの場合は0とする)
		if (stateNm != null)
		{
			stateNmleng = stateNm.length();
		}
		
		// 入力情報の市区町村名の文字列数を取得(nullの場合は0とする)
		if (cityNm != null)
		{
			cityNmleng = cityNm.length();
		}
		
		// 入力情報の大字通称名の文字列数を取得(nullの場合は0とする)
		if (oaztsuNm != null)
		{
			oaztsuNmleng = oaztsuNm.length();
		}
		
		// 入力情報の字町目の文字列数を取得(nullの場合は0とする)
		if (azchoNm != null)
		{
			azchoNmleng = azchoNm.length();
		}
		// 入力情報の番地号の文字列数を取得(nullの場合は0とする)
		if (bnchigo != null)
		{
			bnchigoleng = bnchigo.length();
		}

		// 各項目に対する最大文字列数を取得
		// 手動入力フラグが"1"の場合は全項目に入力あり
		if(admaninputFlg != null && JKKStrConst.AD_MAN_INPUT_YES.equals(admaninputFlg))
		{
			// すべてが0の場合は番地号に集約
			if(FOREIGN_ADCD.equals(adcd))
			{
				bnchigomax  = 61;
			}
			else
			{
				stateNmmax  = 4;
				cityNmmax   = 12;
				oaztsuNmmax = 18;
				azchoNmmax  = 12;
				bnchigomax  = 15;
			}
		}
		else
		{
			// すべてが0の場合は番地号に集約
			// 注意：手動入力フラグが"0"の場合で、海外住所コードは画面上でエラーになるが
			// 入力だけは出来るためロジック上では存在する。
			if(FOREIGN_ADCD.equals(adcd))
			{
				bnchigomax  = 61;
			}
			// 下9桁が0の場合は都道府県に入力有
			else if ("000000000".equals(adcd1))
			{
				stateNmmax  = 4;
				bnchigomax  = 57;
			}
			// 下6桁が0の場合は都道府県、市区町村名に入力有
			else if ("000000".equals(adcd2))
			{
				stateNmmax  = 4;
				cityNmmax   = 12;
				bnchigomax  = 45;
			}
			// 下3桁が0の場合は都道府県、市区町村名、大字通称名が入力あり
			else if ("000".equals(adcd3))
			{
				stateNmmax  = 4;
				cityNmmax   = 12;
				oaztsuNmmax = 18;
				bnchigomax  = 27;
			}
			// 上記以外の場合は全項目に入力あり
			else
			{
				stateNmmax  = 4;
				cityNmmax   = 12;
				oaztsuNmmax = 18;
				azchoNmmax  = 12;
				bnchigomax  = 15;
			}
		}

		// 文字列チェックを実施
		// 都道府県名のチェック
		if(stateNmleng <= stateNmmax)
		{
			stateNmCkrlt = true;
		}
		// 市区町村名のチェック
		if(cityNmleng <= cityNmmax)
		{
			cityNmCkrlt = true;
		}
		// 大字通称名のチェック
		if(oaztsuNmleng <= oaztsuNmmax)
		{
			oaztsuNmCkrlt = true;
		}
		// 字丁目名のチェック
		if(azchoNmleng <= azchoNmmax)
		{
			azchoNmCkrlt = true;
		}
		// 番地号のチェック
		if(bnchigoleng <= bnchigomax)
		{
			bnchigoCkrlt = true;
		}
		// 住所桁数チェックのエラー有無
		adDigitnoCkrlt = stateNmCkrlt && cityNmCkrlt && oaztsuNmCkrlt && azchoNmCkrlt && bnchigoCkrlt;

		//  海外住所判定
		if(FOREIGN_ADCD.equals(adcd))
		{
			foreignAdChk = true;

			if (admaninputFlg != null && JKKStrConst.AD_MAN_INPUT_YES.equals(admaninputFlg))
			{
				foreignAdCkrlt = true;
			}
		}
		else
		{
			foreignAdCkrlt = true;
		}

		// 住所桁数チェック結果
		checkRsltMap.put(AD_DIGITNO_CKRLT, adDigitnoCkrlt);
		// 都道府県名桁数チェック結果
		checkRsltMap.put(STATE_NM_CKRLT, stateNmCkrlt);
		// 都道府県名最大桁数
		checkRsltMap.put(STATE_NM_MAX_DIGITNO, stateNmmax);
		// 市区町村名桁数チェック結果
		checkRsltMap.put(CITY_NM_CKRLT, cityNmCkrlt);
		// 市区町村名最大桁数
		checkRsltMap.put(CITY_NM_MAX_DIGITNO, cityNmmax);
		// 大字通称名桁数チェック結果
		checkRsltMap.put(OAZTSU_NM_CKRLT, oaztsuNmCkrlt);
		// 大字通称名最大桁数
		checkRsltMap.put(OAZTSU_NM_MAX_DIGITNO, oaztsuNmmax);
		// 字丁目名桁数チェック結果
		checkRsltMap.put(AZCHO_NM_CKRLT, azchoNmCkrlt);
		// 字丁目名最大桁数
		checkRsltMap.put(AZCHO_NM_MAX_DIGITNO, azchoNmmax);
		// 番地号桁数チェック結果
		checkRsltMap.put(BNCHIGO_CKRLT, bnchigoCkrlt);
		// 番地号最大桁数
		checkRsltMap.put(BNCHIGO_MAX_DIGITNO, bnchigomax);
		// 海外住所チェック
		checkRsltMap.put(FOREIGN_AD_CHK, foreignAdChk);

		// 海外住所判定チェック結果
		checkRsltMap.put(FOREIGN_AD_CKRLT, foreignAdCkrlt);

		return checkRsltMap;
	}

	/**
	 * サービス契約番号チェック<br>
	 * @param  param
	 * @param  fixedText
	 * @throws RequestParameterException 
	 */
	@SuppressWarnings("unchecked")
	private void kk0081SvcKeiNoCheck(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		String[] checkList = null;

		ArrayList<Object> errList = new ArrayList<Object>();

		HashMap<String, Object> errorMap = new HashMap<String, Object>();
		HashMap<String, String> errorMapChild = new HashMap<String, String>();

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* 作業項目情報 */
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// サービス契約番号が取得できていない場合はエラー
		if (elecWorkMap.get(SRC_KK0081_SVC_KEI_NO) == null || "".equals(elecWorkMap.get(SRC_KK0081_SVC_KEI_NO)))
		{
			inMap.put("knrn_svc_kei_no" + STR_ERR, EB_ERR);
			errorMapChild.put("knrn_svc_kei_no" + STR_ERR, EB_ERR);

			String formatStatus = String.format(RETURN_MESSAGE_FORMAT, JPCModelConstant.ITEM_RELATION_ERR);
			String message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);

			errorMap.put(ErrorInfoMapKeys.RETURN_CODE, RETURN_CODE_NORMAL);
			errorMap.put(ErrorInfoMapKeys.TEMPLATE_ID, "JKKSvcKeiElecAddCC");
			errorMap.put(ErrorInfoMapKeys.STATUS, JPCModelConstant.ITEM_RELATION_ERR);
			errorMap.put(ErrorInfoMapKeys.ITEM_CHECK_ERRORS, errorMapChild);
			errList.add(errorMap);

			param.setControlMapData(SCControlMapKeys.ERROR_INFO, errList);
		}
	}

	/**
	 * 戻り値の設定を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void setReturnMsg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* 作業項目情報 */
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		if (inMap.get("hikiate_seiky_kei_no") != null && !"".equals(inMap.get("hikiate_seiky_kei_no")))
		{
			// インプットの請求契約番号が設定されている場合、なにも設定しない
			inMap.put("new_htb_seiky_kei_no", "");
		}
		// ANK-3210-00-00 ADD START
		else
		{
			// 新規発番請求契約番号を設定
			inMap.put("new_htb_seiky_kei_no", (String)elecWorkMap.get(INS_KK0491_SEIKY_KEI_NO));
		}
		// ANK-3210-00-00 ADD END

		// 採番されたサービス契約番号を設定
		inMap.put("svc_kei_no", (String)elecWorkMap.get(INS_KK2951_SVC_KEI_NO));

	}
// ANK-3520-01-00 ADD START
	/**
	 * 支払登録慫慂メール送信を行います。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @throws Exception 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private void sendMailPayAddShoyo(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		HashMap<String, Object> paramMap = setSCInputCommonData(param, new HashMap<String, Object>());
		Map<?, ?> result = null;
		CAANMsg template = null;

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 作業項目情報
		HashMap elecWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_ELEC);
		if (elecWorkMap == null)
		{
			elecWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_ELEC, elecWorkMap);
		}

		// お客様一意照会
		template = editInECK0011A010Msg(param, fixedText);				// 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle);	// SC呼び出し
		editOutECK0011A010Msg(result, param, fixedText);				// 下りマッピング
		checkReturnCode(param);

		CAANMsg custMap = new CAANMsg();
		if (elecWorkMap.get(SRC_CK0011_ECK0011A010CBSMSG1LIST) != null)
		{
			custMap = ((CAANMsg[])elecWorkMap.get(SRC_CK0011_ECK0011A010CBSMSG1LIST))[0];
		}

		// 卸先事業者コードが設定されていない かつ契約者タイプコードが個人の場合
		if (JKKStringUtil.isNullBlank(custMap.getString(ECK0011A010CBSMsg1List.ORSJGS_CD))
				&& JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(custMap.getString(ECK0011A010CBSMsg1List.KEISHA_TYPE_CD)))
		{
			// 送信先メールアドレス
			String mlad = "";

			// 契約者情報連絡先一覧照会
			template = editInECK0201B011Msg(param, fixedText);				// 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle);	// SC呼び出し
			editOutECK0201B011Msg(result, param, fixedText);				// 下りマッピング
			checkReturnCode(param);

			// 契約者情報連絡先一覧照会明細
			if (elecWorkMap.get(SRC_CK0201_ECK0201B011CBSMSG1LIST) != null)
			{
				for (CAANMsg rrksMsg : (CAANMsg[])elecWorkMap.get(SRC_CK0201_ECK0201B011CBSMSG1LIST))
				{
					// 連絡方法コードがメールアドレスの場合
					if (JKKStrConst.CD00790_MLAD.equals(rrksMsg.getString(ECK0201B011CBSMsg1List.RRK_WAY_CD)))
					{
						// 連絡先分類コードがコンテンツ系連絡先の場合
						if (JKKStrConst.CD00871_CONT_RRS.equals(rrksMsg.getString(ECK0201B011CBSMsg1List.RRKS_BUNRUI_CD)))
						{
							mlad = rrksMsg.getString(ECK0201B011CBSMsg1List.MLAD);
							break;
						}
					}
				}
			}

			// 送信先メールアドレスが存在する場合、支払登録慫慂メールを送信する
			if (!JKKStringUtil.isNullBlank(mlad))
			{
				// メール送信情報登録
				template = editInECC0021D010Msg(param, fixedText, mlad);		// 上りマッピング
				result = scCall.run(putParamMap(paramMap, template), handle);	// SC呼び出し
				editOutECC0021D010Msg(result, param, fixedText);				// 下りマッピング
				checkReturnCode(param);
			}
		}
	}
// ANK-3520-01-00 ADD END

// ANK-4194-00-00 ADD START
	/**
	 * インプットパラメータの分割処理
	 * @param param
	 * @param key
	 * @param startPst 開始位置
	 * @param endPst 終了位置
	 * @param maxVal 最大値
	 * @return 処理結果リスト
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private ArrayList<String> bnktParam(CAANMsg param, String key, int startPst, int endPst, int maxVal) throws RequestParameterException
	{
		String val = "";
		ArrayList<String> outList = new ArrayList<String>();
		if (param.getString(key) != null && !"".equals(param.getString(key)))
		{
			val = param.getString(key);
			for (int i=endPst; i<=maxVal; i=i+endPst)
			{
				// key値が終了位置より大きい場合
				if (val.length() > i)
				{
					outList.add(val.substring(startPst, i));
					startPst = i;
				}
				// key値が終了位置以下の場合
				else if ((i-startPst) <= endPst)
				{
					outList.add(val.substring(startPst));
				}
				else
				{
					outList.add("");
				}
			}
		}
		return outList;
	}
// ANK-4194-00-00 ADD END
}
