/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKAddSvcKeiMobileExeCC
*   ソースファイル名：JKKAddSvcKeiMobileExeCC.java
*   作成者          ：富士通
*   日付            ：2011年12月06日
*＜機能概要＞
*   eoモバイル登録を行います。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/12/06   FJ）植木    新規作成
*   v4.00.00    2012/07/09   FJ) 三浦    【ANK-0397-00-00】申込書番号の発番検討における対応
*   v4.00.00    2012/08/06   FJ）北浦    【ANK-0099-00-00】eoモバイルへのeo64移行用料金プラン追加
*   v5.00.00	2013/01/25   FJ) 谷口	 【ANK-1270-02-00】１G値下げに伴う200M申込受付停止及びファミパ・無線ルータ値下げ対応
*
**********************************************************************/

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.ICommonComponent;
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.EKK0021D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0121D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0201D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0251D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0251D010CBSMsg1List;


/**
 * eoモバイル登録を行う。
 * <BR>
 * @author 富士通
 */
public class JKKAddSvcKeiMobileExeCC extends AbstractCommonComponent implements ICommonComponent
{
	/** リターンメッセージ */
	private static final String RETURN_MESSAGE_STRING = "RETURN_MESSAGE_";
	/** リターンメッセージ */
	private static final String RETURN_MESSAGE_FORMAT = "%1$04d";
	/** エラー用 */
	private static final String SC_ERROR_STRING = "サービスコンポーネントエラー";

	/** 作業マップ名（申込情報登録作業項目マップ） */
	private static final String CC_WORK_AREA_NM_MSKM = "JKKAddMskmServiceCCWork";
	/** 作業マップ名（eoモバイル登録作業項目マップ） */
	private static final String CC_WORK_AREA_NM = "JKKAddSvcKeiMobileExeCCWork";
	/** 作業マップ名（契約者情報登録作業項目マップ） */
	private static final String CC_WORK_AREA_NM_KEISHA = "JKKAddKeishaServiceCCWork";
	/** 作業マップ名（支払方法登録作業項目マップ） */
	private static final String CC_WORK_AREA_NM_PAYWAY = "JKKAddSvcPaywayCCWork";

	/*
	 *  各サービスIFのマップ用プレフィックス
	 */
	/** 申込明細登録用プレフィックス */
	private static final String PREFIX_MSKM_DTL = "kk0021_";
	/** サービス契約＜eoモバイル＞登録用プレフィックス */
	private static final String PREFIX_MOBILE = "kk0121_";
	/** サービス契約回線内訳登録用プレフィックス */
	private static final String PREFIX_SVCKEIKAISENUCWK = "kk0251_";
	/** サービス契約内訳＜eoモバイル＞登録用プレフィックス（Wifi） */
	private static final String PREFIX_SVCKEIUCWK = "kk0201_";
	/** サービス契約内訳＜eoモバイル＞登録用プレフィックス（認証ID） */
	private static final String PREFIX_SVCKEIUCWK_NINSHOID = "kk020102_";
	/** 機器提供サービス契約登録用プレフィックス */
	private static final String PREFIX_KKTK_SVC = "kk0341_";
	/** サービス契約番号 */
	private String svcKeiNo = "";
	/** 申込明細番号 */
	private String mskmDtlNo = "";
	/** 機器提供サービス契約登録リスト名 */
	private static final String KIKI_ADD_LIST = "kktk_add_list";	

	/**
	 * モバイル登録処理
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite addSvcKeiMobile(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		// エラーフラグ(実行判定用)
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		HashMap<String, Object> paramMap = setSCInputCommonData(param, new HashMap<String, Object>());
		Map<?, ?> result = null;
		CAANMsg template = null;

		//***************************************************
		// 入力パラメータの取得
		//***************************************************
		Map<String, Object> ccParam = (Map<String, Object>)param.getData(fixedText);
		if (ccParam == null)
		{
			return param;
		}

		if (null == getMskmDtlWorkMapValue(param, "mskm_dtl_no_moba"))
		{
			// 申込明細登録
			template = editInEKK0021D010Msg(param, fixedText, PREFIX_MSKM_DTL); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editOutEKK0021D010Msg(result, param, fixedText, PREFIX_MSKM_DTL); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{ // ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}

		// サービス契約<eoモバイル>登録
		template = editInEKK0121D010Msg(param, fixedText, PREFIX_MOBILE); // 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
		editOutEKK0121D010Msg(result, param, fixedText, PREFIX_MOBILE); // 下りマッピング
		if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
		{ // ステータスが単項目エラー以上であれば例外をスロー
			throw new CCException(SC_ERROR_STRING, new Exception());
		}

		if (null != getMapValue(param, fixedText, "kk0251_kaisen_tk_comp_cd"))
		{
			// サービス契約回線内訳登録
			template = editInEKK0251D010Msg(param, fixedText, PREFIX_SVCKEIKAISENUCWK); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editOutEKK0251D010Msg(result, param, fixedText, PREFIX_SVCKEIKAISENUCWK); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{ // ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}

		// サービス契約内訳<eoモバイル>登録（Wifi用）
		if (null != getMapValue(param, fixedText, "kk0201_pcrs_cd"))
		{
			template = editInEKK0201D010Msg(param, fixedText, PREFIX_SVCKEIUCWK); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editOutEKK0201D010Msg(result, param, fixedText, PREFIX_SVCKEIUCWK); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{ // ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}

		// UQ-WiMAXの場合
		if (null != getMapValue(param, fixedText, "kk020102_pcrs_cd"))
		{
			// サービス契約内訳<eoモバイル>登録（認証ID用）
			template = editInEKK0201D010Msg(param, fixedText, PREFIX_SVCKEIUCWK_NINSHOID); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editOutEKK0201D010Msg(result, param, fixedText, PREFIX_SVCKEIUCWK_NINSHOID); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{ // ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}
		
		// オプションサービス契約登録部品呼び出し
		editInAddOpSvcKei(param, fixedText);
		JKKBpCommon.addOpSvcKei(handle, param, fixedText);
		
		
		HashMap inMap = (HashMap)param.getData(fixedText);
		int devCnt = 0;
		
		ArrayList dataList = null;
		if(null != inMap.get(KIKI_ADD_LIST))
		{
			dataList = (ArrayList)inMap.get(KIKI_ADD_LIST);
			devCnt = dataList.size();
			for (int i = 0; i < devCnt; i++)
			{
				// 機器提供サービス契約登録
				editInKktkSvcKei(param, fixedText, i, KIKI_ADD_LIST, PREFIX_KKTK_SVC);
				JKKBpCommon.addKktkSvcKei(handle, param, (HashMap)dataList.get(i), PREFIX_KKTK_SVC);
				editOutKktkSvcKei(param, fixedText, i, KIKI_ADD_LIST, PREFIX_KKTK_SVC);
			}
		}		

		return param;
	}

	/**
	 * SCインプット共通データ設定処理を行います。
	 * <br>
	 * @param param
	 * @param paramMap
	 * @return パラメータマップ
	 * @throws RequestParameterException
	 */
	private HashMap<String, Object> setSCInputCommonData(IRequestParameterReadWrite param, HashMap<String, Object> paramMap)
			throws RequestParameterException
	{
		/* SCインプット共通データ */
		// **********************************************
		// 【取得元：電文ヘッダ(ヘッダ)】
		// **********************************************
		// 電文ID
		paramMap.put(JCMConstants.TRANZACTION_ID_KEY, param.getTelegramID());
		// ユースケースID
		paramMap.put(JCMConstants.USECASE_ID_KEY, param.getUsecaseID());
		// オペレーションID
		paramMap.put(JCMConstants.OPERATION_ID_KEY, param.getOperationID());
		// サービス呼び出し区分
		paramMap.put(JCMConstants.CALL_TYPE_KEY, param.getCallType());

		// **********************************************
		// 【取得元：ユーザエリア(コントロールマップ)】
		// **********************************************
		// 依頼先ホスト名
		paramMap.put(JCMConstants.CLIENT_HOST_NAME_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTNAME));
		// 依頼元IPアドレス
		paramMap.put(JCMConstants.CLIENT_IP_ADDRESS_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTIP));
		// 依頼元画面ID
		paramMap.put(JCMConstants.INVOKE_GAMEN_ID_KEY, param.getControlMapData(SCControlMapKeys.REQ_VIEWID));
		// オペレータID
		paramMap.put(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));

		return paramMap;
	}

	/**
	 * 申込明細登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0021D010Msg(IRequestParameterReadWrite param, String fixedText, String prefix) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0021D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0021D010CBSMsg.TEMPLATEID, "EKK0021D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0021D010CBSMsg.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 inMap = (HashMap)(param.getData(fixedText));

		// 機能コード
		template.set(EKK0021D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 申込番号
		if (inMap == null || inMap.get(prefix + "mskm_no") == null || "".equals(inMap.get(prefix + "mskm_no")))
		{
			template.setNull(EKK0021D010CBSMsg.MSKM_NO);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKM_NO, (String)inMap.get(prefix + "mskm_no"));
		}

		// 申込書番号
		if (inMap == null || inMap.get(prefix + "mskmsho_no") == null || "".equals(inMap.get(prefix + "mskmsho_no")))
		{
			template.setNull(EKK0021D010CBSMsg.MSKMSHO_NO);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKMSHO_NO, (String)inMap.get(prefix + "mskmsho_no"));
		}

		// 申込年月日
		if (inMap == null || inMap.get(prefix + "mskm_ymd") == null || "".equals(inMap.get(prefix + "mskm_ymd")))
		{
			template.setNull(EKK0021D010CBSMsg.MSKM_YMD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKM_YMD, (String)inMap.get(prefix + "mskm_ymd"));
		}

		// SYSID
		if (inMap == null || inMap.get(prefix + "sysid") == null || "".equals(inMap.get(prefix + "sysid")))
		{
			if (getKeishaWorkMapValue(param, "sysid") == null)
			{
				template.setNull(EKK0021D010CBSMsg.SYSID);
			}
			else
			{
				template.set(EKK0021D010CBSMsg.SYSID, getKeishaWorkMapValue(param, "sysid"));
			}
		}
		else
		{
			template.set(EKK0021D010CBSMsg.SYSID, (String)inMap.get(prefix + "sysid"));
		}

		// WEB受付番号
		if (inMap == null || inMap.get(prefix + "web_uk_no") == null || "".equals(inMap.get(prefix + "web_uk_no")))
		{
			template.setNull(EKK0021D010CBSMsg.WEB_UK_NO);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.WEB_UK_NO, (String)inMap.get(prefix + "web_uk_no"));
		}

		// 申込形態コード
		if (inMap == null || inMap.get(prefix + "mskm_form_cd") == null || "".equals(inMap.get(prefix + "mskm_form_cd")))
		{
			template.setNull(EKK0021D010CBSMsg.MSKM_FORM_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKM_FORM_CD, (String)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(EKK0021D010CBSMsg.MSKM_DTL_SBT_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKM_DTL_SBT_CD, (String)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(EKK0021D010CBSMsg.RRKS_KTAI_TELNO);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.RRKS_KTAI_TELNO, (String)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(EKK0021D010CBSMsg.RRKS_OFFC_NM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.RRKS_OFFC_NM, (String)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(EKK0021D010CBSMsg.DT_RRKS_TELNO);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.DT_RRKS_TELNO, (String)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(EKK0021D010CBSMsg.NEW_MSKM_SBT_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.NEW_MSKM_SBT_CD, (String)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(EKK0021D010CBSMsg.MSKM_OPTNTY_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKM_OPTNTY_CD, (String)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(EKK0021D010CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD, (String)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(EKK0021D010CBSMsg.KOJI_APO_RRKS_SHITEI_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.KOJI_APO_RRKS_SHITEI_CD, (String)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(EKK0021D010CBSMsg.KOJI_APO_RRKS_TELNO);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.KOJI_APO_RRKS_TELNO, (String)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(EKK0021D010CBSMsg.RRK_JIKO_ADD_DTM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.RRK_JIKO_ADD_DTM, (String)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(EKK0021D010CBSMsg.MSKM_RRKS_MLAD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKM_RRKS_MLAD, (String)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(EKK0021D010CBSMsg.KOJI_PRG_TCHI_MLAD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.KOJI_PRG_TCHI_MLAD, (String)inMap.get(prefix + "koji_prg_tchi_mlad"));
		}

		// 連絡事項
		if (inMap == null || inMap.get(prefix + "rrk_jiko") == null || "".equals(inMap.get(prefix + "rrk_jiko")))
		{
			template.setNull(EKK0021D010CBSMsg.RRK_JIKO);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.RRK_JIKO, (String)inMap.get(prefix + "rrk_jiko"));
		}

		// 工事進捗通知携帯メールアドレス
		if (inMap == null || inMap.get(prefix + "kjsc_tch_ktai_mlad") == null || "".equals(inMap.get(prefix + "kjsc_tch_ktai_mlad")))
		{
			template.setNull(EKK0021D010CBSMsg.KJSC_TCH_KTAI_MLAD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.KJSC_TCH_KTAI_MLAD, (String)inMap.get(prefix + "kjsc_tch_ktai_mlad"));
		}

		// メール送信除外フラグ
		if (inMap == null || inMap.get(prefix + "ml_send_jgi_flg") == null || "".equals(inMap.get(prefix + "ml_send_jgi_flg")))
		{
			template.setNull(EKK0021D010CBSMsg.ML_SEND_JGI_FLG);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.ML_SEND_JGI_FLG, (String)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(EKK0021D010CBSMsg.ML_SEND_JGI_RSN_MEMO);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.ML_SEND_JGI_RSN_MEMO, (String)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(EKK0021D010CBSMsg.BMP_MSKM_RRKS_TLN);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.BMP_MSKM_RRKS_TLN, (String)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(EKK0021D010CBSMsg.OP_SVC_HKTGI_UM);
			template.set(EKK0021D010CBSMsg.OP_SVC_HKTGI_UM, JKKStrConst.CD_DIV_UM_NASHI);
			//**********↑障害対応(IT1-2012-0000024)**********/
		}
		else
		{
			template.set(EKK0021D010CBSMsg.OP_SVC_HKTGI_UM, (String)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(EKK0021D010CBSMsg.DSL_ATICLE_SOHU_KIBO_UM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.DSL_ATICLE_SOHU_KIBO_UM, (String)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(EKK0021D010CBSMsg.RRK_WAY_HOKI);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.RRK_WAY_HOKI, (String)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(EKK0021D010CBSMsg.NEWCONST_BUKKEN_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.NEWCONST_BUKKEN_CD, (String)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(EKK0021D010CBSMsg.HUKKAT_ANKEN_FLG);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.HUKKAT_ANKEN_FLG, (String)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(EKK0021D010CBSMsg.SAME_EQUIP_RE_MSKM_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.SAME_EQUIP_RE_MSKM_CD, (String)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(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_SBT_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_SBT_CD, (String)inMap.get(prefix + "hnin_cfm_aticle_sbt_cd"));
		}

		// 申込書種別コード
		if (inMap == null || inMap.get(prefix + "mskmsho_sbt_cd") == null || "".equals(inMap.get(prefix + "mskmsho_sbt_cd")))
		{
			template.setNull(EKK0021D010CBSMsg.MSKMSHO_SBT_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKMSHO_SBT_CD, (String)inMap.get(prefix + "mskmsho_sbt_cd"));
		}

		// 契約付加コード
		if (inMap == null || inMap.get(prefix + "kei_huka_cd") == null || "".equals(inMap.get(prefix + "kei_huka_cd")))
		{
			template.setNull(EKK0021D010CBSMsg.KEI_HUKA_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.KEI_HUKA_CD, (String)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(EKK0021D010CBSMsg.MAP_TEMP_UM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MAP_TEMP_UM, (String)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(EKK0021D010CBSMsg.KCN_STB_MSKM_CNT);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.KCN_STB_MSKM_CNT, (String)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(EKK0021D010CBSMsg.KCN_STB_KIND_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.KCN_STB_KIND_CD, (String)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(EKK0021D010CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN, (String)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(EKK0021D010CBSMsg.MANSION_ID);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MANSION_ID, (String)inMap.get(prefix + "mansion_id"));
		}

		// CAT-ID
		if (inMap == null || inMap.get(prefix + "catid") == null || "".equals(inMap.get(prefix + "catid")))
		{
			template.setNull(EKK0021D010CBSMsg.CATID);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.CATID, (String)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(EKK0021D010CBSMsg.MKM_UK_SBT_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MKM_UK_SBT_CD, (String)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(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM, (String)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(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TELNO);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TELNO, (String)inMap.get(prefix + "mskmsho_trat_if_telno"));
		}

		// 割引自動適用対象外フラグ
		if (inMap == null || inMap.get(prefix + "wrib_auto_aply_tg_gai_flg") == null || "".equals(inMap.get(prefix + "wrib_auto_aply_tg_gai_flg")))
		{
			template.setNull(EKK0021D010CBSMsg.WRIB_AUTO_APLY_TG_GAI_FLG);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.WRIB_AUTO_APLY_TG_GAI_FLG, (String)inMap.get(prefix + "wrib_auto_aply_tg_gai_flg"));
		}

		// 更新年月日時分秒(更新前)
		String lastDtm = JKKBpCommon.getLastDtmByMskm(param, (String)(inMap == null ? null : inMap.get(prefix + "upd_dtm_bf")));
		if (lastDtm == null)
		{
			if (inMap == null || inMap.get(prefix + "upd_dtm_bf") == null || "".equals(inMap.get(prefix + "upd_dtm_bf")))
			{
				template.setNull(EKK0021D010CBSMsg.UPD_DTM_BF);
			}
			else
			{
				template.set(EKK0021D010CBSMsg.UPD_DTM_BF, (String)inMap.get(prefix + "upd_dtm_bf"));
			}
		}
		else
		{
			template.set(EKK0021D010CBSMsg.UPD_DTM_BF, lastDtm);
		}
		
		// 申込書明細番号
		if (inMap == null || inMap.get(prefix + "mskmsho_dtl_no") == null || "".equals(inMap.get(prefix + "mskmsho_dtl_no")))
		{
			if (JKKBpCommon.getWkMskmshoDtlNoMbl(param) == null || "".equals(JKKBpCommon.getWkMskmshoDtlNoMbl(param)))
			{
				template.setNull(EKK0021D010CBSMsg.MSKMSHO_DTL_NO);
			}
			else
			{
				template.set(EKK0021D010CBSMsg.MSKMSHO_DTL_NO, JKKBpCommon.getWkMskmshoDtlNoMbl(param));
			}
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKMSHO_DTL_NO, (String)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(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_NM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_NM, (String)inMap.get(prefix + "hnin_cfm_aticle_nm"));
		}

		return template;
	}

	/**
	 * 申込明細登録の下りマッピング処理
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK0021D010Msg(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);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		HashMap mskmMap = (HashMap)workMap.get(CC_WORK_AREA_NM_MSKM);
		if (mskmMap == null)
		{
			mskmMap = new HashMap();
		}

		HashMap ccWorkAreaNmMap = (HashMap)workMap.get(CC_WORK_AREA_NM);
		if (ccWorkAreaNmMap == null)
		{
			ccWorkAreaNmMap = new HashMap();
			workMap.put(CC_WORK_AREA_NM, ccWorkAreaNmMap);
		}

		/* 業務データ設定 */
		HashMap dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

		// 申込明細番号
		if (template.isNull(EKK0021D010CBSMsg.MSKM_DTL_NO))
		{
			dataMap.put(prefix + "mskm_dtl_no", "");
		}
		else
		{
			dataMap.put(prefix + "mskm_dtl_no", template.getString(EKK0021D010CBSMsg.MSKM_DTL_NO));
			mskmMap.put("mskm_dtl_no", template.getString(EKK0021D010CBSMsg.MSKM_DTL_NO));
			ccWorkAreaNmMap.put("mskm_dtl_no", template.getString(EKK0021D010CBSMsg.MSKM_DTL_NO));
			JKKBpCommon.setMskmDtlNo(param, template.getString(EKK0021D010CBSMsg.MSKM_DTL_NO));
			// 契約新規申込ワークエリアへ登録
			JKKBpCommon.setWkMskmDtlNoMbl(param, template.getString(EKK0021D010CBSMsg.MSKM_DTL_NO));
		}

		// 世代登録年月日時分秒
		if (template.isNull(EKK0021D010CBSMsg.GENE_ADD_DTM))
		{
			dataMap.put(prefix + "gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "gene_add_dtm", template.getString(EKK0021D010CBSMsg.GENE_ADD_DTM));
		}

		// 申込明細ステータス
		if (template.isNull(EKK0021D010CBSMsg.MSKM_DTL_STAT))
		{
			dataMap.put(prefix + "mskm_dtl_stat", "");
		}
		else
		{
			dataMap.put(prefix + "mskm_dtl_stat", template.getString(EKK0021D010CBSMsg.MSKM_DTL_STAT));
		}

		// 申込番号
		if (template.isNull(EKK0021D010CBSMsg.MSKM_NO))
		{
			dataMap.put(prefix + "mskm_no", "");
		}
		else
		{
			dataMap.put(prefix + "mskm_no", template.getString(EKK0021D010CBSMsg.MSKM_NO));
		}

		// 登録年月日時分秒
		if (template.isNull(EKK0021D010CBSMsg.ADD_DTM))
		{
			dataMap.put(prefix + "add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "add_dtm", template.getString(EKK0021D010CBSMsg.ADD_DTM));
		}

		// 登録オペレータアカウント
		if (template.isNull(EKK0021D010CBSMsg.ADD_OPEACNT))
		{
			dataMap.put(prefix + "add_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "add_opeacnt", template.getString(EKK0021D010CBSMsg.ADD_OPEACNT));
		}

		// 更新年月日時分秒
		if (template.isNull(EKK0021D010CBSMsg.UPD_DTM))
		{
			dataMap.put(prefix + "upd_dtm", "");
		}
		else
		{
			String updDtm = template.getString(EKK0021D010CBSMsg.UPD_DTM);
			dataMap.put(prefix + "upd_dtm", updDtm);
			// 申込排他制御作業マップにセットする
			JKKBpCommon.setLastDtmByMskm(param, updDtm);
		}

		// 更新オペレータアカウント
		if (template.isNull(EKK0021D010CBSMsg.UPD_OPEACNT))
		{
			dataMap.put(prefix + "upd_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "upd_opeacnt", template.getString(EKK0021D010CBSMsg.UPD_OPEACNT));
		}

		// 無効フラグ
		if (template.isNull(EKK0021D010CBSMsg.MK_FLG))
		{
			dataMap.put(prefix + "mk_flg", "");
		}
		else
		{
			dataMap.put(prefix + "mk_flg", template.getString(EKK0021D010CBSMsg.MK_FLG));
		}

		// エラー情報の設定
		editErrInfoEKK0021D010Msg(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 リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0021D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			String fixedText, String prefix) throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0021D010CBSMsg.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 inMap = (HashMap)(param.getData(fixedText));

		// 申込番号
		if (!template.isNull(EKK0021D010CBSMsg.MSKM_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_no_err"))
			{
				inMap.put(prefix + "mskm_no_err", template.getString(EKK0021D010CBSMsg.MSKM_NO_ERR));
			}
		}

		// 申込書番号
		if (!template.isNull(EKK0021D010CBSMsg.MSKMSHO_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskmsho_no_err"))
			{
				inMap.put(prefix + "mskmsho_no_err", template.getString(EKK0021D010CBSMsg.MSKMSHO_NO_ERR));
			}
		}

		// 申込年月日
		if (!template.isNull(EKK0021D010CBSMsg.MSKM_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_ymd_err"))
			{
				inMap.put(prefix + "mskm_ymd_err", template.getString(EKK0021D010CBSMsg.MSKM_YMD_ERR));
			}
		}

		// SYSID
		if (!template.isNull(EKK0021D010CBSMsg.SYSID_ERR))
		{
			if (!inMap.containsKey(prefix + "sysid_err"))
			{
				inMap.put(prefix + "sysid_err", template.getString(EKK0021D010CBSMsg.SYSID_ERR));
			}
		}

		// WEB受付番号
		if (!template.isNull(EKK0021D010CBSMsg.WEB_UK_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "web_uk_no_err"))
			{
				inMap.put(prefix + "web_uk_no_err", template.getString(EKK0021D010CBSMsg.WEB_UK_NO_ERR));
			}
		}

		// 申込形態コード
		if (!template.isNull(EKK0021D010CBSMsg.MSKM_FORM_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_form_cd_err"))
			{
				inMap.put(prefix + "mskm_form_cd_err", template.getString(EKK0021D010CBSMsg.MSKM_FORM_CD_ERR));
			}
		}

		// 申込明細種別コード
		if (!template.isNull(EKK0021D010CBSMsg.MSKM_DTL_SBT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_dtl_sbt_cd_err"))
			{
				inMap.put(prefix + "mskm_dtl_sbt_cd_err", template.getString(EKK0021D010CBSMsg.MSKM_DTL_SBT_CD_ERR));
			}
		}

		// 連絡先携帯電話番号
		if (!template.isNull(EKK0021D010CBSMsg.RRKS_KTAI_TELNO_ERR))
		{
			if (!inMap.containsKey(prefix + "rrks_ktai_telno_err"))
			{
				inMap.put(prefix + "rrks_ktai_telno_err", template.getString(EKK0021D010CBSMsg.RRKS_KTAI_TELNO_ERR));
			}
		}

		// 連絡先勤務先名
		if (!template.isNull(EKK0021D010CBSMsg.RRKS_OFFC_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "rrks_offc_nm_err"))
			{
				inMap.put(prefix + "rrks_offc_nm_err", template.getString(EKK0021D010CBSMsg.RRKS_OFFC_NM_ERR));
			}
		}

		// 昼間連絡先電話番号
		if (!template.isNull(EKK0021D010CBSMsg.DT_RRKS_TELNO_ERR))
		{
			if (!inMap.containsKey(prefix + "dt_rrks_telno_err"))
			{
				inMap.put(prefix + "dt_rrks_telno_err", template.getString(EKK0021D010CBSMsg.DT_RRKS_TELNO_ERR));
			}
		}

		// 新規申込種別コード
		if (!template.isNull(EKK0021D010CBSMsg.NEW_MSKM_SBT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "new_mskm_sbt_cd_err"))
			{
				inMap.put(prefix + "new_mskm_sbt_cd_err", template.getString(EKK0021D010CBSMsg.NEW_MSKM_SBT_CD_ERR));
			}
		}

		// 申込契機コード
		if (!template.isNull(EKK0021D010CBSMsg.MSKM_OPTNTY_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_optnty_cd_err"))
			{
				inMap.put(prefix + "mskm_optnty_cd_err", template.getString(EKK0021D010CBSMsg.MSKM_OPTNTY_CD_ERR));
			}
		}

		// 宅内調査希望アポ期限年月日
		if (!template.isNull(EKK0021D010CBSMsg.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(EKK0021D010CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD_ERR));
			}
		}

		// 工事アポ連絡先指定コード
		if (!template.isNull(EKK0021D010CBSMsg.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(EKK0021D010CBSMsg.KOJI_APO_RRKS_SHITEI_CD_ERR));
			}
		}

		// 工事アポ連絡先電話番号
		if (!template.isNull(EKK0021D010CBSMsg.KOJI_APO_RRKS_TELNO_ERR))
		{
			if (!inMap.containsKey(prefix + "koji_apo_rrks_telno_err"))
			{
				inMap.put(prefix + "koji_apo_rrks_telno_err", template.getString(EKK0021D010CBSMsg.KOJI_APO_RRKS_TELNO_ERR));
			}
		}

		// 連絡事項登録年月日時分秒
		if (!template.isNull(EKK0021D010CBSMsg.RRK_JIKO_ADD_DTM_ERR))
		{
			if (!inMap.containsKey(prefix + "rrk_jiko_add_dtm_err"))
			{
				inMap.put(prefix + "rrk_jiko_add_dtm_err", template.getString(EKK0021D010CBSMsg.RRK_JIKO_ADD_DTM_ERR));
			}
		}

		// 申込連絡先メールアドレス
		if (!template.isNull(EKK0021D010CBSMsg.MSKM_RRKS_MLAD_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_rrks_mlad_err"))
			{
				inMap.put(prefix + "mskm_rrks_mlad_err", template.getString(EKK0021D010CBSMsg.MSKM_RRKS_MLAD_ERR));
			}
		}

		// 工事進捗通知メールアドレス
		if (!template.isNull(EKK0021D010CBSMsg.KOJI_PRG_TCHI_MLAD_ERR))
		{
			if (!inMap.containsKey(prefix + "koji_prg_tchi_mlad_err"))
			{
				inMap.put(prefix + "koji_prg_tchi_mlad_err", template.getString(EKK0021D010CBSMsg.KOJI_PRG_TCHI_MLAD_ERR));
			}
		}

		// 連絡事項
		if (!template.isNull(EKK0021D010CBSMsg.RRK_JIKO_ERR))
		{
			if (!inMap.containsKey(prefix + "rrk_jiko_err"))
			{
				inMap.put(prefix + "rrk_jiko_err", template.getString(EKK0021D010CBSMsg.RRK_JIKO_ERR));
			}
		}

		// 工事進捗通知携帯メールアドレス
		if (!template.isNull(EKK0021D010CBSMsg.KJSC_TCH_KTAI_MLAD_ERR))
		{
			if (!inMap.containsKey(prefix + "kjsc_tch_ktai_mlad_err"))
			{
				inMap.put(prefix + "kjsc_tch_ktai_mlad_err", template.getString(EKK0021D010CBSMsg.KJSC_TCH_KTAI_MLAD_ERR));
			}
		}

		// メール送信除外フラグ
		if (!template.isNull(EKK0021D010CBSMsg.ML_SEND_JGI_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "ml_send_jgi_flg_err"))
			{
				inMap.put(prefix + "ml_send_jgi_flg_err", template.getString(EKK0021D010CBSMsg.ML_SEND_JGI_FLG_ERR));
			}
		}

		// メール送信除外理由メモ
		if (!template.isNull(EKK0021D010CBSMsg.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(EKK0021D010CBSMsg.ML_SEND_JGI_RSN_MEMO_ERR));
			}
		}

		// 番ポ申込連絡先電話番号
		if (!template.isNull(EKK0021D010CBSMsg.BMP_MSKM_RRKS_TLN_ERR))
		{
			if (!inMap.containsKey(prefix + "bmp_mskm_rrks_tln_err"))
			{
				inMap.put(prefix + "bmp_mskm_rrks_tln_err", template.getString(EKK0021D010CBSMsg.BMP_MSKM_RRKS_TLN_ERR));
			}
		}

		// オプションサービス引継有無
		if (!template.isNull(EKK0021D010CBSMsg.OP_SVC_HKTGI_UM_ERR))
		{
			if (!inMap.containsKey(prefix + "op_svc_hktgi_um_err"))
			{
				inMap.put(prefix + "op_svc_hktgi_um_err", template.getString(EKK0021D010CBSMsg.OP_SVC_HKTGI_UM_ERR));
			}
		}

		// 解約書類送付希望有無
		if (!template.isNull(EKK0021D010CBSMsg.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(EKK0021D010CBSMsg.DSL_ATICLE_SOHU_KIBO_UM_ERR));
			}
		}

		// 連絡手段補記
		if (!template.isNull(EKK0021D010CBSMsg.RRK_WAY_HOKI_ERR))
		{
			if (!inMap.containsKey(prefix + "rrk_way_hoki_err"))
			{
				inMap.put(prefix + "rrk_way_hoki_err", template.getString(EKK0021D010CBSMsg.RRK_WAY_HOKI_ERR));
			}
		}

		// 新築物件コード
		if (!template.isNull(EKK0021D010CBSMsg.NEWCONST_BUKKEN_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "newconst_bukken_cd_err"))
			{
				inMap.put(prefix + "newconst_bukken_cd_err", template.getString(EKK0021D010CBSMsg.NEWCONST_BUKKEN_CD_ERR));
			}
		}

		// 復活案件フラグ
		if (!template.isNull(EKK0021D010CBSMsg.HUKKAT_ANKEN_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "hukkat_anken_flg_err"))
			{
				inMap.put(prefix + "hukkat_anken_flg_err", template.getString(EKK0021D010CBSMsg.HUKKAT_ANKEN_FLG_ERR));
			}
		}

		// 同一設備再申込コード
		if (!template.isNull(EKK0021D010CBSMsg.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(EKK0021D010CBSMsg.SAME_EQUIP_RE_MSKM_CD_ERR));
			}
		}

		// 本人確認書類種別コード
		if (!template.isNull(EKK0021D010CBSMsg.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(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_SBT_CD_ERR));
			}
		}

		// 申込書種別コード
		if (!template.isNull(EKK0021D010CBSMsg.MSKMSHO_SBT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "mskmsho_sbt_cd_err"))
			{
				inMap.put(prefix + "mskmsho_sbt_cd_err", template.getString(EKK0021D010CBSMsg.MSKMSHO_SBT_CD_ERR));
			}
		}

		// 契約付加コード
		if (!template.isNull(EKK0021D010CBSMsg.KEI_HUKA_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kei_huka_cd_err"))
			{
				inMap.put(prefix + "kei_huka_cd_err", template.getString(EKK0021D010CBSMsg.KEI_HUKA_CD_ERR));
			}
		}

		// 地図添付有無
		if (!template.isNull(EKK0021D010CBSMsg.MAP_TEMP_UM_ERR))
		{
			if (!inMap.containsKey(prefix + "map_temp_um_err"))
			{
				inMap.put(prefix + "map_temp_um_err", template.getString(EKK0021D010CBSMsg.MAP_TEMP_UM_ERR));
			}
		}

		// KCNSTB申込台数
		if (!template.isNull(EKK0021D010CBSMsg.KCN_STB_MSKM_CNT_ERR))
		{
			if (!inMap.containsKey(prefix + "kcn_stb_mskm_cnt_err"))
			{
				inMap.put(prefix + "kcn_stb_mskm_cnt_err", template.getString(EKK0021D010CBSMsg.KCN_STB_MSKM_CNT_ERR));
			}
		}

		// KCNSTB種類コード
		if (!template.isNull(EKK0021D010CBSMsg.KCN_STB_KIND_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kcn_stb_kind_cd_err"))
			{
				inMap.put(prefix + "kcn_stb_kind_cd_err", template.getString(EKK0021D010CBSMsg.KCN_STB_KIND_CD_ERR));
			}
		}

		// マンション設備システム連携用記事欄
		if (!template.isNull(EKK0021D010CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN_ERR))
		{
			if (!inMap.containsKey(prefix + "manssbsys_rnki_yo_kijiran_err"))
			{
				inMap.put(prefix + "manssbsys_rnki_yo_kijiran_err", template.getString(EKK0021D010CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN_ERR));
			}
		}

		// マンションID
		if (!template.isNull(EKK0021D010CBSMsg.MANSION_ID_ERR))
		{
			if (!inMap.containsKey(prefix + "mansion_id_err"))
			{
				inMap.put(prefix + "mansion_id_err", template.getString(EKK0021D010CBSMsg.MANSION_ID_ERR));
			}
		}

		// CAT-ID
		if (!template.isNull(EKK0021D010CBSMsg.CATID_ERR))
		{
			if (!inMap.containsKey(prefix + "catid_err"))
			{
				inMap.put(prefix + "catid_err", template.getString(EKK0021D010CBSMsg.CATID_ERR));
			}
		}

		// 申込受付種別コード
		if (!template.isNull(EKK0021D010CBSMsg.MKM_UK_SBT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "mkm_uk_sbt_cd_err"))
			{
				inMap.put(prefix + "mkm_uk_sbt_cd_err", template.getString(EKK0021D010CBSMsg.MKM_UK_SBT_CD_ERR));
			}
		}

		// 申込書取扱情報担当者名
		if (!template.isNull(EKK0021D010CBSMsg.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(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM_ERR));
			}
		}

		// 申込書取扱情報電話番号
		if (!template.isNull(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TELNO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskmsho_trat_if_telno_err"))
			{
				inMap.put(prefix + "mskmsho_trat_if_telno_err", template.getString(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TELNO_ERR));
			}
		}

		// 割引自動適用対象外フラグ
		if (!template.isNull(EKK0021D010CBSMsg.WRIB_AUTO_APLY_TG_GAI_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "wrib_auto_aply_tg_gai_flg_err"))
			{
				inMap.put(prefix + "wrib_auto_aply_tg_gai_flg_err", template.getString(EKK0021D010CBSMsg.WRIB_AUTO_APLY_TG_GAI_FLG_ERR));
			}
		}

		// 更新年月日時分秒(更新前)
		if (!template.isNull(EKK0021D010CBSMsg.UPD_DTM_BF_ERR))
		{
			if (!inMap.containsKey(prefix + "upd_dtm_bf_err"))
			{
				inMap.put(prefix + "upd_dtm_bf_err", template.getString(EKK0021D010CBSMsg.UPD_DTM_BF_ERR));
			}
		}
		
		// 申込書明細番号
		if (!template.isNull(EKK0021D010CBSMsg.MSKMSHO_DTL_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskmsho_dtl_no_err"))
			{
				inMap.put(prefix + "mskmsho_dtl_no_err", template.getString(EKK0021D010CBSMsg.MSKMSHO_DTL_NO_ERR));
			}
		}

		// 本人確認書類名
		if (!template.isNull(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "hnin_cfm_aticle_nm_err"))
			{
				inMap.put(prefix + "hnin_cfm_aticle_nm_err", template.getString(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_NM_ERR));
			}
		}

		return param;
	}

	/**
	 * サービス契約＜eoモバイル＞登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0121D010Msg(IRequestParameterReadWrite param, String fixedText, String prefix) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0121D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0121D010CBSMsg.TEMPLATEID, "EKK0121D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0121D010CBSMsg.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 inMap = (HashMap)(param.getData(fixedText));

		// 機能コード
		template.set(EKK0121D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		HashMap ccWorkAreaNmMap = (HashMap)workMap.get(CC_WORK_AREA_NM);

		// サービス契約<eoモバイル>登録.SYSID → SYSID
		if (inMap == null || inMap.get(prefix + "sysid") == null || "".equals(inMap.get(prefix + "sysid")))
		{
			if (getKeishaWorkMapValue(param, "sysid") == null)
			{
				template.setNull(EKK0121D010CBSMsg.SYSID);
			}
			else
			{
				template.set(EKK0121D010CBSMsg.SYSID, getKeishaWorkMapValue(param, "sysid"));
			}
		}
		else
		{
			template.set(EKK0121D010CBSMsg.SYSID, (String)inMap.get(prefix + "sysid"));
		}

		// サービス契約<eoモバイル>登録.サービスコード → サービスコード
		if (inMap == null || inMap.get(prefix + "svc_cd") == null || "".equals(inMap.get(prefix + "svc_cd")))
		{
			template.set(EKK0121D010CBSMsg.SVC_CD, JKKStrConst.CD00130_01);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.SVC_CD, (String)inMap.get(prefix + "svc_cd"));
		}

		// サービス契約<eoモバイル>登録.申込明細番号 → 申込明細番号
		if (inMap == null || inMap.get(prefix + "mskm_dtl_no") == null || "".equals(inMap.get(prefix + "mskm_dtl_no")))
		{
			if (ccWorkAreaNmMap != null && ccWorkAreaNmMap.get("mskm_dtl_no") != null && !"".equals(ccWorkAreaNmMap.get("mskm_dtl_no")))
			{
				template.set(EKK0251D010CBSMsg.MSKM_DTL_NO, ccWorkAreaNmMap.get("mskm_dtl_no"));
			}
			else if (getMskmDtlWorkMapValue(param, "mskm_dtl_no_moba") == null)
			{
				template.setNull(EKK0121D010CBSMsg.MSKM_DTL_NO);
			}
			else
			{
				template.set(EKK0121D010CBSMsg.MSKM_DTL_NO, (String)getMskmDtlWorkMapValue(param, "mskm_dtl_no_moba"));
			}
		}
		else
		{
			template.set(EKK0121D010CBSMsg.MSKM_DTL_NO, (String)inMap.get(prefix + "mskm_dtl_no"));
		}

		// サービス契約<eoモバイル>登録.面開発案件番号 → 面開発案件番号
		if (inMap == null || inMap.get(prefix + "menkaihat_anken_no") == null || "".equals(inMap.get(prefix + "menkaihat_anken_no")))
		{
			template.setNull(EKK0121D010CBSMsg.MENKAIHAT_ANKEN_NO);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.MENKAIHAT_ANKEN_NO, (String)inMap.get(prefix + "menkaihat_anken_no"));
		}

		// サービス契約<eoモバイル>登録.料金グループコード → 料金グループコード
		if (inMap == null || inMap.get(prefix + "prc_grp_cd") == null || "".equals(inMap.get(prefix + "prc_grp_cd")))
		{
			if (getWorkMapValue(param, "prc_grp_cd") == null)
			{
				template.setNull(EKK0121D010CBSMsg.PRC_GRP_CD);
			}
			else
			{
				template.set(EKK0121D010CBSMsg.PRC_GRP_CD, getWorkMapValue(param, "prc_grp_cd"));
			}
		}
		else
		{
			template.set(EKK0121D010CBSMsg.PRC_GRP_CD, (String)inMap.get(prefix + "prc_grp_cd"));
		}

		// サービス契約<eoモバイル>登録.料金コースコード → 料金コースコード
		if (inMap == null || inMap.get(prefix + "pcrs_cd") == null || "".equals(inMap.get(prefix + "pcrs_cd")))
		{
			if (getWorkMapValue(param, "pcrs_cd") == null)
			{
				template.setNull(EKK0121D010CBSMsg.PCRS_CD);
			}
			else
			{
				template.set(EKK0121D010CBSMsg.PCRS_CD, getWorkMapValue(param, "pcrs_cd"));
			}
		}
		else
		{
			template.set(EKK0121D010CBSMsg.PCRS_CD, (String)inMap.get(prefix + "pcrs_cd"));
		}

		// サービス契約<eoモバイル>登録.料金プランコード → 料金プランコード
		if (inMap == null || inMap.get(prefix + "pplan_cd") == null || "".equals(inMap.get(prefix + "pplan_cd")))
		{
			if (getWorkMapValue(param, "pplan_cd") == null)
			{
				template.setNull(EKK0121D010CBSMsg.PPLAN_CD);
			}
			else
			{
				template.set(EKK0121D010CBSMsg.PPLAN_CD, getWorkMapValue(param, "pplan_cd"));
			}
		}
		else
		{
			template.set(EKK0121D010CBSMsg.PPLAN_CD, (String)inMap.get(prefix + "pplan_cd"));
		}

		// サービス契約<eoモバイル>登録.提供方式契約番号 → 提供方式契約番号
		if (inMap == null || inMap.get(prefix + "tk_hoshiki_kei_no") == null || "".equals(inMap.get(prefix + "tk_hoshiki_kei_no")))
		{
			template.setNull(EKK0121D010CBSMsg.TK_HOSHIKI_KEI_NO);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.TK_HOSHIKI_KEI_NO, (String)inMap.get(prefix + "tk_hoshiki_kei_no"));
		}

		// サービス契約<eoモバイル>登録.サービス利用開始希望年月日 → サービス利用開始希望年月日
		if (inMap == null || inMap.get(prefix + "svc_use_sta_kibo_ymd") == null || "".equals(inMap.get(prefix + "svc_use_sta_kibo_ymd")))
		{
			template.setNull(EKK0121D010CBSMsg.SVC_USE_STA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.SVC_USE_STA_KIBO_YMD, (String)inMap.get(prefix + "svc_use_sta_kibo_ymd"));
		}

		// サービス契約<eoモバイル>登録.予約適用開始希望年月日 → 予約適用開始希望年月日
		if (inMap == null || inMap.get(prefix + "rsv_tsta_kibo_ymd") == null || "".equals(inMap.get(prefix + "rsv_tsta_kibo_ymd")))
		{
			template.setNull(EKK0121D010CBSMsg.RSV_TSTA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.RSV_TSTA_KIBO_YMD, (String)inMap.get(prefix + "rsv_tsta_kibo_ymd"));
		}

		// サービス契約<eoモバイル>登録.ID速報書出力要否 → ID速報書出力要否
		if (inMap == null || inMap.get(prefix + "id_sokhosho_output_yh") == null || "".equals(inMap.get(prefix + "id_sokhosho_output_yh")))
		{
			template.setNull(EKK0121D010CBSMsg.ID_SOKHOSHO_OUTPUT_YH);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.ID_SOKHOSHO_OUTPUT_YH, (String)inMap.get(prefix + "id_sokhosho_output_yh"));
		}

		// サービス契約<eoモバイル>登録.支払い方法継続フラグ → 支払い方法継続フラグ
		if (inMap == null || inMap.get(prefix + "payway_keizoku_flg") == null || "".equals(inMap.get(prefix + "payway_keizoku_flg")))
		{
			template.setNull(EKK0121D010CBSMsg.PAYWAY_KEIZOKU_FLG);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.PAYWAY_KEIZOKU_FLG, (String)inMap.get(prefix + "payway_keizoku_flg"));
		}

		// サービス契約<eoモバイル>登録.試用加入年月日 → 試用加入年月日
		if (inMap == null || inMap.get(prefix + "ftrial_kanyu_ymd") == null || "".equals(inMap.get(prefix + "ftrial_kanyu_ymd")))
		{
			template.setNull(EKK0121D010CBSMsg.FTRIAL_KANYU_YMD);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.FTRIAL_KANYU_YMD, (String)inMap.get(prefix + "ftrial_kanyu_ymd"));
		}

		// サービス契約<eoモバイル>登録.試用期間終了年月日 → 試用期間終了年月日
		if (inMap == null || inMap.get(prefix + "ftrial_prd_endymd") == null || "".equals(inMap.get(prefix + "ftrial_prd_endymd")))
		{
			template.setNull(EKK0121D010CBSMsg.FTRIAL_PRD_ENDYMD);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.FTRIAL_PRD_ENDYMD, (String)inMap.get(prefix + "ftrial_prd_endymd"));
		}

		// サービス契約<eoモバイル>登録.本加入年月日 → 本加入年月日
		if (inMap == null || inMap.get(prefix + "honkanyu_ymd") == null || "".equals(inMap.get(prefix + "honkanyu_ymd")))
		{
			template.setNull(EKK0121D010CBSMsg.HONKANYU_YMD);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.HONKANYU_YMD, (String)inMap.get(prefix + "honkanyu_ymd"));
		}

		// サービス契約<eoモバイル>登録.本加入移行期限年月日 → 本加入移行期限年月日
		if (inMap == null || inMap.get(prefix + "honkanyu_iko_kigen_ymd") == null || "".equals(inMap.get(prefix + "honkanyu_iko_kigen_ymd")))
		{
			template.setNull(EKK0121D010CBSMsg.HONKANYU_IKO_KIGEN_YMD);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.HONKANYU_IKO_KIGEN_YMD, (String)inMap.get(prefix + "honkanyu_iko_kigen_ymd"));
		}

		// サービス契約<eoモバイル>登録.レター発送仕分区分 → レター発送仕分区分
		if (inMap == null || inMap.get(prefix + "letter_hasso_shiwake_div") == null || "".equals(inMap.get(prefix + "letter_hasso_shiwake_div")))
		{
			template.setNull(EKK0121D010CBSMsg.LETTER_HASSO_SHIWAKE_DIV);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.LETTER_HASSO_SHIWAKE_DIV, (String)inMap.get(prefix + "letter_hasso_shiwake_div"));
		}

		// サービス契約<eoモバイル>登録.サンキューレター送付先コード → サンキューレター送付先コード
		if (inMap == null || inMap.get(prefix + "thnx_letter_shs_cd") == null || "".equals(inMap.get(prefix + "thnx_letter_shs_cd")))
		{
			template.setNull(EKK0121D010CBSMsg.THNX_LETTER_SHS_CD);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.THNX_LETTER_SHS_CD, (String)inMap.get(prefix + "thnx_letter_shs_cd"));
		}

		// サービス契約<eoモバイル>登録.WEBオプション追加不可フラグ → WEBオプション追加不可フラグ
		if (inMap == null || inMap.get(prefix + "web_op_add_fail_flg") == null || "".equals(inMap.get(prefix + "web_op_add_fail_flg")))
		{
			template.setNull(EKK0121D010CBSMsg.WEB_OP_ADD_FAIL_FLG);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.WEB_OP_ADD_FAIL_FLG, (String)inMap.get(prefix + "web_op_add_fail_flg"));
		}

		// サービス契約<eoモバイル>登録.変更元法人サービス契約受付番号 → 変更元法人サービス契約受付番号
		if (inMap == null || inMap.get(prefix + "chge_mt_hojinsvkei_uk_no") == null || "".equals(inMap.get(prefix + "chge_mt_hojinsvkei_uk_no")))
		{
			template.setNull(EKK0121D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NO);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NO, (String)inMap.get(prefix + "chge_mt_hojinsvkei_uk_no"));
		}

		// サービス契約<eoモバイル>登録.変更元法人サービス契約受付番号子 → 変更元法人サービス契約受付番号子
		if (inMap == null || inMap.get(prefix + "chge_mt_hojinsvkei_uk_nopt") == null || "".equals(inMap.get(prefix + "chge_mt_hojinsvkei_uk_nopt")))
		{
			template.setNull(EKK0121D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NOPT);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NOPT, (String)inMap.get(prefix + "chge_mt_hojinsvkei_uk_nopt"));
		}

		// サービス契約<eoモバイル>登録.違約金発生コード → 違約金発生コード
		if (inMap == null || inMap.get(prefix + "pnlty_hassei_cd") == null || "".equals(inMap.get(prefix + "pnlty_hassei_cd")))
		{
			template.setNull(EKK0121D010CBSMsg.PNLTY_HASSEI_CD);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.PNLTY_HASSEI_CD, (String)inMap.get(prefix + "pnlty_hassei_cd"));
		}

		// サービス契約<eoモバイル>登録.異動区分 → 異動区分
		if (inMap == null || inMap.get(prefix + "ido_div") == null || "".equals(inMap.get(prefix + "ido_div")))
		{
			template.set(EKK0121D010CBSMsg.IDO_DIV, JKKStrConst.CD00576_00001);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.IDO_DIV, (String)inMap.get(prefix + "ido_div"));
		}

		// サービス契約<eoモバイル>登録.紹介コード → 紹介コード
		if (inMap == null || inMap.get(prefix + "intr_cd") == null || "".equals(inMap.get(prefix + "intr_cd")))
		{
			template.setNull(EKK0121D010CBSMsg.INTR_CD);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.INTR_CD, (String)inMap.get(prefix + "intr_cd"));
		}

		// サービス契約<eoモバイル>登録.業務連絡備考 → 業務連絡備考
		if (inMap == null || inMap.get(prefix + "work_rrk_biko") == null || "".equals(inMap.get(prefix + "work_rrk_biko")))
		{
			template.setNull(EKK0121D010CBSMsg.WORK_RRK_BIKO);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.WORK_RRK_BIKO, (String)inMap.get(prefix + "work_rrk_biko"));
		}

		// サービス契約<eoモバイル>登録.自動照査処理状態コード → 自動照査処理状態コード
		if (inMap == null || inMap.get(prefix + "auto_shosa_tran_stat_cd") == null || "".equals(inMap.get(prefix + "auto_shosa_tran_stat_cd")))
		{
			template.setNull(EKK0121D010CBSMsg.AUTO_SHOSA_TRAN_STAT_CD);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.AUTO_SHOSA_TRAN_STAT_CD, (String)inMap.get(prefix + "auto_shosa_tran_stat_cd"));
		}

		// サービス契約<eoモバイル>登録.セッション数 → セッション数
		if (inMap == null || inMap.get(prefix + "session_cnt") == null || "".equals(inMap.get(prefix + "session_cnt")))
		{
			template.setNull(EKK0121D010CBSMsg.SESSION_CNT);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.SESSION_CNT, (String)inMap.get(prefix + "session_cnt"));
		}

		// サービス契約<eoモバイル>登録.MACアドレス → MACアドレス
		if (inMap == null || inMap.get(prefix + "macad") == null || "".equals(inMap.get(prefix + "macad")))
		{
			template.setNull(EKK0121D010CBSMsg.MACAD);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.MACAD, (String)inMap.get(prefix + "macad"));
		}

		// サービス契約<eoモバイル>登録.請求契約番号 → 請求契約番号
		if (inMap == null || inMap.get(prefix + "seiky_kei_no") == null || "".equals(inMap.get(prefix + "seiky_kei_no")))
		{
			if (getPaywayWorkMapValue(param, "seiky_kei_no") == null)
			{
				template.setNull(EKK0121D010CBSMsg.SEIKY_KEI_NO);
			}
			else
			{
				template.set(EKK0121D010CBSMsg.SEIKY_KEI_NO, getPaywayWorkMapValue(param, "seiky_kei_no"));
			}
		}
		else
		{
			template.set(EKK0121D010CBSMsg.SEIKY_KEI_NO, (String)inMap.get(prefix + "seiky_kei_no"));
		}

		// サービス契約<eoモバイル>登録.料金項目コード → 料金項目コード
		if (inMap == null || inMap.get(prefix + "prc_kmk_cd") == null || "".equals(inMap.get(prefix + "prc_kmk_cd")))
		{
			template.setNull(EKK0121D010CBSMsg.PRC_KMK_CD);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.PRC_KMK_CD, (String)inMap.get(prefix + "prc_kmk_cd"));
		}

		// サービス契約<eoモバイル>登録.事務手数料自動適用要否 → 事務手数料自動適用要否
		if (inMap == null || inMap.get(prefix + "rule0059_auto_aply") == null || "".equals(inMap.get(prefix + "rule0059_auto_aply")))
		{
			template.setNull(EKK0121D010CBSMsg.RULE0059_AUTO_APLY);
		}
		else
		{
			template.set(EKK0121D010CBSMsg.RULE0059_AUTO_APLY, (String)inMap.get(prefix + "rule0059_auto_aply"));
		}

		return template;
	}

	/**
	 * サービス契約＜eoモバイル＞登録の下りマッピング処理
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK0121D010Msg(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);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}
		HashMap workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NM);
		if (workDataMap == null)
		{
			workDataMap = new HashMap();
			workMap.put(CC_WORK_AREA_NM, workDataMap);
		}

		/* 業務データ設定 */
		HashMap dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

//		// サービス契約番号
//		String svcKeiNo = null;
		if (template.isNull(EKK0121D010CBSMsg.SVC_KEI_NO))
		{
			dataMap.put(prefix + "svc_kei_no", "");
		}
		else
		{
			svcKeiNo = template.getString(EKK0121D010CBSMsg.SVC_KEI_NO);
			dataMap.put(prefix + "svc_kei_no", svcKeiNo);
			workDataMap.put("svc_kei_no", svcKeiNo);
			// 契約新規申込ワークエリアへ登録
			JKKBpCommon.setWkSvcKeiNoMbl(param, svcKeiNo);
		}

		// 世代登録年月日時分秒
		if (template.isNull(EKK0121D010CBSMsg.KK0081_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "gene_add_dtm", template.getString(EKK0121D010CBSMsg.KK0081_GENE_ADD_DTM));
		}

		// サービス契約ステータス
		if (template.isNull(EKK0121D010CBSMsg.SVC_KEI_STAT))
		{
			dataMap.put(prefix + "svc_kei_stat", "");
		}
		else
		{
			dataMap.put(prefix + "svc_kei_stat", template.getString(EKK0121D010CBSMsg.SVC_KEI_STAT));
		}

		// 審査結果送信コード
		if (template.isNull(EKK0121D010CBSMsg.SKEKKA_SEND_CD))
		{
			dataMap.put(prefix + "skekka_send_cd", "");
		}
		else
		{
			dataMap.put(prefix + "skekka_send_cd", template.getString(EKK0121D010CBSMsg.SKEKKA_SEND_CD));
		}

		// 予約適用年月日
		if (template.isNull(EKK0121D010CBSMsg.RSV_APLY_YMD))
		{
			dataMap.put(prefix + "rsv_aply_ymd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_ymd", template.getString(EKK0121D010CBSMsg.RSV_APLY_YMD));
		}

		// 予約適用コード
		if (template.isNull(EKK0121D010CBSMsg.RSV_APLY_CD))
		{
			dataMap.put(prefix + "rsv_aply_cd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_cd", template.getString(EKK0121D010CBSMsg.RSV_APLY_CD));
		}

		// 初期デフォルトパスワード
		if (template.isNull(EKK0121D010CBSMsg.SHK_DFLT_PWD))
		{
			dataMap.put(prefix + "shk_dflt_pwd", "");
		}
		else
		{
			dataMap.put(prefix + "shk_dflt_pwd", template.getString(EKK0121D010CBSMsg.SHK_DFLT_PWD));
		}

		// 回復不可契約抽出済フラグ
		if (template.isNull(EKK0121D010CBSMsg.KAIHK_FAIL_KEI_CST_ZM_FLG))
		{
			dataMap.put(prefix + "kaihk_fail_kei_cst_zm_flg", "");
		}
		else
		{
			dataMap.put(prefix + "kaihk_fail_kei_cst_zm_flg", template.getString(EKK0121D010CBSMsg.KAIHK_FAIL_KEI_CST_ZM_FLG));
		}

		// 課金先番号
		if (template.isNull(EKK0121D010CBSMsg.KAKINS_NO))
		{
			dataMap.put(prefix + "kakins_no", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_no", template.getString(EKK0121D010CBSMsg.KAKINS_NO));
		}

		// 課金先適用開始年月日
		if (template.isNull(EKK0121D010CBSMsg.KAKINS_TSTAYMD))
		{
			dataMap.put(prefix + "kakins_tstaymd", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_tstaymd", template.getString(EKK0121D010CBSMsg.KAKINS_TSTAYMD));
		}

		// 課金先適用終了年月日
		if (template.isNull(EKK0121D010CBSMsg.KAKINS_TENDYMD))
		{
			dataMap.put(prefix + "kakins_tendymd", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_tendymd", template.getString(EKK0121D010CBSMsg.KAKINS_TENDYMD));
		}

		// 登録年月日時分秒
		if (template.isNull(EKK0121D010CBSMsg.ADD_DTM))
		{
			dataMap.put(prefix + "add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "add_dtm", template.getString(EKK0121D010CBSMsg.ADD_DTM));
		}

		// 登録オペレータアカウント
		if (template.isNull(EKK0121D010CBSMsg.ADD_OPEACNT))
		{
			dataMap.put(prefix + "add_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "add_opeacnt", template.getString(EKK0121D010CBSMsg.ADD_OPEACNT));
		}

		// 更新年月日時分秒
		if (template.isNull(EKK0121D010CBSMsg.UPD_DTM))
		{
			dataMap.put(prefix + "upd_dtm", "");
		}
		else
		{
			String updDtm = template.getString(EKK0121D010CBSMsg.UPD_DTM);
			dataMap.put(prefix + "upd_dtm", updDtm);

			workDataMap.put("upd_dtm", updDtm);
			// サービス契約排他制御作業マップにセットする
			JKKBpCommon.setLastDtmBySvcKeiNo(param, svcKeiNo, updDtm);
		}

		// 更新オペレータアカウント
		if (template.isNull(EKK0121D010CBSMsg.UPD_OPEACNT))
		{
			dataMap.put(prefix + "upd_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "upd_opeacnt", template.getString(EKK0121D010CBSMsg.UPD_OPEACNT));
		}

		// 世代登録年月日時分秒(サービス契約<eoモバイル>)
		if (template.isNull(EKK0121D010CBSMsg.KK0121_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0121_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0121_gene_add_dtm", template.getString(EKK0121D010CBSMsg.KK0121_GENE_ADD_DTM));
		}

		// 無効フラグ
		if (template.isNull(EKK0121D010CBSMsg.MK_FLG))
		{
			dataMap.put(prefix + "mk_flg", "");
		}
		else
		{
			dataMap.put(prefix + "mk_flg", template.getString(EKK0121D010CBSMsg.MK_FLG));
		}

		// エラー情報の設定
		editErrInfoEKK0121D010Msg(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;
	}

	/**
	 * サービス契約＜eoモバイル＞登録のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @param prefix
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0121D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			String fixedText, String prefix) throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0121D010CBSMsg.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 inMap = (HashMap)(param.getData(fixedText));

		// サービス契約<eoモバイル>登録.SYSID → SYSID のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.SYSID_ERR))
		{
			if (!inMap.containsKey(prefix + "sysid_err"))
			{
				inMap.put(prefix + "sysid_err", template.getString(EKK0121D010CBSMsg.SYSID_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.サービスコード → サービスコード のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.SVC_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_cd_err"))
			{
				inMap.put(prefix + "svc_cd_err", template.getString(EKK0121D010CBSMsg.SVC_CD_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.申込明細番号 → 申込明細番号 のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_dtl_no_err"))
			{
				inMap.put(prefix + "mskm_dtl_no_err", template.getString(EKK0121D010CBSMsg.MSKM_DTL_NO_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.面開発案件番号 → 面開発案件番号 のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.MENKAIHAT_ANKEN_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "menkaihat_anken_no_err"))
			{
				inMap.put(prefix + "menkaihat_anken_no_err", template.getString(EKK0121D010CBSMsg.MENKAIHAT_ANKEN_NO_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.料金グループコード → 料金グループコード のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.PRC_GRP_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "prc_grp_cd_err"))
			{
				inMap.put(prefix + "prc_grp_cd_err", template.getString(EKK0121D010CBSMsg.PRC_GRP_CD_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.料金コースコード → 料金コースコード のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.PCRS_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pcrs_cd_err"))
			{
				inMap.put(prefix + "pcrs_cd_err", template.getString(EKK0121D010CBSMsg.PCRS_CD_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.料金プランコード → 料金プランコード のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.PPLAN_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pplan_cd_err"))
			{
				inMap.put(prefix + "pplan_cd_err", template.getString(EKK0121D010CBSMsg.PPLAN_CD_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.提供方式契約番号 → 提供方式契約番号 のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.TK_HOSHIKI_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "tk_hoshiki_kei_no_err"))
			{
				inMap.put(prefix + "tk_hoshiki_kei_no_err", template.getString(EKK0121D010CBSMsg.TK_HOSHIKI_KEI_NO_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.サービス利用開始希望年月日 → サービス利用開始希望年月日 のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.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(EKK0121D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.予約適用開始希望年月日 → 予約適用開始希望年月日 のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "rsv_tsta_kibo_ymd_err"))
			{
				inMap.put(prefix + "rsv_tsta_kibo_ymd_err", template.getString(EKK0121D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.ID速報書出力要否 → ID速報書出力要否 のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.ID_SOKHOSHO_OUTPUT_YH_ERR))
		{
			if (!inMap.containsKey(prefix + "id_sokhosho_output_yh_err"))
			{
				inMap.put(prefix + "id_sokhosho_output_yh_err", template.getString(EKK0121D010CBSMsg.ID_SOKHOSHO_OUTPUT_YH_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.支払い方法継続フラグ → 支払い方法継続フラグ のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.PAYWAY_KEIZOKU_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "payway_keizoku_flg_err"))
			{
				inMap.put(prefix + "payway_keizoku_flg_err", template.getString(EKK0121D010CBSMsg.PAYWAY_KEIZOKU_FLG_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.試用加入年月日 → 試用加入年月日 のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.FTRIAL_KANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_kanyu_ymd_err"))
			{
				inMap.put(prefix + "ftrial_kanyu_ymd_err", template.getString(EKK0121D010CBSMsg.FTRIAL_KANYU_YMD_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.試用期間終了年月日 → 試用期間終了年月日 のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_prd_endymd_err"))
			{
				inMap.put(prefix + "ftrial_prd_endymd_err", template.getString(EKK0121D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.本加入年月日 → 本加入年月日 のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.HONKANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_ymd_err", template.getString(EKK0121D010CBSMsg.HONKANYU_YMD_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.本加入移行期限年月日 → 本加入移行期限年月日 のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_iko_kigen_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_iko_kigen_ymd_err", template.getString(EKK0121D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.レター発送仕分区分 → レター発送仕分区分 のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.LETTER_HASSO_SHIWAKE_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "letter_hasso_shiwake_div_err"))
			{
				inMap.put(prefix + "letter_hasso_shiwake_div_err", template.getString(EKK0121D010CBSMsg.LETTER_HASSO_SHIWAKE_DIV_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.サンキューレター送付先コード → サンキューレター送付先コード のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.THNX_LETTER_SHS_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "thnx_letter_shs_cd_err"))
			{
				inMap.put(prefix + "thnx_letter_shs_cd_err", template.getString(EKK0121D010CBSMsg.THNX_LETTER_SHS_CD_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.WEBオプション追加不可フラグ → WEBオプション追加不可フラグ のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.WEB_OP_ADD_FAIL_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "web_op_add_fail_flg_err"))
			{
				inMap.put(prefix + "web_op_add_fail_flg_err", template.getString(EKK0121D010CBSMsg.WEB_OP_ADD_FAIL_FLG_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.変更元法人サービス契約受付番号 → 変更元法人サービス契約受付番号 のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "chge_mt_hojinsvkei_uk_no_err"))
			{
				inMap.put(prefix + "chge_mt_hojinsvkei_uk_no_err", template.getString(EKK0121D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NO_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.変更元法人サービス契約受付番号子 → 変更元法人サービス契約受付番号子 のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NOPT_ERR))
		{
			if (!inMap.containsKey(prefix + "chge_mt_hojinsvkei_uk_nopt_err"))
			{
				inMap.put(prefix + "chge_mt_hojinsvkei_uk_nopt_err", template.getString(EKK0121D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NOPT_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.違約金発生コード → 違約金発生コード のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.PNLTY_HASSEI_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pnlty_hassei_cd_err"))
			{
				inMap.put(prefix + "pnlty_hassei_cd_err", template.getString(EKK0121D010CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.異動区分 → 異動区分 のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "ido_div_err"))
			{
				inMap.put(prefix + "ido_div_err", template.getString(EKK0121D010CBSMsg.IDO_DIV_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.紹介コード → 紹介コード のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.INTR_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "intr_cd_err"))
			{
				inMap.put(prefix + "intr_cd_err", template.getString(EKK0121D010CBSMsg.INTR_CD_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.業務連絡備考 → 業務連絡備考 のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.WORK_RRK_BIKO_ERR))
		{
			if (!inMap.containsKey(prefix + "work_rrk_biko_err"))
			{
				inMap.put(prefix + "work_rrk_biko_err", template.getString(EKK0121D010CBSMsg.WORK_RRK_BIKO_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.自動照査処理状態コード → 自動照査処理状態コード のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.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(EKK0121D010CBSMsg.AUTO_SHOSA_TRAN_STAT_CD_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.セッション数 → セッション数 のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.SESSION_CNT_ERR))
		{
			if (!inMap.containsKey(prefix + "session_cnt_err"))
			{
				inMap.put(prefix + "session_cnt_err", template.getString(EKK0121D010CBSMsg.SESSION_CNT_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.MACアドレス → MACアドレス のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.MACAD_ERR))
		{
			if (!inMap.containsKey(prefix + "macad_err"))
			{
				inMap.put(prefix + "macad_err", template.getString(EKK0121D010CBSMsg.MACAD_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.請求契約番号 → 請求契約番号 のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.SEIKY_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "seiky_kei_no_err"))
			{
				inMap.put(prefix + "seiky_kei_no_err", template.getString(EKK0121D010CBSMsg.SEIKY_KEI_NO_ERR));
			}
		}
		// サービス契約<eoモバイル>登録.料金項目コード → 料金項目コード のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.PRC_KMK_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "prc_kmk_cd_err"))
			{
				inMap.put(prefix + "prc_kmk_cd_err", template.getString(EKK0121D010CBSMsg.PRC_KMK_CD_ERR));
			}
		}

		// サービス契約<eoモバイル>登録.事務手数料自動適用要否 → 事務手数料自動適用要否 のエラー情報返却
		if (!template.isNull(EKK0121D010CBSMsg.RULE0059_AUTO_APLY_ERR))
		{
			if (!inMap.containsKey(prefix + "rule0059_auto_aply_err"))
			{
				inMap.put(prefix + "rule0059_auto_aply_err", template.getString(EKK0121D010CBSMsg.RULE0059_AUTO_APLY_ERR));
			}
		}
		
		return param;
	}

	/**
	 * サービス契約回線内訳登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0251D010Msg(IRequestParameterReadWrite param, String fixedText, String prefix) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0251D010CBSMsg.class.getName());
		CAANMsg[] templateArray = null;

		// テンプレートID
		template.set(EKK0251D010CBSMsg.TEMPLATEID, "EKK0251D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0251D010CBSMsg.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 inMap = (HashMap)(param.getData(fixedText));
		ArrayList inList = null;

		// 機能コード
		template.set(EKK0251D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		HashMap ccWorkAreaNmMap = (HashMap)workMap.get(CC_WORK_AREA_NM);

		// サービス契約回線内訳登録.申込明細番号 → 申込明細番号
		if (inMap == null || inMap.get(prefix + "mskm_dtl_no") == null || "".equals(inMap.get(prefix + "mskm_dtl_no")))
		{
			if (ccWorkAreaNmMap != null && ccWorkAreaNmMap.get("mskm_dtl_no") != null && !"".equals(ccWorkAreaNmMap.get("mskm_dtl_no")))
			{
				template.set(EKK0251D010CBSMsg.MSKM_DTL_NO, ccWorkAreaNmMap.get("mskm_dtl_no"));
			}
			else if (getMskmDtlWorkMapValue(param, "mskm_dtl_no_moba") == null)
			{
				template.setNull(EKK0251D010CBSMsg.MSKM_DTL_NO);
			}
			else
			{
				template.set(EKK0251D010CBSMsg.MSKM_DTL_NO, getMskmDtlWorkMapValue(param, "mskm_dtl_no_moba"));
			}
		}
		else
		{
			template.set(EKK0251D010CBSMsg.MSKM_DTL_NO, (String)inMap.get(prefix + "mskm_dtl_no"));
		}

		// サービス契約回線内訳登録.回線場所住所未確定フラグ → 回線場所住所未確定フラグ
		if (inMap == null || inMap.get(prefix + "kisn_plc_ad_mi_fix_flg") == null || "".equals(inMap.get(prefix + "kisn_plc_ad_mi_fix_flg")))
		{
			template.setNull(EKK0251D010CBSMsg.KISN_PLC_AD_MI_FIX_FLG);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KISN_PLC_AD_MI_FIX_FLG, (String)inMap.get(prefix + "kisn_plc_ad_mi_fix_flg"));
		}

		// サービス契約回線内訳登録.回線場所住所未確定解除年月日 → 回線場所住所未確定解除年月日
		if (inMap == null || inMap.get(prefix + "kisn_plc_ad_mi_fix_rls_ymd") == null || "".equals(inMap.get(prefix + "kisn_plc_ad_mi_fix_rls_ymd")))
		{
			template.setNull(EKK0251D010CBSMsg.KISN_PLC_AD_MI_FIX_RLS_YMD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KISN_PLC_AD_MI_FIX_RLS_YMD, (String)inMap.get(prefix + "kisn_plc_ad_mi_fix_rls_ymd"));
		}

		// サービス契約回線内訳登録.回線場所_契約者住所差異フラグ → 回線場所_契約者住所差異フラグ
		if (inMap == null || inMap.get(prefix + "kaisen_plc_ksh_ad_sai_flg") == null || "".equals(inMap.get(prefix + "kaisen_plc_ksh_ad_sai_flg")))
		{
			template.setNull(EKK0251D010CBSMsg.KAISEN_PLC_KSH_AD_SAI_FLG);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KAISEN_PLC_KSH_AD_SAI_FLG, (String)inMap.get(prefix + "kaisen_plc_ksh_ad_sai_flg"));
		}

		// サービス契約回線内訳登録.お客様申告住所未確定フラグ → お客様申告住所未確定フラグ
		if (inMap == null || inMap.get(prefix + "cust_skk_ad_mi_fix_flg") == null || "".equals(inMap.get(prefix + "cust_skk_ad_mi_fix_flg")))
		{
			template.setNull(EKK0251D010CBSMsg.CUST_SKK_AD_MI_FIX_FLG);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.CUST_SKK_AD_MI_FIX_FLG, (String)inMap.get(prefix + "cust_skk_ad_mi_fix_flg"));
		}

		// サービス契約回線内訳登録.お客様SOS利用有無 → お客様SOS利用有無
		if (inMap == null || inMap.get(prefix + "cust_sos_use_um") == null || "".equals(inMap.get(prefix + "cust_sos_use_um")))
		{
			template.setNull(EKK0251D010CBSMsg.CUST_SOS_USE_UM);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.CUST_SOS_USE_UM, (String)inMap.get(prefix + "cust_sos_use_um"));
		}

		// サービス契約回線内訳登録.回線コード → 回線コード
		if (inMap == null || inMap.get(prefix + "kaisen_cd") == null || "".equals(inMap.get(prefix + "kaisen_cd")))
		{
			template.setNull(EKK0251D010CBSMsg.KAISEN_CD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KAISEN_CD, (String)inMap.get(prefix + "kaisen_cd"));
		}

		// サービス契約回線内訳登録.マンション物件番号 → マンション物件番号
		if (inMap == null || inMap.get(prefix + "mansion_bukken_no") == null || "".equals(inMap.get(prefix + "mansion_bukken_no")))
		{
			template.setNull(EKK0251D010CBSMsg.MANSION_BUKKEN_NO);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.MANSION_BUKKEN_NO, (String)inMap.get(prefix + "mansion_bukken_no"));
		}

		// サービス契約回線内訳登録.回線場所電話番号 → 回線場所電話番号
		if (inMap == null || inMap.get(prefix + "kaisen_place_telno") == null || "".equals(inMap.get(prefix + "kaisen_place_telno")))
		{
			template.setNull(EKK0251D010CBSMsg.KAISEN_PLACE_TELNO);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KAISEN_PLACE_TELNO, (String)inMap.get(prefix + "kaisen_place_telno"));
		}

		// サービス契約回線内訳登録.回線場所カナ名 → 回線場所カナ名
		if (inMap == null || inMap.get(prefix + "kaisen_plc_kana") == null || "".equals(inMap.get(prefix + "kaisen_plc_kana")))
		{
			template.setNull(EKK0251D010CBSMsg.KAISEN_PLC_KANA);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KAISEN_PLC_KANA, (String)inMap.get(prefix + "kaisen_plc_kana"));
		}

		// サービス契約回線内訳登録.回線場所住所コード → 回線場所住所コード
		if (inMap == null || inMap.get(prefix + "kaisen_place_ad_cd") == null || "".equals(inMap.get(prefix + "kaisen_place_ad_cd")))
		{
			template.setNull(EKK0251D010CBSMsg.KAISEN_PLACE_AD_CD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KAISEN_PLACE_AD_CD, (String)inMap.get(prefix + "kaisen_place_ad_cd"));
		}

		// サービス契約回線内訳登録.回線場所郵便番号 → 回線場所郵便番号
		if (inMap == null || inMap.get(prefix + "kaisen_place_pcd") == null || "".equals(inMap.get(prefix + "kaisen_place_pcd")))
		{
			template.setNull(EKK0251D010CBSMsg.KAISEN_PLACE_PCD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KAISEN_PLACE_PCD, (String)inMap.get(prefix + "kaisen_place_pcd"));
		}

		// サービス契約回線内訳登録.回線場所都道府県名 → 回線場所都道府県名
		if (inMap == null || inMap.get(prefix + "kaisen_place_state_nm") == null || "".equals(inMap.get(prefix + "kaisen_place_state_nm")))
		{
			template.setNull(EKK0251D010CBSMsg.KAISEN_PLACE_STATE_NM);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KAISEN_PLACE_STATE_NM, (String)inMap.get(prefix + "kaisen_place_state_nm"));
		}

		// サービス契約回線内訳登録.回線場所市区町村名 → 回線場所市区町村名
		if (inMap == null || inMap.get(prefix + "kaisen_place_city_nm") == null || "".equals(inMap.get(prefix + "kaisen_place_city_nm")))
		{
			template.setNull(EKK0251D010CBSMsg.KAISEN_PLACE_CITY_NM);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KAISEN_PLACE_CITY_NM, (String)inMap.get(prefix + "kaisen_place_city_nm"));
		}

		// サービス契約回線内訳登録.回線場所大字通称名 → 回線場所大字通称名
		if (inMap == null || inMap.get(prefix + "kaisen_place_oaztsu_nm") == null || "".equals(inMap.get(prefix + "kaisen_place_oaztsu_nm")))
		{
			template.setNull(EKK0251D010CBSMsg.KAISEN_PLACE_OAZTSU_NM);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KAISEN_PLACE_OAZTSU_NM, (String)inMap.get(prefix + "kaisen_place_oaztsu_nm"));
		}

		// サービス契約回線内訳登録.回線場所字丁目名 → 回線場所字丁目名
		if (inMap == null || inMap.get(prefix + "kaisen_place_azcho_nm") == null || "".equals(inMap.get(prefix + "kaisen_place_azcho_nm")))
		{
			template.setNull(EKK0251D010CBSMsg.KAISEN_PLACE_AZCHO_NM);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KAISEN_PLACE_AZCHO_NM, (String)inMap.get(prefix + "kaisen_place_azcho_nm"));
		}

		// サービス契約回線内訳登録.回線場所番地号 → 回線場所番地号
		if (inMap == null || inMap.get(prefix + "kaisen_place_bnchigo") == null || "".equals(inMap.get(prefix + "kaisen_place_bnchigo")))
		{
			template.setNull(EKK0251D010CBSMsg.KAISEN_PLACE_BNCHIGO);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KAISEN_PLACE_BNCHIGO, (String)inMap.get(prefix + "kaisen_place_bnchigo"));
		}

		// サービス契約回線内訳登録.回線場所住所補記・建物名 → 回線場所住所補記・建物名
		if (inMap == null || inMap.get(prefix + "kaisen_place_adrttm") == null || "".equals(inMap.get(prefix + "kaisen_place_adrttm")))
		{
			template.setNull(EKK0251D010CBSMsg.KAISEN_PLACE_ADRTTM);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KAISEN_PLACE_ADRTTM, (String)inMap.get(prefix + "kaisen_place_adrttm"));
		}

		// サービス契約回線内訳登録.回線場所住所補記・部屋番号 → 回線場所住所補記・部屋番号
		if (inMap == null || inMap.get(prefix + "kaisen_place_adrrm") == null || "".equals(inMap.get(prefix + "kaisen_place_adrrm")))
		{
			template.setNull(EKK0251D010CBSMsg.KAISEN_PLACE_ADRRM);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KAISEN_PLACE_ADRRM, (String)inMap.get(prefix + "kaisen_place_adrrm"));
		}

		// サービス契約回線内訳登録.回線場所番号 → 回線場所番号
		if (inMap == null || inMap.get(prefix + "kaisen_place_no") == null || "".equals(inMap.get(prefix + "kaisen_place_no")))
		{
			template.setNull(EKK0251D010CBSMsg.KAISEN_PLACE_NO);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KAISEN_PLACE_NO, (String)inMap.get(prefix + "kaisen_place_no"));
		}

		// サービス契約回線内訳登録.回線場所区画整理中フラグ → 回線場所区画整理中フラグ
		if (inMap == null || inMap.get(prefix + "kisn_plc_kkk_seiri_chu_flg") == null || "".equals(inMap.get(prefix + "kisn_plc_kkk_seiri_chu_flg")))
		{
			template.setNull(EKK0251D010CBSMsg.KISN_PLC_KKK_SEIRI_CHU_FLG);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KISN_PLC_KKK_SEIRI_CHU_FLG, (String)inMap.get(prefix + "kisn_plc_kkk_seiri_chu_flg"));
		}

		// サービス契約回線内訳登録.回線場所補足コード1 → 回線場所補足コード1
		if (inMap == null || inMap.get(prefix + "kisn_plc_hsk_cd_1") == null || "".equals(inMap.get(prefix + "kisn_plc_hsk_cd_1")))
		{
			template.setNull(EKK0251D010CBSMsg.KISN_PLC_HSK_CD_1);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KISN_PLC_HSK_CD_1, (String)inMap.get(prefix + "kisn_plc_hsk_cd_1"));
		}

		// サービス契約回線内訳登録.回線場所補足コード2 → 回線場所補足コード2
		if (inMap == null || inMap.get(prefix + "kisn_plc_hsk_cd_2") == null || "".equals(inMap.get(prefix + "kisn_plc_hsk_cd_2")))
		{
			template.setNull(EKK0251D010CBSMsg.KISN_PLC_HSK_CD_2);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KISN_PLC_HSK_CD_2, (String)inMap.get(prefix + "kisn_plc_hsk_cd_2"));
		}

		// サービス契約回線内訳登録.回線場所補足メモ → 回線場所補足メモ
		if (inMap == null || inMap.get(prefix + "kisn_plc_hsk_memo") == null || "".equals(inMap.get(prefix + "kisn_plc_hsk_memo")))
		{
			template.setNull(EKK0251D010CBSMsg.KISN_PLC_HSK_MEMO);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KISN_PLC_HSK_MEMO, (String)inMap.get(prefix + "kisn_plc_hsk_memo"));
		}

		// サービス契約回線内訳登録.住所形態コード → 住所形態コード
		if (inMap == null || inMap.get(prefix + "ad_form_cd") == null || "".equals(inMap.get(prefix + "ad_form_cd")))
		{
			template.setNull(EKK0251D010CBSMsg.AD_FORM_CD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.AD_FORM_CD, (String)inMap.get(prefix + "ad_form_cd"));
		}

		// サービス契約回線内訳登録.竣工予定年月日 → 竣工予定年月日
		if (inMap == null || inMap.get(prefix + "shunko_rsv_ymd") == null || "".equals(inMap.get(prefix + "shunko_rsv_ymd")))
		{
			template.setNull(EKK0251D010CBSMsg.SHUNKO_RSV_YMD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.SHUNKO_RSV_YMD, (String)inMap.get(prefix + "shunko_rsv_ymd"));
		}

		// サービス契約回線内訳登録.電力送電予定年月日 → 電力送電予定年月日
		if (inMap == null || inMap.get(prefix + "epower_soden_rsv_ymd") == null || "".equals(inMap.get(prefix + "epower_soden_rsv_ymd")))
		{
			template.setNull(EKK0251D010CBSMsg.EPOWER_SODEN_RSV_YMD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.EPOWER_SODEN_RSV_YMD, (String)inMap.get(prefix + "epower_soden_rsv_ymd"));
		}

		// サービス契約回線内訳登録.入居予定年月日 → 入居予定年月日
		if (inMap == null || inMap.get(prefix + "nyukyo_rsv_ymd") == null || "".equals(inMap.get(prefix + "nyukyo_rsv_ymd")))
		{
			template.setNull(EKK0251D010CBSMsg.NYUKYO_RSV_YMD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.NYUKYO_RSV_YMD, (String)inMap.get(prefix + "nyukyo_rsv_ymd"));
		}

		// サービス契約回線内訳登録.引渡し予定年月日 → 引渡し予定年月日
		if (inMap == null || inMap.get(prefix + "hikiwatashi_rsv_ymd") == null || "".equals(inMap.get(prefix + "hikiwatashi_rsv_ymd")))
		{
			template.setNull(EKK0251D010CBSMsg.HIKIWATASHI_RSV_YMD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.HIKIWATASHI_RSV_YMD, (String)inMap.get(prefix + "hikiwatashi_rsv_ymd"));
		}

		// サービス契約回線内訳登録.引越し予定年月日 → 引越し予定年月日
		if (inMap == null || inMap.get(prefix + "hikkoshi_rsv_ymd") == null || "".equals(inMap.get(prefix + "hikkoshi_rsv_ymd")))
		{
			template.setNull(EKK0251D010CBSMsg.HIKKOSHI_RSV_YMD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.HIKKOSHI_RSV_YMD, (String)inMap.get(prefix + "hikkoshi_rsv_ymd"));
		}

		// サービス契約回線内訳登録.X座標 → X座標
		if (inMap == null || inMap.get(prefix + "xzahyo") == null || "".equals(inMap.get(prefix + "xzahyo")))
		{
			template.setNull(EKK0251D010CBSMsg.XZAHYO);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.XZAHYO, (String)inMap.get(prefix + "xzahyo"));
		}

		// サービス契約回線内訳登録.Y座標 → Y座標
		if (inMap == null || inMap.get(prefix + "yzahyo") == null || "".equals(inMap.get(prefix + "yzahyo")))
		{
			template.setNull(EKK0251D010CBSMsg.YZAHYO);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.YZAHYO, (String)inMap.get(prefix + "yzahyo"));
		}

		// サービス契約回線内訳登録.経度 → 経度
		if (inMap == null || inMap.get(prefix + "lgtd") == null || "".equals(inMap.get(prefix + "lgtd")))
		{
			template.setNull(EKK0251D010CBSMsg.LGTD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.LGTD, (String)inMap.get(prefix + "lgtd"));
		}

		// サービス契約回線内訳登録.緯度 → 緯度
		if (inMap == null || inMap.get(prefix + "lttd") == null || "".equals(inMap.get(prefix + "lttd")))
		{
			template.setNull(EKK0251D010CBSMsg.LTTD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.LTTD, (String)inMap.get(prefix + "lttd"));
		}

		// サービス契約回線内訳登録.座標補正有無 → 座標補正有無
		if (inMap == null || inMap.get(prefix + "zahyo_hosei_um") == null || "".equals(inMap.get(prefix + "zahyo_hosei_um")))
		{
			//**********↓障害対応(IT1-2012-0000024)**********/
//			template.setNull(EKK0251D010CBSMsg.ZAHYO_HOSEI_UM);
			template.set(EKK0251D010CBSMsg.ZAHYO_HOSEI_UM, JKKStrConst.CD_DIV_UM_NASHI);
			//**********↑障害対応(IT1-2012-0000024)**********/
		}
		else
		{
			template.set(EKK0251D010CBSMsg.ZAHYO_HOSEI_UM, (String)inMap.get(prefix + "zahyo_hosei_um"));
		}

		// サービス契約回線内訳登録.テレビ個別対応コード → テレビ個別対応コード
		if (inMap == null || inMap.get(prefix + "tv_kobet_taio_cd") == null || "".equals(inMap.get(prefix + "tv_kobet_taio_cd")))
		{
			template.setNull(EKK0251D010CBSMsg.TV_KOBET_TAIO_CD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.TV_KOBET_TAIO_CD, (String)inMap.get(prefix + "tv_kobet_taio_cd"));
		}

		// サービス契約回線内訳登録.TVアンテナ有無 → TVアンテナ有無
		if (inMap == null || inMap.get(prefix + "tv_antenna_um") == null || "".equals(inMap.get(prefix + "tv_antenna_um")))
		{
			template.setNull(EKK0251D010CBSMsg.TV_ANTENNA_UM);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.TV_ANTENNA_UM, (String)inMap.get(prefix + "tv_antenna_um"));
		}

		// サービス契約回線内訳登録.方角コード1 → 方角コード1
		if (inMap == null || inMap.get(prefix + "direction_cd_1") == null || "".equals(inMap.get(prefix + "direction_cd_1")))
		{
			template.setNull(EKK0251D010CBSMsg.DIRECTION_CD_1);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.DIRECTION_CD_1, (String)inMap.get(prefix + "direction_cd_1"));
		}

		// サービス契約回線内訳登録.方角コード2 → 方角コード2
		if (inMap == null || inMap.get(prefix + "direction_cd_2") == null || "".equals(inMap.get(prefix + "direction_cd_2")))
		{
			template.setNull(EKK0251D010CBSMsg.DIRECTION_CD_2);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.DIRECTION_CD_2, (String)inMap.get(prefix + "direction_cd_2"));
		}

		// サービス契約回線内訳登録.戸建建築階数コード → 戸建建築階数コード
		if (inMap == null || inMap.get(prefix + "kodate_kcku_flr_cnt_cd") == null || "".equals(inMap.get(prefix + "kodate_kcku_flr_cnt_cd")))
		{
			template.setNull(EKK0251D010CBSMsg.KODATE_KCKU_FLR_CNT_CD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KODATE_KCKU_FLR_CNT_CD, (String)inMap.get(prefix + "kodate_kcku_flr_cnt_cd"));
		}

		// サービス契約回線内訳登録.集合住宅入居階数コード → 集合住宅入居階数コード
		if (inMap == null || inMap.get(prefix + "shugj_nyukyo_flr_cnt_cd") == null || "".equals(inMap.get(prefix + "shugj_nyukyo_flr_cnt_cd")))
		{
			template.setNull(EKK0251D010CBSMsg.SHUGJ_NYUKYO_FLR_CNT_CD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.SHUGJ_NYUKYO_FLR_CNT_CD, (String)inMap.get(prefix + "shugj_nyukyo_flr_cnt_cd"));
		}

		// サービス契約回線内訳登録.通信速度コード → 通信速度コード
//		if (inMap == null || inMap.get(prefix + "tsushin_speed_cd") == null || "".equals(inMap.get(prefix + "tsushin_speed_cd")))
//		{
//			template.setNull(EKK0251D010CBSMsg.TSUSHIN_SPEED_CD);
//		}
//		else
//		{
//			template.set(EKK0251D010CBSMsg.TSUSHIN_SPEED_CD, (String)inMap.get(prefix + "tsushin_speed_cd"));
//		}

		// サービス契約回線内訳登録.PON種別コード → PON種別コード
		if (inMap == null || inMap.get(prefix + "pon_sbt_cd") == null || "".equals(inMap.get(prefix + "pon_sbt_cd")))
		{
			template.setNull(EKK0251D010CBSMsg.PON_SBT_CD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.PON_SBT_CD, (String)inMap.get(prefix + "pon_sbt_cd"));
		}

		// サービス契約回線内訳登録.回線提供会社コード → 回線提供会社コード
		if (inMap == null || inMap.get(prefix + "kaisen_tk_comp_cd") == null || "".equals(inMap.get(prefix + "kaisen_tk_comp_cd")))
		{
			template.setNull(EKK0251D010CBSMsg.KAISEN_TK_COMP_CD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KAISEN_TK_COMP_CD, (String)inMap.get(prefix + "kaisen_tk_comp_cd"));
		}

		// サービス契約回線内訳登録.VDSL利用電話回線種別コード → VDSL利用電話回線種別コード
		if (inMap == null || inMap.get(prefix + "vdsl_use_tel_kisn_sbt_cd") == null || "".equals(inMap.get(prefix + "vdsl_use_tel_kisn_sbt_cd")))
		{
			template.setNull(EKK0251D010CBSMsg.VDSL_USE_TEL_KISN_SBT_CD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.VDSL_USE_TEL_KISN_SBT_CD, (String)inMap.get(prefix + "vdsl_use_tel_kisn_sbt_cd"));
		}

		// サービス契約回線内訳登録.VDSL利用電話回線切替予定年月日 → VDSL利用電話回線切替予定年月日
		if (inMap == null || inMap.get(prefix + "vdsl_use_dksn_swch_rsv_ymd") == null || "".equals(inMap.get(prefix + "vdsl_use_dksn_swch_rsv_ymd")))
		{
			template.setNull(EKK0251D010CBSMsg.VDSL_USE_DKSN_SWCH_RSV_YMD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.VDSL_USE_DKSN_SWCH_RSV_YMD, (String)inMap.get(prefix + "vdsl_use_dksn_swch_rsv_ymd"));
		}

		// サービス契約回線内訳登録.VDSL利用対象電話番号回線種別コード → VDSL利用対象電話番号回線種別コード
		if (inMap == null || inMap.get(prefix + "vdsl_use_tg_dbksn_sbt_cd") == null || "".equals(inMap.get(prefix + "vdsl_use_tg_dbksn_sbt_cd")))
		{
			template.setNull(EKK0251D010CBSMsg.VDSL_USE_TG_DBKSN_SBT_CD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.VDSL_USE_TG_DBKSN_SBT_CD, (String)inMap.get(prefix + "vdsl_use_tg_dbksn_sbt_cd"));
		}

		// サービス契約回線内訳登録.VDSL利用対象電話番号 → VDSL利用対象電話番号
		if (inMap == null || inMap.get(prefix + "vdsl_use_tg_telno") == null || "".equals(inMap.get(prefix + "vdsl_use_tg_telno")))
		{
			template.setNull(EKK0251D010CBSMsg.VDSL_USE_TG_TELNO);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.VDSL_USE_TG_TELNO, (String)inMap.get(prefix + "vdsl_use_tg_telno"));
		}

		// サービス契約回線内訳登録.該当エリアサービス開始年月日 → 該当エリアサービス開始年月日
		if (inMap == null || inMap.get(prefix + "gaito_area_svc_staymd") == null || "".equals(inMap.get(prefix + "gaito_area_svc_staymd")))
		{
			template.setNull(EKK0251D010CBSMsg.GAITO_AREA_SVC_STAYMD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.GAITO_AREA_SVC_STAYMD, (String)inMap.get(prefix + "gaito_area_svc_staymd"));
		}

		// サービス契約回線内訳登録.起点変電所コード → 起点変電所コード
		if (inMap == null || inMap.get(prefix + "kiten_hdsho_cd") == null || "".equals(inMap.get(prefix + "kiten_hdsho_cd")))
		{
			template.setNull(EKK0251D010CBSMsg.KITEN_HDSHO_CD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KITEN_HDSHO_CD, (String)inMap.get(prefix + "kiten_hdsho_cd"));
		}

		// サービス契約回線内訳登録.集約局コード → 集約局コード
		if (inMap == null || inMap.get(prefix + "shyakk_cd") == null || "".equals(inMap.get(prefix + "shyakk_cd")))
		{
			template.setNull(EKK0251D010CBSMsg.SHYAKK_CD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.SHYAKK_CD, (String)inMap.get(prefix + "shyakk_cd"));
		}

		// サービス契約回線内訳登録.関電営業所コード → 関電営業所コード
		if (inMap == null || inMap.get(prefix + "kepco_busioffice_cd") == null || "".equals(inMap.get(prefix + "kepco_busioffice_cd")))
		{
			template.setNull(EKK0251D010CBSMsg.KEPCO_BUSIOFFICE_CD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KEPCO_BUSIOFFICE_CD, (String)inMap.get(prefix + "kepco_busioffice_cd"));
		}
		
		//請求書用回線場所住所部屋番号
		if (inMap == null || inMap.get(prefix + "sks_yo_kisn_place_ad_rm_no") == null || "".equals(inMap.get(prefix + "sks_yo_kisn_place_ad_rm_no")))
		{
			template.setNull(EKK0251D010CBSMsg.SKS_YO_KISN_PLACE_AD_RM_NO);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.SKS_YO_KISN_PLACE_AD_RM_NO, (String)inMap.get(prefix + "sks_yo_kisn_place_ad_rm_no"));
		}
		
		//請求書送付先住所変更有無
		if (inMap == null || inMap.get(prefix + "sks_shs_ad_chg_um") == null || "".equals(inMap.get(prefix + "sks_shs_ad_chg_um")))
		{
			template.setNull(EKK0251D010CBSMsg.SKS_SHS_AD_CHG_UM);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.SKS_SHS_AD_CHG_UM, (String)inMap.get(prefix + "sks_shs_ad_chg_um"));
		}
		
		//請求書送付先住所変更希望年月日
		if (inMap == null || inMap.get(prefix + "sks_shs_ad_chg_kibo_ymd") == null || "".equals(inMap.get(prefix + "sks_shs_ad_chg_kibo_ymd")))
		{
			template.setNull(EKK0251D010CBSMsg.SKS_SHS_AD_CHG_KIBO_YMD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.SKS_SHS_AD_CHG_KIBO_YMD, (String)inMap.get(prefix + "sks_shs_ad_chg_kibo_ymd"));
		}
		
		//契約者住所変更有無
		if (inMap == null || inMap.get(prefix + "kshad_chg_um") == null || "".equals(inMap.get(prefix + "kshad_chg_um")))
		{
			template.setNull(EKK0251D010CBSMsg.KSHAD_CHG_UM);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KSHAD_CHG_UM, (String)inMap.get(prefix + "kshad_chg_um"));
		}
		
		//契約者住所変更希望年月日
		if (inMap == null || inMap.get(prefix + "kshad_chg_kibo_ymd") == null || "".equals(inMap.get(prefix + "kshad_chg_kibo_ymd")))
		{
			template.setNull(EKK0251D010CBSMsg.KSHAD_CHG_KIBO_YMD);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KSHAD_CHG_KIBO_YMD, (String)inMap.get(prefix + "kshad_chg_kibo_ymd"));
		}
		
		//回線場所住所チェックレベル
		if (inMap == null || inMap.get(prefix + "kisn_ad_chk_lv") == null || "".equals(inMap.get(prefix + "kisn_ad_chk_lv")))
		{
			template.setNull(EKK0251D010CBSMsg.KISN_AD_CHK_LV);
		}
		else
		{
			template.set(EKK0251D010CBSMsg.KISN_AD_CHK_LV, (String)inMap.get(prefix + "kisn_ad_chk_lv"));
		}

		inList = new ArrayList();
		HashMap map = new HashMap();
		map.put("svc_kei_no", getWorkMapValue(param, "svc_kei_no"));
		inList.add(map);
		templateArray = template.getCAANMsgList(EKK0251D010CBSMsg.EKK0251D010CBSMSG1LIST);

		if (templateArray == null)
		{
			templateArray = new CAANMsg[inList.size()];
		}

		if (inList != null)
		{
			for (int i = 0; i < inList.size(); i++)
			{
				HashMap childMap = (HashMap)inList.get(i);

				CAANMsg childTemplate = templateArray[i];
				if (childTemplate == null)
				{
					childTemplate = new CAANMsg(EKK0251D010CBSMsg1List.class.getName());
				}
				// サービス契約回線内訳登録.回線対象サービス契約明細.サービス契約番号 → 回線対象サービス契約明細.サービス契約番号
				if (childMap == null || childMap.get("svc_kei_no") == null || "".equals(childMap.get("svc_kei_no")))
				{
					childTemplate.setNull(EKK0251D010CBSMsg1List.SVC_KEI_NO);
				}
				else
				{
					childTemplate.set(EKK0251D010CBSMsg1List.SVC_KEI_NO, (String)childMap.get("svc_kei_no"));
				}

				templateArray[i] = childTemplate;
			}
		}
		template.set(EKK0251D010CBSMsg.EKK0251D010CBSMSG1LIST, templateArray);

		return template;

	}

	/**
	 * サービス契約回線内訳登録の下りマッピング処理
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK0251D010Msg(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];
		CAANMsg[] templateArray = null;

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}
		HashMap workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NM);
		if (workDataMap == null)
		{
			workDataMap = new HashMap();
			workMap.put(CC_WORK_AREA_NM, workDataMap);
		}

		/* 業務データ設定 */
		HashMap dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}
		ArrayList dataList = null;

		// サービス契約回線内訳登録.サービス契約回線内訳番号 ← サービス契約回線内訳番号
		if (template.isNull(EKK0251D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO))
		{
			dataMap.put(prefix + "svc_kei_kaisen_ucwk_no", "");
		}
		else
		{
			dataMap.put(prefix + "svc_kei_kaisen_ucwk_no", template.getString(EKK0251D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
		}

		// サービス契約回線内訳登録.世代登録年月日時分秒 ← 世代登録年月日時分秒
		if (template.isNull(EKK0251D010CBSMsg.GENE_ADD_DTM))
		{
			dataMap.put(prefix + "gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "gene_add_dtm", template.getString(EKK0251D010CBSMsg.GENE_ADD_DTM));
		}

		// サービス契約回線内訳登録.サービス契約回線内訳ステータス ← サービス契約回線内訳ステータス
		if (template.isNull(EKK0251D010CBSMsg.SVC_KEI_KAISEN_UCWK_STAT))
		{
			dataMap.put(prefix + "svc_kei_kaisen_ucwk_stat", "");
		}
		else
		{
			dataMap.put(prefix + "svc_kei_kaisen_ucwk_stat", template.getString(EKK0251D010CBSMsg.SVC_KEI_KAISEN_UCWK_STAT));
		}

		// サービス契約回線内訳登録.使用終了年月日 ← 使用終了年月日
//		if (template.isNull(EKK0251D010CBSMsg.USE_ENDYMD))
//		{
//			dataMap.put(prefix + "use_endymd", "");
//		}
//		else
//		{
//			dataMap.put(prefix + "use_endymd", template.getString(EKK0251D010CBSMsg.USE_ENDYMD));
//		}

		// サービス契約回線内訳登録.登録年月日時分秒 ← 登録年月日時分秒
		if (template.isNull(EKK0251D010CBSMsg.ADD_DTM))
		{
			dataMap.put(prefix + "add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "add_dtm", template.getString(EKK0251D010CBSMsg.ADD_DTM));
		}

		// サービス契約回線内訳登録.登録オペレータアカウント ← 登録オペレータアカウント
		if (template.isNull(EKK0251D010CBSMsg.ADD_OPEACNT))
		{
			dataMap.put(prefix + "add_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "add_opeacnt", template.getString(EKK0251D010CBSMsg.ADD_OPEACNT));
		}

		// サービス契約回線内訳登録.更新年月日時分秒 ← 更新年月日時分秒
		if (template.isNull(EKK0251D010CBSMsg.UPD_DTM))
		{
			dataMap.put(prefix + "upd_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "upd_dtm", template.getString(EKK0251D010CBSMsg.UPD_DTM));
		}

		// サービス契約回線内訳登録.更新オペレータアカウント ← 更新オペレータアカウント
		if (template.isNull(EKK0251D010CBSMsg.UPD_OPEACNT))
		{
			dataMap.put(prefix + "upd_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "upd_opeacnt", template.getString(EKK0251D010CBSMsg.UPD_OPEACNT));
		}

		// サービス契約回線内訳登録.無効フラグ ← 無効フラグ
		if (template.isNull(EKK0251D010CBSMsg.MK_FLG))
		{
			dataMap.put(prefix + "mk_flg", "");
		}
		else
		{
			dataMap.put(prefix + "mk_flg", template.getString(EKK0251D010CBSMsg.MK_FLG));
		}

		templateArray = template.getCAANMsgList(EKK0251D010CBSMsg.EKK0251D010CBSMSG1LIST);
		dataList = (ArrayList)dataMap.get("EKK0251D010CBSMsg1List");

		if (dataList == null)
		{
			dataList = new ArrayList();
		}

		if (templateArray != null)
		{
			for (int i = 0; i < templateArray.length; i++)
			{
				CAANMsg childTemplate = templateArray[i];
				if (i >= dataList.size())
				{
					dataList.add(new HashMap());
				}
				HashMap childMap = (HashMap)dataList.get(i);

				
				// サービス契約回線内訳登録.回線対象サービス契約明細.回線内訳使用終了年月日 ← 回線対象サービス契約明細.回線内訳使用終了年月日
				if (childTemplate.isNull(EKK0251D010CBSMsg1List.KAISEN_UCWK_USE_ENDYMD))
				{
					childMap.put("kaisen_ucwk_use_endymd", "");
				}
				else
				{
					childMap.put("kaisen_ucwk_use_endymd", childTemplate.getString(EKK0251D010CBSMsg1List.KAISEN_UCWK_USE_ENDYMD));
				}
			}
		}
		dataMap.put("EKK0251D010CBSMsg1List", dataList);

		// エラー情報の設定
		editErrInfoEKK0251D010Msg(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 リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0251D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			String fixedText, String prefix) throws RequestParameterException
	{
		CAANMsg[] templateArray = null;

		int templateStatus = template.getInt(EKK0251D010CBSMsg.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 inMap = (HashMap)(param.getData(fixedText));
		ArrayList inList = null;

		// サービス契約回線内訳登録.申込明細番号 → 申込明細番号 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_dtl_no_err"))
			{
				inMap.put(prefix + "mskm_dtl_no_err", template.getString(EKK0251D010CBSMsg.MSKM_DTL_NO_ERR));
			}
		}
		// サービス契約回線内訳登録.回線場所住所未確定フラグ → 回線場所住所未確定フラグ のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KISN_PLC_AD_MI_FIX_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "kisn_plc_ad_mi_fix_flg_err"))
			{
				inMap.put(prefix + "kisn_plc_ad_mi_fix_flg_err", template.getString(EKK0251D010CBSMsg.KISN_PLC_AD_MI_FIX_FLG_ERR));
			}
		}
		// サービス契約回線内訳登録.回線場所住所未確定解除年月日 → 回線場所住所未確定解除年月日 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KISN_PLC_AD_MI_FIX_RLS_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "kisn_plc_ad_mi_fix_rls_ymd_err"))
			{
				inMap.put(prefix + "kisn_plc_ad_mi_fix_rls_ymd_err", template.getString(EKK0251D010CBSMsg.KISN_PLC_AD_MI_FIX_RLS_YMD_ERR));
			}
		}
		// サービス契約回線内訳登録.回線場所_契約者住所差異フラグ → 回線場所_契約者住所差異フラグ のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KAISEN_PLC_KSH_AD_SAI_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "kaisen_plc_ksh_ad_sai_flg_err"))
			{
				inMap.put(prefix + "kaisen_plc_ksh_ad_sai_flg_err", template.getString(EKK0251D010CBSMsg.KAISEN_PLC_KSH_AD_SAI_FLG_ERR));
			}
		}
		// サービス契約回線内訳登録.お客様申告住所未確定フラグ → お客様申告住所未確定フラグ のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.CUST_SKK_AD_MI_FIX_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "cust_skk_ad_mi_fix_flg_err"))
			{
				inMap.put(prefix + "cust_skk_ad_mi_fix_flg_err", template.getString(EKK0251D010CBSMsg.CUST_SKK_AD_MI_FIX_FLG_ERR));
			}
		}
		// サービス契約回線内訳登録.お客様SOS利用有無 → お客様SOS利用有無 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.CUST_SOS_USE_UM_ERR))
		{
			if (!inMap.containsKey(prefix + "cust_sos_use_um_err"))
			{
				inMap.put(prefix + "cust_sos_use_um_err", template.getString(EKK0251D010CBSMsg.CUST_SOS_USE_UM_ERR));
			}
		}
		// サービス契約回線内訳登録.回線コード → 回線コード のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KAISEN_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kaisen_cd_err"))
			{
				inMap.put(prefix + "kaisen_cd_err", template.getString(EKK0251D010CBSMsg.KAISEN_CD_ERR));
			}
		}
		// サービス契約回線内訳登録.マンション物件番号 → マンション物件番号 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.MANSION_BUKKEN_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mansion_bukken_no_err"))
			{
				inMap.put(prefix + "mansion_bukken_no_err", template.getString(EKK0251D010CBSMsg.MANSION_BUKKEN_NO_ERR));
			}
		}
		// サービス契約回線内訳登録.回線場所電話番号 → 回線場所電話番号 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KAISEN_PLACE_TELNO_ERR))
		{
			if (!inMap.containsKey(prefix + "kaisen_place_telno_err"))
			{
				inMap.put(prefix + "kaisen_place_telno_err", template.getString(EKK0251D010CBSMsg.KAISEN_PLACE_TELNO_ERR));
			}
		}
		// サービス契約回線内訳登録.回線場所カナ名 → 回線場所カナ名 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KAISEN_PLC_KANA_ERR))
		{
			if (!inMap.containsKey(prefix + "kaisen_plc_kana_err"))
			{
				inMap.put(prefix + "kaisen_plc_kana_err", template.getString(EKK0251D010CBSMsg.KAISEN_PLC_KANA_ERR));
			}
		}
		// サービス契約回線内訳登録.回線場所住所コード → 回線場所住所コード のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KAISEN_PLACE_AD_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kaisen_place_ad_cd_err"))
			{
				inMap.put(prefix + "kaisen_place_ad_cd_err", template.getString(EKK0251D010CBSMsg.KAISEN_PLACE_AD_CD_ERR));
			}
		}
		// サービス契約回線内訳登録.回線場所郵便番号 → 回線場所郵便番号 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KAISEN_PLACE_PCD_ERR))
		{
			if (!inMap.containsKey(prefix + "kaisen_place_pcd_err"))
			{
				inMap.put(prefix + "kaisen_place_pcd_err", template.getString(EKK0251D010CBSMsg.KAISEN_PLACE_PCD_ERR));
			}
		}
		// サービス契約回線内訳登録.回線場所都道府県名 → 回線場所都道府県名 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KAISEN_PLACE_STATE_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "kaisen_place_state_nm_err"))
			{
				inMap.put(prefix + "kaisen_place_state_nm_err", template.getString(EKK0251D010CBSMsg.KAISEN_PLACE_STATE_NM_ERR));
			}
		}
		// サービス契約回線内訳登録.回線場所市区町村名 → 回線場所市区町村名 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KAISEN_PLACE_CITY_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "kaisen_place_city_nm_err"))
			{
				inMap.put(prefix + "kaisen_place_city_nm_err", template.getString(EKK0251D010CBSMsg.KAISEN_PLACE_CITY_NM_ERR));
			}
		}
		// サービス契約回線内訳登録.回線場所大字通称名 → 回線場所大字通称名 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KAISEN_PLACE_OAZTSU_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "kaisen_place_oaztsu_nm_err"))
			{
				inMap.put(prefix + "kaisen_place_oaztsu_nm_err", template.getString(EKK0251D010CBSMsg.KAISEN_PLACE_OAZTSU_NM_ERR));
			}
		}
		// サービス契約回線内訳登録.回線場所字丁目名 → 回線場所字丁目名 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KAISEN_PLACE_AZCHO_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "kaisen_place_azcho_nm_err"))
			{
				inMap.put(prefix + "kaisen_place_azcho_nm_err", template.getString(EKK0251D010CBSMsg.KAISEN_PLACE_AZCHO_NM_ERR));
			}
		}
		// サービス契約回線内訳登録.回線場所番地号 → 回線場所番地号 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KAISEN_PLACE_BNCHIGO_ERR))
		{
			if (!inMap.containsKey(prefix + "kaisen_place_bnchigo_err"))
			{
				inMap.put(prefix + "kaisen_place_bnchigo_err", template.getString(EKK0251D010CBSMsg.KAISEN_PLACE_BNCHIGO_ERR));
			}
		}
		// サービス契約回線内訳登録.回線場所住所補記・建物名 → 回線場所住所補記・建物名 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KAISEN_PLACE_ADRTTM_ERR))
		{
			if (!inMap.containsKey(prefix + "kaisen_place_adrttm_err"))
			{
				inMap.put(prefix + "kaisen_place_adrttm_err", template.getString(EKK0251D010CBSMsg.KAISEN_PLACE_ADRTTM_ERR));
			}
		}
		// サービス契約回線内訳登録.回線場所住所補記・部屋番号 → 回線場所住所補記・部屋番号 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KAISEN_PLACE_ADRRM_ERR))
		{
			if (!inMap.containsKey(prefix + "kaisen_place_adrrm_err"))
			{
				inMap.put(prefix + "kaisen_place_adrrm_err", template.getString(EKK0251D010CBSMsg.KAISEN_PLACE_ADRRM_ERR));
			}
		}
		// サービス契約回線内訳登録.回線場所番号 → 回線場所番号 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KAISEN_PLACE_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "kaisen_place_no_err"))
			{
				inMap.put(prefix + "kaisen_place_no_err", template.getString(EKK0251D010CBSMsg.KAISEN_PLACE_NO_ERR));
			}
		}
		// サービス契約回線内訳登録.回線場所区画整理中フラグ → 回線場所区画整理中フラグ のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KISN_PLC_KKK_SEIRI_CHU_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "kisn_plc_kkk_seiri_chu_flg_err"))
			{
				inMap.put(prefix + "kisn_plc_kkk_seiri_chu_flg_err", template.getString(EKK0251D010CBSMsg.KISN_PLC_KKK_SEIRI_CHU_FLG_ERR));
			}
		}
		// サービス契約回線内訳登録.回線場所補足コード1 → 回線場所補足コード1 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KISN_PLC_HSK_CD_1_ERR))
		{
			if (!inMap.containsKey(prefix + "kisn_plc_hsk_cd_1_err"))
			{
				inMap.put(prefix + "kisn_plc_hsk_cd_1_err", template.getString(EKK0251D010CBSMsg.KISN_PLC_HSK_CD_1_ERR));
			}
		}
		// サービス契約回線内訳登録.回線場所補足コード2 → 回線場所補足コード2 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KISN_PLC_HSK_CD_2_ERR))
		{
			if (!inMap.containsKey(prefix + "kisn_plc_hsk_cd_2_err"))
			{
				inMap.put(prefix + "kisn_plc_hsk_cd_2_err", template.getString(EKK0251D010CBSMsg.KISN_PLC_HSK_CD_2_ERR));
			}
		}
		// サービス契約回線内訳登録.回線場所補足メモ → 回線場所補足メモ のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KISN_PLC_HSK_MEMO_ERR))
		{
			if (!inMap.containsKey(prefix + "kisn_plc_hsk_memo_err"))
			{
				inMap.put(prefix + "kisn_plc_hsk_memo_err", template.getString(EKK0251D010CBSMsg.KISN_PLC_HSK_MEMO_ERR));
			}
		}
		
		// サービス契約回線内訳登録.住所形態コード → 住所形態コード のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.AD_FORM_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "ad_form_cd_err"))
			{
				inMap.put(prefix + "ad_form_cd_err", template.getString(EKK0251D010CBSMsg.AD_FORM_CD_ERR));
			}
		}
		// サービス契約回線内訳登録.竣工予定年月日 → 竣工予定年月日 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.SHUNKO_RSV_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "shunko_rsv_ymd_err"))
			{
				inMap.put(prefix + "shunko_rsv_ymd_err", template.getString(EKK0251D010CBSMsg.SHUNKO_RSV_YMD_ERR));
			}
		}
		// サービス契約回線内訳登録.電力送電予定年月日 → 電力送電予定年月日 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.EPOWER_SODEN_RSV_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "epower_soden_rsv_ymd_err"))
			{
				inMap.put(prefix + "epower_soden_rsv_ymd_err", template.getString(EKK0251D010CBSMsg.EPOWER_SODEN_RSV_YMD_ERR));
			}
		}
		// サービス契約回線内訳登録.入居予定年月日 → 入居予定年月日 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.NYUKYO_RSV_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "nyukyo_rsv_ymd_err"))
			{
				inMap.put(prefix + "nyukyo_rsv_ymd_err", template.getString(EKK0251D010CBSMsg.NYUKYO_RSV_YMD_ERR));
			}
		}
		// サービス契約回線内訳登録.引渡し予定年月日 → 引渡し予定年月日 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.HIKIWATASHI_RSV_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "hikiwatashi_rsv_ymd_err"))
			{
				inMap.put(prefix + "hikiwatashi_rsv_ymd_err", template.getString(EKK0251D010CBSMsg.HIKIWATASHI_RSV_YMD_ERR));
			}
		}
		// サービス契約回線内訳登録.引越し予定年月日 → 引越し予定年月日 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.HIKKOSHI_RSV_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "hikkoshi_rsv_ymd_err"))
			{
				inMap.put(prefix + "hikkoshi_rsv_ymd_err", template.getString(EKK0251D010CBSMsg.HIKKOSHI_RSV_YMD_ERR));
			}
		}
		// サービス契約回線内訳登録.X座標 → X座標 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.XZAHYO_ERR))
		{
			if (!inMap.containsKey(prefix + "xzahyo_err"))
			{
				inMap.put(prefix + "xzahyo_err", template.getString(EKK0251D010CBSMsg.XZAHYO_ERR));
			}
		}
		// サービス契約回線内訳登録.Y座標 → Y座標 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.YZAHYO_ERR))
		{
			if (!inMap.containsKey(prefix + "yzahyo_err"))
			{
				inMap.put(prefix + "yzahyo_err", template.getString(EKK0251D010CBSMsg.YZAHYO_ERR));
			}
		}
		// サービス契約回線内訳登録.経度 → 経度 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.LGTD_ERR))
		{
			if (!inMap.containsKey(prefix + "lgtd_err"))
			{
				inMap.put(prefix + "lgtd_err", template.getString(EKK0251D010CBSMsg.LGTD_ERR));
			}
		}
		// サービス契約回線内訳登録.緯度 → 緯度 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.LTTD_ERR))
		{
			if (!inMap.containsKey(prefix + "lttd_err"))
			{
				inMap.put(prefix + "lttd_err", template.getString(EKK0251D010CBSMsg.LTTD_ERR));
			}
		}
		// サービス契約回線内訳登録.座標補正有無 → 座標補正有無 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.ZAHYO_HOSEI_UM_ERR))
		{
			if (!inMap.containsKey(prefix + "zahyo_hosei_um_err"))
			{
				inMap.put(prefix + "zahyo_hosei_um_err", template.getString(EKK0251D010CBSMsg.ZAHYO_HOSEI_UM_ERR));
			}
		}
		// サービス契約回線内訳登録.テレビ個別対応コード → テレビ個別対応コード のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.TV_KOBET_TAIO_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "tv_kobet_taio_cd_err"))
			{
				inMap.put(prefix + "tv_kobet_taio_cd_err", template.getString(EKK0251D010CBSMsg.TV_KOBET_TAIO_CD_ERR));
			}
		}
		// サービス契約回線内訳登録.TVアンテナ有無 → TVアンテナ有無 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.TV_ANTENNA_UM_ERR))
		{
			if (!inMap.containsKey(prefix + "tv_antenna_um_err"))
			{
				inMap.put(prefix + "tv_antenna_um_err", template.getString(EKK0251D010CBSMsg.TV_ANTENNA_UM_ERR));
			}
		}
		// サービス契約回線内訳登録.方角コード1 → 方角コード1 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.DIRECTION_CD_1_ERR))
		{
			if (!inMap.containsKey(prefix + "direction_cd_1_err"))
			{
				inMap.put(prefix + "direction_cd_1_err", template.getString(EKK0251D010CBSMsg.DIRECTION_CD_1_ERR));
			}
		}
		// サービス契約回線内訳登録.方角コード2 → 方角コード2 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.DIRECTION_CD_2_ERR))
		{
			if (!inMap.containsKey(prefix + "direction_cd_2_err"))
			{
				inMap.put(prefix + "direction_cd_2_err", template.getString(EKK0251D010CBSMsg.DIRECTION_CD_2_ERR));
			}
		}
		// サービス契約回線内訳登録.戸建建築階数コード → 戸建建築階数コード のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KODATE_KCKU_FLR_CNT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kodate_kcku_flr_cnt_cd_err"))
			{
				inMap.put(prefix + "kodate_kcku_flr_cnt_cd_err", template.getString(EKK0251D010CBSMsg.KODATE_KCKU_FLR_CNT_CD_ERR));
			}
		}
		// サービス契約回線内訳登録.集合住宅入居階数コード → 集合住宅入居階数コード のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.SHUGJ_NYUKYO_FLR_CNT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "shugj_nyukyo_flr_cnt_cd_err"))
			{
				inMap.put(prefix + "shugj_nyukyo_flr_cnt_cd_err", template.getString(EKK0251D010CBSMsg.SHUGJ_NYUKYO_FLR_CNT_CD_ERR));
			}
		}
		// サービス契約回線内訳登録.通信速度コード → 通信速度コード のエラー情報返却
//		if (!template.isNull(EKK0251D010CBSMsg.TSUSHIN_SPEED_CD_ERR))
//		{
//			if (!inMap.containsKey(prefix + "tsushin_speed_cd_err"))
//			{
//				inMap.put(prefix + "tsushin_speed_cd_err", template.getString(EKK0251D010CBSMsg.TSUSHIN_SPEED_CD_ERR));
//			}
//		}
		// サービス契約回線内訳登録.PON種別コード → PON種別コード のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.PON_SBT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pon_sbt_cd_err"))
			{
				inMap.put(prefix + "pon_sbt_cd_err", template.getString(EKK0251D010CBSMsg.PON_SBT_CD_ERR));
			}
		}
		// サービス契約回線内訳登録.回線提供会社コード → 回線提供会社コード のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KAISEN_TK_COMP_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kaisen_tk_comp_cd_err"))
			{
				inMap.put(prefix + "kaisen_tk_comp_cd_err", template.getString(EKK0251D010CBSMsg.KAISEN_TK_COMP_CD_ERR));
			}
		}
		// サービス契約回線内訳登録.VDSL利用電話回線種別コード → VDSL利用電話回線種別コード のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.VDSL_USE_TEL_KISN_SBT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "vdsl_use_tel_kisn_sbt_cd_err"))
			{
				inMap.put(prefix + "vdsl_use_tel_kisn_sbt_cd_err", template.getString(EKK0251D010CBSMsg.VDSL_USE_TEL_KISN_SBT_CD_ERR));
			}
		}
		// サービス契約回線内訳登録.VDSL利用電話回線切替予定年月日 → VDSL利用電話回線切替予定年月日 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.VDSL_USE_DKSN_SWCH_RSV_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "vdsl_use_dksn_swch_rsv_ymd_err"))
			{
				inMap.put(prefix + "vdsl_use_dksn_swch_rsv_ymd_err", template.getString(EKK0251D010CBSMsg.VDSL_USE_DKSN_SWCH_RSV_YMD_ERR));
			}
		}
		// サービス契約回線内訳登録.VDSL利用対象電話番号回線種別コード → VDSL利用対象電話番号回線種別コード のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.VDSL_USE_TG_DBKSN_SBT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "vdsl_use_tg_dbksn_sbt_cd_err"))
			{
				inMap.put(prefix + "vdsl_use_tg_dbksn_sbt_cd_err", template.getString(EKK0251D010CBSMsg.VDSL_USE_TG_DBKSN_SBT_CD_ERR));
			}
		}
		// サービス契約回線内訳登録.VDSL利用対象電話番号 → VDSL利用対象電話番号 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.VDSL_USE_TG_TELNO_ERR))
		{
			if (!inMap.containsKey(prefix + "vdsl_use_tg_telno_err"))
			{
				inMap.put(prefix + "vdsl_use_tg_telno_err", template.getString(EKK0251D010CBSMsg.VDSL_USE_TG_TELNO_ERR));
			}
		}
		// サービス契約回線内訳登録.該当エリアサービス開始年月日 → 該当エリアサービス開始年月日 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.GAITO_AREA_SVC_STAYMD_ERR))
		{
			if (!inMap.containsKey(prefix + "gaito_area_svc_staymd_err"))
			{
				inMap.put(prefix + "gaito_area_svc_staymd_err", template.getString(EKK0251D010CBSMsg.GAITO_AREA_SVC_STAYMD_ERR));
			}
		}
		// サービス契約回線内訳登録.起点変電所コード → 起点変電所コード のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KITEN_HDSHO_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kiten_hdsho_cd_err"))
			{
				inMap.put(prefix + "kiten_hdsho_cd_err", template.getString(EKK0251D010CBSMsg.KITEN_HDSHO_CD_ERR));
			}
		}
		// サービス契約回線内訳登録.集約局コード → 集約局コード のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.SHYAKK_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "shyakk_cd_err"))
			{
				inMap.put(prefix + "shyakk_cd_err", template.getString(EKK0251D010CBSMsg.SHYAKK_CD_ERR));
			}
		}
		// サービス契約回線内訳登録.関電営業所コード → 関電営業所コード のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KEPCO_BUSIOFFICE_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kepco_busioffice_cd_err"))
			{
				inMap.put(prefix + "kepco_busioffice_cd_err", template.getString(EKK0251D010CBSMsg.KEPCO_BUSIOFFICE_CD_ERR));
			}
		}
		
		// サービス契約回線内訳登録.請求書用回線場所住所部屋番号 → 請求書用回線場所住所部屋番号 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.SKS_YO_KISN_PLACE_AD_RM_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "sks_yo_kisn_place_ad_rm_no_err"))
			{
				inMap.put(prefix + "sks_yo_kisn_place_ad_rm_no_err", template.getString(EKK0251D010CBSMsg.SKS_YO_KISN_PLACE_AD_RM_NO_ERR));
			}
		}

		// サービス契約回線内訳登録.請求書送付先住所変更有無 → 請求書送付先住所変更有無 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.SKS_SHS_AD_CHG_UM_ERR))
		{
			if (!inMap.containsKey(prefix + "sks_shs_ad_chg_um_err"))
			{
				inMap.put(prefix + "sks_shs_ad_chg_um_err", template.getString(EKK0251D010CBSMsg.SKS_SHS_AD_CHG_UM_ERR));
			}
		}
		
		// サービス契約回線内訳登録.請求書送付先住所変更希望年月日 → 請求書送付先住所変更希望年月日 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.SKS_SHS_AD_CHG_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "sks_shs_ad_chg_kibo_ymd_err"))
			{
				inMap.put(prefix + "sks_shs_ad_chg_kibo_ymd_err", template.getString(EKK0251D010CBSMsg.SKS_SHS_AD_CHG_KIBO_YMD_ERR));
			}
		}
		
		// サービス契約回線内訳登録.契約者住所変更有無 → 契約者住所変更有無 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KSHAD_CHG_UM_ERR))
		{
			if (!inMap.containsKey(prefix + "kshad_chg_um_err"))
			{
				inMap.put(prefix + "kshad_chg_um_err", template.getString(EKK0251D010CBSMsg.KSHAD_CHG_UM_ERR));
			}
		}
		
		// サービス契約回線内訳登録.契約者住所変更希望年月日 → 契約者住所変更希望年月日 のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KSHAD_CHG_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "kshad_chg_kibo_ymd_err"))
			{
				inMap.put(prefix + "kshad_chg_kibo_ymd_err", template.getString(EKK0251D010CBSMsg.KSHAD_CHG_KIBO_YMD_ERR));
			}
		}
		
		// サービス契約回線内訳登録.回線場所住所チェックレベル → 回線場所住所チェックレベル のエラー情報返却
		if (!template.isNull(EKK0251D010CBSMsg.KISN_AD_CHK_LV_ERR))
		{
			if (!inMap.containsKey(prefix + "kisn_ad_chk_lv_err"))
			{
				inMap.put(prefix + "kisn_ad_chk_lv_err", template.getString(EKK0251D010CBSMsg.KISN_AD_CHK_LV_ERR));
			}
		}

		inList = (ArrayList)inMap.get("EKK0251D010CBSMsg1List");
		if (inList == null)
		{
			inList = new ArrayList();
			inMap.put("EKK0251D010CBSMsg1List", inList);
		}

		templateArray = template.getCAANMsgList(EKK0251D010CBSMsg.EKK0251D010CBSMSG1LIST);

		if (templateArray != null)
		{
			for (int i = 0; i < templateArray.length; i++)
			{
				if (i >= inList.size())
				{
					inList.add(new HashMap());
				}
			
				HashMap childMap = (HashMap)inList.get(i);
				CAANMsg childTemplate = templateArray[i];

				// サービス契約回線内訳登録.回線対象サービス契約明細.サービス契約番号 → 回線対象サービス契約明細.サービス契約番号 のエラー情報返却
				if (!childTemplate.isNull(EKK0251D010CBSMsg1List.SVC_KEI_NO_ERR))
				{
					if (!childMap.containsKey("svc_kei_no_err"))
					{
						childMap.put("svc_kei_no_err", childTemplate.getString(EKK0251D010CBSMsg1List.SVC_KEI_NO_ERR));
					}
				}
			}
		}
		if (!template.isNull(EKK0251D010CBSMsg.EKK0251D010CBSMSG1LIST_ERR))
		{
			if (!inMap.containsKey("EKK0251D010CBSMsg1List_err"))
			{
				inMap.put("EKK0251D010CBSMsg1List_err", template.getString(EKK0251D010CBSMsg.EKK0251D010CBSMSG1LIST_ERR));
			}
		}

		return param;
	}

	/**
	 * サービス契約内訳＜eoモバイル＞登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0201D010Msg(IRequestParameterReadWrite param, String fixedText, String prefix) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0201D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0201D010CBSMsg.TEMPLATEID, "EKK0201D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0201D010CBSMsg.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 inMap = (HashMap)(param.getData(fixedText));

		// 機能コード
		template.set(EKK0201D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		HashMap ccWorkAreaNmMap = (HashMap)workMap.get(CC_WORK_AREA_NM);

		// サービス契約内訳<eoモバイル>登録.サービス契約番号 → サービス契約番号
		if (inMap == null || inMap.get(prefix + "svc_kei_no") == null || "".equals(inMap.get(prefix + "svc_kei_no")))
		{
			if (getWorkMapValue(param, "svc_kei_no") == null)
			{
				template.setNull(EKK0201D010CBSMsg.SVC_KEI_NO);
			}
			else
			{
				template.set(EKK0201D010CBSMsg.SVC_KEI_NO, getWorkMapValue(param, "svc_kei_no"));
			}
		}
		else
		{
			template.set(EKK0201D010CBSMsg.SVC_KEI_NO, (String)inMap.get(prefix + "svc_kei_no"));
		}

		// サービス契約内訳<eoモバイル>登録.申込明細番号 → 申込明細番号
		if (inMap == null || inMap.get(prefix + "mskm_dtl_no") == null || "".equals(inMap.get(prefix + "mskm_dtl_no")))
		{
			if (ccWorkAreaNmMap != null && ccWorkAreaNmMap.get("mskm_dtl_no") != null && !"".equals(ccWorkAreaNmMap.get("mskm_dtl_no")))
			{
				template.set(EKK0251D010CBSMsg.MSKM_DTL_NO, ccWorkAreaNmMap.get("mskm_dtl_no"));
				mskmDtlNo = (String)ccWorkAreaNmMap.get("mskm_dtl_no");
			}
			else if (getMskmDtlWorkMapValue(param, "mskm_dtl_no_moba") == null)
			{
				template.setNull(EKK0201D010CBSMsg.MSKM_DTL_NO);
			}
			else
			{
				template.set(EKK0201D010CBSMsg.MSKM_DTL_NO, getMskmDtlWorkMapValue(param, "mskm_dtl_no_moba"));
				mskmDtlNo = (String)getMskmDtlWorkMapValue(param, "mskm_dtl_no_moba");
			}
		}
		else
		{
			template.set(EKK0201D010CBSMsg.MSKM_DTL_NO, (String)inMap.get(prefix + "mskm_dtl_no"));
			mskmDtlNo = (String)inMap.get(prefix + "mskm_dtl_no");
		}
		
		// サービス契約内訳<eoモバイル>登録.料金コースコード → 料金コースコード
		if (inMap == null || inMap.get(prefix + "pcrs_cd") == null || "".equals(inMap.get(prefix + "pcrs_cd")))
		{
			template.setNull(EKK0201D010CBSMsg.PCRS_CD);
		}
		else
		{
			template.set(EKK0201D010CBSMsg.PCRS_CD, (String)inMap.get(prefix + "pcrs_cd"));
		}

		// サービス契約内訳<eoモバイル>登録.料金プランコード → 料金プランコード
		if (inMap == null || inMap.get(prefix + "pplan_cd") == null || "".equals(inMap.get(prefix + "pplan_cd")))
		{
			template.setNull(EKK0201D010CBSMsg.PPLAN_CD);
		}
		else
		{
			template.set(EKK0201D010CBSMsg.PPLAN_CD, (String)inMap.get(prefix + "pplan_cd"));
		}

		// サービス契約内訳<eoモバイル>登録.提供方式契約番号 → 提供方式契約番号
		if (inMap == null || inMap.get(prefix + "tk_hoshiki_kei_no") == null || "".equals(inMap.get(prefix + "tk_hoshiki_kei_no")))
		{
			template.setNull(EKK0201D010CBSMsg.TK_HOSHIKI_KEI_NO);
		}
		else
		{
			template.set(EKK0201D010CBSMsg.TK_HOSHIKI_KEI_NO, (String)inMap.get(prefix + "tk_hoshiki_kei_no"));
		}

		// サービス契約内訳<eoモバイル>登録.支払い方法継続フラグ → 支払い方法継続フラグ
		if (inMap == null || inMap.get(prefix + "payway_keizoku_flg") == null || "".equals(inMap.get(prefix + "payway_keizoku_flg")))
		{
			template.setNull(EKK0201D010CBSMsg.PAYWAY_KEIZOKU_FLG);
		}
		else
		{
			template.set(EKK0201D010CBSMsg.PAYWAY_KEIZOKU_FLG, (String)inMap.get(prefix + "payway_keizoku_flg"));
		}

		// サービス契約内訳<eoモバイル>登録.WEBオプション追加不可フラグ → WEBオプション追加不可フラグ
		if (inMap == null || inMap.get(prefix + "web_op_add_fail_flg") == null || "".equals(inMap.get(prefix + "web_op_add_fail_flg")))
		{
			template.setNull(EKK0201D010CBSMsg.WEB_OP_ADD_FAIL_FLG);
		}
		else
		{
			template.set(EKK0201D010CBSMsg.WEB_OP_ADD_FAIL_FLG, (String)inMap.get(prefix + "web_op_add_fail_flg"));
		}

		// サービス契約内訳<eoモバイル>登録.業務連絡備考 → 業務連絡備考
		if (inMap == null || inMap.get(prefix + "work_rrk_biko") == null || "".equals(inMap.get(prefix + "work_rrk_biko")))
		{
			template.setNull(EKK0201D010CBSMsg.WORK_RRK_BIKO);
		}
		else
		{
			template.set(EKK0201D010CBSMsg.WORK_RRK_BIKO, (String)inMap.get(prefix + "work_rrk_biko"));
		}

		// サービス契約内訳<eoモバイル>登録.サービス利用開始希望年月日 → サービス利用開始希望年月日
		if (inMap == null || inMap.get(prefix + "svc_use_sta_kibo_ymd") == null || "".equals(inMap.get(prefix + "svc_use_sta_kibo_ymd")))
		{
			template.setNull(EKK0201D010CBSMsg.SVC_USE_STA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0201D010CBSMsg.SVC_USE_STA_KIBO_YMD, (String)inMap.get(prefix + "svc_use_sta_kibo_ymd"));
		}

		// サービス契約内訳<eoモバイル>登録.予約適用開始希望年月日 → 予約適用開始希望年月日
		if (inMap == null || inMap.get(prefix + "rsv_tsta_kibo_ymd") == null || "".equals(inMap.get(prefix + "rsv_tsta_kibo_ymd")))
		{
			template.setNull(EKK0201D010CBSMsg.RSV_TSTA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0201D010CBSMsg.RSV_TSTA_KIBO_YMD, (String)inMap.get(prefix + "rsv_tsta_kibo_ymd"));
		}

		// サービス契約内訳<eoモバイル>登録.試用加入年月日 → 試用加入年月日
		if (inMap == null || inMap.get(prefix + "ftrial_kanyu_ymd") == null || "".equals(inMap.get(prefix + "ftrial_kanyu_ymd")))
		{
			template.setNull(EKK0201D010CBSMsg.FTRIAL_KANYU_YMD);
		}
		else
		{
			template.set(EKK0201D010CBSMsg.FTRIAL_KANYU_YMD, (String)inMap.get(prefix + "ftrial_kanyu_ymd"));
		}

		// サービス契約内訳<eoモバイル>登録.試用期間終了年月日 → 試用期間終了年月日
		if (inMap == null || inMap.get(prefix + "ftrial_prd_endymd") == null || "".equals(inMap.get(prefix + "ftrial_prd_endymd")))
		{
			template.setNull(EKK0201D010CBSMsg.FTRIAL_PRD_ENDYMD);
		}
		else
		{
			template.set(EKK0201D010CBSMsg.FTRIAL_PRD_ENDYMD, (String)inMap.get(prefix + "ftrial_prd_endymd"));
		}

		// サービス契約内訳<eoモバイル>登録.本加入年月日 → 本加入年月日
		if (inMap == null || inMap.get(prefix + "honkanyu_ymd") == null || "".equals(inMap.get(prefix + "honkanyu_ymd")))
		{
			template.setNull(EKK0201D010CBSMsg.HONKANYU_YMD);
		}
		else
		{
			template.set(EKK0201D010CBSMsg.HONKANYU_YMD, (String)inMap.get(prefix + "honkanyu_ymd"));
		}

		// サービス契約内訳<eoモバイル>登録.本加入移行期限年月日 → 本加入移行期限年月日
		if (inMap == null || inMap.get(prefix + "honkanyu_iko_kigen_ymd") == null || "".equals(inMap.get(prefix + "honkanyu_iko_kigen_ymd")))
		{
			template.setNull(EKK0201D010CBSMsg.HONKANYU_IKO_KIGEN_YMD);
		}
		else
		{
			template.set(EKK0201D010CBSMsg.HONKANYU_IKO_KIGEN_YMD, (String)inMap.get(prefix + "honkanyu_iko_kigen_ymd"));
		}

		// サービス契約内訳<eoモバイル>登録.違約金発生コード → 違約金発生コード
		if (inMap == null || inMap.get(prefix + "pnlty_hassei_cd") == null || "".equals(inMap.get(prefix + "pnlty_hassei_cd")))
		{
			template.setNull(EKK0201D010CBSMsg.PNLTY_HASSEI_CD);
		}
		else
		{
			template.set(EKK0201D010CBSMsg.PNLTY_HASSEI_CD, (String)inMap.get(prefix + "pnlty_hassei_cd"));
		}

		// サービス契約内訳<eoモバイル>登録.異動区分 → 異動区分
		if (inMap == null || inMap.get(prefix + "ido_div") == null || "".equals(inMap.get(prefix + "ido_div")))
		{
			template.set(EKK0201D010CBSMsg.IDO_DIV, JKKStrConst.CD00576_00001);
		}
		else
		{
			template.set(EKK0201D010CBSMsg.IDO_DIV, (String)inMap.get(prefix + "ido_div"));
		}

		// サービス契約内訳<eoモバイル>登録.スポットログインSYSID → スポットログインSYSID
		if (inMap == null || inMap.get(prefix + "spot_login_sysid") == null || "".equals(inMap.get(prefix + "spot_login_sysid")))
		{
			if (getKeishaWorkMapValue(param, "sysid") == null)
			{
				template.setNull(EKK0201D010CBSMsg.SPOT_LOGIN_SYSID);
			}
			else
			{
				template.set(EKK0201D010CBSMsg.SPOT_LOGIN_SYSID, getKeishaWorkMapValue(param, "sysid"));
			}
		}
		else
		{
			template.set(EKK0201D010CBSMsg.SPOT_LOGIN_SYSID, (String)inMap.get(prefix + "spot_login_sysid"));
		}

		// サービス契約内訳<eoモバイル>登録.提供帯域コード → 提供帯域コード
		if (inMap == null || inMap.get(prefix + "tk_taiiki_cd") == null || "".equals(inMap.get(prefix + "tk_taiiki_cd")))
		{
			template.setNull(EKK0201D010CBSMsg.TK_TAIIKI_CD);
		}
		else
		{
			template.set(EKK0201D010CBSMsg.TK_TAIIKI_CD, (String)inMap.get(prefix + "tk_taiiki_cd"));
		}

		// サービス契約内訳<eoモバイル>登録.事務手数料自動適用要否 → 事務手数料自動適用要否
		if (inMap == null || inMap.get("rule0059_auto_aply") == null || "".equals(inMap.get("rule0059_auto_aply")))
		{
			template.setNull(EKK0201D010CBSMsg.RULE0059_AUTO_APLY);
		}
		else
		{
			template.set(EKK0201D010CBSMsg.RULE0059_AUTO_APLY, (String)inMap.get("rule0059_auto_aply"));
		}
		
		return template;
	}

	/**
	 * サービス契約内訳＜eoモバイル＞登録の下りマッピング処理
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK0201D010Msg(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);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}
		HashMap workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NM);
		if (workDataMap == null)
		{
			workDataMap = new HashMap();
			workMap.put(CC_WORK_AREA_NM, workDataMap);
		}

		/* 業務データ設定 */
		HashMap dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

		// サービス契約内訳<eoモバイル>登録.サービス契約内訳番号 ← サービス契約内訳番号
		if (template.isNull(EKK0201D010CBSMsg.SVC_KEI_UCWK_NO))
		{
			dataMap.put(prefix + "svc_kei_ucwk_no", "");
		}
		else
		{
			dataMap.put(prefix + "svc_kei_ucwk_no", template.getString(EKK0201D010CBSMsg.SVC_KEI_UCWK_NO));
			workDataMap.put("svc_kei_ucwk_no", template.getString(EKK0201D010CBSMsg.SVC_KEI_UCWK_NO));
		}

		// サービス契約内訳<eoモバイル>登録.世代登録年月日時分秒(サービス契約内訳) ← 世代登録年月日時分秒(サービス契約内訳)
		if (template.isNull(EKK0201D010CBSMsg.KK0161_GENE_ADD_DTM))
		{
			dataMap.put("kk0161_gene_add_dtm", "");
		}
		else
		{
			dataMap.put("kk0161_gene_add_dtm", template.getString(EKK0201D010CBSMsg.KK0161_GENE_ADD_DTM));
		}

		// サービス契約内訳<eoモバイル>登録.サービス契約内訳ステータス ← サービス契約内訳ステータス
		if (template.isNull(EKK0201D010CBSMsg.SVC_KEI_UCWK_STAT))
		{
			dataMap.put(prefix + "svc_kei_ucwk_stat", "");
		}
		else
		{
			dataMap.put(prefix + "svc_kei_ucwk_stat", template.getString(EKK0201D010CBSMsg.SVC_KEI_UCWK_STAT));
		}

		// サービス契約内訳<eoモバイル>登録.WEBオプション追加不可フラグ（出力） ← WEBオプション追加不可フラグ（出力）
		if (template.isNull(EKK0201D010CBSMsg.WEB_OP_ADD_FAIL_FLG_O))
		{
			dataMap.put(prefix + "web_op_add_fail_flg_o", "");
		}
		else
		{
			dataMap.put(prefix + "web_op_add_fail_flg_o", template.getString(EKK0201D010CBSMsg.WEB_OP_ADD_FAIL_FLG_O));
		}

		// サービス契約内訳<eoモバイル>登録.予約適用年月日 ← 予約適用年月日
		if (template.isNull(EKK0201D010CBSMsg.RSV_APLY_YMD))
		{
			dataMap.put(prefix + "rsv_aply_ymd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_ymd", template.getString(EKK0201D010CBSMsg.RSV_APLY_YMD));
		}

		// サービス契約内訳<eoモバイル>登録.予約適用コード ← 予約適用コード
		if (template.isNull(EKK0201D010CBSMsg.RSV_APLY_CD))
		{
			dataMap.put(prefix + "rsv_aply_cd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_cd", template.getString(EKK0201D010CBSMsg.RSV_APLY_CD));
		}

		// サービス契約内訳<eoモバイル>登録.世代登録年月日時分秒(サービス契約内訳<eoモバイル>) ← 世代登録年月日時分秒(サービス契約内訳<eoモバイル>)
		if (template.isNull(EKK0201D010CBSMsg.KK0201_GENE_ADD_DTM))
		{
			dataMap.put("kk0201_gene_add_dtm", "");
		}
		else
		{
			dataMap.put("kk0201_gene_add_dtm", template.getString(EKK0201D010CBSMsg.KK0201_GENE_ADD_DTM));
		}

		// サービス契約内訳<eoモバイル>登録.登録年月日時分秒 ← 登録年月日時分秒
		if (template.isNull(EKK0201D010CBSMsg.ADD_DTM))
		{
			dataMap.put(prefix + "add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "add_dtm", template.getString(EKK0201D010CBSMsg.ADD_DTM));
		}

		// サービス契約内訳<eoモバイル>登録.登録オペレータアカウント ← 登録オペレータアカウント
		if (template.isNull(EKK0201D010CBSMsg.ADD_OPEACNT))
		{
			dataMap.put(prefix + "add_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "add_opeacnt", template.getString(EKK0201D010CBSMsg.ADD_OPEACNT));
		}

		// サービス契約内訳<eoモバイル>登録.更新年月日時分秒 ← 更新年月日時分秒
		if (template.isNull(EKK0201D010CBSMsg.UPD_DTM))
		{
			dataMap.put(prefix + "upd_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "upd_dtm", template.getString(EKK0201D010CBSMsg.UPD_DTM));
		}

		// サービス契約内訳<eoモバイル>登録.更新オペレータアカウント ← 更新オペレータアカウント
		if (template.isNull(EKK0201D010CBSMsg.UPD_OPEACNT))
		{
			dataMap.put(prefix + "upd_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "upd_opeacnt", template.getString(EKK0201D010CBSMsg.UPD_OPEACNT));
		}

		// サービス契約内訳<eoモバイル>登録.無効フラグ ← 無効フラグ
		if (template.isNull(EKK0201D010CBSMsg.MK_FLG))
		{
			dataMap.put(prefix + "mk_flg", "");
		}
		else
		{
			dataMap.put(prefix + "mk_flg", template.getString(EKK0201D010CBSMsg.MK_FLG));
		}

		// エラー情報の設定
		editErrInfoEKK0201D010Msg(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;
	}

	/**
	 * サービス契約内訳＜eoモバイル＞登録のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @param prefix
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0201D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			String fixedText, String prefix) throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0201D010CBSMsg.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 inMap = (HashMap)(param.getData(fixedText));

		// サービス契約内訳<eoモバイル>登録.サービス契約番号 → サービス契約番号 のエラー情報返却
		if (!template.isNull(EKK0201D010CBSMsg.SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_kei_no_err"))
			{
				inMap.put(prefix + "svc_kei_no_err", template.getString(EKK0201D010CBSMsg.SVC_KEI_NO_ERR));
			}
		}
		// サービス契約内訳<eoモバイル>登録.申込明細番号 → 申込明細番号 のエラー情報返却
		if (!template.isNull(EKK0201D010CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_dtl_no_err"))
			{
				inMap.put(prefix + "mskm_dtl_no_err", template.getString(EKK0201D010CBSMsg.MSKM_DTL_NO_ERR));
			}
		}
		// サービス契約内訳<eoモバイル>登録.料金コースコード → 料金コースコード のエラー情報返却
		if (!template.isNull(EKK0201D010CBSMsg.PCRS_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pcrs_cd_err"))
			{
				inMap.put(prefix + "pcrs_cd_err", template.getString(EKK0201D010CBSMsg.PCRS_CD_ERR));
			}
		}
		// サービス契約内訳<eoモバイル>登録.料金プランコード → 料金プランコード のエラー情報返却
		if (!template.isNull(EKK0201D010CBSMsg.PPLAN_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pplan_cd_err"))
			{
				inMap.put(prefix + "pplan_cd_err", template.getString(EKK0201D010CBSMsg.PPLAN_CD_ERR));
			}
		}
		// サービス契約内訳<eoモバイル>登録.提供方式契約番号 → 提供方式契約番号 のエラー情報返却
		if (!template.isNull(EKK0201D010CBSMsg.TK_HOSHIKI_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "tk_hoshiki_kei_no_err"))
			{
				inMap.put(prefix + "tk_hoshiki_kei_no_err", template.getString(EKK0201D010CBSMsg.TK_HOSHIKI_KEI_NO_ERR));
			}
		}
		// サービス契約内訳<eoモバイル>登録.支払い方法継続フラグ → 支払い方法継続フラグ のエラー情報返却
		if (!template.isNull(EKK0201D010CBSMsg.PAYWAY_KEIZOKU_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "payway_keizoku_flg_err"))
			{
				inMap.put(prefix + "payway_keizoku_flg_err", template.getString(EKK0201D010CBSMsg.PAYWAY_KEIZOKU_FLG_ERR));
			}
		}
		// サービス契約内訳<eoモバイル>登録.WEBオプション追加不可フラグ → WEBオプション追加不可フラグ のエラー情報返却
		if (!template.isNull(EKK0201D010CBSMsg.WEB_OP_ADD_FAIL_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "web_op_add_fail_flg_err"))
			{
				inMap.put(prefix + "web_op_add_fail_flg_err", template.getString(EKK0201D010CBSMsg.WEB_OP_ADD_FAIL_FLG_ERR));
			}
		}
		// サービス契約内訳<eoモバイル>登録.業務連絡備考 → 業務連絡備考 のエラー情報返却
		if (!template.isNull(EKK0201D010CBSMsg.WORK_RRK_BIKO_ERR))
		{
			if (!inMap.containsKey(prefix + "work_rrk_biko_err"))
			{
				inMap.put(prefix + "work_rrk_biko_err", template.getString(EKK0201D010CBSMsg.WORK_RRK_BIKO_ERR));
			}
		}
		// サービス契約内訳<eoモバイル>登録.サービス利用開始希望年月日 → サービス利用開始希望年月日 のエラー情報返却
		if (!template.isNull(EKK0201D010CBSMsg.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(EKK0201D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR));
			}
		}
		// サービス契約内訳<eoモバイル>登録.予約適用開始希望年月日 → 予約適用開始希望年月日 のエラー情報返却
		if (!template.isNull(EKK0201D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "rsv_tsta_kibo_ymd_err"))
			{
				inMap.put(prefix + "rsv_tsta_kibo_ymd_err", template.getString(EKK0201D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR));
			}
		}
		// サービス契約内訳<eoモバイル>登録.試用加入年月日 → 試用加入年月日 のエラー情報返却
		if (!template.isNull(EKK0201D010CBSMsg.FTRIAL_KANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_kanyu_ymd_err"))
			{
				inMap.put(prefix + "ftrial_kanyu_ymd_err", template.getString(EKK0201D010CBSMsg.FTRIAL_KANYU_YMD_ERR));
			}
		}
		// サービス契約内訳<eoモバイル>登録.試用期間終了年月日 → 試用期間終了年月日 のエラー情報返却
		if (!template.isNull(EKK0201D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_prd_endymd_err"))
			{
				inMap.put(prefix + "ftrial_prd_endymd_err", template.getString(EKK0201D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR));
			}
		}
		// サービス契約内訳<eoモバイル>登録.本加入年月日 → 本加入年月日 のエラー情報返却
		if (!template.isNull(EKK0201D010CBSMsg.HONKANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_ymd_err", template.getString(EKK0201D010CBSMsg.HONKANYU_YMD_ERR));
			}
		}
		// サービス契約内訳<eoモバイル>登録.本加入移行期限年月日 → 本加入移行期限年月日 のエラー情報返却
		if (!template.isNull(EKK0201D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_iko_kigen_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_iko_kigen_ymd_err", template.getString(EKK0201D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR));
			}
		}
		// サービス契約内訳<eoモバイル>登録.違約金発生コード → 違約金発生コード のエラー情報返却
		if (!template.isNull(EKK0201D010CBSMsg.PNLTY_HASSEI_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pnlty_hassei_cd_err"))
			{
				inMap.put(prefix + "pnlty_hassei_cd_err", template.getString(EKK0201D010CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}
		// サービス契約内訳<eoモバイル>登録.異動区分 → 異動区分 のエラー情報返却
		if (!template.isNull(EKK0201D010CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "ido_div_err"))
			{
				inMap.put(prefix + "ido_div_err", template.getString(EKK0201D010CBSMsg.IDO_DIV_ERR));
			}
		}
		// サービス契約内訳<eoモバイル>登録.スポットログインSYSID → スポットログインSYSID のエラー情報返却
		if (!template.isNull(EKK0201D010CBSMsg.SPOT_LOGIN_SYSID_ERR))
		{
			if (!inMap.containsKey(prefix + "spot_login_sysid_err"))
			{
				inMap.put(prefix + "spot_login_sysid_err", template.getString(EKK0201D010CBSMsg.SPOT_LOGIN_SYSID_ERR));
			}
		}
		// サービス契約内訳<eoモバイル>登録.提供帯域コード → 提供帯域コード のエラー情報返却
		if (!template.isNull(EKK0201D010CBSMsg.TK_TAIIKI_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "tk_taiiki_cd_err"))
			{
				inMap.put(prefix + "tk_taiiki_cd_err", template.getString(EKK0201D010CBSMsg.TK_TAIIKI_CD_ERR));
			}
		}
		// サービス契約内訳<eoモバイル>登録.事務手数料自動適用要否 → 事務手数料自動適用要否 のエラー情報返却
		if (!template.isNull(EKK0201D010CBSMsg.RULE0059_AUTO_APLY_ERR))
		{
			if (!inMap.containsKey("rule0059_auto_aply_err"))
			{
				inMap.put("rule0059_auto_aply_err", template.getString(EKK0201D010CBSMsg.RULE0059_AUTO_APLY_ERR));
			}
		}
		
		return param;
	}

	
	/**
	 * リクエストパラメータのキーに対応する値を返却します。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText
	 * @param key 取得する値のキー
	 * @return 取得した値
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private String getMapValue(IRequestParameterReadWrite param, String fixedText, String key) throws RequestParameterException
	{
		HashMap inMap = (HashMap)(param.getData(fixedText));
		String result = (String)inMap.get(key);
		if ("".equals(result))
		{
			result = null;
		}

		return result;
	}

	/**
	 * 作業マップの値を取得します。
	 * 
	 * <br>
	 * @param param
	 * @param key
	 * @return 取得した値
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private String getWorkMapValue(IRequestParameterReadWrite param, String key) throws RequestParameterException
	{
		// 作業領域の取得
		Map workMap = (Map)param.getMappingWorkArea();

		HashMap inMap = null;

		if (workMap != null)
		{
			inMap = (HashMap)workMap.get(CC_WORK_AREA_NM);
		}
		else
		{
			inMap = null;
		}

		String result = null;
		if (inMap != null)
		{
			result = (String)inMap.get(key);
		}

		if ("".equals(result))
		{
			result = null;
		}

		return result;
	}

	/**
	 * 作業マップ（申込明細）の値を取得します。
	 * 
	 * <br>
	 * @param param
	 * @param key
	 * @return 取得した値
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private String getMskmDtlWorkMapValue(IRequestParameterReadWrite param, String key) throws RequestParameterException
	{
		// 作業領域の取得
		Map workMap = (Map)param.getMappingWorkArea();
		HashMap inMap = null;
		HashMap workDataMap_Mskm = null;
		String result = null;

		if (workMap != null)
		{
			workDataMap_Mskm = (HashMap)workMap.get(CC_WORK_AREA_NM_MSKM);
			if (workDataMap_Mskm != null)
			{
				ArrayList inList1 = ((ArrayList)workDataMap_Mskm.get("JKKAddMskmServiceCCWorkList"));
				int devCnt = inList1 != null ? inList1.size() : 0;
				for (int i = 0; i < devCnt; i++)
				{
					inMap = (HashMap)(inList1).get(i);

					if (inMap != null)
					{
						result = (String)inMap.get(key);
					}

					if ("".equals(result))
					{
						result = null;
					}
					else
					{
//						break;
					}
				}
			}
		}

		return result;
	}

	/**
	 * 作業マップ（契約者）の値を取得します。
	 * 
	 * <br>
	 * @param param
	 * @param key
	 * @return 取得した値
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private String getKeishaWorkMapValue(IRequestParameterReadWrite param, String key) throws RequestParameterException
	{
		// 作業領域の取得
		Map workMap = (Map)param.getMappingWorkArea();

		HashMap inMap = null;
		/* 契約者作業項目情報 */
		if (workMap != null)
		{
			inMap = (HashMap)workMap.get(CC_WORK_AREA_NM_KEISHA);
		}
		else
		{
			inMap = null;
		}

		String result = null;
		if (inMap != null)
		{
			result = (String)inMap.get(key);
		}

		if ("".equals(result))
		{
			result = null;
		}

		return result;
	}

	/**
	 * 作業マップ（支払方法登録）の値を取得します。
	 * 
	 * <br>
	 * @param param
	 * @param key
	 * @return 取得した値
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private String getPaywayWorkMapValue(IRequestParameterReadWrite param, String key) throws RequestParameterException
	{
		// 作業領域の取得
		Map workMap = (Map)param.getMappingWorkArea();

		HashMap inMap = null;
		/* 契約者作業項目情報 */
		if (workMap != null)
		{
			inMap = (HashMap)workMap.get(CC_WORK_AREA_NM_PAYWAY);
		}
		else
		{
			inMap = null;
		}

		String result = null;
		if (inMap != null)
		{
			result = (String)inMap.get(key);
		}

		if ("".equals(result))
		{
			result = null;
		}

		return result;
	}

	/**
	 * 単一CAANMsgのマッピング処理を行います。
	 * <br>
	 * @param paramMap
	 * @param template
	 * @return パラメータマップ
	 * @throws RequestParameterException
	 */
	private HashMap<String, Object> putParamMap(HashMap<String, Object> paramMap, CAANMsg template) throws RequestParameterException
	{
		CAANMsg[] templates = { template };
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}

	/**
	 * SCの実行ステータスの取得処理を行います。
	 * <br>
	 * @param param
	 * @return SCの実行ステータス
	 * @throws Exception
	 */
	private int getReturnCode(IRequestParameterReadWrite param) throws Exception
	{
		return Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
	}

	/**
	 * ＢＰチェック用の入力パラメータを作成する。
	 * <br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return ＢＰチェック用パラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public HashMap getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		Map<String, Object> ccParam = (Map<String, Object>)param.getData(fixedText);
		// パラメータが取得できない時はBPチェックをスキップ
		if (ccParam == null)
		{
			return JKKBpCommon.createBpNotCheckParam();
		}

		ArrayList<CAANMsg> msgList = new ArrayList<CAANMsg>();

		if (getMskmDtlWorkMapValue(param, "mskm_dtl_no_moba") == null)
		{
			// 申込明細登録
			msgList.add(editInEKK0021D010Msg(param, fixedText, PREFIX_MSKM_DTL));
		}

		// サービス契約<eoモバイル>登録
		msgList.add(editInEKK0121D010Msg(param, fixedText, PREFIX_MOBILE));

		if (getMapValue(param, fixedText, "kk0251_kaisen_tk_comp_cd") != null)
		{
			// サービス契約回線内訳登録
			msgList.add(editInEKK0251D010Msg(param, fixedText, PREFIX_SVCKEIKAISENUCWK));
		}

		// サービス契約内訳<eoモバイル>登録（Wifi用）
		if (getMapValue(param, fixedText, "kk0201_pcrs_cd") != null)
		{
			msgList.add(editInEKK0201D010Msg(param, fixedText, PREFIX_SVCKEIUCWK));
		}

		// UQ-WiMAXの場合
		if (getMapValue(param, fixedText, "kk020102_pcrs_cd") != null)
		{
			// サービス契約内訳<eoモバイル>登録（認証ID用）
			msgList.add(editInEKK0201D010Msg(param, fixedText, PREFIX_SVCKEIUCWK_NINSHOID));
		}

		// パラメータを纏める
		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;
	}

	/**
	 * ＢＰチェック結果を編集する。
	 * <br />
	 * @param param リクエストパラメータ
	 * @param templates サービスインターフェイス用のパラメータ配列
	 * @param returnCode リターンコード
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, Integer returnCode, String fixedText)
			throws Throwable
	{
		HashMap inMapChk = (HashMap)(param.getData(fixedText));
		if (inMapChk == null)
		{
			return JKKBpCommon.editErrorInfo(param, templates, returnCode);
		}

		int templateCount = 0;

		if (getMskmDtlWorkMapValue(param, "mskm_dtl_no_moba") == null)
		{
			// 申込明細登録
			editErrInfoEKK0021D010Msg(param, templates[templateCount++], returnCode, fixedText, PREFIX_MSKM_DTL);
		}

		// サービス契約<eoモバイル>登録
		editErrInfoEKK0121D010Msg(param, templates[templateCount++], returnCode, fixedText, PREFIX_MOBILE);

		if (getMapValue(param, fixedText, "kk0251_kaisen_tk_comp_cd") != null)
		{
			// サービス契約回線内訳登録
			editErrInfoEKK0251D010Msg(param, templates[templateCount++], returnCode, fixedText, PREFIX_SVCKEIKAISENUCWK);
		}

		// サービス契約内訳<eoモバイル>登録（Wifi用）
		if (getMapValue(param, fixedText, "kk0201_pcrs_cd") != null)
		{		
			editErrInfoEKK0201D010Msg(param, templates[templateCount++], returnCode, fixedText, PREFIX_SVCKEIUCWK);
		}


		// UQ-WiMAXの場合
		if (getMapValue(param, fixedText, "kk020102_pcrs_cd") != null)
		{	
			// サービス契約内訳<eoモバイル>登録（認証ID用）
			editErrInfoEKK0201D010Msg(param, templates[templateCount++], returnCode, fixedText, PREFIX_SVCKEIUCWK_NINSHOID);
		}


		return param;
	}
	
	/**
	 * オプションサービス契約登録部品の上りマッピング処理を行います。
	 * @param param
	 * @param fixedText
	 * @throws RequestParameterException
	 */
	private void editInAddOpSvcKei(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		HashMap inMap = (HashMap)param.getData(fixedText);
		
		// サービス契約番号
		inMap.put("svc_kei_no", svcKeiNo);
		inMap.put("kk0361_svc_kei_no", svcKeiNo);
		// SYSID
		if (inMap.get("kk0361_sysid") == null || "".equals(inMap.get("kk0361_sysid")))
		{
			if (getKeishaWorkMapValue(param, "sysid") != null)
			{
				inMap.put("kk0361_sysid", getKeishaWorkMapValue(param, "sysid"));
			}
		}
		// 申込明細番号
		inMap.put("kk0361_mskm_dtl_no", mskmDtlNo);
		// 請求契約番号
		if (inMap.get("kk0361_seiky_kei_no") == null || "".equals(inMap.get("kk0361_seiky_kei_no")))
		{
			if (getPaywayWorkMapValue(param, "seiky_kei_no") != null)
			{
				inMap.put("kk0361_seiky_kei_no", getPaywayWorkMapValue(param, "seiky_kei_no"));
			}
			else
			{
				inMap.put("kk0361_seiky_kei_no", inMap.get("seiky_kei_no"));
			}
		}
	}
	
	/**
	 * 機器提供サービス契約登録部品の上りマッピング処理を行います。
	 * @param param
	 * @param fixedText
	 * @param index
	 * @param svcListNm
	 * @param prefix
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void editInKktkSvcKei(IRequestParameterReadWrite param, String fixedText, int index, String svcListNm, String prefix)
	throws RequestParameterException
	{
		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)param.getData(fixedText);
		
		HashMap svcMap = null;
		ArrayList inList = (ArrayList)(inMap.get(svcListNm));
		if (inList == null)
		{
			svcMap = inMap;
		}
		else
		{
			svcMap = (HashMap)inList.get(index);
		}
		
		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}
		
		HashMap ccWorkAreaNmMap = (HashMap)workMap.get(CC_WORK_AREA_NM);
		
		svcMap.put(JCMConstants.FUNC_CODE_KEY, inMap.get(JCMConstants.FUNC_CODE_KEY));
		
		// サービス契約番号
		svcMap.put(prefix + "svc_kei_no", (String)ccWorkAreaNmMap.get("svc_kei_no"));
		
		// サービス契約内訳番号
		svcMap.put(prefix + "svc_kei_ucwk_no", (String)ccWorkAreaNmMap.get("svc_kei_ucwk_no"));

		// SYSID
		if (inMap == null || inMap.get(prefix + "sysid") == null || "".equals(inMap.get(prefix + "sysid")))
		{
			if (getKeishaWorkMapValue(param, "sysid") != null)
			{
				svcMap.put(prefix + "sysid", getKeishaWorkMapValue(param, "sysid"));
			}
		}
		else
		{
			svcMap.put(prefix + "sysid", (String)inMap.get(prefix + "sysid"));
		}

		// 申込明細番号
		if (inMap == null || inMap.get(prefix + "mskm_dtl_no") == null || "".equals(inMap.get(prefix + "mskm_dtl_no")))
		{
			if (ccWorkAreaNmMap != null && ccWorkAreaNmMap.get("mskm_dtl_no") != null && !"".equals(ccWorkAreaNmMap.get("mskm_dtl_no")))
			{
				svcMap.put(prefix + "mskm_dtl_no", ccWorkAreaNmMap.get("mskm_dtl_no"));
			}
			else if (getMskmDtlWorkMapValue(param, "mskm_dtl_no_moba") == null)
			{
			}
			else
			{
				svcMap.put(prefix + "mskm_dtl_no", getMskmDtlWorkMapValue(param, "mskm_dtl_no_moba"));
			}
		}
		else
		{
			svcMap.put(prefix + "mskm_dtl_no", (String)inMap.get(prefix + "mskm_dtl_no"));
		}

		// 請求契約番号
		if (inMap == null || inMap.get(prefix + "seiky_kei_no") == null || "".equals(inMap.get(prefix + "seiky_kei_no")))
		{
			if (getPaywayWorkMapValue(param, "seiky_kei_no") != null)
			{
				svcMap.put(prefix + "seiky_kei_no", getPaywayWorkMapValue(param, "seiky_kei_no"));
			}
		}
		else
		{
			svcMap.put(prefix + "seiky_kei_no", (String)inMap.get(prefix + "seiky_kei_no"));
		}

		// 更新年月日時分秒（更新前）
		String svcKeiNo = getWorkMapValue(param, "svc_kei_no");
		String lastDtm = JKKBpCommon.getLastDtmBySvcKeiNo(param, svcKeiNo, (String)(inMap == null ? null : inMap.get(prefix + "upd_dtm_bf")));
		if (lastDtm == null)
		{
			if (inMap == null || inMap.get(prefix + "upd_dtm_bf") == null || "".equals(inMap.get(prefix + "upd_dtm_bf")))
			{
			}
			else
			{
				svcMap.put(prefix + "upd_dtm_bf", (String)inMap.get(prefix + "upd_dtm_bf"));
			}
		}
		else
		{
			svcMap.put(prefix + "upd_dtm_bf", lastDtm);
		}
	}
	
	/**
	 * 機器提供サービス契約登録部品の下りマッピング処理を行います。
	 * @param param
	 * @param fixedText
	 * @param index
	 * @param svcListNm
	 * @param prefix
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void editOutKktkSvcKei(IRequestParameterReadWrite param, String fixedText, int index, String svcListNm, String prefix)
	throws RequestParameterException
	{
		ArrayList dataList = (ArrayList)((HashMap)param.getData(fixedText)).get(svcListNm);
		if (dataList == null)
		{
			dataList = new ArrayList();
			((HashMap)param.getData(fixedText)).put(svcListNm, dataList);
		}
		/* 業務データ設定 */
		HashMap dataMap = (HashMap)dataList.get(index);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}
		
		// 更新年月日時分秒
		if (!(dataMap == null || dataMap.get(prefix + "upd_dtm") == null || "".equals(dataMap.get(prefix + "upd_dtm"))))
		{
			String lastDtm = (String)dataMap.get(prefix + "upd_dtm");
			JKKBpCommon.setLastDtmBySvcKeiNo(param, svcKeiNo, lastDtm);
			
		}
	}	
}
