/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKAddSvcKeiMineoCC
*   ソースファイル名：JKKAddSvcKeiMineoCC.java
*   作成者          ：富士通
*   日付            ：2013年12月16日
*＜機能概要＞
*   mineo登録コモンコンポーネント部品
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v8.00.00    2013/12/16   FJ）高橋    新規作成
*   v8.00.00    2013/12/16   FJ）高橋    【ANK-1584-00-00】L2-MVNO対応(本体)
*   v9.00.00    2014/06/20   FJ）佐野    【ANK-2174-00-00】MVNO窓口対応
*   v10.00.00   2014/11/06   FJ）中山    【OM-2014-0003582】クレジットオーソリ実績の抽出フラグの誤り対応
*   v20.00.00	2015/11/18	 FJ）抱	     【ANK-2565-00-00】クレジットカード番号預かりサービス導入（step3：預かり番号化）
*   v29.00.00   2017/04/25   FJ）柳      【ANK-3158-00-00】訪販申込情報の検索・取得API作成
*   v40.00.00	2018/12/20	 FJ) 前田	 【ANK-3315-00-00】mineoの取扱コード連携機能追加
*	v45.00.00	2019/07/17   FJ前田	     【ANK-3602-00-00】特定クレジットカードの売上オーソリ実施対応
*   v59.00.00	2022/03/24   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.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.IRequestParameterReadOnly;
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.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JKKStringConverter;
import eo.common.util.JKKStringUtil;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0011D020CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0011D020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0071D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B526CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B526CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081B529CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B529CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081C015CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081C015CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0441D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0491A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0491A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0491D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0521D020CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0531A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1031D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK2821C040CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2821D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKKA0010001CBSMsg;

/**
 * mineo登録コモンコンポーネント部品です。
 * <br>
 * @author 富士通
 */
public class JKKAddSvcKeiMineoCC 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_MINEO = "JKKAddSvcKeiMineoCC";

	/** ワークマップ用定数 */
	/** (登録処理の戻り値)申込明細番号 */
	private static final String INS_KK0011_MSKM_DTL_NO = "KK0011_mskm_dtl_no";
	/** (登録処理の戻り値)請求方法番号(クレジットカード) */
	private static final String INS_KK0521_SEIKY_WAY_NO_CRECA = "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";
	/** (登録処理の戻り値)サービス契約番号 */
	private static final String INS_KK2821_SVC_KEI_NO = "KK2821_svc_kei_no";
	/** (登録処理の戻り値)整理番号 */
	private static final String INS_KK0081_SEIRI_NO = "KK0081_seiri_no";

	/** (検索処理の戻り値)請求書発行要否 */
	private static final String SRC_KK0491_SEIKYUS_HAKKO_YH = "KK0491_seikyus_hakko_yh";
	/** (検索処理の戻り値)更新年月日時分秒 */
	private static final String SRC_KK0491_UPD_DTM = "KK0491_upd_dtm";
	/** (検索処理の戻り値)初期ｅｏＩＤ */
	private static final String SRC_CK0011_SHK_EOID = "CK0011_shk_eoid";

	// ANK-3315-00-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-3315-00-00 ADD END

	/** サービス契約ステータス：サービス提供中 */
	private static final int SVC_KEI_STAT_SVCTK_CHU = 100;
	/** サービス契約ステータス：停止中 */
	private static final int SVC_KEI_STAT_STP_CHU = 220;

	/** エラー固定文字列：E1 */
	private static final String E1_ERR = "E1";
	// ANK-3315-00-00 ADD START
	/** エラー固定文字列：E2 */
	private static final String E2_ERR = "E2";
	// ANK-3315-00-00 ADD END
	/** エラー固定文字列：E3 */
	private static final String E3_ERR = "E3";
	
	// ANK-3315-00-00 ADD START
	/** エラー固定文字列：EA */
	private static final String EA_ERR = "EA";
	/** エラー固定文字列：EB */
	private static final String EB_ERR = "EB";
	// ANK-3315-00-00 ADD END

	/** 単関連エラーチェック項目(クレジットカード) */
	private static final String[] CHECK_CREDIT_LIST = 
	{"crecard_jigyo_cd", 
	"crecard_comp_cd", 
	"crecard_no", 
	"crecard_yk_kigen", 
// ANK-4619-00-00 DEL START
//	"crecard_nm_kana", 
// ANK-4619-00-00 DEL END
	"seiky_way_cd", 
	"seikyus_hakko_yh", 
	"membstr_no", 
	// ANK-3846-00-00 DEL START	
//	"cr_authnumber", 
	// ANK-3846-00-00 DEL END
	"shikosaki_comp_cd", 
	"sks_shs_ksh_ad_sai_flg", 
	"sks_shs_nm_cust_nm_sai_flg", 
	"shs_kana", 
	"sohus_nm", 
	"sohus_ad_cd", 
	"sohus_pcd", 
	"sohus_bnchigo", 
	"sohus_telno",
	// ANK-3602-00-00 2019/07/17 ADD START
	"card_type", 
	"issuer_class"
	// ANK-3602-00-00 2019/07/17 ADD END
	};
	
	/** 単関連エラーチェック項目(窓口) */
	private static final String[] CHECK_OTHER_LIST = 
	{"seiky_way_cd", 
	"seikyus_hakko_yh", 
	"sks_shs_ksh_ad_sai_flg", 
	"sks_shs_nm_cust_nm_sai_flg", 
	"shs_kana", 
	"sohus_nm", 
	"sohus_ad_cd", 
	"sohus_pcd", 
	"sohus_bnchigo", 
	"sohus_telno"
	};


	////////////////////////////////////////
	//          住所チェック部品          //
	////////////////////////////////////////

	/** 海外住所コード */
	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-3315-00-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-3315-00-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));
	}

	/**
	 * mineo登録処理を行います。
	 * <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite addSvcKeiMineo(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;
		}

		String seikyWayCd = (String)inMap.get("seiky_way_cd");
		
		// 単関連チェック
		itemRelationCheck(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-3315-00-00 ADD START
		// 申込番号を取得
		String mskmNo = template.getString(EKK0011D020CBSMsg.MSKM_NO);
		// ANK-3315-00-00 ADD END

		// 請求契約番号が設定されていない場合のみ実行する
		if (inMap.get("hikiate_seiky_kei_no") == null || "".equals(inMap.get("hikiate_seiky_kei_no")))
		{
			//請求方法コードがクレジットカードの場合のみ実行する
			if(JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(seikyWayCd))
			{
				// 審査済クレジットカード登録
// ANK-2565-00-00 2015/11/18 mod start
//				template = editInEKK0521D020Msg(param, fixedText); // 上りマッピング
				template = editInEKK0521D020Msg(param, fixedText, handle); // 上りマッピング
// ANK-2565-00-00 2015/11/18 mod end
				result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
				editOutEKK0521D020Msg(result, param, fixedText); // 下りマッピング
				if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
				{
					// ステータスが単項目エラー以上であれば例外をスロー
					throw new CCException(SC_ERROR_STRING, new Exception());
				}
			}
			
			// 請求契約登録
			template = editInEKK0491D010Msg(param, fixedText); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editOutEKK0491D010Msg(result, param, fixedText); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{
				// ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
			
			//請求方法コードがクレジットカードの場合のみ実行する
			if(JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(seikyWayCd))
			{
				// クレジットオーソリ実績登録
				template = editInEKK1031D010Msg(param, fixedText); // 上りマッピング
				result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
				editOutEKK1031D010Msg(result, param, fixedText); // 下りマッピング
				if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
				{
					// ステータスが単項目エラー以上であれば例外をスロー
					throw new CCException(SC_ERROR_STRING, new Exception());
				}
			}
		}

		// サービス契約＜mineo＞登録
		template = editInEKK2821D010Msg(param, fixedText); // 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
		editOutEKK2821D010Msg(result, param, fixedText); // 下りマッピング
		if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
		{
			// ステータスが単項目エラー以上であれば例外をスロー
			throw new CCException(SC_ERROR_STRING, new Exception());
		}

		// お客様一意照会
		template = editInECK0011A010Msg(param, fixedText); // 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
		editOutECK0011A010Msg(result, param, fixedText); // 下りマッピング
		if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
		{
			// ステータスが単項目エラー以上であれば例外をスロー
			throw new CCException(SC_ERROR_STRING, new Exception());
		}

		// 整理番号発行要否
		boolean seiriNoHakkoYh = getSeiriNoHakkoYh(param);
		
		// 整理番号発行が要の時は整理番号を採番し、サービス契約＜mineo＞情報変更で更新する
		if (seiriNoHakkoYh)
		{
			// 整理番号採番
			template = editInEKK0081C015Msg(param, fixedText); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editOutEKK0081C015Msg(result, param, fixedText); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{
				// ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
	
			// サービス契約＜mineo＞情報変更
			template = editInEKK2821C040Msg(param, fixedText); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editOutEKK2821C040Msg(result, param, fixedText); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{
				// ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}

		// 請求契約番号が設定されている場合のみ実行する
		if (inMap.get("hikiate_seiky_kei_no") != null && !"".equals(inMap.get("hikiate_seiky_kei_no")))
		{
			// インターネットサービス一覧照会（請求契約番号）
			template = editInEKK0081B526Msg(param, fixedText); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editOutEKK0081B526Msg(result, param, fixedText); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{
				// ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}

			// 同一請求契約サービス契約一覧照会
			template = editInEKK0081B529Msg(param, fixedText); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editOutEKK0081B529Msg(result, param, fixedText); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{
				// ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}

			// 請求契約一意照会
			template = editInEKK0491A010Msg(param, fixedText); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editOutEKK0491A010Msg(result, param, fixedText); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{
				// ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}

			// 同一請求契約サービス契約の存在確認
			boolean isSvcKeiStat = isSameSeisvcSvcKei(param);

			// サービス契約の存在確認
			boolean isSvcKei = isSvcKei(param);

			String seikyusHakkoYh = getSeikyusHakkoYh(param);
			
			// サービス追加 かつ 支払方法継続の場合で請求オプションサービス契約の作成有無
			boolean svcAddSeiopsFlg = (!isSvcKei && JKKStrConst.CD00001_1.equals(seikyusHakkoYh));

			// 請求オプションサービス契約登録
			boolean isAddSeiopsvcKei = (!isSvcKeiStat && svcAddSeiopsFlg);
			
			if (isAddSeiopsvcKei)
			{
				// 請求オプションサービス契約登録
				template = editInEKK0441D010Msg(param, fixedText); // 上りマッピング
				result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
				editOutEKK0441D010Msg(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-3315-00-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-3315-00-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;
	}

	/**
	 * 申込内容承認登録の上りマッピング処理を行います。
	 * 
	 * <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");

		// 申込内容承認登録明細.申込書種別コード
		setTemplate(childTemplate, EKK0011D020CBSMsg1List.MSKMSHO_SBT_CD, inMap, prefix, "mskmsho_sbt_cd");

		// 申込内容承認登録明細.割引自動適用対象外フラグ(0：対象)
		childTemplate.set(EKK0011D020CBSMsg1List.WRIB_AUTO_APLY_TG_GAI_FLG, "0");
		
		// ANK-3158-00-00 2017/04/25 ADD START
		// eo光申込書番号 → 申込内容承認登録明細.同時申込eo光申込書番号
		setTemplate(childTemplate, EKK0011D020CBSMsg1List.DOJI_MSKM_EOH_MSKMSHO_NO, inMap, prefix, "eoh_mskmsho_no");
		// ANK-3158-00-00 2017/04/25 ADD END

		templateArray[0] = childTemplate;
		
		template.set(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST, templateArray);

		return template;
	}

	/**
	 * 審査済クレジットカード登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
// ANK-2565-00-00 2015/11/18 mod start
//	private CAANMsg editInEKK0521D020Msg(IRequestParameterReadWrite param, String fixedText, SessionHandle handle) throws RequestParameterException
	private CAANMsg editInEKK0521D020Msg(IRequestParameterReadWrite param, String fixedText, SessionHandle handle) throws RequestParameterException, Throwable
// ANK-2565-00-00 2015/11/18 mod end
	{
		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, "40");

		// 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");

// ANK-2565-00-00 2015/11/18 add start
		// 仕向先会社コード
		String paramCreditKokanCd = (String)inMap.get("shikosaki_comp_cd");
		String crecardCompCd = (String)inMap.get("crecard_comp_cd");
		if ("00000".equals(paramCreditKokanCd))
		{
			String paramCompCd = getCreditKokanCd(param, handle, crecardCompCd);
			template.set(EKK0521D020CBSMsg.SHIKOSAKI_COMP_CD, paramCompCd);
		}
		else
		{
			setTemplate(template, EKK0521D020CBSMsg.SHIKOSAKI_COMP_CD, inMap, prefix, "shikosaki_comp_cd");
		}

		// カード預りID
		setTemplate(template, EKK0521D020CBSMsg.CRECARD_NO_AZKRI_ID, inMap, prefix, "save_id");
// ANK-2565-00-00 2015/11/18 add end
// 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 CAANMsg
	 * @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);

		// 機能コード
		template.set(EKK0491D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* 作業項目情報 */
		HashMap mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		// 請求契約登録.SYSID
		setTemplate(template, EKK0491D010CBSMsg.SYSID, inMap, prefix, "sysid");

		// 請求契約登録.申込明細番号
		template.set(EKK0491D010CBSMsg.MSKM_DTL_NO, (String)mineoWorkMap.get(INS_KK0011_MSKM_DTL_NO));

		// 請求契約登録.請求方法コード
		setTemplate(template, EKK0491D010CBSMsg.SEIKY_WAY_CD, inMap, prefix, "seiky_way_cd");

		// 請求契約登録.契約締結年月日
		String operateDateGet = JCCBPCommon.getOpeDate(null);
		template.set(EKK0491D010CBSMsg.KEI_CNC_YMD, operateDateGet);

// 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

		// 請求契約登録.請求方法番号(クレジットカード)
		template.set(EKK0491D010CBSMsg.SEIKY_WAY_NO_CRECARD, (String)mineoWorkMap.get(INS_KK0521_SEIKY_WAY_NO_CRECA));

		// 請求契約登録.請求書発行要否
		setTemplate(template, EKK0491D010CBSMsg.SEIKYUS_HAKKO_YH, inMap, prefix, "seikyus_hakko_yh");

		// 請求契約登録.請求書送付先_契約者住所差異フラグ
		setTemplate(template, EKK0491D010CBSMsg.SKS_SHS_KSH_AD_SAI_FLG, inMap, prefix, "sks_shs_ksh_ad_sai_flg");

		// 請求契約登録.請求書送付先名_お客様名差異フラグ
		setTemplate(template, EKK0491D010CBSMsg.SKS_SHS_NM_CUST_NM_SAI_FLG, inMap, prefix, "sks_shs_nm_cust_nm_sai_flg");

		// 請求契約登録.送付先法人格種別コード
		setTemplate(template, EKK0491D010CBSMsg.SHS_HOJIN_SBT_CD, inMap, prefix, "shs_hojin_sbt_cd");

		// 請求契約登録.送付先法人格前後指定コード
		setTemplate(template, EKK0491D010CBSMsg.SHS_HOJIN_ZENGO_SHITEI_CD, inMap, prefix, "shs_hojin_zengo_shitei_cd");

		// 請求契約登録.送付先カナ名
		editParam(param, fixedText, "shs_kana", 15);
		setTemplate(template, EKK0491D010CBSMsg.SHS_KANA, inMap, prefix, "shs_kana");

		// ANK-4194-00-00 ADD START
		ArrayList<String> sohusNmBnktList = new ArrayList<String>();
		// 送付先名を、15文字毎に分割
		sohusNmBnktList = bnktParam(inMap, EKK0491D010CBSMsg.SOHUS_NM, 0, 15, 45);
		// 送付先名が設定されている場合
		if (null != sohusNmBnktList && sohusNmBnktList.size()>0 )
		{
			// 請求契約登録.送付先名
			template.set(EKK0491D010CBSMsg.SOHUS_NM, sohusNmBnktList.get(0));
			// 請求契約登録.送付先部課名
			template.set(EKK0491D010CBSMsg.SOHUS_BKM, sohusNmBnktList.get(1));
			// 請求契約登録.送付先担当者名
			template.set(EKK0491D010CBSMsg.SOHUS_TNTSHA_NM, sohusNmBnktList.get(2));
		}
		// ANK-4194-00-00 ADD END

		// 請求契約登録.送付先名
		editParam(param, fixedText, "sohus_nm", 15);
		// ANK-4194-00-00 DEL START
		//setTemplate(template, EKK0491D010CBSMsg.SOHUS_NM, inMap, prefix, "sohus_nm");
		// ANK-4194-00-00 DEL END

		// 請求契約登録.送付先部課名
		editParam(param, fixedText, "sohus_bkm", 15);
		// ANK-4194-00-00 DEL START
		//setTemplate(template, EKK0491D010CBSMsg.SOHUS_BKM, inMap, prefix, "sohus_bkm");
		// ANK-4194-00-00 DEL END

		// 請求契約登録.送付先担当者名
		editParam(param, fixedText, "sohus_tntsha_nm", 15);
		// ANK-4194-00-00 DEL START
		//setTemplate(template, EKK0491D010CBSMsg.SOHUS_TNTSHA_NM, inMap, prefix, "sohus_tntsha_nm");
		// ANK-4194-00-00 DEL END

		// 請求契約登録.送付先住所コード
		setTemplate(template, EKK0491D010CBSMsg.SOHUS_AD_CD, inMap, prefix, "sohus_ad_cd");

		// 請求契約登録.送付先郵便番号
		setTemplate(template, EKK0491D010CBSMsg.SOHUS_PCD, inMap, prefix, "sohus_pcd");

		// 請求契約登録.送付先都道府県名
		setTemplate(template, EKK0491D010CBSMsg.SOHUS_STATE_NM, inMap, prefix, "sohus_state_nm");

		// 請求契約登録.送付先市区町村名
		setTemplate(template, EKK0491D010CBSMsg.SOHUS_CITY_NM, inMap, prefix, "sohus_city_nm");

		// 請求契約登録.送付先大字通称名
		setTemplate(template, EKK0491D010CBSMsg.SOHUS_OAZTSU_NM, inMap, prefix, "sohus_oaztsu_nm");

		// 請求契約登録.送付先字丁目名
		setTemplate(template, EKK0491D010CBSMsg.SOHUS_AZCHO_NM, inMap, prefix, "sohus_azcho_nm");

		// 請求契約登録.送付先住所補記・建物名
		setTemplate(template, EKK0491D010CBSMsg.SOHUS_ADRTTM, inMap, prefix, "sohus_adrttm");

		// 請求契約登録.送付先住所補記・部屋番号
		setTemplate(template, EKK0491D010CBSMsg.SOHUS_ADRRM, inMap, prefix, "sohus_adrrm");

		// 請求契約登録.送付先番地号
		setTemplate(template, EKK0491D010CBSMsg.SOHUS_BNCHIGO, inMap, prefix, "sohus_bnchigo");

		// 請求契約登録.送付先電話番号
		setTemplate(template, EKK0491D010CBSMsg.SOHUS_TELNO, inMap, prefix, "sohus_telno");

		// 請求契約登録.送付先FAX番号
		setTemplate(template, EKK0491D010CBSMsg.SOHUS_FAX_NO, inMap, prefix, "sohus_fax_no");

		// 請求契約登録.送付先メールアドレス
		setTemplate(template, EKK0491D010CBSMsg.SOHUS_MLAD, inMap, prefix, "sohus_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");

		// 請求契約登録.送付先住所手動入力フラグ
		if (inMap == null || inMap.get("sohus_ad_man_input_flg") == null || "".equals(inMap.get("sohus_ad_man_input_flg")))
		{
			template.set(EKK0491D010CBSMsg.SOHUS_AD_MAN_INPUT_FLG, JKKStrConst.AD_MAN_INPUT_NO);
		}
		else
		{
			template.set(EKK0491D010CBSMsg.SOHUS_AD_MAN_INPUT_FLG, (String)inMap.get("sohus_ad_man_input_flg"));
		}

		// 請求契約登録.送付先住所チェックレベル
		template.set(EKK0491D010CBSMsg.SOHUS_AD_CHK_LV, JKKStrConst.AD_CHK_LV2);

		return template;

	}

	/**
	 * クレジットオーソリ実績登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @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);

		// 機能コード
		template.set(EKK1031D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* 作業項目情報 */
		HashMap mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		// クレジットオーソリ実績登録.請求契約番号
		if (inMap == null || inMap.get("hikiate_seiky_kei_no") == null || "".equals(inMap.get("hikiate_seiky_kei_no")))
		{
			template.set(EKK1031D010CBSMsg.SEIKY_KEI_NO, (String)mineoWorkMap.get(INS_KK0491_SEIKY_KEI_NO));
		}
		else
		{
			template.set(EKK1031D010CBSMsg.SEIKY_KEI_NO, (String)inMap.get("hikiate_seiky_kei_no"));
		}

		// クレジットオーソリ実績登録.請求契約世代登録年月日時分秒
		template.set(EKK1031D010CBSMsg.SEIKY_KEI_GENE_ADD_DTM, (String)mineoWorkMap.get(INS_KK0491_GENE_ADD_DTM));

		// クレジットオーソリ実績登録.請求方法番号(クレジットカード)
		template.set(EKK1031D010CBSMsg.SEIKY_WAY_NO_CRECARD, (String)mineoWorkMap.get(INS_KK0521_SEIKY_WAY_NO_CRECA));

		// クレジットオーソリ実績登録.クレジットカード世代登録年月日時分秒
		template.set(EKK1031D010CBSMsg.CRECARD_GENE_ADD_DTM, (String)mineoWorkMap.get(INS_KK0521_GENE_ADD_DTM));

		// クレジットオーソリ実績登録.クレジットカード会社コード
		setTemplate(template, EKK1031D010CBSMsg.CRECARD_COMP_CD, inMap, prefix, "crecard_comp_cd");

		// クレジットオーソリ実績登録.オーソリ処理コード(02：入会オーソリ)
		template.set(EKK1031D010CBSMsg.AUTH_TRAN_CD, "02");

		// クレジットオーソリ実績登録.売上オーソリ金額(固定値：1)
		template.set(EKK1031D010CBSMsg.SALES_AUTHORI_AMNT, "1");

		// クレジットオーソリ実績登録.クレジットカード番号
		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");

		// クレジットオーソリ実績登録.オーソリ要求コード(連携ファイルの申込種別コードで判断)
		if (inMap == null || inMap.get("mskm_sbt_cd") == null || "".equals(inMap.get("mskm_sbt_cd")))
		{
			template.setNull(EKK1031D010CBSMsg.AUTHORI_YOKYU_CD);
		}
		else
		{
			if(JKKStrConst.MSKM_SBT_CD_NEW_KEI.equals((String)inMap.get("mskm_sbt_cd")))
			{
				template.set(EKK1031D010CBSMsg.AUTHORI_YOKYU_CD, JKKStrConst.AUTHORI_YOKYU_CD_NEW_CONTRACT);
			}
			else if(JKKStrConst.MSKM_SBT_CD_SVC_ADD.equals((String)inMap.get("mskm_sbt_cd")))
			{
				template.set(EKK1031D010CBSMsg.AUTHORI_YOKYU_CD, JKKStrConst.AUTHORI_YOKYU_CD_SVC_ADD);
			}
			else
			{
				template.setNull(EKK1031D010CBSMsg.AUTHORI_YOKYU_CD);
			}
		}

		// クレジットオーソリ実績登録.処理フラグ(1:処理済)
		template.set(EKK1031D010CBSMsg.TRN_FLG, "1");

//OM-2014-0003582 MOD START
		// クレジットオーソリ実績登録.抽出フラグ(1:抽出済)
		template.set(EKK1031D010CBSMsg.CHSHT_FLG, "1");
//OM-2014-0003582 MOD END

		// クレジットオーソリ実績登録.取消コード(0:未処理)
		template.set(EKK1031D010CBSMsg.CL_CD, "0");

		return template;

	}

	/**
	 * サービス契約＜mineo＞登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK2821D010Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK2821D010CBSMsg.class.getName());
		String prefix = "";

		// テンプレートID
		template.set(EKK2821D010CBSMsg.TEMPLATEID, "EKK2821D010");

		// 機能コード（デフォルト：１）
		template.set(EKK2821D010CBSMsg.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(EKK2821D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* 作業項目情報 */
		HashMap mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		// サービス契約＜mineo＞登録.SYSID
		setTemplate(template, EKK2821D010CBSMsg.SYSID, inMap, prefix, "sysid");

		// サービス契約＜mineo＞登録.サービスコード(51：ＭＶＮＯサービス)
		template.set(EKK2821D010CBSMsg.SVC_CD, JKKStrConst.CD00130_51);

		// サービス契約＜mineo＞登録.申込明細番号
		template.set(EKK2821D010CBSMsg.MSKM_DTL_NO, (String)mineoWorkMap.get(INS_KK0011_MSKM_DTL_NO));

		// サービス契約＜mineo＞登録.料金グループコード(51：ｍｉｎｅｏ)
		template.set(EKK2821D010CBSMsg.PRC_GRP_CD, JKKStrConst.CD00133_51);

		// サービス契約＜mineo＞登録.料金コースコード(A81：ｍｉｎｅｏコース)
		template.set(EKK2821D010CBSMsg.PCRS_CD, JKKStrConst.CD00134_A81);

		// サービス契約＜mineo＞登録.料金プランコード(PA8101：ｍｉｎｅｏプラン)
		template.set(EKK2821D010CBSMsg.PPLAN_CD, JKKStrConst.CD00565_MINEO);

		// サービス契約＜mineo＞登録.支払い方法継続フラグ
		setPaywayKeizokuFlg(template, EKK2821D010CBSMsg.PAYWAY_KEIZOKU_FLG, inMap);

		// サービス契約＜mineo＞登録.異動区分
		setTemplate(template, EKK2821D010CBSMsg.IDO_DIV, inMap, prefix, "mskm_sbt_cd");

		// サービス契約＜mineo＞登録.自動照査処理状態コード(2：対象外)
		template.set(EKK2821D010CBSMsg.AUTO_SHOSA_TRAN_STAT_CD, JKKStrConst.CD00628_TGG);

		// サービス契約＜mineo＞登録.請求契約番号
		if (inMap == null || inMap.get("hikiate_seiky_kei_no") == null || "".equals(inMap.get("hikiate_seiky_kei_no")))
		{
			template.set(EKK2821D010CBSMsg.SEIKY_KEI_NO, (String)mineoWorkMap.get(INS_KK0491_SEIKY_KEI_NO));
		}
		else
		{
			template.set(EKK2821D010CBSMsg.SEIKY_KEI_NO, (String)inMap.get("hikiate_seiky_kei_no"));
		}

		return template;

	}

	/**
	 * お客様一意照会の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @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, "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, ECK0011A010CBSMsg.KEY_SYSID, inMap, prefix, "sysid");

		// お客様一意照会.ＫＥＹ＿予約適用年月日
		String operateDateGet = JCCBPCommon.getOpeDate(null);
		template.set(ECK0011A010CBSMsg.KEY_RSV_APLY_YMD, operateDateGet);

		return template;

	}

	/**
	 * 整理番号採番の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0081C015Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0081C015CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0081C015CBSMsg.TEMPLATEID, "EKK0081C015");

		// 機能コード（デフォルト：１）
		template.set(EKK0081C015CBSMsg.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(EKK0081C015CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* 作業項目情報 */
		HashMap mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		// 整理番号採番.初期ｅｏＩＤ
		if (mineoWorkMap == null || mineoWorkMap.get(SRC_CK0011_SHK_EOID) == null || "".equals(mineoWorkMap.get(SRC_CK0011_SHK_EOID)))
		{
			template.setNull(EKK0081C015CBSMsg.SHK_EOID);
		}
		else
		{
			template.set(EKK0081C015CBSMsg.SHK_EOID, (String)mineoWorkMap.get(SRC_CK0011_SHK_EOID));
		}

		// 整理番号採番.採番数(固定値：1)
		template.set(EKK0081C015CBSMsg.NP_NUM, "1");

		return template;

	}

	/**
	 * サービス契約＜mineo＞情報変更の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK2821C040Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK2821C040CBSMsg.class.getName());
		String prefix = "";

		// テンプレートID
		template.set(EKK2821C040CBSMsg.TEMPLATEID, "EKK2821C040");

		// 機能コード（デフォルト：１）
		template.set(EKK2821C040CBSMsg.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(EKK2821C040CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* 作業項目情報 */
		HashMap mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		// サービス契約＜mineo＞情報変更.サービス契約番号
		template.set(EKK2821C040CBSMsg.SVC_KEI_NO, (String)mineoWorkMap.get(INS_KK2821_SVC_KEI_NO));

		// サービス契約＜mineo＞情報変更.申込明細番号
		template.set(EKK2821C040CBSMsg.MSKM_DTL_NO, (String)mineoWorkMap.get(INS_KK0011_MSKM_DTL_NO));

		// サービス契約＜mineo＞情報変更.整理番号
		if (mineoWorkMap == null || mineoWorkMap.get(INS_KK0081_SEIRI_NO) == null || "".equals(mineoWorkMap.get(INS_KK0081_SEIRI_NO)))
		{
			template.setNull(EKK2821C040CBSMsg.SEIRI_NO);
		}
		else
		{
			template.set(EKK2821C040CBSMsg.SEIRI_NO, (String)mineoWorkMap.get(INS_KK0081_SEIRI_NO));
		}

		// サービス契約＜mineo＞情報変更.支払い方法継続フラグ
		setPaywayKeizokuFlg(template, EKK2821C040CBSMsg.PAYWAY_KEIZOKU_FLG, inMap);

		// サービス契約＜mineo＞情報変更.異動区分
		setTemplate(template, EKK2821C040CBSMsg.IDO_DIV, inMap, prefix, "mskm_sbt_cd");

		// サービス契約＜mineo＞情報変更.自動照査処理状態コード(2：対象外)
		template.set(EKK2821C040CBSMsg.AUTO_SHOSA_TRAN_STAT_CD, JKKStrConst.CD00628_TGG);

		return template;

	}

	/**
	 * インターネットサービス一覧照会（請求契約番号）の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0081B526Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0081B526CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0081B526CBSMsg.TEMPLATEID, "EKK0081B526");

		// 機能コード（デフォルト：１）
		template.set(EKK0081B526CBSMsg.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(EKK0081B526CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// インターネットサービス一覧照会（請求契約番号）.ＫＥＹ＿請求契約番号
		template.set(EKK0081B526CBSMsg.KEY_SEIKY_KEI_NO, (String)inMap.get("hikiate_seiky_kei_no"));

		return template;

	}

	/**
	 * 同一請求契約サービス契約一覧照会の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0081B529Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0081B529CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0081B529CBSMsg.TEMPLATEID, "EKK0081B529");

		// 機能コード（デフォルト：１）
		template.set(EKK0081B529CBSMsg.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(EKK0081B529CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 同一請求契約サービス契約一覧照会.ＫＥＹ＿請求契約番号
		template.set(EKK0081B529CBSMsg.KEY_SEIKY_KEI_NO, (String)inMap.get("hikiate_seiky_kei_no"));

		return template;

	}

	/**
	 * 請求契約一意照会の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0491A010Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0491A010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0491A010CBSMsg.TEMPLATEID, "EKK0491A010");

		// 機能コード（2）
		template.set(EKK0491A010CBSMsg.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);

		// 請求契約一意照会.ＫＥＹ＿請求契約番号
		template.set(EKK0491A010CBSMsg.KEY_SEIKY_KEI_NO, (String)inMap.get("hikiate_seiky_kei_no"));

		// 請求契約一意照会.ＫＥＹ＿予約適用年月日
		String operateDateGet = JCCBPCommon.getOpeDate(null);
		template.set(EKK0491A010CBSMsg.KEY_RSV_APLY_YMD, operateDateGet);

		return template;

	}

	/**
	 * 請求オプションサービス契約登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0441D010Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0441D010CBSMsg.class.getName());
		String prefix = "";

		// テンプレートID
		template.set(EKK0441D010CBSMsg.TEMPLATEID, "EKK0441D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0441D010CBSMsg.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(EKK0441D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* 作業項目情報 */
		HashMap mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		// 請求オプションサービス契約登録.請求契約番号
		setTemplate(template, EKK0441D010CBSMsg.SEIKY_KEI_NO, inMap, prefix, "hikiate_seiky_kei_no");

		// 請求オプションサービス契約登録.SYSID
		setTemplate(template, EKK0441D010CBSMsg.SYSID, inMap, prefix, "sysid");

		// 請求オプションサービス契約登録.請求オプションサービスコード
		template.set(EKK0441D010CBSMsg.SEIOPSVC_CD, "E001");

		// 請求オプションサービス契約登録.料金コースコード
		template.set(EKK0441D010CBSMsg.PCRS_CD, "E01");

		// 請求オプションサービス契約登録.料金プランコード
		template.set(EKK0441D010CBSMsg.PPLAN_CD, "PE0101");

		// 請求オプションサービス契約登録.申込明細番号
		template.set(EKK0441D010CBSMsg.MSKM_DTL_NO, (String)mineoWorkMap.get(INS_KK0011_MSKM_DTL_NO));

		// 請求オプションサービス契約登録.異動区分
		setTemplate(template, EKK0441D010CBSMsg.IDO_DIV, inMap, prefix, "mskm_sbt_cd");

		// 請求オプションサービス契約登録.更新年月日時分秒(更新前)
		template.set(EKK0441D010CBSMsg.UPD_DTM_BF, (String)mineoWorkMap.get(SRC_KK0491_UPD_DTM));

		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 mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		// 進捗登録.申込明細番号
		template.set(EKK1091D010CBSMsg.MSKM_DTL_NO, (String)mineoWorkMap.get(INS_KK0011_MSKM_DTL_NO));

		// 進捗登録.サービス契約番号
		template.set(EKK1091D010CBSMsg.SVC_KEI_NO, (String)mineoWorkMap.get(INS_KK2821_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-3315-00-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 mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		// 機能コード
		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-3315-00-00 ADD END

	/**
	 * 申込内容承認登録の下りマッピング処理
	 * <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 mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		templateArray = template.getCAANMsgList(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST);

		if (templateArray != null)
		{
			for (int i = 0; i < templateArray.length; i++)
			{
				CAANMsg childTemplate = templateArray[i];

				// ｍｉｎｅｏ作業マップ.申込明細番号 ← 申込内容承認登録明細.申込明細番号
				mineoWorkMap.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;
	}

	/**
	 * 審査済クレジットカード登録の下りマッピング処理
	 * <br>
	 * @param msgList
	 * @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 mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		// ｍｉｎｅｏ作業マップ.請求方法番号(クレジットカード) ← 請求方法番号(クレジットカード)
		mineoWorkMap.put(INS_KK0521_SEIKY_WAY_NO_CRECA, template.getString(EKK0521D020CBSMsg.SEIKY_WAY_NO_CRECARD));

		// ｍｉｎｅｏ作業マップ.世代登録年月日時分秒 ← 世代登録年月日時分秒
		mineoWorkMap.put(INS_KK0521_GENE_ADD_DTM, template.getString(EKK0521D020CBSMsg.GENE_ADD_DTM));

		// エラー情報の設定
		editErrInfoEKK0521D020Msg(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 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 mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		// ｍｉｎｅｏ作業マップ.請求契約番号 ← 請求契約番号
		mineoWorkMap.put(INS_KK0491_SEIKY_KEI_NO, template.getString(EKK0491D010CBSMsg.SEIKY_KEI_NO));

		// ｍｉｎｅｏ作業マップ.世代登録年月日時分秒 ← 世代登録年月日時分秒
		mineoWorkMap.put(INS_KK0491_GENE_ADD_DTM, template.getString(EKK0491D010CBSMsg.GENE_ADD_DTM));

		// エラー情報の設定
		editErrInfoEKK0491D010Msg(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 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);
		}

		// エラー情報の設定
		editErrInfoEKK1031D010Msg(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;
	}

	/**
	 * サービス契約＜mineo＞登録の下りマッピング処理
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK2821D010Msg(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 mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		// ｍｉｎｅｏ作業マップ.サービス契約番号 ← サービス契約番号
		mineoWorkMap.put(INS_KK2821_SVC_KEI_NO, template.getString(EKK2821D010CBSMsg.SVC_KEI_NO));

		// エラー情報の設定
		editErrInfoEKK2821D010Msg(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 editOutECK0011A010Msg(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 mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		templateArray = template.getCAANMsgList(ECK0011A010CBSMsg.ECK0011A010CBSMSG1LIST);

		if (templateArray != null)
		{
			for (int i = 0; i < templateArray.length; i++)
			{
				CAANMsg childTemplate = templateArray[i];

				// ｍｉｎｅｏ作業マップ.初期eoID ← お客様一意照会明細.初期eoID
				if (childTemplate.isNull(ECK0011A010CBSMsg1List.SHK_EOID))
				{
					
				}
				else
				{
					mineoWorkMap.put(SRC_CK0011_SHK_EOID, childTemplate.getString(ECK0011A010CBSMsg1List.SHK_EOID));
				}
			}
		}

		// エラー情報の設定
		editErrInfoECK0011A010Msg(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 editOutEKK0081C015Msg(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 mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		templateArray = template.getCAANMsgList(EKK0081C015CBSMsg.EKK0081C015CBSMSG1LIST);

		if (templateArray != null)
		{
			for (int i = 0; i < templateArray.length; i++)
			{
				CAANMsg childTemplate = templateArray[i];

				// ｍｉｎｅｏ作業マップ.整理番号 ← 整理番号採番明細.整理番号
				if (childTemplate.isNull(EKK0081C015CBSMsg1List.SEIRI_NO))
				{
					
				}
				else
				{
					mineoWorkMap.put(INS_KK0081_SEIRI_NO, childTemplate.getString(EKK0081C015CBSMsg1List.SEIRI_NO));
				}
			}
		}

		// エラー情報の設定
		editErrInfoEKK0081C015Msg(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;
	}

	/**
	 * サービス契約＜mineo＞情報変更の下りマッピング処理
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK2821C040Msg(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);
		}

		// エラー情報の設定
		editErrInfoEKK2821C040Msg(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 editOutEKK0081B526Msg(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 mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		// 結果を詰めるリスト
		ArrayList dataList = null;

		templateArray = template.getCAANMsgList(EKK0081B526CBSMsg.EKK0081B526CBSMSG1LIST);
		dataList = (ArrayList)mineoWorkMap.get("EKK0081B526CBSMsg1List");

		if (dataList == null)
		{
			dataList = new ArrayList();
		}

		if (templateArray != null)
		{
			for (int i = 0; i < templateArray.length; i++)
			{
				CAANMsg childTemplate = templateArray[i];
				if (i >= dataList.size())
				{
					dataList.add(new HashMap());
				}
				HashMap childMap = (HashMap)dataList.get(i);

				// サービス契約番号
				setOutData(childMap, "svc_kei_no", childTemplate, EKK0081B526CBSMsg1List.SVC_KEI_NO);

				// サービス契約ステータス
				setOutData(childMap, "svc_kei_stat", childTemplate, EKK0081B526CBSMsg1List.SVC_KEI_STAT);
				
			}
		}

		mineoWorkMap.put("EKK0081B526CBSMsg1List", dataList);

		// エラー情報の設定
		editErrInfoEKK0081B526Msg(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 editOutEKK0081B529Msg(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 mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		// 結果を詰めるリスト
		ArrayList dataList = null;

		templateArray = template.getCAANMsgList(EKK0081B529CBSMsg.EKK0081B529CBSMSG1LIST);
		dataList = (ArrayList)mineoWorkMap.get("EKK0081B529CBSMsg1List");

		if (dataList == null)
		{
			dataList = new ArrayList();
		}

		if (templateArray != null)
		{
			for (int i = 0; i < templateArray.length; i++)
			{
				CAANMsg childTemplate = templateArray[i];
				if (i >= dataList.size())
				{
					dataList.add(new HashMap());
				}
				HashMap childMap = (HashMap)dataList.get(i);

				// サービス契約番号
				setOutData(childMap, "svc_kei_no", childTemplate, EKK0081B529CBSMsg1List.SVC_KEI_NO);

				// サービス契約ステータス
				setOutData(childMap, "svc_kei_stat", childTemplate, EKK0081B529CBSMsg1List.SVC_KEI_STAT);
			}
		}

		mineoWorkMap.put("EKK0081B529CBSMsg1List", dataList);

		// エラー情報の設定
		editErrInfoEKK0081B529Msg(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 editOutEKK0491A010Msg(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 mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		templateArray = template.getCAANMsgList(EKK0491A010CBSMsg.EKK0491A010CBSMSG1LIST);

		if (templateArray != null)
		{
			for (int i = 0; i < templateArray.length; i++)
			{
				CAANMsg childTemplate = templateArray[i];

				// ｍｉｎｅｏ作業マップ.請求書発行要否 ← 請求契約一意照会明細.請求書発行要否
				mineoWorkMap.put(SRC_KK0491_SEIKYUS_HAKKO_YH, childTemplate.getObject(EKK0491A010CBSMsg1List.SEIKYUS_HAKKO_YH));
				// ｍｉｎｅｏ作業マップ.更新年月日時分秒 ← 請求契約一意照会明細.更新年月日時分秒
				mineoWorkMap.put(SRC_KK0491_UPD_DTM, childTemplate.getObject(EKK0491A010CBSMsg1List.UPD_DTM));
			}
		}

		// エラー情報の設定
		editErrInfoEKK0491A010Msg(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 editOutEKK0441D010Msg(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);
		}

		// エラー情報の設定
		editErrInfoEKK0441D010Msg(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-3315-00-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-3315-00-00 ADD END

	/**
	 * 申込内容承認登録のエラー情報マッピング処理を行います。
	 * 
	 * <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-3158-00-00 2017/04/25 ADD START
				// 申込内容承認登録マップ.申込内容承認登録明細.同時申込eo光申込書番号 → 申込内容承認登録明細.eo光申込書番号 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.DOJI_MSKM_EOH_MSKMSHO_NO_ERR))
				{
					if (!inMap.containsKey("eoh_mskmsho_no_err"))
					{
						inMap.put("eoh_mskmsho_no_err", childTemplate.getString(EKK0011D020CBSMsg1List.DOJI_MSKM_EOH_MSKMSHO_NO_ERR));
					}
				}
				// ANK-3158-00-00 2017/04/25 ADD END
			}
		}
		
		return param;
	}

	/**
	 * 審査済クレジットカード登録のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrInfoEKK0521D020Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0521D020CBSMsg.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(EKK0521D020CBSMsg.CRECARD_JIGYO_CD_ERR))
		{
			if (!inMap.containsKey("crecard_jigyo_cd_err"))
			{
				inMap.put("crecard_jigyo_cd_err", template.getString(EKK0521D020CBSMsg.CRECARD_JIGYO_CD_ERR));
			}
		}

		// 審査済クレジットカード登録マップ.クレジットカード会社コード → クレジットカード会社コード のエラー情報返却
		if (!template.isNull(EKK0521D020CBSMsg.CRECARD_COMP_CD_ERR))
		{
			if (!inMap.containsKey("crecard_comp_cd_err"))
			{
				inMap.put("crecard_comp_cd_err", template.getString(EKK0521D020CBSMsg.CRECARD_COMP_CD_ERR));
			}
		}

		// 審査済クレジットカード登録マップ.クレジットカード番号 → クレジットカード番号 のエラー情報返却
		if (!template.isNull(EKK0521D020CBSMsg.CRECARD_NO_ERR))
		{
			if (!inMap.containsKey("crecard_no_err"))
			{
				inMap.put("crecard_no_err", template.getString(EKK0521D020CBSMsg.CRECARD_NO_ERR));
			}
		}

		// 審査済クレジットカード登録マップ.クレジットカード有効期限 → クレジットカード有効期限 のエラー情報返却
		if (!template.isNull(EKK0521D020CBSMsg.CRECARD_YK_KIGEN_ERR))
		{
			if (!inMap.containsKey("crecard_yk_kigen_err"))
			{
				inMap.put("crecard_yk_kigen_err", template.getString(EKK0521D020CBSMsg.CRECARD_YK_KIGEN_ERR));
			}
		}

		// 審査済クレジットカード登録マップ.クレジットカード名義カナ名 → クレジットカード名義カナ名 のエラー情報返却
		if (!template.isNull(EKK0521D020CBSMsg.CRECARD_NM_KANA_ERR))
		{
			if (!inMap.containsKey("crecard_nm_kana_err"))
			{
				inMap.put("crecard_nm_kana_err", template.getString(EKK0521D020CBSMsg.CRECARD_NM_KANA_ERR));
			}
		}

		// 審査済クレジットカード登録マップ.異動区分 → 異動区分 のエラー情報返却
		if (!template.isNull(EKK0521D020CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey("mskm_sbt_cd_err"))
			{
				inMap.put("mskm_sbt_cd_err", template.getString(EKK0521D020CBSMsg.IDO_DIV_ERR));
			}
		}

		// ANK-3846-00-00 DEL START	
//		// 審査済クレジットカード登録マップ.オーソリ承認番号 → オーソリ承認番号 のエラー情報返却
//		if (!template.isNull(EKK0521D020CBSMsg.AUTHORI_SHONIN_NO_ERR))
//		{
//			if (!inMap.containsKey("cr_authnumber_err"))
//			{
//				inMap.put("cr_authnumber_err", template.getString(EKK0521D020CBSMsg.AUTHORI_SHONIN_NO_ERR));
//			}
//		}
		// ANK-3846-00-00 DEL END	
// ANK-4619-00-00 ADD START
		// 審査済クレジットカード登録マップ.クレジットカード名義(ローマ字) → クレジットカード名義(ローマ字) のエラー情報返却
		if (!template.isNull(EKK0521D020CBSMsg.CRECARD_NM_ROMAJI_ERR))
		{
			if (!inMap.containsKey("crecard_nm_romaji_err"))
			{
				inMap.put("crecard_nm_romaji_err", template.getString(EKK0521D020CBSMsg.CRECARD_NM_ROMAJI_ERR));
			}
		}
// ANK-4619-00-00 ADD END

		return param;
	}

	/**
	 * 請求契約登録のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrInfoEKK0491D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0491D010CBSMsg.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(EKK0491D010CBSMsg.SYSID_ERR))
		{
			if (!inMap.containsKey("sysid_err"))
			{
				inMap.put("sysid_err", template.getString(EKK0491D010CBSMsg.SYSID_ERR));
			}
		}

		// 請求契約登録.請求方法コード → 請求方法コード のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SEIKY_WAY_CD_ERR))
		{
			if (!inMap.containsKey("seiky_way_cd_err"))
			{
				inMap.put("seiky_way_cd_err", template.getString(EKK0491D010CBSMsg.SEIKY_WAY_CD_ERR));
			}
		}

		// 請求契約登録.請求書発行要否 → 請求書発行要否 のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SEIKYUS_HAKKO_YH_ERR))
		{
			if (!inMap.containsKey("seikyus_hakko_yh_err"))
			{
				inMap.put("seikyus_hakko_yh_err", template.getString(EKK0491D010CBSMsg.SEIKYUS_HAKKO_YH_ERR));
			}
		}

		// 請求契約登録.請求書送付先_契約者住所差異フラグ → 請求書送付先_契約者住所差異フラグ のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SKS_SHS_KSH_AD_SAI_FLG_ERR))
		{
			if (!inMap.containsKey("sks_shs_ksh_ad_sai_flg_err"))
			{
				inMap.put("sks_shs_ksh_ad_sai_flg_err", template.getString(EKK0491D010CBSMsg.SKS_SHS_KSH_AD_SAI_FLG_ERR));
			}
		}

		// 請求契約登録.請求書送付先名_お客様名差異フラグ → 請求書送付先名_お客様名差異フラグ のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SKS_SHS_NM_CUST_NM_SAI_FLG_ERR))
		{
			if (!inMap.containsKey("sks_shs_nm_cust_nm_sai_flg_err"))
			{
				inMap.put("sks_shs_nm_cust_nm_sai_flg_err", template.getString(EKK0491D010CBSMsg.SKS_SHS_NM_CUST_NM_SAI_FLG_ERR));
			}
		}

		// 請求契約登録.送付先法人格種別コード → 送付先法人格種別コード のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SHS_HOJIN_SBT_CD_ERR))
		{
			if (!inMap.containsKey("shs_hojin_sbt_cd_err"))
			{
				inMap.put("shs_hojin_sbt_cd_err", template.getString(EKK0491D010CBSMsg.SHS_HOJIN_SBT_CD_ERR));
			}
		}

		// 請求契約登録.送付先法人格前後指定コード → 送付先法人格前後指定コード のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SHS_HOJIN_ZENGO_SHITEI_CD_ERR))
		{
			if (!inMap.containsKey("shs_hojin_zengo_shitei_cd_err"))
			{
				inMap.put("shs_hojin_zengo_shitei_cd_err", template.getString(EKK0491D010CBSMsg.SHS_HOJIN_ZENGO_SHITEI_CD_ERR));
			}
		}

		// 請求契約登録.送付先カナ名 → 送付先カナ名 のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SHS_KANA_ERR))
		{
			if (!inMap.containsKey("shs_kana_err"))
			{
				inMap.put("shs_kana_err", template.getString(EKK0491D010CBSMsg.SHS_KANA_ERR));
			}
		}

		// 請求契約登録.送付先名 → 送付先名 のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SOHUS_NM_ERR))
		{
			if (!inMap.containsKey("sohus_nm_err"))
			{
				inMap.put("sohus_nm_err", template.getString(EKK0491D010CBSMsg.SOHUS_NM_ERR));
			}
		}

		// 請求契約登録.送付先部課名 → 送付先部課名 のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SOHUS_BKM_ERR))
		{
			if (!inMap.containsKey("sohus_bkm_err"))
			{
				inMap.put("sohus_bkm_err", template.getString(EKK0491D010CBSMsg.SOHUS_BKM_ERR));
			}
		}

		// 請求契約登録.送付先担当者名 → 送付先担当者名 のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SOHUS_TNTSHA_NM_ERR))
		{
			if (!inMap.containsKey("sohus_tntsha_nm_err"))
			{
				inMap.put("sohus_tntsha_nm_err", template.getString(EKK0491D010CBSMsg.SOHUS_TNTSHA_NM_ERR));
			}
		}

		// 請求契約登録.送付先住所コード → 送付先住所コード のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SOHUS_AD_CD_ERR))
		{
			if (!inMap.containsKey("sohus_ad_cd_err"))
			{
				inMap.put("sohus_ad_cd_err", template.getString(EKK0491D010CBSMsg.SOHUS_AD_CD_ERR));
			}
		}

		// 請求契約登録.送付先郵便番号 → 送付先郵便番号 のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SOHUS_PCD_ERR))
		{
			if (!inMap.containsKey("sohus_pcd_err"))
			{
				inMap.put("sohus_pcd_err", template.getString(EKK0491D010CBSMsg.SOHUS_PCD_ERR));
			}
		}

		// 請求契約登録.送付先都道府県名 → 送付先都道府県名 のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SOHUS_STATE_NM_ERR))
		{
			if (!inMap.containsKey("sohus_state_nm_err"))
			{
				inMap.put("sohus_state_nm_err", template.getString(EKK0491D010CBSMsg.SOHUS_STATE_NM_ERR));
			}
		}

		// 請求契約登録.送付先市区町村名 → 送付先市区町村名 のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SOHUS_CITY_NM_ERR))
		{
			if (!inMap.containsKey("sohus_city_nm_err"))
			{
				inMap.put("sohus_city_nm_err", template.getString(EKK0491D010CBSMsg.SOHUS_CITY_NM_ERR));
			}
		}

		// 請求契約登録.送付先大字通称名 → 送付先大字通称名 のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SOHUS_OAZTSU_NM_ERR))
		{
			if (!inMap.containsKey("sohus_oaztsu_nm_err"))
			{
				inMap.put("sohus_oaztsu_nm_err", template.getString(EKK0491D010CBSMsg.SOHUS_OAZTSU_NM_ERR));
			}
		}

		// 請求契約登録.送付先字丁目名 → 送付先字丁目名 のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SOHUS_AZCHO_NM_ERR))
		{
			if (!inMap.containsKey("sohus_azcho_nm_err"))
			{
				inMap.put("sohus_azcho_nm_err", template.getString(EKK0491D010CBSMsg.SOHUS_AZCHO_NM_ERR));
			}
		}

		// 請求契約登録.送付先番地号 → 送付先番地号 のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SOHUS_BNCHIGO_ERR))
		{
			if (!inMap.containsKey("sohus_bnchigo_err"))
			{
				inMap.put("sohus_bnchigo_err", template.getString(EKK0491D010CBSMsg.SOHUS_BNCHIGO_ERR));
			}
		}

		// 請求契約登録.送付先住所補記・建物名 → 送付先住所補記・建物名 のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SOHUS_ADRTTM_ERR))
		{
			if (!inMap.containsKey("sohus_adrttm_err"))
			{
				inMap.put("sohus_adrttm_err", template.getString(EKK0491D010CBSMsg.SOHUS_ADRTTM_ERR));
			}
		}

		// 請求契約登録.送付先住所補記・部屋番号 → 送付先住所補記・部屋番号 のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SOHUS_ADRRM_ERR))
		{
			if (!inMap.containsKey("sohus_adrrm_err"))
			{
				inMap.put("sohus_adrrm_err", template.getString(EKK0491D010CBSMsg.SOHUS_ADRRM_ERR));
			}
		}

		// 請求契約登録.送付先電話番号 → 送付先電話番号 のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SOHUS_TELNO_ERR))
		{
			if (!inMap.containsKey("sohus_telno_err"))
			{
				inMap.put("sohus_telno_err", template.getString(EKK0491D010CBSMsg.SOHUS_TELNO_ERR));
			}
		}

		// 請求契約登録.送付先FAX番号 → 送付先FAX番号 のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SOHUS_FAX_NO_ERR))
		{
			if (!inMap.containsKey("sohus_fax_no_err"))
			{
				inMap.put("sohus_fax_no_err", template.getString(EKK0491D010CBSMsg.SOHUS_FAX_NO_ERR));
			}
		}

		// 請求契約登録.送付先メールアドレス → 送付先メールアドレス のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SOHUS_MLAD_ERR))
		{
			if (!inMap.containsKey("sohus_mlad_err"))
			{
				inMap.put("sohus_mlad_err", template.getString(EKK0491D010CBSMsg.SOHUS_MLAD_ERR));
			}
		}

		// 請求契約登録.異動区分 → 異動区分 のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey("mskm_sbt_cd_err"))
			{
				inMap.put("mskm_sbt_cd_err", template.getString(EKK0491D010CBSMsg.IDO_DIV_ERR));
			}
		}

		// 請求契約登録.初回支払申込書受領年月日 → 初回支払申込書受領年月日 のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.FIRST_PAY_MSKMSHO_RCP_YMD_ERR))
		{
			if (!inMap.containsKey("first_pay_mskmsho_rcp_ymd_err"))
			{
				inMap.put("first_pay_mskmsho_rcp_ymd_err", template.getString(EKK0491D010CBSMsg.FIRST_PAY_MSKMSHO_RCP_YMD_ERR));
			}
		}

		// 請求契約登録.送付先住所手動入力フラグ → 送付先住所手動入力フラグ のエラー情報返却
		if (!template.isNull(EKK0491D010CBSMsg.SOHUS_AD_MAN_INPUT_FLG_ERR))
		{
			if (!inMap.containsKey("sohus_ad_man_input_flg_err"))
			{
				inMap.put("sohus_ad_man_input_flg_err", template.getString(EKK0491D010CBSMsg.SOHUS_AD_MAN_INPUT_FLG_ERR));
			}
		}

		return param;
	}

	/**
	 * クレジットオーソリ実績登録のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrInfoEKK1031D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK1031D010CBSMsg.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(EKK1031D010CBSMsg.SEIKY_KEI_NO_ERR))
		{
			if (!inMap.containsKey("hikiate_seiky_kei_no_err"))
			{
				inMap.put("hikiate_seiky_kei_no_err", template.getString(EKK1031D010CBSMsg.SEIKY_KEI_NO_ERR));
			}
		}

		// クレジットオーソリ実績登録.クレジットカード会社コード → クレジットカード会社コード のエラー情報返却
		if (!template.isNull(EKK1031D010CBSMsg.CRECARD_COMP_CD_ERR))
		{
			if (!inMap.containsKey("crecard_comp_cd_err"))
			{
				inMap.put("crecard_comp_cd_err", template.getString(EKK1031D010CBSMsg.CRECARD_COMP_CD_ERR));
			}
		}

		// クレジットオーソリ実績登録.クレジットカード番号 → クレジットカード番号 のエラー情報返却
		if (!template.isNull(EKK1031D010CBSMsg.CRECARD_NO_ERR))
		{
			if (!inMap.containsKey("crecard_no_err"))
			{
				inMap.put("crecard_no_err", template.getString(EKK1031D010CBSMsg.CRECARD_NO_ERR));
			}
		}

		// クレジットオーソリ実績登録.加盟店番号 → 加盟店番号 のエラー情報返却
		if (!template.isNull(EKK1031D010CBSMsg.MEMBSTR_NO_ERR))
		{
			if (!inMap.containsKey("membstr_no_err"))
			{
				inMap.put("membstr_no_err", template.getString(EKK1031D010CBSMsg.MEMBSTR_NO_ERR));
			}
		}

		// クレジットオーソリ実績登録.クレジットカード有効期限 → クレジットカード有効期限 のエラー情報返却
		if (!template.isNull(EKK1031D010CBSMsg.CRECARD_YK_KIGEN_ERR))
		{
			if (!inMap.containsKey("crecard_yk_kigen_err"))
			{
				inMap.put("crecard_yk_kigen_err", template.getString(EKK1031D010CBSMsg.CRECARD_YK_KIGEN_ERR));
			}
		}

		return param;
	}

	/**
	 * サービス契約＜mineo＞登録のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrInfoEKK2821D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK2821D010CBSMsg.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);

		// サービス契約＜mineo＞登録.SYSID → SYSID のエラー情報返却
		if (!template.isNull(EKK2821D010CBSMsg.SYSID_ERR))
		{
			if (!inMap.containsKey("sysid_err"))
			{
				inMap.put("sysid_err", template.getString(EKK2821D010CBSMsg.SYSID_ERR));
			}
		}

		// サービス契約＜mineo＞登録.異動区分 → 異動区分 のエラー情報返却
		if (!template.isNull(EKK2821D010CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey("mskm_sbt_cd_err"))
			{
				inMap.put("mskm_sbt_cd_err", template.getString(EKK2821D010CBSMsg.IDO_DIV_ERR));
			}
		}

		// サービス契約＜mineo＞登録.請求契約番号 → 請求契約番号 のエラー情報返却
		if (!template.isNull(EKK2821D010CBSMsg.SEIKY_KEI_NO_ERR))
		{
			if (!inMap.containsKey("hikiate_seiky_kei_no_err"))
			{
				inMap.put("hikiate_seiky_kei_no_err", template.getString(EKK2821D010CBSMsg.SEIKY_KEI_NO_ERR));
			}
		}

		return param;
	}

	/**
	 * お客様一意照会のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrInfoECK0011A010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(ECK0011A010CBSMsg.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(ECK0011A010CBSMsg.KEY_SYSID_ERR))
		{
			if (!inMap.containsKey("sysid_err"))
			{
				inMap.put("sysid_err", template.getString(ECK0011A010CBSMsg.KEY_SYSID_ERR));
			}
		}

		return param;
	}

	/**
	 * 整理番号採番のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrInfoEKK0081C015Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0081C015CBSMsg.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);
		}

		// 作業項目領域
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// エラーマッピングなし

		return param;
	}

	/**
	 * サービス契約＜mineo＞情報変更のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrInfoEKK2821C040Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK2821C040CBSMsg.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);

		// サービス契約＜mineo＞情報変更.サービス契約番号 → サービス契約番号 のエラー情報返却
		if (!template.isNull(EKK2821C040CBSMsg.SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey("svc_kei_no_err"))
			{
				inMap.put("svc_kei_no_err", template.getString(EKK2821C040CBSMsg.SVC_KEI_NO_ERR));
			}
		}

		// サービス契約＜mineo＞情報変更.異動区分 → 異動区分 のエラー情報返却
		if (!template.isNull(EKK2821C040CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey("mskm_sbt_cd_err"))
			{
				inMap.put("mskm_sbt_cd_err", template.getString(EKK2821C040CBSMsg.IDO_DIV_ERR));
			}
		}

		return param;
	}

	/**
	 * インターネットサービス一覧照会（請求契約番号）のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrInfoEKK0081B526Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0081B526CBSMsg.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(EKK0081B526CBSMsg.KEY_SEIKY_KEI_NO_ERR))
		{
			if (!inMap.containsKey("hikiate_seiky_kei_no_err"))
			{
				inMap.put("hikiate_seiky_kei_no_err", template.getString(EKK0081B526CBSMsg.KEY_SEIKY_KEI_NO_ERR));
			}
		}

		return param;
	}

	/**
	 * 同一請求契約サービス契約一覧照会のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrInfoEKK0081B529Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0081B529CBSMsg.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(EKK0081B529CBSMsg.KEY_SEIKY_KEI_NO_ERR))
		{
			if (!inMap.containsKey("hikiate_seiky_kei_no_err"))
			{
				inMap.put("hikiate_seiky_kei_no_err", template.getString(EKK0081B529CBSMsg.KEY_SEIKY_KEI_NO_ERR));
			}
		}

		return param;
	}

	/**
	 * 請求契約一意照会のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrInfoEKK0491A010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0491A010CBSMsg.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(EKK0491A010CBSMsg.KEY_SEIKY_KEI_NO_ERR))
		{
			if (!inMap.containsKey("hikiate_seiky_kei_no_err"))
			{
				inMap.put("hikiate_seiky_kei_no_err", template.getString(EKK0491A010CBSMsg.KEY_SEIKY_KEI_NO_ERR));
			}
		}

		return param;
	}

	/**
	 * 請求オプションサービス契約登録のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrInfoEKK0441D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0441D010CBSMsg.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(EKK0441D010CBSMsg.SEIKY_KEI_NO_ERR))
		{
			if (!inMap.containsKey("hikiate_seiky_kei_no_err"))
			{
				inMap.put("hikiate_seiky_kei_no_err", template.getString(EKK0441D010CBSMsg.SEIKY_KEI_NO_ERR));
			}
		}

		// 請求オプションサービス契約登録.SYSID → SYSID のエラー情報返却
		if (!template.isNull(EKK0441D010CBSMsg.SYSID_ERR))
		{
			if (!inMap.containsKey("sysid_err"))
			{
				inMap.put("sysid_err", template.getString(EKK0441D010CBSMsg.SYSID_ERR));
			}
		}

		// 請求オプションサービス契約登録.申込明細番号 → 申込明細番号 のエラー情報返却
		if (!template.isNull(EKK0441D010CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey("mskm_dtl_no_err"))
			{
				inMap.put("mskm_dtl_no_err", template.getString(EKK0441D010CBSMsg.MSKM_DTL_NO_ERR));
			}
		}

		// 請求オプションサービス契約登録.サービス契約番号 → サービス契約番号 のエラー情報返却
		if (!template.isNull(EKK0441D010CBSMsg.SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey("svc_kei_no_err"))
			{
				inMap.put("svc_kei_no_err", template.getString(EKK0441D010CBSMsg.SVC_KEI_NO_ERR));
			}
		}

		// 請求オプションサービス契約登録.異動区分 → 異動区分 のエラー情報返却
		if (!template.isNull(EKK0441D010CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey("mskm_sbt_cd_err"))
			{
				inMap.put("mskm_sbt_cd_err", template.getString(EKK0441D010CBSMsg.IDO_DIV_ERR));
			}
		}

		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-3315-00-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));				
			}
		}

		return param;
	}
	// ANK-3315-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));
		}
	}

	/**
	 * ユーザデータ情報に値を設定します。<br>
	 * 　※CAANMsg内のデータがNullの場合、空文字を設定します。<br>
	 * @param dataMap ユーザデータ情報
	 * @param setKey ユーザデータ情報に設定するキー名
	 * @param template メッセージキャリア
	 * @param getKey メッセージキャリアより取得するキー名
	 */
	private void setOutData(HashMap<String, Object> dataMap, String setKey, CAANMsg template, String getKey)
	{
		if (template.isNull(getKey))
		{
			dataMap.put(setKey, "");
		}
		else
		{
			dataMap.put(setKey, template.getString(getKey));
		}
	}

	/**
	 * インプットパラメータの編集
	 * @param param
	 * @param fixedText
	 * @param key
	 * @param len
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void editParam(IRequestParameterReadWrite param, String fixedText, String key, int len) throws RequestParameterException
	{
		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		
		String val = "";
		
		if (inMap.get(key) != null && !"".equals(inMap.get(key)))
		{
			val = (String)inMap.get(key);
			if(val.length() > len)
			{
				inMap.put(key, val.substring(0, len));
			}
		}
	}

	/**
	 * インプットパラメータの整合性チェック(単関連)
	 * @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>();
		
		// 請求契約番号が連携されていない場合のみチェック
		if (inMap.get("hikiate_seiky_kei_no") == null || "".equals(inMap.get("hikiate_seiky_kei_no")))
		{
			//請求方法コードがクレジットカードかその他でチェック項目を切り替える
			if(JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(inMap.get("seiky_way_cd")))
			{
				checkList = CHECK_CREDIT_LIST;
			}
			else
			{
				checkList = CHECK_OTHER_LIST;
			}
			
			for (String itemRelationCheckItem : checkList)
			{
				if (inMap.get(itemRelationCheckItem) == null || "".equals(inMap.get(itemRelationCheckItem)))
				{
					errExists = true;
					inMap.put(itemRelationCheckItem + STR_ERR, E1_ERR);
					errorMapChild.put(itemRelationCheckItem + STR_ERR, E1_ERR);
				}
			}
			
			// 以下住所チェック
			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")))
			{
				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);

			////////////////
			// 送付先住所 //
			////////////////

			// 桁数チェック
			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-3315-00-00 DEL START
			// エラーが存在する場合はエラー値を設定
//			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, "EKK0491D010");
//				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-3315-00-00 DEL END
		}
		// ANK-3315-00-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-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, "EKK0491D010");
			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-3315-00-00 ADD END
	}

	// ANK-3315-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;
	}

	/**
	 * 重複チェックを行い、エラーの場合はエラー情報を設定します。
	 * <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-3315-00-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;
	}

	/**
	 * 支払い方法継続フラグの設定を行います。
	 * @param template
	 * @param setKey
	 * @param inMap
	 */
	private void setPaywayKeizokuFlg(CAANMsg template, String setKey, HashMap<String, Object> inMap)
	{
		if (inMap == null || inMap.get("hikiate_seiky_kei_no") == null || "".equals(inMap.get("hikiate_seiky_kei_no")))
		{
			// 連携ファイルの請求契約番号が設定されていない場合かつ
			// 申込種別コードが"00002"サービス追加申込の場合は"2"変更を設定
			if(JKKStrConst.MSKM_SBT_CD_SVC_ADD.equals((String)inMap.get("mskm_sbt_cd")))
			{
				template.set(setKey, JKKStrConst.PAYWAY_KEIZOKU_UPD);
			}
			else
			{
				template.setNull(setKey);
			}
		}
		else
		{
			// 連携ファイルの請求契約番号が設定されている場合は"1"継続を設定
			template.set(setKey, JKKStrConst.PAYWAY_KEIZOKU_USE);
		}
	}

	/**
	 * 同一請求契約サービス契約の存在確認<br>
	 * @param  param IRequestParameterReadWrite
	 * @return boolean true：存在する、false：存在しない
	 * @throws RequestParameterException 
	 */
	@SuppressWarnings("unchecked")
	private boolean isSameSeisvcSvcKei(IRequestParameterReadWrite param) throws RequestParameterException
	{
		boolean result = false;

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* 作業項目情報 */
		HashMap mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		// 同一請求契約サービス契約一覧照会明細の取得
		ArrayList msg1List = (ArrayList)mineoWorkMap.get(EKK0081B529CBSMsg.EKK0081B529CBSMSG1LIST);

		if (msg1List == null)
		{
			return result;
		}

		for (int i = 0; i < msg1List.size(); i++)
		{
			HashMap childMap = (HashMap)msg1List.get(i);

			// サービス契約ステータス
			String svcKeiStat = (String)childMap.get("svc_kei_stat");

			// キャンセル済は対象外
			if(JKKStrConst.CD00037_CANCEL_ZM.equals(svcKeiStat))
			{
				continue;
			}

			// サービス提供中以降は存在する。（解約済みも含む）
			if (SVC_KEI_STAT_SVCTK_CHU <= Integer.parseInt(svcKeiStat))
			{
				result = true;
				break;
			}
		}

		return result;
	}

	/**
	 * サービス契約（ネットサービス）の存在確認<br>
	 * @param  param 
	 * @return boolean true：存在する、false：存在しない
	 * @throws RequestParameterException 
	 */
	@SuppressWarnings("unchecked")
	private boolean isSvcKei(IRequestParameterReadWrite param) throws RequestParameterException
	{
		boolean result = false;

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* 作業項目情報 */
		HashMap mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		// インターネットサービス一覧照会（請求契約番号）明細の取得
		ArrayList msg1List = (ArrayList)mineoWorkMap.get(EKK0081B526CBSMsg.EKK0081B526CBSMSG1LIST);

		if (msg1List == null)
		{
			return result;
		}

		for (int i = 0; i < msg1List.size(); i++)
		{
			HashMap childMap = (HashMap)msg1List.get(i);

			// サービス契約ステータス
			String svcKeiStat = (String)childMap.get("svc_kei_stat");

			// サービス契約番号
			String svcKeiNo = (String)childMap.get("svc_kei_no");
			
			if(svcKeiNo.equals((String)mineoWorkMap.get(INS_KK2821_SVC_KEI_NO)))
			{
				// 追加サービスなので対象外
				continue;
			}

			// 停止中以下は存在する。
			if (SVC_KEI_STAT_STP_CHU >= Integer.parseInt(svcKeiStat))
			{
				result = true;
				break;
			}
		}

		return result;
	}

	/**
	 * 請求書発行要否の取得<br>
	 * @param  param
	 * @return String 1:要 0:否
	 * @throws RequestParameterException 
	 */
	@SuppressWarnings("unchecked")
	private String getSeikyusHakkoYh(IRequestParameterReadWrite param) throws RequestParameterException
	{
		String result = JKKStrConst.CD00001_0;

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* 作業項目情報 */
		HashMap mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		// 請求書発行要否が要の場合は1:要、その他の場合は0:否を返す
		if (mineoWorkMap.get(SRC_KK0491_SEIKYUS_HAKKO_YH) != null && !"".equals(mineoWorkMap.get(SRC_KK0491_SEIKYUS_HAKKO_YH)))
		{
			if (JKKStrConst.CD00001_1.equals(mineoWorkMap.get(SRC_KK0491_SEIKYUS_HAKKO_YH)))
			{
				result = JKKStrConst.CD00001_1;
			}
		}

		return result;
	}


	/**
	 * 整理番号発行要否<br>
	 * @param  param
	 * @return boolean true:要 false:否
	 * @throws RequestParameterException 
	 */
	@SuppressWarnings("unchecked")
	private boolean getSeiriNoHakkoYh(IRequestParameterReadWrite param) throws RequestParameterException
	{
		boolean result = false;

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* 作業項目情報 */
		HashMap mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		// 初期eoIDが取得できている場合のみ整理番号発行が要
		if (mineoWorkMap.get(SRC_CK0011_SHK_EOID) != null && !"".equals(mineoWorkMap.get(SRC_CK0011_SHK_EOID)))
		{
			result = true;
		}

		return result;
	}

	/**
	 * 戻り値の設定を行います。
	 * <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 mineoWorkMap = (HashMap)workMap.get(CC_WORK_AREA_ADD_SVC_KEI_MINEO);
		if (mineoWorkMap == null)
		{
			mineoWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_ADD_SVC_KEI_MINEO, mineoWorkMap);
		}

		if (inMap.get("hikiate_seiky_kei_no") != null && !"".equals(inMap.get("hikiate_seiky_kei_no")))
		{
			// インプットの請求契約番号が設定されている場合、なにも設定しない
			inMap.put("new_htb_seiky_kei_no", "");
		}
		else
		{
			// インプットの請求契約番号が設定されていない場合、請求契約登録時に採番された番号を設定
			inMap.put("new_htb_seiky_kei_no", (String)mineoWorkMap.get(INS_KK0491_SEIKY_KEI_NO));
		}

		// 採番されたサービス契約番号を設定
		inMap.put("svc_kei_no", (String)mineoWorkMap.get(INS_KK2821_SVC_KEI_NO));

	}
	
// ANK-2565-00-00 2015/11/18 add start
	/**
	 * クレジットカード会社一意照会SIF呼び出し
	 * @param param
	 * @param handle
	 * @param paramMap
	 * @param resultHash
	 * @return,u8
	 * @throws Throwable
	 */
	private String getCreditKokanCd(IRequestParameterReadWrite param, SessionHandle handle,
			String cardCompCd) throws Throwable
		{
			String creditKokanCd = null;
			
			//作業用マップ
			HashMap<String, Object> workMap = new HashMap<String, Object>();

			HashMap<String, Object> sIFRequest = null;
			CAANMsg template = null;
			ServiceComponentRequestInvoker scCall = null;
			Map<?, ?> sIFResult = null;
			// サービスIF共通の情報を設定
			sIFRequest = editInMsgCmn(param);
			// EKK0531A010への呼び出しパラメータ設定
			template = new CAANMsg(EKK0531A010CBSMsg.class.getName());
			// 全条件のNullマッピング
			fillCAANMSGNullMapping(template, new EKK0531A010CBSMsg().getContents());
			// テンプレートID(SIFのID)
			template.set(EKK0531A010CBSMsg.TEMPLATEID, "EKK0531A010");
			// 機能コード
			template.set(EKK0531A010CBSMsg.FUNC_CODE, "2");
			// クレジットカード会社コード
			template.set(EKK0531A010CBSMsg.KEY_CRECARD_COMP_CD, cardCompCd);
			// クレジットカード事業コード
			template.set(EKK0531A010CBSMsg.KEY_CRECARD_JIGYO_CD, "2");
			// 予約適用年月日
			template.set(EKK0531A010CBSMsg.KEY_RSV_APLY_YMD, param.getControlMapData(SCControlMapKeys.OPE_DATE));
			
			editBasicCmn(param, template,workMap);
			
			// リクエスト用クラスの設定
			sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template});

			// SC呼び出しクラスの生成
			scCall = new ServiceComponentRequestInvoker();

			// SIFの呼び出し
			sIFResult = scCall.run(sIFRequest, handle);

			CAANMsg[] ekk0531a010cbsmsg1List = template.getCAANMsgList(EKK0531A010CBSMsg.EKK0531A010CBSMSG1LIST);
			
			if (ekk0531a010cbsmsg1List != null)
			{
				creditKokanCd = ekk0531a010cbsmsg1List[0].getString("credit_kokan_cd");
			}

			return creditKokanCd;
		}
	/**
	 * サービスI/F実行用の共通部を設定します<br>
	 * <br>
	 * 
	 * @param param (I) 業務データ取得用I/F
	 * @param msg データ登録内容
	 * @return オプションサービス契約作成数
	 * @throws RequestParameterException
	 * @exception RequestParameterExceptionがスローされます 。
	 */
	private HashMap<String, Object> editInMsgCmn(IRequestParameterReadOnly param) 
	throws RequestParameterException
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		//電文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;
		
	}
	/**
	 * 条件部の共通する項目の設定
	 * @param param リクエストパラメータ
	 * @param template template 条件の設定先
	 * @param workMap 作業用マップ
	 * @throws RequestParameterException
	 */
	public void editBasicCmn(IRequestParameterReadOnly param, CAANMsg template, HashMap<String, Object> workMap)
	throws RequestParameterException
	{
		
		// オペレータ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);
		workMap.put(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);
		
		//取引年月日
		workMap.put(EKKA0010001CBSMsg.OPERATEDATE,com.fujitsu.futurity.bp.custom.common.JFUBPCommon.getOpeDateTimeStamp(null).substring(0, 8));
		
		//取引時間
		workMap.put(EKKA0010001CBSMsg.OPERATEDATETIME,com.fujitsu.futurity.bp.custom.common.JFUBPCommon.getOpeDateTimeStamp(null).substring(8, 14));
		
	}
	/**
	 * Nullマッピングで埋める
	 * @param msg 対象クラス
	 * @param contents 対応クラスのフィールド列挙
	 */
	private void fillCAANMSGNullMapping(CAANMsg msg, Object[][] contents)
	{
		
		//要素ごとのループ
		for(int i = 0 ; i < contents.length ; i++)
		{
			
			Object element = null;
			
			//キーに該当する箇所の取得
			element = contents[i][0];

			//Nullでマッピング
			msg.setNull((String)element);
			
		}
		
	}
// ANK-2565-00-00 2015/11/18 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(HashMap<String, Object> param, String key, int startPst, int endPst, int maxVal) throws RequestParameterException
	{
		String val = "";
		ArrayList<String> outList = new ArrayList<String>();
		if (param.get(key) != null && !"".equals(param.get(key)))
		{
			val = (String)param.get(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
}
