/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKUpdSvcKeiAdslCC
*   ソースファイル名：JKKUpdSvcKeiAdslCC.java
*   作成者          ：富士通
*   日付            ：2011年12月8日
*＜機能概要＞
*   eoADSL更新処理を行います。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/12/08   FJ）木村    新規作成
*   v4.00.00    2012/07/09   FJ) 三浦    【ANK-0397-00-00】申込書番号の発番検討における対応
*
**********************************************************************/

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.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.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.ejb.cbs.cbsmsg.EKK0021C040CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081C100CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0141C040CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0351C220CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0361D010CBSMsg;

/**
 * eoADSL変更部品
 * <BR>
 * @author 富士通
 */
public class JKKUpdSvcKeiAdslCC extends AbstractCommonComponent
{
	/** リターンメッセージ **/
	private static final String RETURN_MESSAGE_STRING = "RETURN_MESSAGE_";
	/** リターンメッセージ **/
	private static final String RETURN_MESSAGE_FORMAT = "%1$04d";
	
	///** 作業マップ **/
	//private static final String CC_WORK_AREA_NAME = "JKKUpdSvcKeiAdslCCWork";
	/** エラー用 */
	private static final String SC_ERROR_STRING = "サービスコンポーネントエラー";

	/** 申込明細情報変更用プレフィックス */
	private static final String PREFIX_MSKM_DTL = "kk0021_";
	/** サービス契約＜eoADSL＞情報変更用プレフィックス */
	private static final String PREFIX_CHG_INFO = "kk0141_";
	/** サービス契約手続中料金プラン変更用プレフィックス */
	private static final String PREFIX_CHG_PLAN = "kk0081_";
	/** オプションサービス契約キャンセル用プレフィックス */
	private static final String PREFIX_CANCEL_OP = "kk0351_";
	/** オプションサービス契約＜ISP＞登録用プレフィックス */
	private static final String PREFIX_ADD_OPISP = "kk0361_";

	/** 排他制御用のサービス契約番号 */
	private String exclSvcKeiNo = null;
	
	/**
	 * eoADSL変更処理を行います。
	 * <br>
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @return IRequestParameterReadWrite
	 * @throws Exception
	 */
	public IRequestParameterReadWrite updSvcKeiAdsl(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// エラーフラグ(実行判定用)
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		HashMap<String, Object> paramMap = setSCInputCommonData(param, new HashMap<String, Object>());
		Map<?, ?> result = null;
		CAANMsg template = null;
		
		//***************************************************
		// 入力パラメータの取得
		//***************************************************
		Map<String, Object> ccParam = (Map<String, Object>)param.getData(fixedText);
		if (ccParam == null)
		{
			return param;
		}

		exclSvcKeiNo = getMapValue(param, fixedText, PREFIX_CHG_INFO + "svc_kei_no") ;

		// 申込明細情報変更
		template = editInEKK0021C040(param, fixedText, PREFIX_MSKM_DTL); // 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
		editRetEKK0021C040(result, param, fixedText, PREFIX_MSKM_DTL); // 下りマッピング
		if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
		{
			// ステータスが単項目エラー以上であれば例外をスロー
			throw new CCException(SC_ERROR_STRING, new Exception());
		}

		if (getMapValue(param, fixedText, PREFIX_CHG_PLAN + "svc_kei_no") != null)
		{
			// サービス契約手続中料金プラン変更
			template = editInEKK0081C100(param, fixedText, PREFIX_CHG_PLAN); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editRetEKK0081C100(result, param, fixedText, PREFIX_CHG_PLAN); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{
				// ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}
		
		if (getMapValue(param, fixedText, PREFIX_CHG_INFO + "svc_kei_no") != null)
		{
			// サービス契約<eoADSL>情報変更
			template = editInEKK0141C040(param, fixedText, PREFIX_CHG_INFO); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editRetEKK0141C040(result, param, fixedText, PREFIX_CHG_INFO); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{
				// ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}

		if (getMapValue(param, fixedText, PREFIX_CANCEL_OP + "op_svc_kei_no") != null)
		{
			// オプションサービス契約キャンセル
			template = editInEKK0351C220(param, fixedText, PREFIX_CANCEL_OP); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editRetEKK0351C220(result, param, fixedText, PREFIX_CANCEL_OP); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{
				// ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}
		
		if (getMapValue(param, fixedText, PREFIX_ADD_OPISP + "op_svc_cd") != null)
		{
			// オプションサービス契約<ISP>登録
			template = editInEKK0361D010(param, fixedText, PREFIX_ADD_OPISP); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editRetEKK0361D010(result, param, fixedText, PREFIX_ADD_OPISP); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{
				// ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}
		
		return param;
	}
	
	/**
	 * リクエストパラメータのキーに対応する値を返却します。
	 * <br>
	 * 
	 * @param param
	 * @param fixedText
	 * @param key
	 * @return keyに対応する値
	 * @throws RequestParameterException
	 */
	private String getMapValue(IRequestParameterReadWrite param, String fixedText, String key) throws RequestParameterException
	{
		HashMap<String, String> inMap = (HashMap<String, String>)(param.getData(fixedText));
		String result = inMap.get(key);
		if ("".equals(result))
		{
			result = null;
		}

		return result;
	}

	/**
	 * 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;
	}
	
	/**
	 * 申込明細情報変更の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	private CAANMsg editInEKK0021C040(IRequestParameterReadWrite param, String fixedText, String prefix) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0021C040CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0021C040CBSMsg.TEMPLATEID, "EKK0021C040");

		// 機能コード（デフォルト：１）
		template.set(EKK0021C040CBSMsg.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, String> inMap = (HashMap<String, String>)param.getData(fixedText);

		// 機能コード
		if (inMap != null)
		{
			template.set(EKK0021C040CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));
		}

		// 申込明細番号
		if (inMap == null || inMap.get(prefix + "mskm_dtl_no") == null || "".equals(inMap.get(prefix + "mskm_dtl_no")))
		{
			template.setNull(EKK0021C040CBSMsg.MSKM_DTL_NO);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.MSKM_DTL_NO, inMap.get(prefix + "mskm_dtl_no"));
			JKKBpCommon.setMskmDtlNo(param, template.getString(EKK0021C040CBSMsg.MSKM_DTL_NO));
			// 契約新規申込ワークエリアへ登録
			JKKBpCommon.setWkMskmDtlNoAdsl(param, template.getString(EKK0021C040CBSMsg.MSKM_DTL_NO));
		}

		// 申込書番号
		if (inMap == null || inMap.get(prefix + "mskmsho_no") == null || "".equals(inMap.get(prefix + "mskmsho_no")))
		{
			template.setNull(EKK0021C040CBSMsg.MSKMSHO_NO);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.MSKMSHO_NO, inMap.get(prefix + "mskmsho_no"));
		}

		// 申込年月日
		if (inMap == null || inMap.get(prefix + "mskm_ymd") == null || "".equals(inMap.get(prefix + "mskm_ymd")))
		{
			template.setNull(EKK0021C040CBSMsg.MSKM_YMD);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.MSKM_YMD, inMap.get(prefix + "mskm_ymd"));
		}

		// 申込形態コード
		if (inMap == null || inMap.get(prefix + "mskm_form_cd") == null || "".equals(inMap.get(prefix + "mskm_form_cd")))
		{
			template.setNull(EKK0021C040CBSMsg.MSKM_FORM_CD);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.MSKM_FORM_CD, inMap.get(prefix + "mskm_form_cd"));
		}

		// 申込明細種別コード
		if (inMap == null || inMap.get(prefix + "mskm_dtl_sbt_cd") == null || "".equals(inMap.get(prefix + "mskm_dtl_sbt_cd")))
		{
			template.setNull(EKK0021C040CBSMsg.MSKM_DTL_SBT_CD);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.MSKM_DTL_SBT_CD, inMap.get(prefix + "mskm_dtl_sbt_cd"));
		}

		// 連絡先携帯電話番号
		if (inMap == null || inMap.get(prefix + "rrks_ktai_telno") == null || "".equals(inMap.get(prefix + "rrks_ktai_telno")))
		{
			template.setNull(EKK0021C040CBSMsg.RRKS_KTAI_TELNO);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.RRKS_KTAI_TELNO, inMap.get(prefix + "rrks_ktai_telno"));
		}

		// 連絡先勤務先名
		if (inMap == null || inMap.get(prefix + "rrks_offc_nm") == null || "".equals(inMap.get(prefix + "rrks_offc_nm")))
		{
			template.setNull(EKK0021C040CBSMsg.RRKS_OFFC_NM);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.RRKS_OFFC_NM, inMap.get(prefix + "rrks_offc_nm"));
		}

		// 昼間連絡先電話番号
		if (inMap == null || inMap.get(prefix + "dt_rrks_telno") == null || "".equals(inMap.get(prefix + "dt_rrks_telno")))
		{
			template.setNull(EKK0021C040CBSMsg.DT_RRKS_TELNO);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.DT_RRKS_TELNO, inMap.get(prefix + "dt_rrks_telno"));
		}

		// 新規申込種別コード
		if (inMap == null || inMap.get(prefix + "new_mskm_sbt_cd") == null || "".equals(inMap.get(prefix + "new_mskm_sbt_cd")))
		{
			template.setNull(EKK0021C040CBSMsg.NEW_MSKM_SBT_CD);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.NEW_MSKM_SBT_CD, inMap.get(prefix + "new_mskm_sbt_cd"));
		}

		// 申込契機コード
		if (inMap == null || inMap.get(prefix + "mskm_optnty_cd") == null || "".equals(inMap.get(prefix + "mskm_optnty_cd")))
		{
			template.setNull(EKK0021C040CBSMsg.MSKM_OPTNTY_CD);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.MSKM_OPTNTY_CD, inMap.get(prefix + "mskm_optnty_cd"));
		}

		// 宅内調査希望アポ期限年月日
		if (inMap == null || inMap.get(prefix + "takcho_kibo_apo_kigen_ymd") == null || "".equals(inMap.get(prefix + "takcho_kibo_apo_kigen_ymd")))
		{
			template.setNull(EKK0021C040CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD, inMap.get(prefix + "takcho_kibo_apo_kigen_ymd"));
		}

		// 工事アポ連絡先指定コード
		if (inMap == null || inMap.get(prefix + "koji_apo_rrks_shitei_cd") == null || "".equals(inMap.get(prefix + "koji_apo_rrks_shitei_cd")))
		{
			template.setNull(EKK0021C040CBSMsg.KOJI_APO_RRKS_SHITEI_CD);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.KOJI_APO_RRKS_SHITEI_CD, inMap.get(prefix + "koji_apo_rrks_shitei_cd"));
		}

		// 工事アポ連絡先電話番号
		if (inMap == null || inMap.get(prefix + "koji_apo_rrks_telno") == null || "".equals(inMap.get(prefix + "koji_apo_rrks_telno")))
		{
			template.setNull(EKK0021C040CBSMsg.KOJI_APO_RRKS_TELNO);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.KOJI_APO_RRKS_TELNO, inMap.get(prefix + "koji_apo_rrks_telno"));
		}

		// 連絡事項登録年月日時分秒
		if (inMap == null || inMap.get(prefix + "rrk_jiko_add_dtm") == null || "".equals(inMap.get(prefix + "rrk_jiko_add_dtm")))
		{
			template.setNull(EKK0021C040CBSMsg.RRK_JIKO_ADD_DTM);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.RRK_JIKO_ADD_DTM, inMap.get(prefix + "rrk_jiko_add_dtm"));
		}

		// 申込連絡先メールアドレス
		if (inMap == null || inMap.get(prefix + "mskm_rrks_mlad") == null || "".equals(inMap.get(prefix + "mskm_rrks_mlad")))
		{
			template.setNull(EKK0021C040CBSMsg.MSKM_RRKS_MLAD);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.MSKM_RRKS_MLAD, inMap.get(prefix + "mskm_rrks_mlad"));
		}

		// 工事進捗通知メールアドレス
		if (inMap == null || inMap.get(prefix + "koji_prg_tchi_mlad") == null || "".equals(inMap.get(prefix + "koji_prg_tchi_mlad")))
		{
			template.setNull(EKK0021C040CBSMsg.KOJI_PRG_TCHI_MLAD);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.KOJI_PRG_TCHI_MLAD, inMap.get(prefix + "koji_prg_tchi_mlad"));
		}

		// 連絡事項
		if (inMap == null || inMap.get(prefix + "rrk_jiko") == null || "".equals(inMap.get(prefix + "rrk_jiko")))
		{
			template.setNull(EKK0021C040CBSMsg.RRK_JIKO);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.RRK_JIKO, inMap.get(prefix + "rrk_jiko"));
		}

		// 最新照会年月日
		if (inMap == null || inMap.get(prefix + "rcnt_shokai_ymd") == null || "".equals(inMap.get(prefix + "rcnt_shokai_ymd")))
		{
			template.setNull(EKK0021C040CBSMsg.RCNT_SHOKAI_YMD);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.RCNT_SHOKAI_YMD, inMap.get(prefix + "rcnt_shokai_ymd"));
		}

		// Web照会回数
		if (inMap == null || inMap.get(prefix + "web_shokai_cnt") == null || "".equals(inMap.get(prefix + "web_shokai_cnt")))
		{
			template.setNull(EKK0021C040CBSMsg.WEB_SHOKAI_CNT);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.WEB_SHOKAI_CNT, inMap.get(prefix + "web_shokai_cnt"));
		}

		// PC照会回数
		if (inMap == null || inMap.get(prefix + "pc_shokai_cnt") == null || "".equals(inMap.get(prefix + "pc_shokai_cnt")))
		{
			template.setNull(EKK0021C040CBSMsg.PC_SHOKAI_CNT);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.PC_SHOKAI_CNT, inMap.get(prefix + "pc_shokai_cnt"));
		}

		// 携帯照会回数
		if (inMap == null || inMap.get(prefix + "ktai_shokai_cnt") == null || "".equals(inMap.get(prefix + "ktai_shokai_cnt")))
		{
			template.setNull(EKK0021C040CBSMsg.KTAI_SHOKAI_CNT);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.KTAI_SHOKAI_CNT, inMap.get(prefix + "ktai_shokai_cnt"));
		}

		// 工事進捗通知携帯メールアドレス
		if (inMap == null || inMap.get(prefix + "kjsc_tch_ktai_mlad") == null || "".equals(inMap.get(prefix + "kjsc_tch_ktai_mlad")))
		{
			template.setNull(EKK0021C040CBSMsg.KJSC_TCH_KTAI_MLAD);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.KJSC_TCH_KTAI_MLAD, inMap.get(prefix + "kjsc_tch_ktai_mlad"));
		}

		// 工事進捗通知PCメールアドレス変更年月日
		if (inMap == null || inMap.get(prefix + "kjsc_tch_pc_mlad_chg_ymd") == null || "".equals(inMap.get(prefix + "kjsc_tch_pc_mlad_chg_ymd")))
		{
			template.setNull(EKK0021C040CBSMsg.KJSC_TCH_PC_MLAD_CHG_YMD);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.KJSC_TCH_PC_MLAD_CHG_YMD, inMap.get(prefix + "kjsc_tch_pc_mlad_chg_ymd"));
		}

		// 工事進捗通知携帯メールアドレス変更年月日
		if (inMap == null || inMap.get(prefix + "kjsc_tch_ktai_mlad_chg_ymd") == null || "".equals(inMap.get(prefix + "kjsc_tch_ktai_mlad_chg_ymd")))
		{
			template.setNull(EKK0021C040CBSMsg.KJSC_TCH_KTAI_MLAD_CHG_YMD);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.KJSC_TCH_KTAI_MLAD_CHG_YMD, inMap.get(prefix + "kjsc_tch_ktai_mlad_chg_ymd"));
		}

		// メール送信除外フラグ
		if (inMap == null || inMap.get(prefix + "ml_send_jgi_flg") == null || "".equals(inMap.get(prefix + "ml_send_jgi_flg")))
		{
			template.setNull(EKK0021C040CBSMsg.ML_SEND_JGI_FLG);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.ML_SEND_JGI_FLG, inMap.get(prefix + "ml_send_jgi_flg"));
		}

		// メール送信除外理由メモ
		if (inMap == null || inMap.get(prefix + "ml_send_jgi_rsn_memo") == null || "".equals(inMap.get(prefix + "ml_send_jgi_rsn_memo")))
		{
			template.setNull(EKK0021C040CBSMsg.ML_SEND_JGI_RSN_MEMO);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.ML_SEND_JGI_RSN_MEMO, inMap.get(prefix + "ml_send_jgi_rsn_memo"));
		}

		// 番ポ申込連絡先電話番号
		if (inMap == null || inMap.get(prefix + "bmp_mskm_rrks_tln") == null || "".equals(inMap.get(prefix + "bmp_mskm_rrks_tln")))
		{
			template.setNull(EKK0021C040CBSMsg.BMP_MSKM_RRKS_TLN);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.BMP_MSKM_RRKS_TLN, inMap.get(prefix + "bmp_mskm_rrks_tln"));
		}

		// オプションサービス引継有無
		if (inMap == null || inMap.get(prefix + "op_svc_hktgi_um") == null || "".equals(inMap.get(prefix + "op_svc_hktgi_um")))
		{
			//**********↓障害対応(IT1-2012-0000024)**********/
//			template.setNull(EKK0021C040CBSMsg.OP_SVC_HKTGI_UM);
			template.set(EKK0021C040CBSMsg.OP_SVC_HKTGI_UM, JKKStrConst.CD_DIV_UM_NASHI);
			//**********↑障害対応(IT1-2012-0000024)**********/
		}
		else
		{
			template.set(EKK0021C040CBSMsg.OP_SVC_HKTGI_UM, inMap.get(prefix + "op_svc_hktgi_um"));
		}

		// 解約書類送付希望有無
		if (inMap == null || inMap.get(prefix + "dsl_aticle_sohu_kibo_um") == null || "".equals(inMap.get(prefix + "dsl_aticle_sohu_kibo_um")))
		{
			template.setNull(EKK0021C040CBSMsg.DSL_ATICLE_SOHU_KIBO_UM);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.DSL_ATICLE_SOHU_KIBO_UM, inMap.get(prefix + "dsl_aticle_sohu_kibo_um"));
		}

		// 連絡手段補記
		if (inMap == null || inMap.get(prefix + "rrk_way_hoki") == null || "".equals(inMap.get(prefix + "rrk_way_hoki")))
		{
			template.setNull(EKK0021C040CBSMsg.RRK_WAY_HOKI);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.RRK_WAY_HOKI, inMap.get(prefix + "rrk_way_hoki"));
		}

		// 新築物件コード
		if (inMap == null || inMap.get(prefix + "newconst_bukken_cd") == null || "".equals(inMap.get(prefix + "newconst_bukken_cd")))
		{
			template.setNull(EKK0021C040CBSMsg.NEWCONST_BUKKEN_CD);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.NEWCONST_BUKKEN_CD, inMap.get(prefix + "newconst_bukken_cd"));
		}

		// 復活案件フラグ
		if (inMap == null || inMap.get(prefix + "hukkat_anken_flg") == null || "".equals(inMap.get(prefix + "hukkat_anken_flg")))
		{
			template.setNull(EKK0021C040CBSMsg.HUKKAT_ANKEN_FLG);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.HUKKAT_ANKEN_FLG, inMap.get(prefix + "hukkat_anken_flg"));
		}

		// 同一設備再申込コード
		if (inMap == null || inMap.get(prefix + "same_equip_re_mskm_cd") == null || "".equals(inMap.get(prefix + "same_equip_re_mskm_cd")))
		{
			template.setNull(EKK0021C040CBSMsg.SAME_EQUIP_RE_MSKM_CD);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.SAME_EQUIP_RE_MSKM_CD, inMap.get(prefix + "same_equip_re_mskm_cd"));
		}

		// 本人確認書類種別コード
		if (inMap == null || inMap.get(prefix + "hnin_cfm_aticle_sbt_cd") == null || "".equals(inMap.get(prefix + "hnin_cfm_aticle_sbt_cd")))
		{
			template.setNull(EKK0021C040CBSMsg.HNIN_CFM_ATICLE_SBT_CD);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.HNIN_CFM_ATICLE_SBT_CD, inMap.get(prefix + "hnin_cfm_aticle_sbt_cd"));
		}

		// 契約付加コード
		if (inMap == null || inMap.get(prefix + "kei_huka_cd") == null || "".equals(inMap.get(prefix + "kei_huka_cd")))
		{
			template.setNull(EKK0021C040CBSMsg.KEI_HUKA_CD);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.KEI_HUKA_CD, inMap.get(prefix + "kei_huka_cd"));
		}

		// 地図添付有無
		if (inMap == null || inMap.get(prefix + "map_temp_um") == null || "".equals(inMap.get(prefix + "map_temp_um")))
		{
			template.setNull(EKK0021C040CBSMsg.MAP_TEMP_UM);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.MAP_TEMP_UM, inMap.get(prefix + "map_temp_um"));
		}

		// KCNSTB申込台数
		if (inMap == null || inMap.get(prefix + "kcn_stb_mskm_cnt") == null || "".equals(inMap.get(prefix + "kcn_stb_mskm_cnt")))
		{
			template.setNull(EKK0021C040CBSMsg.KCN_STB_MSKM_CNT);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.KCN_STB_MSKM_CNT, inMap.get(prefix + "kcn_stb_mskm_cnt"));
		}

		// KCNSTB種類コード
		if (inMap == null || inMap.get(prefix + "kcn_stb_kind_cd") == null || "".equals(inMap.get(prefix + "kcn_stb_kind_cd")))
		{
			template.setNull(EKK0021C040CBSMsg.KCN_STB_KIND_CD);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.KCN_STB_KIND_CD, inMap.get(prefix + "kcn_stb_kind_cd"));
		}

		// マンション設備システム連携用記事欄
		if (inMap == null || inMap.get(prefix + "manssbsys_rnki_yo_kijiran") == null || "".equals(inMap.get(prefix + "manssbsys_rnki_yo_kijiran")))
		{
			template.setNull(EKK0021C040CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN, inMap.get(prefix + "manssbsys_rnki_yo_kijiran"));
		}

		// マンションID
		if (inMap == null || inMap.get(prefix + "mansion_id") == null || "".equals(inMap.get(prefix + "mansion_id")))
		{
			template.setNull(EKK0021C040CBSMsg.MANSION_ID);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.MANSION_ID, inMap.get(prefix + "mansion_id"));
		}

		// CAT-ID
		if (inMap == null || inMap.get(prefix + "catid") == null || "".equals(inMap.get(prefix + "catid")))
		{
			template.setNull(EKK0021C040CBSMsg.CATID);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.CATID, inMap.get(prefix + "catid"));
		}

		// 申込受付種別コード
		if (inMap == null || inMap.get(prefix + "mkm_uk_sbt_cd") == null || "".equals(inMap.get(prefix + "mkm_uk_sbt_cd")))
		{
			template.setNull(EKK0021C040CBSMsg.MKM_UK_SBT_CD);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.MKM_UK_SBT_CD, inMap.get(prefix + "mkm_uk_sbt_cd"));
		}

		// 申込書取扱情報担当者名
		if (inMap == null || inMap.get(prefix + "mskmsho_trat_if_tntsha_nm") == null || "".equals(inMap.get(prefix + "mskmsho_trat_if_tntsha_nm")))
		{
			template.setNull(EKK0021C040CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM, inMap.get(prefix + "mskmsho_trat_if_tntsha_nm"));
		}

		// 申込書取扱情報電話番号
		if (inMap == null || inMap.get(prefix + "mskmsho_trat_if_telno") == null || "".equals(inMap.get(prefix + "mskmsho_trat_if_telno")))
		{
			template.setNull(EKK0021C040CBSMsg.MSKMSHO_TRAT_IF_TELNO);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.MSKMSHO_TRAT_IF_TELNO, inMap.get(prefix + "mskmsho_trat_if_telno"));
		}

		// 更新年月日時分秒(更新前)
		String lastUpdDtm = JKKBpCommon.getLastDtmByMskm(param,
				inMap.get(prefix + "upd_dtm_bf"));
		template.set(EKK0021C040CBSMsg.UPD_DTM_BF, lastUpdDtm);
		
		// 申込書明細番号
		if (inMap == null || inMap.get(prefix + "mskmsho_dtl_no") == null || "".equals(inMap.get(prefix + "mskmsho_dtl_no")))
		{
			if (JKKBpCommon.getWkMskmshoDtlNoAdsl(param) == null || "".equals(JKKBpCommon.getWkMskmshoDtlNoAdsl(param)))
			{
				template.setNull(EKK0021C040CBSMsg.MSKMSHO_DTL_NO);
			}
			else
			{
				template.set(EKK0021C040CBSMsg.MSKMSHO_DTL_NO, JKKBpCommon.getWkMskmshoDtlNoAdsl(param));
			}
		}
		else
		{
			template.set(EKK0021C040CBSMsg.MSKMSHO_DTL_NO, inMap.get(prefix + "mskmsho_dtl_no"));
		}

		// 本人確認書類名
		if (inMap == null || inMap.get(prefix + "hnin_cfm_aticle_nm") == null || "".equals(inMap.get(prefix + "hnin_cfm_aticle_nm")))
		{
			template.setNull(EKK0021C040CBSMsg.HNIN_CFM_ATICLE_NM);
		}
		else
		{
			template.set(EKK0021C040CBSMsg.HNIN_CFM_ATICLE_NM, inMap.get(prefix + "hnin_cfm_aticle_nm"));
		}

		return template;
	}
	
	/**
	 * 申込明細情報変更の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return IRequestParameterReadWrite
	 * @throws Exception
	 */
	private IRequestParameterReadWrite editRetEKK0021C040(Map<?, ?> msgList, IRequestParameterReadWrite param,
			String fixedText, String prefix) 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);

		/* 業務データ設定 */
		HashMap<String, String> dataMap = (HashMap<String, String>)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap<String, String>();
			param.setData(fixedText, dataMap);
		}
		
		// 世代登録年月日時分秒
		if (template.isNull(EKK0021C040CBSMsg.GENE_ADD_DTM))
		{
			dataMap.put(prefix + "gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "gene_add_dtm", template.getString(EKK0021C040CBSMsg.GENE_ADD_DTM));
		}
		
		// 登録年月日時分秒
		if (template.isNull(EKK0021C040CBSMsg.ADD_DTM))
		{
			dataMap.put(prefix + "add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "add_dtm", template.getString(EKK0021C040CBSMsg.ADD_DTM));
		}
		
		// 登録オペレータアカウント
		if (template.isNull(EKK0021C040CBSMsg.ADD_OPEACNT))
		{
			dataMap.put(prefix + "add_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "add_opeacnt", template.getString(EKK0021C040CBSMsg.ADD_OPEACNT));
		}
		
		// 更新年月日時分秒
		if (template.isNull(EKK0021C040CBSMsg.UPD_DTM))
		{
			dataMap.put(prefix + "upd_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "upd_dtm", template.getString(EKK0021C040CBSMsg.UPD_DTM));
			JKKBpCommon.setLastDtmByMskm(param,
					template.getString(EKK0021C040CBSMsg.UPD_DTM));
		}
		
		// 更新オペレータアカウント
		if (template.isNull(EKK0021C040CBSMsg.UPD_OPEACNT))
		{
			dataMap.put(prefix + "upd_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "upd_opeacnt", template.getString(EKK0021C040CBSMsg.UPD_OPEACNT));
		}
		
		// 無効フラグ
		if (template.isNull(EKK0021C040CBSMsg.MK_FLG))
		{
			dataMap.put(prefix + "mk_flg", "");
		}
		else
		{
			dataMap.put(prefix + "mk_flg", template.getString(EKK0021C040CBSMsg.MK_FLG));
		}

		// エラー情報の設定
		editErrInfoEKK0021C040(param, template, (Integer)returnCode, fixedText, prefix);
		
		// エラー情報のマップを取得
		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 param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @param prefix
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrInfoEKK0021C040(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			String fixedText, String prefix) throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0021C040CBSMsg.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<String, String> inMap = (HashMap<String, String>)(param.getData(fixedText));
		
		// 申込明細番号 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_dtl_no_err"))
			{
				inMap.put(prefix + "mskm_dtl_no_err", template.getString(EKK0021C040CBSMsg.MSKM_DTL_NO_ERR));
			}
		}
		
		// 申込書番号 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.MSKMSHO_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskmsho_no_err"))
			{
				inMap.put(prefix + "mskmsho_no_err", template.getString(EKK0021C040CBSMsg.MSKMSHO_NO_ERR));
			}
		}
		
		// 申込年月日 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.MSKM_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_ymd_err"))
			{
				inMap.put(prefix + "mskm_ymd_err", template.getString(EKK0021C040CBSMsg.MSKM_YMD_ERR));
			}
		}
		
		// 申込形態コード のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.MSKM_FORM_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_form_cd_err"))
			{
				inMap.put(prefix + "mskm_form_cd_err", template.getString(EKK0021C040CBSMsg.MSKM_FORM_CD_ERR));
			}
		}
		
		// 申込明細種別コード のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.MSKM_DTL_SBT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_dtl_sbt_cd_err"))
			{
				inMap.put(prefix + "mskm_dtl_sbt_cd_err", template.getString(EKK0021C040CBSMsg.MSKM_DTL_SBT_CD_ERR));
			}
		}
		
		// 連絡先携帯電話番号 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.RRKS_KTAI_TELNO_ERR))
		{
			if (!inMap.containsKey(prefix + "rrks_ktai_telno_err"))
			{
				inMap.put(prefix + "rrks_ktai_telno_err", template.getString(EKK0021C040CBSMsg.RRKS_KTAI_TELNO_ERR));
			}
		}
		
		// 連絡先勤務先名 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.RRKS_OFFC_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "rrks_offc_nm_err"))
			{
				inMap.put(prefix + "rrks_offc_nm_err", template.getString(EKK0021C040CBSMsg.RRKS_OFFC_NM_ERR));
			}
		}
		
		// 昼間連絡先電話番号 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.DT_RRKS_TELNO_ERR))
		{
			if (!inMap.containsKey(prefix + "dt_rrks_telno_err"))
			{
				inMap.put(prefix + "dt_rrks_telno_err", template.getString(EKK0021C040CBSMsg.DT_RRKS_TELNO_ERR));
			}
		}
		
		// 新規申込種別コード のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.NEW_MSKM_SBT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "new_mskm_sbt_cd_err"))
			{
				inMap.put(prefix + "new_mskm_sbt_cd_err", template.getString(EKK0021C040CBSMsg.NEW_MSKM_SBT_CD_ERR));
			}
		}
		
		// 申込契機コード のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.MSKM_OPTNTY_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_optnty_cd_err"))
			{
				inMap.put(prefix + "mskm_optnty_cd_err", template.getString(EKK0021C040CBSMsg.MSKM_OPTNTY_CD_ERR));
			}
		}
		
		// 宅内調査希望アポ期限年月日 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "takcho_kibo_apo_kigen_ymd_err"))
			{
				inMap.put(prefix + "takcho_kibo_apo_kigen_ymd_err", template.getString(EKK0021C040CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD_ERR));
			}
		}
		
		// 工事アポ連絡先指定コード のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.KOJI_APO_RRKS_SHITEI_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "koji_apo_rrks_shitei_cd_err"))
			{
				inMap.put(prefix + "koji_apo_rrks_shitei_cd_err", template.getString(EKK0021C040CBSMsg.KOJI_APO_RRKS_SHITEI_CD_ERR));
			}
		}
		
		// 工事アポ連絡先電話番号 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.KOJI_APO_RRKS_TELNO_ERR))
		{
			if (!inMap.containsKey(prefix + "koji_apo_rrks_telno_err"))
			{
				inMap.put(prefix + "koji_apo_rrks_telno_err", template.getString(EKK0021C040CBSMsg.KOJI_APO_RRKS_TELNO_ERR));
			}
		}
		
		// 連絡事項登録年月日時分秒 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.RRK_JIKO_ADD_DTM_ERR))
		{
			if (!inMap.containsKey(prefix + "rrk_jiko_add_dtm_err"))
			{
				inMap.put(prefix + "rrk_jiko_add_dtm_err", template.getString(EKK0021C040CBSMsg.RRK_JIKO_ADD_DTM_ERR));
			}
		}
		
		// 申込連絡先メールアドレス のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.MSKM_RRKS_MLAD_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_rrks_mlad_err"))
			{
				inMap.put(prefix + "mskm_rrks_mlad_err", template.getString(EKK0021C040CBSMsg.MSKM_RRKS_MLAD_ERR));
			}
		}
		
		// 工事進捗通知メールアドレス のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.KOJI_PRG_TCHI_MLAD_ERR))
		{
			if (!inMap.containsKey(prefix + "koji_prg_tchi_mlad_err"))
			{
				inMap.put(prefix + "koji_prg_tchi_mlad_err", template.getString(EKK0021C040CBSMsg.KOJI_PRG_TCHI_MLAD_ERR));
			}
		}
		
		// 連絡事項 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.RRK_JIKO_ERR))
		{
			if (!inMap.containsKey(prefix + "rrk_jiko_err"))
			{
				inMap.put(prefix + "rrk_jiko_err", template.getString(EKK0021C040CBSMsg.RRK_JIKO_ERR));
			}
		}
		
		// 最新照会年月日 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.RCNT_SHOKAI_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "rcnt_shokai_ymd_err"))
			{
				inMap.put(prefix + "rcnt_shokai_ymd_err", template.getString(EKK0021C040CBSMsg.RCNT_SHOKAI_YMD_ERR));
			}
		}
		
		// Web照会回数 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.WEB_SHOKAI_CNT_ERR))
		{
			if (!inMap.containsKey(prefix + "web_shokai_cnt_err"))
			{
				inMap.put(prefix + "web_shokai_cnt_err", template.getString(EKK0021C040CBSMsg.WEB_SHOKAI_CNT_ERR));
			}
		}
		
		// PC照会回数 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.PC_SHOKAI_CNT_ERR))
		{
			if (!inMap.containsKey(prefix + "pc_shokai_cnt_err"))
			{
				inMap.put(prefix + "pc_shokai_cnt_err", template.getString(EKK0021C040CBSMsg.PC_SHOKAI_CNT_ERR));
			}
		}
		
		// 携帯照会回数 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.KTAI_SHOKAI_CNT_ERR))
		{
			if (!inMap.containsKey(prefix + "ktai_shokai_cnt_err"))
			{
				inMap.put(prefix + "ktai_shokai_cnt_err", template.getString(EKK0021C040CBSMsg.KTAI_SHOKAI_CNT_ERR));
			}
		}
		
		// 工事進捗通知携帯メールアドレス のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.KJSC_TCH_KTAI_MLAD_ERR))
		{
			if (!inMap.containsKey(prefix + "kjsc_tch_ktai_mlad_err"))
			{
				inMap.put(prefix + "kjsc_tch_ktai_mlad_err", template.getString(EKK0021C040CBSMsg.KJSC_TCH_KTAI_MLAD_ERR));
			}
		}
		
		// 工事進捗通知PCメールアドレス変更年月日 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.KJSC_TCH_PC_MLAD_CHG_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "kjsc_tch_pc_mlad_chg_ymd_err"))
			{
				inMap.put(prefix + "kjsc_tch_pc_mlad_chg_ymd_err", template.getString(EKK0021C040CBSMsg.KJSC_TCH_PC_MLAD_CHG_YMD_ERR));
			}
		}
		
		// 工事進捗通知携帯メールアドレス変更年月日 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.KJSC_TCH_KTAI_MLAD_CHG_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "kjsc_tch_ktai_mlad_chg_ymd_err"))
			{
				inMap.put(prefix + "kjsc_tch_ktai_mlad_chg_ymd_err", template.getString(EKK0021C040CBSMsg.KJSC_TCH_KTAI_MLAD_CHG_YMD_ERR));
			}
		}
		
		// メール送信除外フラグ のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.ML_SEND_JGI_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "ml_send_jgi_flg_err"))
			{
				inMap.put(prefix + "ml_send_jgi_flg_err", template.getString(EKK0021C040CBSMsg.ML_SEND_JGI_FLG_ERR));
			}
		}
		
		// メール送信除外理由メモ のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.ML_SEND_JGI_RSN_MEMO_ERR))
		{
			if (!inMap.containsKey(prefix + "ml_send_jgi_rsn_memo_err"))
			{
				inMap.put(prefix + "ml_send_jgi_rsn_memo_err", template.getString(EKK0021C040CBSMsg.ML_SEND_JGI_RSN_MEMO_ERR));
			}
		}
		
		// 番ポ申込連絡先電話番号 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.BMP_MSKM_RRKS_TLN_ERR))
		{
			if (!inMap.containsKey(prefix + "bmp_mskm_rrks_tln_err"))
			{
				inMap.put(prefix + "bmp_mskm_rrks_tln_err", template.getString(EKK0021C040CBSMsg.BMP_MSKM_RRKS_TLN_ERR));
			}
		}
		
		// オプションサービス引継有無 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.OP_SVC_HKTGI_UM_ERR))
		{
			if (!inMap.containsKey(prefix + "op_svc_hktgi_um_err"))
			{
				inMap.put(prefix + "op_svc_hktgi_um_err", template.getString(EKK0021C040CBSMsg.OP_SVC_HKTGI_UM_ERR));
			}
		}
		
		// 解約書類送付希望有無 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.DSL_ATICLE_SOHU_KIBO_UM_ERR))
		{
			if (!inMap.containsKey(prefix + "dsl_aticle_sohu_kibo_um_err"))
			{
				inMap.put(prefix + "dsl_aticle_sohu_kibo_um_err", template.getString(EKK0021C040CBSMsg.DSL_ATICLE_SOHU_KIBO_UM_ERR));
			}
		}
		
		// 連絡手段補記 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.RRK_WAY_HOKI_ERR))
		{
			if (!inMap.containsKey(prefix + "rrk_way_hoki_err"))
			{
				inMap.put(prefix + "rrk_way_hoki_err", template.getString(EKK0021C040CBSMsg.RRK_WAY_HOKI_ERR));
			}
		}
		
		// 新築物件コード のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.NEWCONST_BUKKEN_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "newconst_bukken_cd_err"))
			{
				inMap.put(prefix + "newconst_bukken_cd_err", template.getString(EKK0021C040CBSMsg.NEWCONST_BUKKEN_CD_ERR));
			}
		}

		// 復活案件フラグ のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.HUKKAT_ANKEN_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "hukkat_anken_flg_err"))
			{
				inMap.put(prefix + "hukkat_anken_flg_err", template.getString(EKK0021C040CBSMsg.HUKKAT_ANKEN_FLG_ERR));
			}
		}

		// 同一設備再申込コード のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.SAME_EQUIP_RE_MSKM_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "same_equip_re_mskm_cd_err"))
			{
				inMap.put(prefix + "same_equip_re_mskm_cd_err", template.getString(EKK0021C040CBSMsg.SAME_EQUIP_RE_MSKM_CD_ERR));
			}
		}
		
		// 本人確認書類種別コード のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.HNIN_CFM_ATICLE_SBT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "hnin_cfm_aticle_sbt_cd_err"))
			{
				inMap.put(prefix + "hnin_cfm_aticle_sbt_cd_err", template.getString(EKK0021C040CBSMsg.HNIN_CFM_ATICLE_SBT_CD_ERR));
			}
		}

		// 契約付加コード のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.HNIN_CFM_ATICLE_SBT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kei_huka_cd_err"))
			{
				inMap.put(prefix + "kei_huka_cd_err", template.getString(EKK0021C040CBSMsg.HNIN_CFM_ATICLE_SBT_CD_ERR));
			}
		}

		// 地図添付有無 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.MAP_TEMP_UM_ERR))
		{
			if (!inMap.containsKey(prefix + "map_temp_um_err"))
			{
				inMap.put(prefix + "map_temp_um_err", template.getString(EKK0021C040CBSMsg.MAP_TEMP_UM_ERR));
			}
		}
		
		// KCNSTB申込台数 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.KCN_STB_MSKM_CNT_ERR))
		{
			if (!inMap.containsKey(prefix + "kcn_stb_mskm_cnt_err"))
			{
				inMap.put(prefix + "kcn_stb_mskm_cnt_err", template.getString(EKK0021C040CBSMsg.KCN_STB_MSKM_CNT_ERR));
			}
		}
		
		// KCNSTB種類コード のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.KCN_STB_KIND_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kcn_stb_kind_cd_err"))
			{
				inMap.put(prefix + "kcn_stb_kind_cd_err", template.getString(EKK0021C040CBSMsg.KCN_STB_KIND_CD_ERR));
			}
		}

		// マンション設備システム連携用記事欄 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN_ERR))
		{
			if (!inMap.containsKey(prefix + "manssbsys_rnki_yo_kijiran_err"))
			{
				inMap.put(prefix + "manssbsys_rnki_yo_kijiran_err", template.getString(EKK0021C040CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN_ERR));
			}
		}

		// マンションID のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.MANSION_ID_ERR))
		{
			if (!inMap.containsKey(prefix + "mansion_id_err"))
			{
				inMap.put(prefix + "mansion_id_err", template.getString(EKK0021C040CBSMsg.MANSION_ID_ERR));
			}
		}

		// CAT-ID のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.CATID_ERR))
		{
			if (!inMap.containsKey(prefix + "catid_err"))
			{
				inMap.put(prefix + "catid_err", template.getString(EKK0021C040CBSMsg.CATID_ERR));
			}
		}

		// 申込受付種別コード のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.MKM_UK_SBT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "mkm_uk_sbt_cd_err"))
			{
				inMap.put(prefix + "mkm_uk_sbt_cd_err", template.getString(EKK0021C040CBSMsg.MKM_UK_SBT_CD_ERR));
			}
		}

		// 申込書取扱情報担当者名 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "mskmsho_trat_if_tntsha_nm_err"))
			{
				inMap.put(prefix + "mskmsho_trat_if_tntsha_nm_err", template.getString(EKK0021C040CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM_ERR));
			}
		}

		// 申込書取扱情報電話番号 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.MSKMSHO_TRAT_IF_TELNO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskmsho_trat_if_telno_err"))
			{
				inMap.put(prefix + "mskmsho_trat_if_telno_err", template.getString(EKK0021C040CBSMsg.MSKMSHO_TRAT_IF_TELNO_ERR));
			}
		}

		// 更新年月日時分秒(更新前) のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.UPD_DTM_BF_ERR))
		{
			if (!inMap.containsKey(prefix + "upd_dtm_bf_err"))
			{
				inMap.put(prefix + "upd_dtm_bf_err", template.getString(EKK0021C040CBSMsg.UPD_DTM_BF_ERR));
			}
		}
		
		// 申込書明細番号 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.MSKMSHO_DTL_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskmsho_dtl_no_err"))
			{
				inMap.put(prefix + "mskmsho_dtl_no_err", template.getString(EKK0021C040CBSMsg.MSKMSHO_DTL_NO_ERR));
			}
		}
		
		// 本人確認書類名 のエラー情報返却
		if (!template.isNull(EKK0021C040CBSMsg.HNIN_CFM_ATICLE_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "hnin_cfm_aticle_nm_err"))
			{
				inMap.put(prefix + "hnin_cfm_aticle_nm_err", template.getString(EKK0021C040CBSMsg.HNIN_CFM_ATICLE_NM_ERR));
			}
		}

		return param;
	}

	/**
	 * サービス契約＜eoADSL＞情報変更の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	private CAANMsg editInEKK0141C040(IRequestParameterReadWrite param, String fixedText, String prefix) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0141C040CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0141C040CBSMsg.TEMPLATEID, "EKK0141C040");

		// 機能コード（デフォルト：１）
		template.set(EKK0141C040CBSMsg.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, String> inMap = (HashMap<String, String>)param.getData(fixedText);

		// 機能コード
		if (inMap != null)
		{
			template.set(EKK0141C040CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));
		}

		// サービス契約番号
		if (inMap == null || inMap.get(prefix + "svc_kei_no") == null || "".equals(inMap.get(prefix + "svc_kei_no")))
		{
			template.setNull(EKK0141C040CBSMsg.SVC_KEI_NO);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.SVC_KEI_NO, inMap.get(prefix + "svc_kei_no"));
			// 契約新規申込ワークエリアへ登録
			JKKBpCommon.setWkSvcKeiNoAdsl(param, inMap.get(prefix + "svc_kei_no"));
		}

		// 申込明細番号
		if (inMap == null || inMap.get(prefix + "mskm_dtl_no") == null || "".equals(inMap.get(prefix + "mskm_dtl_no")))
		{
			template.setNull(EKK0141C040CBSMsg.MSKM_DTL_NO);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.MSKM_DTL_NO, inMap.get(prefix + "mskm_dtl_no"));
		}

		// 整理番号
		if (inMap == null || inMap.get(prefix + "seiri_no") == null || "".equals(inMap.get(prefix + "seiri_no")))
		{
			template.setNull(EKK0141C040CBSMsg.SEIRI_NO);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.SEIRI_NO, inMap.get(prefix + "seiri_no"));
		}

		// 支払い方法継続フラグ
		if (inMap == null || inMap.get(prefix + "payway_keizoku_flg") == null || "".equals(inMap.get(prefix + "payway_keizoku_flg")))
		{
			template.setNull(EKK0141C040CBSMsg.PAYWAY_KEIZOKU_FLG);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.PAYWAY_KEIZOKU_FLG, inMap.get(prefix + "payway_keizoku_flg"));
		}

		// ID速報書出力要否
		if (inMap == null || inMap.get(prefix + "id_sokhosho_output_yh") == null || "".equals(inMap.get(prefix + "id_sokhosho_output_yh")))
		{
			template.setNull(EKK0141C040CBSMsg.ID_SOKHOSHO_OUTPUT_YH);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.ID_SOKHOSHO_OUTPUT_YH, inMap.get(prefix + "id_sokhosho_output_yh"));
		}

		// レター発送仕分区分
		if (inMap == null || inMap.get(prefix + "letter_hasso_shiwake_div") == null || "".equals(inMap.get(prefix + "letter_hasso_shiwake_div")))
		{
			template.setNull(EKK0141C040CBSMsg.LETTER_HASSO_SHIWAKE_DIV);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.LETTER_HASSO_SHIWAKE_DIV, inMap.get(prefix + "letter_hasso_shiwake_div"));
		}

		// 違約金発生コード
		if (inMap == null || inMap.get(prefix + "pnlty_hassei_cd") == null || "".equals(inMap.get(prefix + "pnlty_hassei_cd")))
		{
			template.setNull(EKK0141C040CBSMsg.PNLTY_HASSEI_CD);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.PNLTY_HASSEI_CD, inMap.get(prefix + "pnlty_hassei_cd"));
		}

		// 異動区分
		if (inMap == null || inMap.get(prefix + "ido_div") == null || "".equals(inMap.get(prefix + "ido_div")))
		{
			template.setNull(EKK0141C040CBSMsg.IDO_DIV);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.IDO_DIV, inMap.get(prefix + "ido_div"));
		}

		// 紹介コード
		if (inMap == null || inMap.get(prefix + "intr_cd") == null || "".equals(inMap.get(prefix + "intr_cd")))
		{
			template.setNull(EKK0141C040CBSMsg.INTR_CD);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.INTR_CD, inMap.get(prefix + "intr_cd"));
		}

		// 業務連絡備考
		if (inMap == null || inMap.get(prefix + "work_rrk_biko") == null || "".equals(inMap.get(prefix + "work_rrk_biko")))
		{
			template.setNull(EKK0141C040CBSMsg.WORK_RRK_BIKO);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.WORK_RRK_BIKO, inMap.get(prefix + "work_rrk_biko"));
		}

		// 自動照査処理状態コード
		if (inMap == null || inMap.get(prefix + "auto_shosa_tran_stat_cd") == null || "".equals(inMap.get(prefix + "auto_shosa_tran_stat_cd")))
		{
			template.setNull(EKK0141C040CBSMsg.AUTO_SHOSA_TRAN_STAT_CD);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.AUTO_SHOSA_TRAN_STAT_CD, inMap.get(prefix + "auto_shosa_tran_stat_cd"));
		}

		// 更新年月日時分秒(更新前)
		String lastUpdDtm = JKKBpCommon.getLastDtmBySvcKeiNo(param,
				exclSvcKeiNo,
				inMap.get(prefix + "upd_dtm_bf"));
		template.set(EKK0141C040CBSMsg.UPD_DTM_BF, lastUpdDtm);

		// ADSLタイプコード
		if (inMap == null || inMap.get(prefix + "adsl_type_cd") == null || "".equals(inMap.get(prefix + "adsl_type_cd")))
		{
			template.setNull(EKK0141C040CBSMsg.ADSL_TYPE_CD);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.ADSL_TYPE_CD, inMap.get(prefix + "adsl_type_cd"));
		}

		// ADSL使用電話番号
		if (inMap == null || inMap.get(prefix + "adsl_use_telno") == null || "".equals(inMap.get(prefix + "adsl_use_telno")))
		{
			template.setNull(EKK0141C040CBSMsg.ADSL_USE_TELNO);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.ADSL_USE_TELNO, inMap.get(prefix + "adsl_use_telno"));
		}

		// エリア判定局番
		if (inMap == null || inMap.get(prefix + "area_judge_kyoku_no") == null || "".equals(inMap.get(prefix + "area_judge_kyoku_no")))
		{
			template.setNull(EKK0141C040CBSMsg.AREA_JUDGE_KYOKU_NO);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.AREA_JUDGE_KYOKU_NO, inMap.get(prefix + "area_judge_kyoku_no"));
		}

		// 設置先既設電話番号
		if (inMap == null || inMap.get(prefix + "stc_saki_kst_telno") == null || "".equals(inMap.get(prefix + "stc_saki_kst_telno")))
		{
			template.setNull(EKK0141C040CBSMsg.STC_SAKI_KST_TELNO);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.STC_SAKI_KST_TELNO, inMap.get(prefix + "stc_saki_kst_telno"));
		}

		// NTT集約局名
		if (inMap == null || inMap.get(prefix + "ntt_shyakk_nm") == null || "".equals(inMap.get(prefix + "ntt_shyakk_nm")))
		{
			template.setNull(EKK0141C040CBSMsg.NTT_SHYAKK_NM);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.NTT_SHYAKK_NM, inMap.get(prefix + "ntt_shyakk_nm"));
		}

		// ADSL回線種別コード
		if (inMap == null || inMap.get(prefix + "adsl_kaisen_sbt_cd") == null || "".equals(inMap.get(prefix + "adsl_kaisen_sbt_cd")))
		{
			template.setNull(EKK0141C040CBSMsg.ADSL_KAISEN_SBT_CD);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.ADSL_KAISEN_SBT_CD, inMap.get(prefix + "adsl_kaisen_sbt_cd"));
		}

		// ADSL回線名義人名
		if (inMap == null || inMap.get(prefix + "adsl_kaisen_meigin_nm") == null || "".equals(inMap.get(prefix + "adsl_kaisen_meigin_nm")))
		{
			template.setNull(EKK0141C040CBSMsg.ADSL_KAISEN_MEIGIN_NM);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.ADSL_KAISEN_MEIGIN_NM, inMap.get(prefix + "adsl_kaisen_meigin_nm"));
		}

		// ADSL宅内工事コード
		if (inMap == null || inMap.get(prefix + "adsl_taknikj_cd") == null || "".equals(inMap.get(prefix + "adsl_taknikj_cd")))
		{
			template.setNull(EKK0141C040CBSMsg.ADSL_TAKNIKJ_CD);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.ADSL_TAKNIKJ_CD, inMap.get(prefix + "adsl_taknikj_cd"));
		}

		// アナログ切替承認区分
		if (inMap == null || inMap.get(prefix + "analog_switch_shonin_div") == null || "".equals(inMap.get(prefix + "analog_switch_shonin_div")))
		{
			template.setNull(EKK0141C040CBSMsg.ANALOG_SWITCH_SHONIN_DIV);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.ANALOG_SWITCH_SHONIN_DIV, inMap.get(prefix + "analog_switch_shonin_div"));
		}

		// 審査結果コード
		if (inMap == null || inMap.get(prefix + "skekka_cd") == null || "".equals(inMap.get(prefix + "skekka_cd")))
		{
			template.setNull(EKK0141C040CBSMsg.SKEKKA_CD);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.SKEKKA_CD, inMap.get(prefix + "skekka_cd"));
		}

		// 審査結果詳細コード
		if (inMap == null || inMap.get(prefix + "skekka_dtl_cd") == null || "".equals(inMap.get(prefix + "skekka_dtl_cd")))
		{
			template.setNull(EKK0141C040CBSMsg.SKEKKA_DTL_CD);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.SKEKKA_DTL_CD, inMap.get(prefix + "skekka_dtl_cd"));
		}

		// 審査結果補記コード
		if (inMap == null || inMap.get(prefix + "skekka_hoki_cd") == null || "".equals(inMap.get(prefix + "skekka_hoki_cd")))
		{
			template.setNull(EKK0141C040CBSMsg.SKEKKA_HOKI_CD);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.SKEKKA_HOKI_CD, inMap.get(prefix + "skekka_hoki_cd"));
		}

		// 審査結果送信コード
		if (inMap == null || inMap.get(prefix + "skekka_send_cd") == null || "".equals(inMap.get(prefix + "skekka_send_cd")))
		{
			template.setNull(EKK0141C040CBSMsg.SKEKKA_SEND_CD);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.SKEKKA_SEND_CD, inMap.get(prefix + "skekka_send_cd"));
		}

		// 異動NG状態コード
		if (inMap == null || inMap.get(prefix + "ido_ng_stat_cd") == null || "".equals(inMap.get(prefix + "ido_ng_stat_cd")))
		{
			template.setNull(EKK0141C040CBSMsg.IDO_NG_STAT_CD);
		}
		else
		{
			template.set(EKK0141C040CBSMsg.IDO_NG_STAT_CD, inMap.get(prefix + "ido_ng_stat_cd"));
		}

		return template;
	}

	/**
	 * サービス契約＜eoADSL＞情報変更の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return IRequestParameterReadWrite
	 * @throws Exception
	 */
	private IRequestParameterReadWrite editRetEKK0141C040(Map<?, ?> msgList, IRequestParameterReadWrite param,
			String fixedText, String prefix) 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);

		/* 業務データ設定 */
		HashMap<String, String> dataMap = (HashMap<String, String>)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap<String, String>();
			param.setData(fixedText, dataMap);
		}
		
		// 世代登録年月日時分秒(サービス契約)
		if (template.isNull(EKK0141C040CBSMsg.KK0081_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0081_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0081_gene_add_dtm", template.getString(EKK0141C040CBSMsg.KK0081_GENE_ADD_DTM));
		}
		
		// 予約適用年月日
		if (template.isNull(EKK0141C040CBSMsg.RSV_APLY_YMD))
		{
			dataMap.put(prefix + "rsv_aply_ymd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_ymd", template.getString(EKK0141C040CBSMsg.RSV_APLY_YMD));
		}
		
		// 予約適用コード
		if (template.isNull(EKK0141C040CBSMsg.RSV_APLY_CD))
		{
			dataMap.put(prefix + "rsv_aply_cd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_cd", template.getString(EKK0141C040CBSMsg.RSV_APLY_CD));
		}
		
		// 登録年月日時分秒
		if (template.isNull(EKK0141C040CBSMsg.ADD_DTM))
		{
			dataMap.put(prefix + "add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "add_dtm", template.getString(EKK0141C040CBSMsg.ADD_DTM));
		}
		
		// 登録オペレータアカウント
		if (template.isNull(EKK0141C040CBSMsg.ADD_OPEACNT))
		{
			dataMap.put(prefix + "add_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "add_opeacnt", template.getString(EKK0141C040CBSMsg.ADD_OPEACNT));
		}
		
		// 更新年月日時分秒
		if (template.isNull(EKK0141C040CBSMsg.UPD_DTM))
		{
			dataMap.put(prefix + "upd_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "upd_dtm", template.getString(EKK0141C040CBSMsg.UPD_DTM));
			JKKBpCommon.setLastDtmBySvcKeiNo(param,
					exclSvcKeiNo, 
					template.getString(EKK0141C040CBSMsg.UPD_DTM));
		}
		
		// 更新オペレータアカウント
		if (template.isNull(EKK0141C040CBSMsg.UPD_OPEACNT))
		{
			dataMap.put(prefix + "upd_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "upd_opeacnt", template.getString(EKK0141C040CBSMsg.UPD_OPEACNT));
		}
		
		// 無効フラグ
		if (template.isNull(EKK0141C040CBSMsg.MK_FLG))
		{
			dataMap.put(prefix + "mk_flg", "");
		}
		else
		{
			dataMap.put(prefix + "mk_flg", template.getString(EKK0141C040CBSMsg.MK_FLG));
		}
		
		// 世代登録年月日時分秒(サービス契約<eoADSL>)
		if (template.isNull(EKK0141C040CBSMsg.KK0141_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0141_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0141_gene_add_dtm", template.getString(EKK0141C040CBSMsg.KK0141_GENE_ADD_DTM));
		}

		// エラー情報の設定
		editErrInfoEKK0141C040(param, template, (Integer)returnCode, fixedText, prefix);
		
		// エラー情報のマップを取得
		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;
	}
	
	/**
	 * サービス契約＜eoADSL＞情報変更のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @param prefix
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrInfoEKK0141C040(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			String fixedText, String prefix) throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0141C040CBSMsg.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<String, String> inMap = (HashMap<String, String>)(param.getData(fixedText));
		
		// サービス契約番号 のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_kei_no_err"))
			{
				inMap.put(prefix + "svc_kei_no_err", template.getString(EKK0141C040CBSMsg.SVC_KEI_NO_ERR));
			}
		}
		
		// 申込明細番号 のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_dtl_no_err"))
			{
				inMap.put(prefix + "mskm_dtl_no_err", template.getString(EKK0141C040CBSMsg.MSKM_DTL_NO_ERR));
			}
		}

		// 整理番号 のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.SEIRI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "seiri_no_err"))
			{
				inMap.put(prefix + "seiri_no_err", template.getString(EKK0141C040CBSMsg.SEIRI_NO_ERR));
			}
		}

		// 支払い方法継続フラグ のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.PAYWAY_KEIZOKU_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "payway_keizoku_flg_err"))
			{
				inMap.put(prefix + "payway_keizoku_flg_err", template.getString(EKK0141C040CBSMsg.PAYWAY_KEIZOKU_FLG_ERR));
			}
		}
		
		// ID速報書出力要否 のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.ID_SOKHOSHO_OUTPUT_YH_ERR))
		{
			if (!inMap.containsKey(prefix + "id_sokhosho_output_yh_err"))
			{
				inMap.put(prefix + "id_sokhosho_output_yh_err", template.getString(EKK0141C040CBSMsg.ID_SOKHOSHO_OUTPUT_YH_ERR));
			}
		}
		
		// レター発送仕分区分 のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.LETTER_HASSO_SHIWAKE_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "letter_hasso_shiwake_div_err"))
			{
				inMap.put(prefix + "letter_hasso_shiwake_div_err", template.getString(EKK0141C040CBSMsg.LETTER_HASSO_SHIWAKE_DIV_ERR));
			}
		}
		
		// 違約金発生コード のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.PNLTY_HASSEI_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pnlty_hassei_cd_err"))
			{
				inMap.put(prefix + "pnlty_hassei_cd_err", template.getString(EKK0141C040CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}
		
		// 異動区分 のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "ido_div_err"))
			{
				inMap.put(prefix + "ido_div_err", template.getString(EKK0141C040CBSMsg.IDO_DIV_ERR));
			}
		}
		
		// 紹介コード のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.INTR_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "intr_cd_err"))
			{
				inMap.put(prefix + "intr_cd_err", template.getString(EKK0141C040CBSMsg.INTR_CD_ERR));
			}
		}
		
		// 業務連絡備考 のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.WORK_RRK_BIKO_ERR))
		{
			if (!inMap.containsKey(prefix + "work_rrk_biko_err"))
			{
				inMap.put(prefix + "work_rrk_biko_err", template.getString(EKK0141C040CBSMsg.WORK_RRK_BIKO_ERR));
			}
		}
		
		// 自動照査処理状態コード のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.AUTO_SHOSA_TRAN_STAT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "auto_shosa_tran_stat_cd_err"))
			{
				inMap.put(prefix + "auto_shosa_tran_stat_cd_err", template.getString(EKK0141C040CBSMsg.AUTO_SHOSA_TRAN_STAT_CD_ERR));
			}
		}
		
		// 更新年月日時分秒(更新前) のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.UPD_DTM_BF_ERR))
		{
			if (!inMap.containsKey(prefix + "upd_dtm_bf_err"))
			{
				inMap.put(prefix + "upd_dtm_bf_err", template.getString(EKK0141C040CBSMsg.UPD_DTM_BF_ERR));
			}
		}
		
		// ADSLタイプコード のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.ADSL_TYPE_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "adsl_type_cd_err"))
			{
				inMap.put(prefix + "adsl_type_cd_err", template.getString(EKK0141C040CBSMsg.ADSL_TYPE_CD_ERR));
			}
		}
		
		// ADSL使用電話番号 のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.ADSL_USE_TELNO_ERR))
		{
			if (!inMap.containsKey(prefix + "adsl_use_telno_err"))
			{
				inMap.put(prefix + "adsl_use_telno_err", template.getString(EKK0141C040CBSMsg.ADSL_USE_TELNO_ERR));
			}
		}
		
		// エリア判定局番 のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.AREA_JUDGE_KYOKU_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "area_judge_kyoku_no_err"))
			{
				inMap.put(prefix + "area_judge_kyoku_no_err", template.getString(EKK0141C040CBSMsg.AREA_JUDGE_KYOKU_NO_ERR));
			}
		}
		
		// 設置先既設電話番号 のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.STC_SAKI_KST_TELNO_ERR))
		{
			if (!inMap.containsKey(prefix + "stc_saki_kst_telno_err"))
			{
				inMap.put(prefix + "stc_saki_kst_telno_err", template.getString(EKK0141C040CBSMsg.STC_SAKI_KST_TELNO_ERR));
			}
		}
		
		// NTT集約局名 のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.NTT_SHYAKK_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "ntt_shyakk_nm_err"))
			{
				inMap.put(prefix + "ntt_shyakk_nm_err", template.getString(EKK0141C040CBSMsg.NTT_SHYAKK_NM_ERR));
			}
		}
		
		// ADSL回線種別コード のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.ADSL_KAISEN_SBT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "adsl_kaisen_sbt_cd_err"))
			{
				inMap.put(prefix + "adsl_kaisen_sbt_cd_err", template.getString(EKK0141C040CBSMsg.ADSL_KAISEN_SBT_CD_ERR));
			}
		}
		
		// ADSL回線名義人名 のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.ADSL_KAISEN_MEIGIN_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "adsl_kaisen_meigin_nm_err"))
			{
				inMap.put(prefix + "adsl_kaisen_meigin_nm_err", template.getString(EKK0141C040CBSMsg.ADSL_KAISEN_MEIGIN_NM_ERR));
			}
		}
		
		// ADSL宅内工事コード のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.ADSL_TAKNIKJ_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "adsl_taknikj_cd_err"))
			{
				inMap.put(prefix + "adsl_taknikj_cd_err", template.getString(EKK0141C040CBSMsg.ADSL_TAKNIKJ_CD_ERR));
			}
		}
		
		// アナログ切替承認区分 のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.ANALOG_SWITCH_SHONIN_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "analog_switch_shonin_div_err"))
			{
				inMap.put(prefix + "analog_switch_shonin_div_err", template.getString(EKK0141C040CBSMsg.ANALOG_SWITCH_SHONIN_DIV_ERR));
			}
		}
		
		// 審査結果コード のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.SKEKKA_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "skekka_cd_err"))
			{
				inMap.put(prefix + "skekka_cd_err", template.getString(EKK0141C040CBSMsg.SKEKKA_CD_ERR));
			}
		}
		
		// 審査結果詳細コード のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.SKEKKA_DTL_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "skekka_dtl_cd_err"))
			{
				inMap.put(prefix + "skekka_dtl_cd_err", template.getString(EKK0141C040CBSMsg.SKEKKA_DTL_CD_ERR));
			}
		}
		
		// 審査結果補記コード のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.SKEKKA_HOKI_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "skekka_hoki_cd_err"))
			{
				inMap.put(prefix + "skekka_hoki_cd_err", template.getString(EKK0141C040CBSMsg.SKEKKA_HOKI_CD_ERR));
			}
		}
		
		// 審査結果送信コード のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.SKEKKA_SEND_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "skekka_send_cd_err"))
			{
				inMap.put(prefix + "skekka_send_cd_err", template.getString(EKK0141C040CBSMsg.SKEKKA_SEND_CD_ERR));
			}
		}
		
		// 異動NG状態コード のエラー情報返却
		if (!template.isNull(EKK0141C040CBSMsg.IDO_NG_STAT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "ido_ng_stat_cd_err"))
			{
				inMap.put(prefix + "ido_ng_stat_cd_err", template.getString(EKK0141C040CBSMsg.IDO_NG_STAT_CD_ERR));
			}
		}
		
		return param;
	}

	/**
	 * サービス契約手続中料金プラン変更の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	private CAANMsg editInEKK0081C100(IRequestParameterReadWrite param, String fixedText, String prefix)
			throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0081C100CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0081C100CBSMsg.TEMPLATEID, "EKK0081C100");

		// 機能コード（デフォルト：１）
		template.set(EKK0081C100CBSMsg.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, String> inMap = (HashMap<String, String>)(param.getData(fixedText));

		// 機能コード
		template.set(EKK0081C100CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// サービス契約番号
		if (inMap == null || inMap.get(prefix + "svc_kei_no") == null || "".equals(inMap.get(prefix + "svc_kei_no")))
		{
			template.setNull(EKK0081C100CBSMsg.SVC_KEI_NO);
		}
		else
		{
			template.set(EKK0081C100CBSMsg.SVC_KEI_NO, inMap.get(prefix + "svc_kei_no"));
		}

		// 申込明細番号
		if (inMap == null || inMap.get(prefix + "mskm_dtl_no") == null || "".equals(inMap.get(prefix + "mskm_dtl_no")))
		{
			template.setNull(EKK0081C100CBSMsg.MSKM_DTL_NO);
		}
		else
		{
			template.set(EKK0081C100CBSMsg.MSKM_DTL_NO, inMap.get(prefix + "mskm_dtl_no"));
		}

		// 料金グループコード
		if (inMap == null || inMap.get(prefix + "prc_grp_cd") == null || "".equals(inMap.get(prefix + "prc_grp_cd")))
		{
			template.setNull(EKK0081C100CBSMsg.PRC_GRP_CD);
		}
		else
		{
			template.set(EKK0081C100CBSMsg.PRC_GRP_CD, inMap.get(prefix + "prc_grp_cd"));
		}

		// 料金コースコード
		if (inMap == null || inMap.get(prefix + "pcrs_cd") == null || "".equals(inMap.get(prefix + "pcrs_cd")))
		{
			template.setNull(EKK0081C100CBSMsg.PCRS_CD);
		}
		else
		{
			template.set(EKK0081C100CBSMsg.PCRS_CD, inMap.get(prefix + "pcrs_cd"));
		}

		// 料金プランコード
		if (inMap == null || inMap.get(prefix + "pplan_cd") == null || "".equals(inMap.get(prefix + "pplan_cd")))
		{
			template.setNull(EKK0081C100CBSMsg.PPLAN_CD);
		}
		else
		{
			template.set(EKK0081C100CBSMsg.PPLAN_CD, inMap.get(prefix + "pplan_cd"));
		}

		// 提供方式契約番号
		if (inMap == null || inMap.get(prefix + "tk_hoshiki_kei_no") == null || "".equals(inMap.get(prefix + "tk_hoshiki_kei_no")))
		{
			template.setNull(EKK0081C100CBSMsg.TK_HOSHIKI_KEI_NO);
		}
		else
		{
			template.set(EKK0081C100CBSMsg.TK_HOSHIKI_KEI_NO, inMap.get(prefix + "tk_hoshiki_kei_no"));
		}

		// 違約金発生コード
		if (inMap == null || inMap.get(prefix + "pnlty_hassei_cd") == null || "".equals(inMap.get(prefix + "pnlty_hassei_cd")))
		{
			template.setNull(EKK0081C100CBSMsg.PNLTY_HASSEI_CD);
		}
		else
		{
			template.set(EKK0081C100CBSMsg.PNLTY_HASSEI_CD, inMap.get(prefix + "pnlty_hassei_cd"));
		}

		// 更新年月日時分秒(更新前)
		String lastUpdDtm = JKKBpCommon.getLastDtmBySvcKeiNo(param,
				exclSvcKeiNo,
				inMap.get(prefix + "upd_dtm_bf"));
		template.set(EKK0081C100CBSMsg.UPD_DTM_BF, lastUpdDtm);

		return template;
	}

	/**
	 * サービス契約手続中料金プラン変更の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return IRequestParameterReadWrite
	 * @throws Exception
	 */
	private IRequestParameterReadWrite editRetEKK0081C100(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText, String prefix) 
			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);

		/* 業務データ設定 */
		HashMap<String, String> dataMap = (HashMap<String, String>)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap<String, String>();
			param.setData(fixedText, dataMap);
		}

		// 更新年月日時分秒
		if (template.isNull(EKK0081C100CBSMsg.UPD_DTM))
		{
			dataMap.put(prefix + "upd_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "upd_dtm", template.getString(EKK0081C100CBSMsg.UPD_DTM));
			JKKBpCommon.setLastDtmBySvcKeiNo(param,
					exclSvcKeiNo, 
					template.getString(EKK0081C100CBSMsg.UPD_DTM));
		}
		
		// 更新オペレータアカウント
		if (template.isNull(EKK0081C100CBSMsg.UPD_OPEACNT))
		{
			dataMap.put(prefix + "upd_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "upd_opeacnt", template.getString(EKK0081C100CBSMsg.UPD_OPEACNT));
		}
		
		// エラー情報の設定
		editErrInfoEKK0081C100(param, template, (Integer)returnCode, fixedText, prefix);
		
		// エラー情報のマップを取得
		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 param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @param prefix
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrInfoEKK0081C100(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			String fixedText, String prefix) throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0081C100CBSMsg.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)
		{
			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<String, String> inMap = (HashMap<String, String>)(param.getData(fixedText));
		
		// サービス契約番号 のエラー情報返却
		if (!template.isNull(EKK0081C100CBSMsg.SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_kei_no_err"))
			{
				inMap.put(prefix + "svc_kei_no_err", template.getString(EKK0081C100CBSMsg.SVC_KEI_NO_ERR));
			}
		}
		
		// 申込明細番号 のエラー情報返却
		if (!template.isNull(EKK0081C100CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_dtl_no_err"))
			{
				inMap.put(prefix + "mskm_dtl_no_err", template.getString(EKK0081C100CBSMsg.MSKM_DTL_NO_ERR));
			}
		}
		
		// 料金グループコード のエラー情報返却
		if (!template.isNull(EKK0081C100CBSMsg.PRC_GRP_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "prc_grp_cd_err"))
			{
				inMap.put(prefix + "prc_grp_cd_err", template.getString(EKK0081C100CBSMsg.PRC_GRP_CD_ERR));
			}
		}
		
		// 料金コースコード のエラー情報返却
		if (!template.isNull(EKK0081C100CBSMsg.PCRS_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pcrs_cd_err"))
			{
				inMap.put(prefix + "pcrs_cd_err", template.getString(EKK0081C100CBSMsg.PCRS_CD_ERR));
			}
		}
		
		// 料金プランコード のエラー情報返却
		if (!template.isNull(EKK0081C100CBSMsg.PPLAN_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pplan_cd_err"))
			{
				inMap.put(prefix + "pplan_cd_err", template.getString(EKK0081C100CBSMsg.PPLAN_CD_ERR));
			}
		}
		
		// 提供方式契約番号 のエラー情報返却
		if (!template.isNull(EKK0081C100CBSMsg.TK_HOSHIKI_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "tk_hoshiki_kei_no_err"))
			{
				inMap.put(prefix + "tk_hoshiki_kei_no_err", template.getString(EKK0081C100CBSMsg.TK_HOSHIKI_KEI_NO_ERR));
			}
		}
		
		// 違約金発生コード のエラー情報返却
		if (!template.isNull(EKK0081C100CBSMsg.PNLTY_HASSEI_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pnlty_hassei_cd_err"))
			{
				inMap.put(prefix + "pnlty_hassei_cd_err", template.getString(EKK0081C100CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}
		
		// 更新年月日時分秒(更新前) のエラー情報返却
		if (!template.isNull(EKK0081C100CBSMsg.UPD_DTM_BF_ERR))
		{
			if (!inMap.containsKey(prefix + "upd_dtm_bf_err"))
			{
				inMap.put(prefix + "upd_dtm_bf_err", template.getString(EKK0081C100CBSMsg.UPD_DTM_BF_ERR));
			}
		}

		return param;
	}

	/**
	 * オプションサービス契約キャンセルの上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	private CAANMsg editInEKK0351C220(IRequestParameterReadWrite param, String fixedText, String prefix)
			throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0351C220CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0351C220CBSMsg.TEMPLATEID, "EKK0351C220");

		// 機能コード（デフォルト：１）
		template.set(EKK0351C220CBSMsg.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, String> inMap = (HashMap<String, String>)(param.getData(fixedText));

		// 機能コード
		template.set(EKK0351C220CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// オプションサービス契約番号
		if (inMap == null || inMap.get(prefix + "op_svc_kei_no") == null || "".equals(inMap.get(prefix + "op_svc_kei_no")))
		{
			template.setNull(EKK0351C220CBSMsg.OP_SVC_KEI_NO);
		}
		else
		{
			template.set(EKK0351C220CBSMsg.OP_SVC_KEI_NO, inMap.get(prefix + "op_svc_kei_no"));
		}

		// 申込明細番号
		if (inMap == null || inMap.get(prefix + "mskm_dtl_no") == null || "".equals(inMap.get(prefix + "mskm_dtl_no")))
		{
			template.setNull(EKK0351C220CBSMsg.MSKM_DTL_NO);
		}
		else
		{
			template.set(EKK0351C220CBSMsg.MSKM_DTL_NO, inMap.get(prefix + "mskm_dtl_no"));
		}

		// サービスキャンセル理由コード
		if (inMap == null || inMap.get(prefix + "svc_cancel_rsn_cd") == null || "".equals(inMap.get(prefix + "svc_cancel_rsn_cd")))
		{
			template.setNull(EKK0351C220CBSMsg.SVC_CANCEL_RSN_CD);
		}
		else
		{
			template.set(EKK0351C220CBSMsg.SVC_CANCEL_RSN_CD, inMap.get(prefix + "svc_cancel_rsn_cd"));
		}

		// 異動区分
		if (inMap == null || inMap.get(prefix + "ido_div") == null || "".equals(inMap.get(prefix + "ido_div")))
		{
			template.setNull(EKK0351C220CBSMsg.IDO_DIV);
		}
		else
		{
			template.set(EKK0351C220CBSMsg.IDO_DIV, inMap.get(prefix + "ido_div"));
		}

		// 更新年月日時分秒(更新前)
		String lastUpdDtm = JKKBpCommon.getLastDtmBySvcKeiNo(param,
				exclSvcKeiNo,
				inMap.get(prefix + "upd_dtm_bf"));
		template.set(EKK0351C220CBSMsg.UPD_DTM_BF, lastUpdDtm);

		return template;
	}
	
	/**
	 * オプションサービス契約キャンセルの下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return IRequestParameterReadWrite
	 * @throws Exception
	 */
	private IRequestParameterReadWrite editRetEKK0351C220(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText, String prefix) 
	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);
		
		/* 業務データ設定 */
		HashMap<String, String> dataMap = (HashMap<String, String>)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap<String, String>();
			param.setData(fixedText, dataMap);
		}
		
		// 世代登録年月日時分秒
		if (template.isNull(EKK0351C220CBSMsg.GENE_ADD_DTM))
		{
			dataMap.put(prefix + "gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "gene_add_dtm", template.getString(EKK0351C220CBSMsg.GENE_ADD_DTM));
		}
		
		// オプションサービス契約ステータス
		if (template.isNull(EKK0351C220CBSMsg.OP_SVC_KEI_STAT))
		{
			dataMap.put(prefix + "op_svc_kei_stat", "");
		}
		else
		{
			dataMap.put(prefix + "op_svc_kei_stat", template.getString(EKK0351C220CBSMsg.OP_SVC_KEI_STAT));
		}
		
		// 予約適用年月日
		if (template.isNull(EKK0351C220CBSMsg.RSV_APLY_YMD))
		{
			dataMap.put(prefix + "rsv_aply_ymd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_ymd", template.getString(EKK0351C220CBSMsg.RSV_APLY_YMD));
		}
		
		// 予約適用コード
		if (template.isNull(EKK0351C220CBSMsg.RSV_APLY_CD))
		{
			dataMap.put(prefix + "rsv_aply_cd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_cd", template.getString(EKK0351C220CBSMsg.RSV_APLY_CD));
		}
		
		// サービスキャンセル年月日
		if (template.isNull(EKK0351C220CBSMsg.SVC_CANCEL_YMD))
		{
			dataMap.put(prefix + "svc_cancel_ymd", "");
		}
		else
		{
			dataMap.put(prefix + "svc_cancel_ymd", template.getString(EKK0351C220CBSMsg.SVC_CANCEL_YMD));
		}
		
		// サービスキャンセル取消年月日
		if (template.isNull(EKK0351C220CBSMsg.SVC_CANCEL_CL_YMD))
		{
			dataMap.put(prefix + "svc_cancel_cl_ymd", "");
		}
		else
		{
			dataMap.put(prefix + "svc_cancel_cl_ymd", template.getString(EKK0351C220CBSMsg.SVC_CANCEL_CL_YMD));
		}
		
		// 登録年月日時分秒
		if (template.isNull(EKK0351C220CBSMsg.ADD_DTM))
		{
			dataMap.put(prefix + "add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "add_dtm", template.getString(EKK0351C220CBSMsg.ADD_DTM));
		}
		
		// 登録オペレータアカウント
		if (template.isNull(EKK0351C220CBSMsg.ADD_OPEACNT))
		{
			dataMap.put(prefix + "add_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "add_opeacnt", template.getString(EKK0351C220CBSMsg.ADD_OPEACNT));
		}
		
		// 更新年月日時分秒
		if (template.isNull(EKK0351C220CBSMsg.UPD_DTM))
		{
			dataMap.put(prefix + "upd_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "upd_dtm", template.getString(EKK0351C220CBSMsg.UPD_DTM));
			JKKBpCommon.setLastDtmBySvcKeiNo(param,
					exclSvcKeiNo, 
					template.getString(EKK0351C220CBSMsg.UPD_DTM));
		}
		
		// 更新オペレータアカウント
		if (template.isNull(EKK0351C220CBSMsg.UPD_OPEACNT))
		{
			dataMap.put(prefix + "upd_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "upd_opeacnt", template.getString(EKK0351C220CBSMsg.UPD_OPEACNT));
		}
		
		// 無効フラグ
		if (template.isNull(EKK0351C220CBSMsg.MK_FLG))
		{
			dataMap.put(prefix + "mk_flg", "");
		}
		else
		{
			dataMap.put(prefix + "mk_flg", template.getString(EKK0351C220CBSMsg.MK_FLG));
		}
		
		// エラー情報の設定
		editErrInfoEKK0351C220(param, template, (Integer)returnCode, fixedText, prefix);
		
		// エラー情報のマップを取得
		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 param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @param prefix
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrInfoEKK0351C220(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			String fixedText, String prefix) throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0351C220CBSMsg.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)
		{
			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<String, String> inMap = (HashMap<String, String>)(param.getData(fixedText));

		// オプションサービス契約番号 のエラー情報返却
		if (!template.isNull(EKK0351C220CBSMsg.OP_SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "op_svc_kei_no_err"))
			{
				inMap.put(prefix + "op_svc_kei_no_err", template.getString(EKK0351C220CBSMsg.OP_SVC_KEI_NO_ERR));
			}
		}
		
		// 申込明細番号 のエラー情報返却
		if (!template.isNull(EKK0351C220CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_dtl_no_err"))
			{
				inMap.put(prefix + "mskm_dtl_no_err", template.getString(EKK0351C220CBSMsg.MSKM_DTL_NO_ERR));
			}
		}
		
		// サービスキャンセル理由コード のエラー情報返却
		if (!template.isNull(EKK0351C220CBSMsg.SVC_CANCEL_RSN_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_cancel_rsn_cd_err"))
			{
				inMap.put(prefix + "svc_cancel_rsn_cd_err", template.getString(EKK0351C220CBSMsg.SVC_CANCEL_RSN_CD_ERR));
			}
		}
		
		// 異動区分 のエラー情報返却
		if (!template.isNull(EKK0351C220CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "ido_div_err"))
			{
				inMap.put(prefix + "ido_div_err", template.getString(EKK0351C220CBSMsg.IDO_DIV_ERR));
			}
		}
		
		// 更新年月日時分秒(更新前) のエラー情報返却
		if (!template.isNull(EKK0351C220CBSMsg.UPD_DTM_BF_ERR))
		{
			if (!inMap.containsKey(prefix + "upd_dtm_bf_err"))
			{
				inMap.put(prefix + "upd_dtm_bf_err", template.getString(EKK0351C220CBSMsg.UPD_DTM_BF_ERR));
			}
		}

		return param;
	}

	/**
	 * オプションサービス契約＜ISP＞登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	private CAANMsg editInEKK0361D010(IRequestParameterReadWrite param, String fixedText, String prefix)
			throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0361D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0361D010CBSMsg.TEMPLATEID, "EKK0361D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0361D010CBSMsg.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, String> inMap = (HashMap<String, String>)(param.getData(fixedText));

		// 機能コード
		template.set(EKK0361D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// オプションサービスコード
		if (inMap == null || inMap.get(prefix + "op_svc_cd") == null || "".equals(inMap.get(prefix + "op_svc_cd")))
		{
			template.setNull(EKK0361D010CBSMsg.OP_SVC_CD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.OP_SVC_CD, inMap.get(prefix + "op_svc_cd"));
		}

		// 料金コースコード
		if (inMap == null || inMap.get(prefix + "pcrs_cd") == null || "".equals(inMap.get(prefix + "pcrs_cd")))
		{
			template.setNull(EKK0361D010CBSMsg.PCRS_CD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.PCRS_CD, inMap.get(prefix + "pcrs_cd"));
		}

		// 料金プランコード
		if (inMap == null || inMap.get(prefix + "pplan_cd") == null || "".equals(inMap.get(prefix + "pplan_cd")))
		{
			template.setNull(EKK0361D010CBSMsg.PPLAN_CD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.PPLAN_CD, inMap.get(prefix + "pplan_cd"));
		}

		// 親契約識別コード
		if (inMap == null || inMap.get(prefix + "oya_kei_skbt_cd") == null || "".equals(inMap.get(prefix + "oya_kei_skbt_cd")))
		{
			template.setNull(EKK0361D010CBSMsg.OYA_KEI_SKBT_CD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.OYA_KEI_SKBT_CD, inMap.get(prefix + "oya_kei_skbt_cd"));
		}

		// サービス契約番号
		if (inMap == null || inMap.get(prefix + "svc_kei_no") == null || "".equals(inMap.get(prefix + "svc_kei_no")))
		{
			template.setNull(EKK0361D010CBSMsg.SVC_KEI_NO);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.SVC_KEI_NO, inMap.get(prefix + "svc_kei_no"));
		}

		// サービス契約内訳番号
		if (inMap == null || inMap.get(prefix + "svc_kei_ucwk_no") == null || "".equals(inMap.get(prefix + "svc_kei_ucwk_no")))
		{
			template.setNull(EKK0361D010CBSMsg.SVC_KEI_UCWK_NO);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.SVC_KEI_UCWK_NO, inMap.get(prefix + "svc_kei_ucwk_no"));
		}

		// SYSID
		if (inMap == null || inMap.get(prefix + "sysid") == null || "".equals(inMap.get(prefix + "sysid")))
		{
			template.setNull(EKK0361D010CBSMsg.SYSID);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.SYSID, inMap.get(prefix + "sysid"));
		}

		// 申込明細番号
		if (inMap == null || inMap.get(prefix + "mskm_dtl_no") == null || "".equals(inMap.get(prefix + "mskm_dtl_no")))
		{
			template.setNull(EKK0361D010CBSMsg.MSKM_DTL_NO);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MSKM_DTL_NO, inMap.get(prefix + "mskm_dtl_no"));
		}

		// 試用加入年月日
		if (inMap == null || inMap.get(prefix + "ftrial_kanyu_ymd") == null || "".equals(inMap.get(prefix + "ftrial_kanyu_ymd")))
		{
			template.setNull(EKK0361D010CBSMsg.FTRIAL_KANYU_YMD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.FTRIAL_KANYU_YMD, inMap.get(prefix + "ftrial_kanyu_ymd"));
		}

		// 試用期間終了年月日
		if (inMap == null || inMap.get(prefix + "ftrial_prd_endymd") == null || "".equals(inMap.get(prefix + "ftrial_prd_endymd")))
		{
			template.setNull(EKK0361D010CBSMsg.FTRIAL_PRD_ENDYMD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.FTRIAL_PRD_ENDYMD, inMap.get(prefix + "ftrial_prd_endymd"));
		}

		// 本加入年月日
		if (inMap == null || inMap.get(prefix + "honkanyu_ymd") == null || "".equals(inMap.get(prefix + "honkanyu_ymd")))
		{
			template.setNull(EKK0361D010CBSMsg.HONKANYU_YMD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.HONKANYU_YMD, inMap.get(prefix + "honkanyu_ymd"));
		}

		// 本加入移行期限年月日
		if (inMap == null || inMap.get(prefix + "honkanyu_iko_kigen_ymd") == null || "".equals(inMap.get(prefix + "honkanyu_iko_kigen_ymd")))
		{
			template.setNull(EKK0361D010CBSMsg.HONKANYU_IKO_KIGEN_YMD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.HONKANYU_IKO_KIGEN_YMD, inMap.get(prefix + "honkanyu_iko_kigen_ymd"));
		}

		// サービス利用開始希望年月日
		if (inMap == null || inMap.get(prefix + "svc_use_sta_kibo_ymd") == null || "".equals(inMap.get(prefix + "svc_use_sta_kibo_ymd")))
		{
			template.setNull(EKK0361D010CBSMsg.SVC_USE_STA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.SVC_USE_STA_KIBO_YMD, inMap.get(prefix + "svc_use_sta_kibo_ymd"));
		}

		// 予約適用開始希望年月日
		if (inMap == null || inMap.get(prefix + "rsv_tsta_kibo_ymd") == null || "".equals(inMap.get(prefix + "rsv_tsta_kibo_ymd")))
		{
			template.setNull(EKK0361D010CBSMsg.RSV_TSTA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.RSV_TSTA_KIBO_YMD, inMap.get(prefix + "rsv_tsta_kibo_ymd"));
		}

		// 違約金発生コード
		if (inMap == null || inMap.get(prefix + "pnlty_hassei_cd") == null || "".equals(inMap.get(prefix + "pnlty_hassei_cd")))
		{
			template.setNull(EKK0361D010CBSMsg.PNLTY_HASSEI_CD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.PNLTY_HASSEI_CD, inMap.get(prefix + "pnlty_hassei_cd"));
		}

		// 異動区分
		if (inMap == null || inMap.get(prefix + "ido_div") == null || "".equals(inMap.get(prefix + "ido_div")))
		{
			template.setNull(EKK0361D010CBSMsg.IDO_DIV);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.IDO_DIV, inMap.get(prefix + "ido_div"));
		}

		// 希望メールアカウント1
		if (inMap == null || inMap.get(prefix + "kibo_ml_account_1") == null || "".equals(inMap.get(prefix + "kibo_ml_account_1")))
		{
			template.setNull(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_1);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_1, inMap.get(prefix + "kibo_ml_account_1"));
		}

		// 希望メールアカウント2
		if (inMap == null || inMap.get(prefix + "kibo_ml_account_2") == null || "".equals(inMap.get(prefix + "kibo_ml_account_2")))
		{
			template.setNull(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_2);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_2, inMap.get(prefix + "kibo_ml_account_2"));
		}

		// 希望メールアカウント3
		if (inMap == null || inMap.get(prefix + "kibo_ml_account_3") == null || "".equals(inMap.get(prefix + "kibo_ml_account_3")))
		{
			template.setNull(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_3);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_3, inMap.get(prefix + "kibo_ml_account_3"));
		}

		// マルチセッション用セッション数
		if (inMap == null || inMap.get(prefix + "mltise_session_cnt") == null || "".equals(inMap.get(prefix + "mltise_session_cnt")))
		{
			template.setNull(EKK0361D010CBSMsg.MLTISE_SESSION_CNT);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLTISE_SESSION_CNT, inMap.get(prefix + "mltise_session_cnt"));
		}

		// マルチセッション用初期認証IDパスワード
		if (inMap == null || inMap.get(prefix + "mltise_shk_ninsho_id_pwd") == null || "".equals(inMap.get(prefix + "mltise_shk_ninsho_id_pwd")))
		{
			template.setNull(EKK0361D010CBSMsg.MLTISE_SHK_NINSHO_ID_PWD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLTISE_SHK_NINSHO_ID_PWD, inMap.get(prefix + "mltise_shk_ninsho_id_pwd"));
		}

		// マルチセッション用認証ID
		if (inMap == null || inMap.get(prefix + "mltise_ninsho_id") == null || "".equals(inMap.get(prefix + "mltise_ninsho_id")))
		{
			template.setNull(EKK0361D010CBSMsg.MLTISE_NINSHO_ID);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLTISE_NINSHO_ID, inMap.get(prefix + "mltise_ninsho_id"));
		}

		// マルチセッション用認証IDパスワード
		if (inMap == null || inMap.get(prefix + "mltise_ninsho_id_pwd") == null || "".equals(inMap.get(prefix + "mltise_ninsho_id_pwd")))
		{
			template.setNull(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_PWD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_PWD, inMap.get(prefix + "mltise_ninsho_id_pwd"));
		}

		// 固定IPアドレス
		if (inMap == null || inMap.get(prefix + "kotei_ip_ad") == null || "".equals(inMap.get(prefix + "kotei_ip_ad")))
		{
			template.setNull(EKK0361D010CBSMsg.KOTEI_IP_AD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.KOTEI_IP_AD, inMap.get(prefix + "kotei_ip_ad"));
		}

		// ネットマスク
		if (inMap == null || inMap.get(prefix + "netmask") == null || "".equals(inMap.get(prefix + "netmask")))
		{
			template.setNull(EKK0361D010CBSMsg.NETMASK);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.NETMASK, inMap.get(prefix + "netmask"));
		}
		
		// 初期POPIDパスワード
		if (inMap == null || inMap.get(prefix + "shk_pop_id_pwd") == null || "".equals(inMap.get(prefix + "shk_pop_id_pwd")))
		{
			template.setNull(EKK0361D010CBSMsg.SHK_POP_ID_PWD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.SHK_POP_ID_PWD, inMap.get(prefix + "shk_pop_id_pwd"));
		}
		
		// POPID
		if (inMap == null || inMap.get(prefix + "pop_id") == null || "".equals(inMap.get(prefix + "pop_id")))
		{
			template.setNull(EKK0361D010CBSMsg.POP_ID);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.POP_ID, inMap.get(prefix + "pop_id"));
		}
		
		//メールアドレス
		if (inMap == null || inMap.get(prefix + "mlad") == null || "".equals(inMap.get(prefix + "mlad")))
		{
			template.setNull(EKK0361D010CBSMsg.MLAD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLAD, inMap.get(prefix + "mlad"));
		}

		// 容量
		if (inMap == null || inMap.get(prefix + "capa") == null || "".equals(inMap.get(prefix + "capa")))
		{
			template.setNull(EKK0361D010CBSMsg.CAPA);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.CAPA, inMap.get(prefix + "capa"));
		}
		
		//初期WebIDパスワード
		if (inMap == null || inMap.get(prefix + "shk_web_id_pwd") == null || "".equals(inMap.get(prefix + "shk_web_id_pwd")))
		{
			template.setNull(EKK0361D010CBSMsg.SHK_WEB_ID_PWD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.SHK_WEB_ID_PWD, inMap.get(prefix + "shk_web_id_pwd"));
		}
		
		//WebID
		if (inMap == null || inMap.get(prefix + "web_id") == null || "".equals(inMap.get(prefix + "web_id")))
		{
			template.setNull(EKK0361D010CBSMsg.WEB_ID);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.WEB_ID, inMap.get(prefix + "web_id"));
		}

		// URL(ドメイン)
		if (inMap == null || inMap.get(prefix + "url_domain") == null || "".equals(inMap.get(prefix + "url_domain")))
		{
			template.setNull(EKK0361D010CBSMsg.URL_DOMAIN);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.URL_DOMAIN, inMap.get(prefix + "url_domain"));
		}

		// URL(アカウント)
		if (inMap == null || inMap.get(prefix + "url_account") == null || "".equals(inMap.get(prefix + "url_account")))
		{
			template.setNull(EKK0361D010CBSMsg.URL_ACCOUNT);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.URL_ACCOUNT, inMap.get(prefix + "url_account"));
		}

		// メーリングリスト名
		if (inMap == null || inMap.get(prefix + "mllist_nm") == null || "".equals(inMap.get(prefix + "mllist_nm")))
		{
			template.setNull(EKK0361D010CBSMsg.MLLIST_NM);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLLIST_NM, inMap.get(prefix + "mllist_nm"));
		}

		// メーリングリスト呼称
		if (inMap == null || inMap.get(prefix + "mllist_kosho") == null || "".equals(inMap.get(prefix + "mllist_kosho")))
		{
			template.setNull(EKK0361D010CBSMsg.MLLIST_KOSHO);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLLIST_KOSHO, inMap.get(prefix + "mllist_kosho"));
		}

		// メーリングリスト公開要否
		if (inMap == null || inMap.get(prefix + "mllist_kokai_yh") == null || "".equals(inMap.get(prefix + "mllist_kokai_yh")))
		{
			template.setNull(EKK0361D010CBSMsg.MLLIST_KOKAI_YH);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLLIST_KOKAI_YH, inMap.get(prefix + "mllist_kokai_yh"));
		}

		// メーリングリスト最大ユーザー数
		if (inMap == null || inMap.get(prefix + "mllist_max_user_cnt") == null || "".equals(inMap.get(prefix + "mllist_max_user_cnt")))
		{
			template.setNull(EKK0361D010CBSMsg.MLLIST_MAX_USER_CNT);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLLIST_MAX_USER_CNT, inMap.get(prefix + "mllist_max_user_cnt"));
		}

		// メーリングリスト管理者メールアドレス
		if (inMap == null || inMap.get(prefix + "mllist_krisha_mlad") == null || "".equals(inMap.get(prefix + "mllist_krisha_mlad")))
		{
			template.setNull(EKK0361D010CBSMsg.MLLIST_KRISHA_MLAD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLLIST_KRISHA_MLAD, inMap.get(prefix + "mllist_krisha_mlad"));
		}

		// 独自ドメイン名
		if (inMap == null || inMap.get(prefix + "dokuji_domain_nm") == null || "".equals(inMap.get(prefix + "dokuji_domain_nm")))
		{
			template.setNull(EKK0361D010CBSMsg.DOKUJI_DOMAIN_NM);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.DOKUJI_DOMAIN_NM, inMap.get(prefix + "dokuji_domain_nm"));
		}

		// ホスティングメールアカウント数
		if (inMap == null || inMap.get(prefix + "hosml_account_cnt") == null || "".equals(inMap.get(prefix + "hosml_account_cnt")))
		{
			template.setNull(EKK0361D010CBSMsg.HOSML_ACCOUNT_CNT);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.HOSML_ACCOUNT_CNT, inMap.get(prefix + "hosml_account_cnt"));
		}

		// ホスティングメールボックス総容量
		if (inMap == null || inMap.get(prefix + "hosml_box_capa") == null || "".equals(inMap.get(prefix + "hosml_box_capa")))
		{
			template.setNull(EKK0361D010CBSMsg.HOSML_BOX_CAPA);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.HOSML_BOX_CAPA, inMap.get(prefix + "hosml_box_capa"));
		}

		// ダイヤルパッドPIN
		if (inMap == null || inMap.get(prefix + "dpad_pin") == null || "".equals(inMap.get(prefix + "dpad_pin")))
		{
			template.setNull(EKK0361D010CBSMsg.DPAD_PIN);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.DPAD_PIN, inMap.get(prefix + "dpad_pin"));
		}

		// ダイヤルパッドID公開要否
		if (inMap == null || inMap.get(prefix + "dpad_id_kokai_yh") == null || "".equals(inMap.get(prefix + "dpad_id_kokai_yh")))
		{
			template.setNull(EKK0361D010CBSMsg.DPAD_ID_KOKAI_YH);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.DPAD_ID_KOKAI_YH, inMap.get(prefix + "dpad_id_kokai_yh"));
		}

		// ダイアルアップ接続用認証ID
		if (inMap == null || inMap.get(prefix + "dupcon_ninsho_id") == null || "".equals(inMap.get(prefix + "dupcon_ninsho_id")))
		{
			template.setNull(EKK0361D010CBSMsg.DUPCON_NINSHO_ID);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.DUPCON_NINSHO_ID, inMap.get(prefix + "dupcon_ninsho_id"));
		}

		// DNS設定コード
		if (inMap == null || inMap.get(prefix + "dns_sette_cd") == null || "".equals(inMap.get(prefix + "dns_sette_cd")))
		{
			template.setNull(EKK0361D010CBSMsg.DNS_SETTE_CD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.DNS_SETTE_CD, inMap.get(prefix + "dns_sette_cd"));
		}

		// スポット有害サイトブロック対象SYSID
		if (inMap == null || inMap.get(prefix + "spot_ygsiteblck_trgt_sysid") == null || "".equals(inMap.get(prefix + "spot_ygsiteblck_trgt_sysid")))
		{
			template.setNull(EKK0361D010CBSMsg.SPOT_YGSITEBLCK_TRGT_SYSID);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.SPOT_YGSITEBLCK_TRGT_SYSID, inMap.get(prefix + "spot_ygsiteblck_trgt_sysid"));
		}

		// サービス個別設定連絡先メールアドレス
		if (inMap == null || inMap.get(prefix + "svc_kbt_set_rrks_mlad") == null || "".equals(inMap.get(prefix + "svc_kbt_set_rrks_mlad")))
		{
			template.setNull(EKK0361D010CBSMsg.SVC_KBT_SET_RRKS_MLAD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.SVC_KBT_SET_RRKS_MLAD, inMap.get(prefix + "svc_kbt_set_rrks_mlad"));
		}

		// 通話明細公開要否
		if (inMap == null || inMap.get(prefix + "tuwa_dtl_kokai_yh") == null || "".equals(inMap.get(prefix + "tuwa_dtl_kokai_yh")))
		{
			template.setNull(EKK0361D010CBSMsg.TUWA_DTL_KOKAI_YH);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.TUWA_DTL_KOKAI_YH, inMap.get(prefix + "tuwa_dtl_kokai_yh"));
		}

		// IPv6アドレス(インターフェイスID)
		if (inMap == null || inMap.get(prefix + "ipv6_ad_ifid") == null || "".equals(inMap.get(prefix + "ipv6_ad_ifid")))
		{
			template.setNull(EKK0361D010CBSMsg.IPV6_AD_IFID);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.IPV6_AD_IFID, inMap.get(prefix + "ipv6_ad_ifid"));
		}

		// 請求契約番号
		if (inMap == null || inMap.get(prefix + "seiky_kei_no") == null || "".equals(inMap.get(prefix + "seiky_kei_no")))
		{
			template.setNull(EKK0361D010CBSMsg.SEIKY_KEI_NO);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.SEIKY_KEI_NO, inMap.get(prefix + "seiky_kei_no"));
		}

		// 料金項目コード
		if (inMap == null || inMap.get(prefix + "prc_kmk_cd") == null || "".equals(inMap.get(prefix + "prc_kmk_cd")))
		{
			template.setNull(EKK0361D010CBSMsg.PRC_KMK_CD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.PRC_KMK_CD, inMap.get(prefix + "prc_kmk_cd"));
		}

		// 更新年月日時分秒(更新前)
		String lastUpdDtm = JKKBpCommon.getLastDtmBySvcKeiNo(param,
				exclSvcKeiNo,
				inMap.get(prefix + "upd_dtm_bf"));
		template.set(EKK0361D010CBSMsg.UPD_DTM_BF, lastUpdDtm);
		
		//フェムトセル事業者コード
		if (inMap == null || inMap.get(prefix + "fmtcel_jgs_cd") == null || "".equals(inMap.get(prefix + "fmtcel_jgs_cd")))
		{
			template.setNull(EKK0361D010CBSMsg.FMTCEL_JGS_CD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.FMTCEL_JGS_CD, inMap.get(prefix + "fmtcel_jgs_cd"));
		}
		
		//フェムトセル事業者使用コード
		if (inMap == null || inMap.get(prefix + "fmtcel_jgs_use_cd") == null || "".equals(inMap.get(prefix + "fmtcel_jgs_use_cd")))
		{
			template.setNull(EKK0361D010CBSMsg.FMTCEL_JGS_USE_CD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.FMTCEL_JGS_USE_CD, inMap.get(prefix + "fmtcel_jgs_use_cd"));
		}

		return template;
	}
	
	/**
	 * オプションサービス契約＜ISP＞登録の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return IRequestParameterReadWrite
	 * @throws Exception
	 */
	private IRequestParameterReadWrite editRetEKK0361D010(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText, String prefix) 
	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);
		
		/* 業務データ設定 */
		HashMap<String, String> dataMap = (HashMap<String, String>)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap<String, String>();
			param.setData(fixedText, dataMap);
		}
		
		// オプションサービス契約番号
		if (template.isNull(EKK0361D010CBSMsg.OP_SVC_KEI_NO))
		{
			dataMap.put(prefix + "op_svc_kei_no", "");
		}
		else
		{
			dataMap.put(prefix + "op_svc_kei_no", template.getString(EKK0361D010CBSMsg.OP_SVC_KEI_NO));
		}
		
		// 世代登録年月日時分秒(オプションサービス契約)
		if (template.isNull(EKK0361D010CBSMsg.KK0351_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0351_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0351_gene_add_dtm", template.getString(EKK0361D010CBSMsg.KK0351_GENE_ADD_DTM));
		}
		
		// オプションサービス契約ステータス
		if (template.isNull(EKK0361D010CBSMsg.OP_SVC_KEI_STAT))
		{
			dataMap.put(prefix + "op_svc_kei_stat", "");
		}
		else
		{
			dataMap.put(prefix + "op_svc_kei_stat", template.getString(EKK0361D010CBSMsg.OP_SVC_KEI_STAT));
		}
		
		// 予約適用年月日
		if (template.isNull(EKK0361D010CBSMsg.RSV_APLY_YMD))
		{
			dataMap.put(prefix + "rsv_aply_ymd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_ymd", template.getString(EKK0361D010CBSMsg.RSV_APLY_YMD));
		}
		
		// 予約適用コード
		if (template.isNull(EKK0361D010CBSMsg.RSV_APLY_CD))
		{
			dataMap.put(prefix + "rsv_aply_cd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_cd", template.getString(EKK0361D010CBSMsg.RSV_APLY_CD));
		}
		
		// 表示用サービス提供開始年月日
		if (template.isNull(EKK0361D010CBSMsg.DSP_SVCTK_STAYMD))
		{
			dataMap.put(prefix + "dsp_svctk_staymd", "");
		}
		else
		{
			dataMap.put(prefix + "dsp_svctk_staymd", template.getString(EKK0361D010CBSMsg.DSP_SVCTK_STAYMD));
		}

		
		// 登録年月日時分秒
		if (template.isNull(EKK0361D010CBSMsg.ADD_DTM))
		{
			dataMap.put(prefix + "add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "add_dtm", template.getString(EKK0361D010CBSMsg.ADD_DTM));
		}
		
		// 登録オペレータアカウント
		if (template.isNull(EKK0361D010CBSMsg.ADD_OPEACNT))
		{
			dataMap.put(prefix + "add_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "add_opeacnt", template.getString(EKK0361D010CBSMsg.ADD_OPEACNT));
		}
		
		// 更新年月日時分秒
		if (template.isNull(EKK0361D010CBSMsg.UPD_DTM))
		{
			dataMap.put(prefix + "upd_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "upd_dtm", template.getString(EKK0361D010CBSMsg.UPD_DTM));
			JKKBpCommon.setLastDtmBySvcKeiNo(param,
					exclSvcKeiNo, 
					template.getString(EKK0361D010CBSMsg.UPD_DTM));
		}
		
		// 更新オペレータアカウント
		if (template.isNull(EKK0361D010CBSMsg.UPD_OPEACNT))
		{
			dataMap.put(prefix + "upd_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "upd_opeacnt", template.getString(EKK0361D010CBSMsg.UPD_OPEACNT));
		}
		
		// 無効フラグ
		if (template.isNull(EKK0361D010CBSMsg.MK_FLG))
		{
			dataMap.put(prefix + "mk_flg", "");
		}
		else
		{
			dataMap.put(prefix + "mk_flg", template.getString(EKK0361D010CBSMsg.MK_FLG));
		}
		
		// 世代登録年月日時分秒(オプションサービス契約<ISP>)
		if (template.isNull(EKK0361D010CBSMsg.KK0361_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0361_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0361_gene_add_dtm", template.getString(EKK0361D010CBSMsg.KK0361_GENE_ADD_DTM));
		}
		
		// メーリングリスト名（出力）
		if (template.isNull(EKK0361D010CBSMsg.MLLIST_NM_O))
		{
			dataMap.put(prefix + "mllist_nm_o", "");
		}
		else
		{
			dataMap.put(prefix + "mllist_nm_o", template.getString(EKK0361D010CBSMsg.MLLIST_NM_O));
		}
		
		// 課金先番号
		if (template.isNull(EKK0361D010CBSMsg.KAKINS_NO))
		{
			dataMap.put(prefix + "kakins_no", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_no", template.getString(EKK0361D010CBSMsg.KAKINS_NO));
		}
		
		// 課金先適用開始年月日
		if (template.isNull(EKK0361D010CBSMsg.KAKINS_TSTAYMD))
		{
			dataMap.put(prefix + "kakins_tstaymd", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_tstaymd", template.getString(EKK0361D010CBSMsg.KAKINS_TSTAYMD));
		}
		
		// 課金先適用終了年月日
		if (template.isNull(EKK0361D010CBSMsg.KAKINS_TENDYMD))
		{
			dataMap.put(prefix + "kakins_tendymd", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_tendymd", template.getString(EKK0361D010CBSMsg.KAKINS_TENDYMD));
		}
		
		// サブオプションサービス契約番号
		if (template.isNull(EKK0361D010CBSMsg.SBOP_SVC_KEI_NO))
		{
			dataMap.put(prefix + "sbop_svc_kei_no", "");
		}
		else
		{
			dataMap.put(prefix + "sbop_svc_kei_no", template.getString(EKK0361D010CBSMsg.SBOP_SVC_KEI_NO));
		}
		
		// 世代登録年月日時分秒(サブオプションサービス契約)
		if (template.isNull(EKK0361D010CBSMsg.KK0401_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0401_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0401_gene_add_dtm", template.getString(EKK0361D010CBSMsg.KK0401_GENE_ADD_DTM));
		}
		
		// 更新年月日時分秒（サブオプションサービス契約）
		if (template.isNull(EKK0361D010CBSMsg.KK0401_UPD_DTM))
		{
			dataMap.put(prefix + "kk0401_upd_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0401_upd_dtm", template.getString(EKK0361D010CBSMsg.KK0401_UPD_DTM));
			JKKBpCommon.setLastDtmBySvcKeiNo(param,
					exclSvcKeiNo, 
					template.getString(EKK0361D010CBSMsg.KK0401_UPD_DTM));
		}
		
		// フェムトセル用認証ID
		if (template.isNull(EKK0361D010CBSMsg.FMTCEL_NINSHO_ID))
		{
			dataMap.put(prefix + "fmtcel_ninsho_id", "");
		}
		else
		{
			dataMap.put(prefix + "fmtcel_ninsho_id", template.getString(EKK0361D010CBSMsg.FMTCEL_NINSHO_ID));
		}

		// フェムトセル用認証IDパスワード
		if (template.isNull(EKK0361D010CBSMsg.FMTCEL_NINSHO_ID_PWD))
		{
			dataMap.put(prefix + "fmtcel_ninsho_id_pwd", "");
		}
		else
		{
			dataMap.put(prefix + "fmtcel_ninsho_id_pwd", template.getString(EKK0361D010CBSMsg.FMTCEL_NINSHO_ID_PWD));
		}
		// エラー情報の設定
		editErrInfoEKK0361D010(param, template, (Integer)returnCode, fixedText, prefix);
		
		// エラー情報のマップを取得
		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;
	}

	/**
	 * オプションサービス契約＜ISP＞登録のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @param prefix
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrInfoEKK0361D010(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			String fixedText, String prefix) throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0361D010CBSMsg.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)
		{
			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<String, String> inMap = (HashMap<String, String>)(param.getData(fixedText));

		// オプションサービスコード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.OP_SVC_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "op_svc_cd_err"))
			{
				inMap.put(prefix + "op_svc_cd_err", template.getString(EKK0361D010CBSMsg.OP_SVC_CD_ERR));
			}
		}
		
		// 料金コースコード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.PCRS_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pcrs_cd_err"))
			{
				inMap.put(prefix + "pcrs_cd_err", template.getString(EKK0361D010CBSMsg.PCRS_CD_ERR));
			}
		}
		
		// 料金プランコード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.PPLAN_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pplan_cd_err"))
			{
				inMap.put(prefix + "pplan_cd_err", template.getString(EKK0361D010CBSMsg.PPLAN_CD_ERR));
			}
		}
		
		// 親契約識別コード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.OYA_KEI_SKBT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "oya_kei_skbt_cd_err"))
			{
				inMap.put(prefix + "oya_kei_skbt_cd_err", template.getString(EKK0361D010CBSMsg.OYA_KEI_SKBT_CD_ERR));
			}
		}
		
		// サービス契約番号 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_kei_no_err"))
			{
				inMap.put(prefix + "svc_kei_no_err", template.getString(EKK0361D010CBSMsg.SVC_KEI_NO_ERR));
			}
		}
		
		// サービス契約内訳番号 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.SVC_KEI_UCWK_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_kei_ucwk_no_err"))
			{
				inMap.put(prefix + "svc_kei_ucwk_no_err", template.getString(EKK0361D010CBSMsg.SVC_KEI_UCWK_NO_ERR));
			}
		}
		
		// SYSID のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.SYSID_ERR))
		{
			if (!inMap.containsKey(prefix + "sysid_err"))
			{
				inMap.put(prefix + "sysid_err", template.getString(EKK0361D010CBSMsg.SYSID_ERR));
			}
		}
		
		// 申込明細番号 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_dtl_no_err"))
			{
				inMap.put(prefix + "mskm_dtl_no_err", template.getString(EKK0361D010CBSMsg.MSKM_DTL_NO_ERR));
			}
		}
		
		// 試用加入年月日 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.FTRIAL_KANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_kanyu_ymd_err"))
			{
				inMap.put(prefix + "ftrial_kanyu_ymd_err", template.getString(EKK0361D010CBSMsg.FTRIAL_KANYU_YMD_ERR));
			}
		}
		
		// 試用期間終了年月日 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_prd_endymd_err"))
			{
				inMap.put(prefix + "ftrial_prd_endymd_err", template.getString(EKK0361D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR));
			}
		}
		
		// 本加入年月日 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.HONKANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_ymd_err", template.getString(EKK0361D010CBSMsg.HONKANYU_YMD_ERR));
			}
		}
		
		// 本加入移行期限年月日 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_iko_kigen_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_iko_kigen_ymd_err", template.getString(EKK0361D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR));
			}
		}
		
		// サービス利用開始希望年月日 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_use_sta_kibo_ymd_err"))
			{
				inMap.put(prefix + "svc_use_sta_kibo_ymd_err", template.getString(EKK0361D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR));
			}
		}
		
		// 予約適用開始希望年月日 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "rsv_tsta_kibo_ymd_err"))
			{
				inMap.put(prefix + "rsv_tsta_kibo_ymd_err", template.getString(EKK0361D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR));
			}
		}
		
		// 違約金発生コード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.PNLTY_HASSEI_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pnlty_hassei_cd_err"))
			{
				inMap.put(prefix + "pnlty_hassei_cd_err", template.getString(EKK0361D010CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}
		
		// 異動区分 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "ido_div_err"))
			{
				inMap.put(prefix + "ido_div_err", template.getString(EKK0361D010CBSMsg.IDO_DIV_ERR));
			}
		}
		
		// 希望メールアカウント1 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_1_ERR))
		{
			if (!inMap.containsKey(prefix + "kibo_ml_account_1_err"))
			{
				inMap.put(prefix + "kibo_ml_account_1_err", template.getString(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_1_ERR));
			}
		}
		
		// 希望メールアカウント2 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_2_ERR))
		{
			if (!inMap.containsKey(prefix + "kibo_ml_account_2_err"))
			{
				inMap.put(prefix + "kibo_ml_account_2_err", template.getString(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_2_ERR));
			}
		}
		
		// 希望メールアカウント3 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_3_ERR))
		{
			if (!inMap.containsKey(prefix + "kibo_ml_account_3_err"))
			{
				inMap.put(prefix + "kibo_ml_account_3_err", template.getString(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_3_ERR));
			}
		}
		
		// マルチセッション用セッション数 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MLTISE_SESSION_CNT_ERR))
		{
			if (!inMap.containsKey(prefix + "mltise_session_cnt_err"))
			{
				inMap.put(prefix + "mltise_session_cnt_err", template.getString(EKK0361D010CBSMsg.MLTISE_SESSION_CNT_ERR));
			}
		}
		
		// マルチセッション用初期認証IDパスワード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MLTISE_SHK_NINSHO_ID_PWD_ERR))
		{
			if (!inMap.containsKey(prefix + "mltise_shk_ninsho_id_pwd_err"))
			{
				inMap.put(prefix + "mltise_shk_ninsho_id_pwd_err", template.getString(EKK0361D010CBSMsg.MLTISE_SHK_NINSHO_ID_PWD_ERR));
			}
		}
		
		// マルチセッション用認証ID のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_ERR))
		{
			if (!inMap.containsKey(prefix + "mltise_ninsho_id_err"))
			{
				inMap.put(prefix + "mltise_ninsho_id_err", template.getString(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_ERR));
			}
		}
		
		// マルチセッション用認証IDパスワード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_PWD_ERR))
		{
			if (!inMap.containsKey(prefix + "mltise_ninsho_id_pwd_err"))
			{
				inMap.put(prefix + "mltise_ninsho_id_pwd_err", template.getString(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_PWD_ERR));
			}
		}
		
		// 固定IPアドレス のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.KOTEI_IP_AD_ERR))
		{
			if (!inMap.containsKey(prefix + "kotei_ip_ad_err"))
			{
				inMap.put(prefix + "kotei_ip_ad_err", template.getString(EKK0361D010CBSMsg.KOTEI_IP_AD_ERR));
			}
		}
		
		// ネットマスク のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.NETMASK_ERR))
		{
			if (!inMap.containsKey(prefix + "netmask_err"))
			{
				inMap.put(prefix + "netmask_err", template.getString(EKK0361D010CBSMsg.NETMASK_ERR));
			}
		}
		
		// 初期POPIDパスワード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.SHK_POP_ID_PWD_ERR))
		{
			if (!inMap.containsKey(prefix + "shk_pop_id_pwd_err"))
			{
				inMap.put(prefix + "shk_pop_id_pwd_err", template.getString(EKK0361D010CBSMsg.SHK_POP_ID_PWD_ERR));
			}
		}
		
		// POPID のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.POP_ID_ERR))
		{
			if (!inMap.containsKey(prefix + "pop_id_err"))
			{
				inMap.put(prefix + "pop_id_err", template.getString(EKK0361D010CBSMsg.POP_ID_ERR));
			}
		}
		
		// メールアドレスのエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MLAD_ERR))
		{
			if (!inMap.containsKey(prefix + "mlad_err"))
			{
				inMap.put(prefix + "mlad_err", template.getString(EKK0361D010CBSMsg.MLAD_ERR));
			}
		}
		
		// 容量 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.CAPA_ERR))
		{
			if (!inMap.containsKey(prefix + "capa_err"))
			{
				inMap.put(prefix + "capa_err", template.getString(EKK0361D010CBSMsg.CAPA_ERR));
			}
		}
		
		// 初期WebIDパスワード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.SHK_WEB_ID_PWD_ERR))
		{
			if (!inMap.containsKey(prefix + "shk_web_id_pwd_err"))
			{
				inMap.put(prefix + "shk_web_id_pwd_err", template.getString(EKK0361D010CBSMsg.SHK_WEB_ID_PWD_ERR));
			}
		}
		
		// WebID のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.WEB_ID_ERR))
		{
			if (!inMap.containsKey(prefix + "web_id_err"))
			{
				inMap.put(prefix + "web_id_err", template.getString(EKK0361D010CBSMsg.WEB_ID_ERR));
			}
		}
		
		// URL(ドメイン) のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.URL_DOMAIN_ERR))
		{
			if (!inMap.containsKey(prefix + "url_domain_err"))
			{
				inMap.put(prefix + "url_domain_err", template.getString(EKK0361D010CBSMsg.URL_DOMAIN_ERR));
			}
		}
		
		// URL(アカウント) のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.URL_ACCOUNT_ERR))
		{
			if (!inMap.containsKey(prefix + "url_account_err"))
			{
				inMap.put(prefix + "url_account_err", template.getString(EKK0361D010CBSMsg.URL_ACCOUNT_ERR));
			}
		}
		
		// メーリングリスト名 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MLLIST_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "mllist_nm_err"))
			{
				inMap.put(prefix + "mllist_nm_err", template.getString(EKK0361D010CBSMsg.MLLIST_NM_ERR));
			}
		}
		
		// メーリングリスト呼称 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MLLIST_KOSHO_ERR))
		{
			if (!inMap.containsKey(prefix + "mllist_kosho_err"))
			{
				inMap.put(prefix + "mllist_kosho_err", template.getString(EKK0361D010CBSMsg.MLLIST_KOSHO_ERR));
			}
		}
		
		// メーリングリスト公開要否 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MLLIST_KOKAI_YH_ERR))
		{
			if (!inMap.containsKey(prefix + "mllist_kokai_yh_err"))
			{
				inMap.put(prefix + "mllist_kokai_yh_err", template.getString(EKK0361D010CBSMsg.MLLIST_KOKAI_YH_ERR));
			}
		}
		
		// メーリングリスト最大ユーザー数 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MLLIST_MAX_USER_CNT_ERR))
		{
			if (!inMap.containsKey(prefix + "mllist_max_user_cnt_err"))
			{
				inMap.put(prefix + "mllist_max_user_cnt_err", template.getString(EKK0361D010CBSMsg.MLLIST_MAX_USER_CNT_ERR));
			}
		}
		
		// メーリングリスト管理者メールアドレス のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MLLIST_KRISHA_MLAD_ERR))
		{
			if (!inMap.containsKey(prefix + "mllist_krisha_mlad_err"))
			{
				inMap.put(prefix + "mllist_krisha_mlad_err", template.getString(EKK0361D010CBSMsg.MLLIST_KRISHA_MLAD_ERR));
			}
		}
		
		// 独自ドメイン名 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.DOKUJI_DOMAIN_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "dokuji_domain_nm_err"))
			{
				inMap.put(prefix + "dokuji_domain_nm_err", template.getString(EKK0361D010CBSMsg.DOKUJI_DOMAIN_NM_ERR));
			}
		}
		
		// ホスティングメールアカウント数 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.HOSML_ACCOUNT_CNT_ERR))
		{
			if (!inMap.containsKey(prefix + "hosml_account_cnt_err"))
			{
				inMap.put(prefix + "hosml_account_cnt_err", template.getString(EKK0361D010CBSMsg.HOSML_ACCOUNT_CNT_ERR));
			}
		}
		
		// ホスティングメールボックス総容量 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.HOSML_BOX_CAPA_ERR))
		{
			if (!inMap.containsKey(prefix + "hosml_box_capa_err"))
			{
				inMap.put(prefix + "hosml_box_capa_err", template.getString(EKK0361D010CBSMsg.HOSML_BOX_CAPA_ERR));
			}
		}
		
		// ダイヤルパッドPIN のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.DPAD_PIN_ERR))
		{
			if (!inMap.containsKey(prefix + "dpad_pin_err"))
			{
				inMap.put(prefix + "dpad_pin_err", template.getString(EKK0361D010CBSMsg.DPAD_PIN_ERR));
			}
		}
		
		// ダイヤルパッドID公開要否 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.DPAD_ID_KOKAI_YH_ERR))
		{
			if (!inMap.containsKey(prefix + "dpad_id_kokai_yh_err"))
			{
				inMap.put(prefix + "dpad_id_kokai_yh_err", template.getString(EKK0361D010CBSMsg.DPAD_ID_KOKAI_YH_ERR));
			}
		}
		
		// ダイアルアップ接続用認証ID のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.DUPCON_NINSHO_ID_ERR))
		{
			if (!inMap.containsKey(prefix + "dupcon_ninsho_id_err"))
			{
				inMap.put(prefix + "dupcon_ninsho_id_err", template.getString(EKK0361D010CBSMsg.DUPCON_NINSHO_ID_ERR));
			}
		}
		
		// DNS設定コード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.DNS_SETTE_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "dns_sette_cd_err"))
			{
				inMap.put(prefix + "dns_sette_cd_err", template.getString(EKK0361D010CBSMsg.DNS_SETTE_CD_ERR));
			}
		}
		
		// スポット有害サイトブロック対象SYSID のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.SPOT_YGSITEBLCK_TRGT_SYSID_ERR))
		{
			if (!inMap.containsKey(prefix + "spot_ygsiteblck_trgt_sysid_err"))
			{
				inMap.put(prefix + "spot_ygsiteblck_trgt_sysid_err", template.getString(EKK0361D010CBSMsg.SPOT_YGSITEBLCK_TRGT_SYSID_ERR));
			}
		}
		
		// サービス個別設定連絡先メールアドレス のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.SVC_KBT_SET_RRKS_MLAD_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_kbt_set_rrks_mlad_err"))
			{
				inMap.put(prefix + "svc_kbt_set_rrks_mlad_err", template.getString(EKK0361D010CBSMsg.SVC_KBT_SET_RRKS_MLAD_ERR));
			}
		}
		
		// 通話明細公開要否 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.TUWA_DTL_KOKAI_YH_ERR))
		{
			if (!inMap.containsKey(prefix + "tuwa_dtl_kokai_yh_err"))
			{
				inMap.put(prefix + "tuwa_dtl_kokai_yh_err", template.getString(EKK0361D010CBSMsg.TUWA_DTL_KOKAI_YH_ERR));
			}
		}

		// IPv6アドレス(インターフェイスID) のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.IPV6_AD_IFID_ERR))
		{
			if (!inMap.containsKey(prefix + "ipv6_ad_ifid_err"))
			{
				inMap.put(prefix + "ipv6_ad_ifid_err", template.getString(EKK0361D010CBSMsg.IPV6_AD_IFID_ERR));
			}
		}

		// 請求契約番号 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.SEIKY_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "seiky_kei_no_err"))
			{
				inMap.put(prefix + "seiky_kei_no_err", template.getString(EKK0361D010CBSMsg.SEIKY_KEI_NO_ERR));
			}
		}
		
		// 料金項目コード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.PRC_KMK_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "prc_kmk_cd_err"))
			{
				inMap.put(prefix + "prc_kmk_cd_err", template.getString(EKK0361D010CBSMsg.PRC_KMK_CD_ERR));
			}
		}
		
		// 更新年月日時分秒(更新前) のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.UPD_DTM_BF_ERR))
		{
			if (!inMap.containsKey(prefix + "upd_dtm_bf_err"))
			{
				inMap.put(prefix + "upd_dtm_bf_err", template.getString(EKK0361D010CBSMsg.UPD_DTM_BF_ERR));
			}
		}

		// フェムトセル事業者コード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.FMTCEL_JGS_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "fmtcel_jgs_cd_err"))
			{
				inMap.put(prefix + "fmtcel_jgs_cd_err", template.getString(EKK0361D010CBSMsg.FMTCEL_JGS_CD_ERR));
			}
		}
		
		// フェムトセル事業者使用コード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.FMTCEL_JGS_USE_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "fmtcel_jgs_use_cd_err"))
			{
				inMap.put(prefix + "fmtcel_jgs_use_cd_err", template.getString(EKK0361D010CBSMsg.FMTCEL_JGS_USE_CD_ERR));
			}
		}
		
		return param;
	}
	
	/**
	 * 単一CAANMsgのマッピング処理を行います。
	 * <br>
	 * @param paramMap
	 * @param template
	 * @return パラメータマップ
	 */
	private HashMap<String, Object> putParamMap(HashMap<String, Object> paramMap, CAANMsg template)
	{
		CAANMsg[] templates = { template };
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		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));
	}

	
	/**
	 * CAANMsgに必要なデータのマッピング処理を行います。
	 * <br>
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @return HashMap
	 * @throws RequestParameterException
	 */
	public HashMap getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		ArrayList<CAANMsg> msgList = new ArrayList<CAANMsg>();

		HashMap<String, String> inMap = (HashMap<String, String>)param.getData(fixedText);

		// 登録用のCCに値が設定されていない場合は処理を行わない。
		if (inMap == null)
		{
			return null;
		}
		
		exclSvcKeiNo = getMapValue(param, fixedText, PREFIX_CHG_INFO + "svc_kei_no") ;
		
		// 申込明細情報変更
		msgList.add(editInEKK0021C040(param, fixedText, PREFIX_MSKM_DTL)); // 上りマッピング
		
		if (getMapValue(param, fixedText, PREFIX_CHG_INFO + "svc_kei_no") != null)
		{
			// サービス契約<eoADSL>情報変更
			msgList.add(editInEKK0141C040(param, fixedText, PREFIX_CHG_INFO)); // 上りマッピング
		}

		if (getMapValue(param, fixedText, PREFIX_CHG_PLAN + "svc_kei_no") != null)
		{
			// サービス契約手続中料金プラン変更
			msgList.add(editInEKK0081C100(param, fixedText, PREFIX_CHG_PLAN)); // 上りマッピング
		}

		if (getMapValue(param, fixedText, PREFIX_CANCEL_OP + "op_svc_kei_no") != null)
		{
			// オプションサービス契約キャンセル
			msgList.add(editInEKK0351C220(param, fixedText, PREFIX_CANCEL_OP)); // 上りマッピング
		}
		
		if (getMapValue(param, fixedText, PREFIX_ADD_OPISP + "op_svc_cd") != null)
		{
			// オプションサービス契約<ISP>登録
			msgList.add(editInEKK0361D010(param, fixedText, PREFIX_ADD_OPISP)); // 上りマッピング
		}

		int msgCnt = msgList.size();
		CAANMsg[] templates = new CAANMsg[msgCnt];
		for (int i = 0; i < msgCnt; i++)
		{
			templates[i] = msgList.get(i);
		}
		
		HashMap<String, Object> paramMap = setSCInputCommonData(param, new HashMap<String, Object>());
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}
	
	/**
	 * サービスコンポーネント実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 * @param param
	 * @param templates
	 * @param returnCode
	 * @param fixedText
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	public IRequestParameterReadWrite editErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, String fixedText)
		throws RequestParameterException
	{
		// ユーザデータ情報
		HashMap<String, String> inMapChk = (HashMap<String, String>)(param.getData(fixedText));
		if (inMapChk == null)
		{
			return null;
		}
		
		int templateCount = 0;
		
		// 申込明細情報変更
		editErrInfoEKK0021C040(param, templates[templateCount++], (Integer)returnCode, fixedText, PREFIX_MSKM_DTL);
		if (getMapValue(param, fixedText, PREFIX_CHG_INFO + "svc_kei_no") != null)
		{
			// サービス契約<eoADSL>情報変更
			editErrInfoEKK0141C040(param, templates[templateCount++], (Integer)returnCode, fixedText, PREFIX_CHG_INFO);
		}

		if (getMapValue(param, fixedText, PREFIX_CHG_PLAN + "svc_kei_no") != null)
		{
			// サービス契約手続中料金プラン変更
			editErrInfoEKK0081C100(param, templates[templateCount++], (Integer)returnCode, fixedText, PREFIX_CHG_PLAN);
		}

		if (getMapValue(param, fixedText, PREFIX_CANCEL_OP + "op_svc_kei_no") != null)
		{
			// オプションサービス契約キャンセル
			editErrInfoEKK0351C220(param, templates[templateCount++], (Integer)returnCode, fixedText, PREFIX_CANCEL_OP);
		}
		
		if (getMapValue(param, fixedText, PREFIX_ADD_OPISP + "op_svc_cd") != null)
		{
			// オプションサービス契約<ISP>登録
			editErrInfoEKK0361D010(param, templates[templateCount++], (Integer)returnCode, fixedText, PREFIX_ADD_OPISP);
		}
		
		return param;
	}
	
}
