/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKAdchgAddSvcKeiNetCC
*   ソースファイル名：JKKAdchgAddSvcKeiNetCC.java
*   作成者          ：富士通
*   日付            ：2011年10月09日
*＜機能概要＞
*   eo光ネット登録コモンコンポーネント部品
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v4.00.00    2012/10/09   FJ）        新規作成
*  v26.00.00    2016/07/06   FJ）松本    【ANK-2822-00-00】非継続住所変更案件における、長期継続利用割引の起算日設定改善対応
*
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.JKKAdchgConstCC;
import com.fujitsu.futurity.bp.x21.bpm.ServiceComponentRequestInvoker;
import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.CCException;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.mapping.bp.common.TemplateErrorUtil;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;
import com.sun.enterprise.tools.common.util.StringUtils;

import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EKK0021D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0091D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0171D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0241D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0391D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0411D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0891A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1021C011CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1021C011CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1021D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg1List;

/**
 * eo光ネット登録コモンコンポーネント部品です。
 * <br>
 * @author 富士通
 */
public class JKKAdchgAddSvcKeiNetCC extends AbstractCommonComponent
{
	/** リターンメッセージ */
	private static final String RETURN_MESSAGE_STRING = "RETURN_MESSAGE_";
	/** リターンメッセージ */
	private static final String RETURN_MESSAGE_FORMAT = "%1$04d";

	/** 作業マップ名 */
	private static final String CC_WORK_AREA_NAME = "JKKAddSvcKeiNetCCWork";
	/** 作業マップ名 */
	private static final String CC_WORK_AREA_NAME_KEISHA = "JKKAddKeishaServiceCCWork";
	/** 作業マップ名 */
	private static final String CC_WORK_AREA_NAME_MSKM = "JKKAddMskmServiceCCWork";
	/** 作業マップ名 */
	private static final String CC_WORK_AREA_NAME_MSKM_LIST = "JKKAddMskmServiceCCWorkList";
	/** 作業マップ名 */
	private static final String CC_WORK_AREA_NAME_PAYWAY = "JKKAddSvcPaywayCCWork";
	/** ファミリーパックルーター自動登録マップ */
	private static final String CC_WORK_AREA_NAME_KKSV008027 = "KKSV008027CC";
	/** 割引サービス契約自動登録マップ */
	private static final String CC_WORK_AREA_NAME_KKSV008028 = "KKSV008028CC";
	/** ファミリーパックルーター自動登録マップ */
	private static final String CC_WORK_AREA_NAME_KKSV008252 = "KKSV008252CC";
	/** 割引サービス契約自動登録マップ */
	private static final String CC_WORK_AREA_NAME_KKSV008253 = "KKSV008253CC";

	/** エラー用 */
	private static final String SC_ERROR_STRING = "サービスコンポーネントエラー";

	/*
	 *  各サービスIFのマップ用プレフィックス
	 */
	/** 申込明細登録用プレフィックス */
	private static final String PREFIX_MSKM_DTL = "kk0021_";
	/** サービス契約＜eo光ネット＞登録用プレフィックス */
	private static final String PREFIX_NET = "kk0091_";
	/** サービス契約内訳＜eo光ネット＞登録用プレフィックス */
	private static final String PREFIX_NET_UCWK = "kk0171_";
	/** 機器提供サービス契約登録用プレフィックス */
	private static final String PREFIX_KIKI = "kk0341_";
	/** 申込明細登録（リモートサポートプラス用）用プレフィックス */
	private static final String PREFIX_REMOSUP_MSKM_DTL = "kk002101_";
	/** オプションサービス契約＜サポート＞登録（リモートサポートプラス用）用プレフィックス */
	private static final String PREFIX_OPT_SUPPORT = "kk0391_";
	/** 割引サービス契約登録用プレフィックス */
	private static final String PREFIX_WRIB = "kk0451_";
	/** サブオプションサービス契約＜ISP＞登録（ファミリーパックメールウィルスチェック用）用プレフィックス */
	private static final String PREFIX_FAMILY_VIRUS = "kk0411_";
	
	/** 割引サービス契約登録リスト名 */
	private static final String WRIB_ADD_LIST = "wrib_add_list";
	/** オプションサービス契約<ISP>登録リスト名 */
	private static final String OP_ISP_ADD_LIST = "op_isp_add_list";
	/** 機器提供サービス契約登録リスト名 */
	private static final String KKTK_ADD_LIST = "kktk_add_list";
	/** 割賦契約登録リスト名 */
	private static final String KAP_ADD_LIST = "kap_add_list";
	
	/** サービス契約番号 */
	private String svcKeiNo = null;
	/** 申込明細番号 */
	private String mskmDtlNo = null;
	/** 申込番号 */
	private String mskmNo = null;

	/**
	 * リクエストパラメータのキーに対応する値を返却します。
	 * 
	 * <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_NAME);
		}

		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 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_NAME_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 getMskmWorkMapValue(IRequestParameterReadWrite param, String key) throws RequestParameterException
	{
		// 作業領域の取得
		Map workMap = (Map)param.getMappingWorkArea();

		HashMap inMap = null;
		/* 申込作業項目情報 */
		if (workMap != null)
		{
			inMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_MSKM);
		}
		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_NAME_MSKM);
			if (workDataMap_Mskm != null)
			{
				ArrayList inList1 = ((ArrayList)workDataMap_Mskm.get(CC_WORK_AREA_NAME_MSKM_LIST));
				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 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_NAME_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 handle
	 * @param param
	 * @param fixedText
	 * @return パラメータマップ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
			throws RequestParameterException
	{
		ArrayList<CAANMsg> msgList = new ArrayList<CAANMsg>();

		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)(param.getData(fixedText));
		if (inMap == null)
		{
			return null;
		}

		if (getMskmDtlWorkMapValue(param, "mskm_dtl_no_net") == null)
		{
			// 申込明細登録
			msgList.add(editInEKK0021D010Msg(param, fixedText, PREFIX_MSKM_DTL));
		}

		// サービス契約＜eo光ネット＞登録
		msgList.add(editInEKK0091D010Msg(param, fixedText, PREFIX_NET));

		// サービス契約内訳＜eo光ネット＞登録
		msgList.add(editInEKK0171D010Msg(param, fixedText, PREFIX_NET_UCWK));

		if (getMapValue(param, fixedText, "kk0391_op_svc_cd") != null)
		{
			// オプションサービス契約＜サポート＞登録（リモートサポートプラス用）
			msgList.add(editInEKK0391D010Msg(param, fixedText, PREFIX_OPT_SUPPORT));
		}

		if (getMapValue(param, fixedText, "kk0411_sbop_svc_cd") != null)
		{
			// サブオプションサービス契約＜ISP＞登録（ファミリーパックメールウィルスチェック用）
			msgList.add(editInEKK0411D010Msg(param, fixedText, PREFIX_FAMILY_VIRUS));
		}

		// サービス契約回線内訳番号がわたされていれば回線対象サービス契約登録の登録を行う
		if (inMap != null && inMap.get("kk0241_svc_kei_kaisen_ucwk_no") != null && !"".equals(inMap.get("kk0241_svc_kei_kaisen_ucwk_no")))
		{
			// 回線対象サービス契約登録
			msgList.add(editInEKK0241D010Msg(param, fixedText));
		}

		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;
	}

	/**
	 * SCの実行ステータスの取得処理を行います。
	 * <br>
	 * @param param
	 * @return SCの実行ステータス
	 * @throws Exception
	 */
	private int getReturnCode(IRequestParameterReadWrite param) throws Exception
	{
		return Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
	}

	/**
	 * eo光ネット登録処理を行います。
	 * <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite addSvcKeiNet(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		HashMap<String, Object> paramMap = setSCInputCommonData(param, new HashMap<String, Object>());
		Map<?, ?> result = null;
		CAANMsg template = null;

		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)(param.getData(fixedText));
		if (inMap == null)
		{
			return param;
		}

		if (getMskmDtlWorkMapValue(param, "mskm_dtl_no_net") == null)
		{
			// 申込明細登録
			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 = editInEKK0091D010Msg(param, fixedText, PREFIX_NET); // 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
		editOutEKK0091D010Msg(result, param, fixedText, PREFIX_NET); // 下りマッピング
		if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
		{ // ステータスが単項目エラー以上であれば例外をスロー
			throw new CCException(SC_ERROR_STRING, new Exception());
		}

		// サービス契約内訳＜eo光ネット＞登録
		template = editInEKK0171D010Msg(param, fixedText, PREFIX_NET_UCWK); // 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
		editOutEKK0171D010Msg(result, param, fixedText, PREFIX_NET_UCWK); // 下りマッピング
		if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
		{ // ステータスが単項目エラー以上であれば例外をスロー
			throw new CCException(SC_ERROR_STRING, new Exception());
		}
		
// OM-2013-0003517対応 20131026 星野 ADD START
// 下から移動
		HashMap<String, Object> KKSV0674005CC = (HashMap<String, Object>)param.getData("KKSV0674005CC");
		String jdgChgDivNet = (String)KKSV0674005CC.get("jdg_chg_div_net");
		
// OM-2013-0003924対応 20131106 星野 DEL START
//		// 解約/新規の場合はデフォルトオプションは登録不要
//		if (!"4".equals(jdgChgDivNet)){
// OM-2013-0003924対応 20131106 星野 DEL END
// OM-2013-0003517対応 20131026 星野 ADD END
		
		// オプションサービス契約登録部品呼び出し
		editInAddOpSvcKei(param, fixedText);
// OM-2013-0003924対応 20131106 星野 MOD START
// オプション引継の考慮のため、住所変更専用部品に差し替え
//		JKKBpCommon.addOpSvcKei(handle, param, fixedText);
		
		JKKAdchgAplyOpSvcKeiUtil aplyOpSvcKeiUtil = new JKKAdchgAplyOpSvcKeiUtil();
		aplyOpSvcKeiUtil.addOpSvcKei(handle, param, fixedText);
// OM-2013-0003924対応 20131106 星野 MOD END

		// オプションサービス契約<ISP>登録部品呼び出し
		editInAddOpSvcKeiISP(param, fixedText);
		JKKBpCommon.addOpSvcKeiISP(handle, param, fixedText, this.svcKeiNo);
// OM-2013-0003924対応 20131106 星野 DEL START
//// OM-2013-0003517対応 20131026 星野 ADD START
//		}
//// OM-2013-0003517対応 20131026 星野 ADD END
// OM-2013-0003924対応 20131106 星野 DEL END

		// サービス契約回線内訳番号がわたされていれば回線対象サービス契約登録の登録を行う
		if (inMap != null && inMap.get("kk0241_svc_kei_kaisen_ucwk_no") != null && !"".equals(inMap.get("kk0241_svc_kei_kaisen_ucwk_no")))
		{
			// 回線対象サービス契約登録
			template = editInEKK0241D010Msg(param, fixedText); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editOutEKK0241D010Msg(result, param, fixedText); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{ // ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}

		ArrayList dataList1 = null;
		int devCnt1 = 0;
		if(null != inMap.get(KKTK_ADD_LIST))
		{
			dataList1 = (ArrayList)inMap.get(KKTK_ADD_LIST);
			devCnt1 = ((ArrayList)inMap.get(KKTK_ADD_LIST)).size();
			for (int i = 0; i < devCnt1; i++)
			{
				// 機器提供サービス契約登録
				editInAddKktkSvcKei(param, fixedText, i, KKTK_ADD_LIST, PREFIX_KIKI);
				JKKBpCommon.addKktkSvcKei(handle, param, (HashMap)dataList1.get(i), PREFIX_KIKI);
				editOutAddKktkSvcKei(param, fixedText, i, KKTK_ADD_LIST, PREFIX_KIKI);
			}
		}

		if (getMapValue(param, fixedText, "kk0391_op_svc_cd") != null)
		{
			// オプションサービス契約＜サポート＞登録（リモートサポートプラス用）
			template = editInEKK0391D010Msg(param, fixedText, PREFIX_OPT_SUPPORT); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editOutEKK0391D010Msg(result, param, fixedText, PREFIX_OPT_SUPPORT); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{ // ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}

		if (getMapValue(param, fixedText, "kk0411_sbop_svc_cd") != null)
		{
			// サブオプションサービス契約＜ISP＞登録（ファミリーパックメールウィルスチェック用）
			template = editInEKK0411D010Msg(param, fixedText, PREFIX_FAMILY_VIRUS); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editOutEKK0411D010Msg(result, param, fixedText, PREFIX_FAMILY_VIRUS); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{ // ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}

		ArrayList dataList = null;
		int devCnt = 0;
		if(null != inMap.get(WRIB_ADD_LIST))
		{
			dataList = (ArrayList)inMap.get(WRIB_ADD_LIST);
			devCnt = ((ArrayList)inMap.get(WRIB_ADD_LIST)).size();
			for (int i = 0; i < devCnt; i++)
			{
				// 割引サービス契約登録
				editInAddWribSvcKei(param, fixedText, i, WRIB_ADD_LIST, PREFIX_WRIB);
				JKKBpCommon.addWribSvcKei(handle, param, (HashMap)dataList.get(i), PREFIX_WRIB);
				editOutAddWribSvcKei(param, fixedText, i, WRIB_ADD_LIST, PREFIX_WRIB);
			}
		}

		// 割賦契約登録部品呼び出し
		editInAddkapKei(param, fixedText);
		JKKBpCommon.addKapKei(handle, param, fixedText);

		// ファミリーパック自動登録用マッピングを行います。
		setFamipaData(param);
		
// OM-2013-0003517対応 20131026 星野 DEL START
// 上へ移動
//		HashMap<String, Object> KKSV0674005CC = (HashMap<String, Object>)param.getData("KKSV0674005CC");
//		String jdgChgDivNet = (String)KKSV0674005CC.get("jdg_chg_div_net");
// OM-2013-0003517対応 20131026 星野 DEL END
		if (!"4".equals(jdgChgDivNet))
		{
// ST2-2013-0001613対応 START
			// 一時金設定処理
//			addTempChrg(param, fixedText, handle, null);
			
			// 一時金設定処理(標準工事費)
			String tkhosiki_cd = (String)inMap.get("kk0091_tk_hoshiki_kei_no");
			addTempChrg(param, fixedText, handle, tkhosiki_cd);
// ST2-2013-0001613対応 END
		}		
		// 進捗吐き出し
		writePgr(param, fixedText, handle);
		
		return param;
	}

	/**
	 * SCインプット共通データ設定処理を行います。
	 * <br>
	 * @param param
	 * @param paramMap
	 * @return パラメータマップ
	 * @throws RequestParameterException
	 */
	private HashMap<String, Object> setSCInputCommonData(IRequestParameterReadWrite param, HashMap<String, Object> paramMap)
			throws RequestParameterException
	{
		/* SCインプット共通データ */
		// **********************************************
		// 【取得元：電文ヘッダ(ヘッダ)】
		// **********************************************
		// 電文ID
		paramMap.put(JCMConstants.TRANZACTION_ID_KEY, param.getTelegramID());
		// ユースケースID
		paramMap.put(JCMConstants.USECASE_ID_KEY, param.getUsecaseID());
		// オペレーションID
		paramMap.put(JCMConstants.OPERATION_ID_KEY, param.getOperationID());
		// サービス呼び出し区分
		paramMap.put(JCMConstants.CALL_TYPE_KEY, param.getCallType());

		// **********************************************
		// 【取得元：ユーザエリア(コントロールマップ)】
		// **********************************************
		// 依頼先ホスト名
		paramMap.put(JCMConstants.CLIENT_HOST_NAME_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTNAME));
		// 依頼元IPアドレス
		paramMap.put(JCMConstants.CLIENT_IP_ADDRESS_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTIP));
		// 依頼元画面ID
		paramMap.put(JCMConstants.INVOKE_GAMEN_ID_KEY, param.getControlMapData(SCControlMapKeys.REQ_VIEWID));
		// オペレータID
		paramMap.put(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));

		return paramMap;
	}

	/**
	 * 単一CAANMsgのマッピング処理を行います。
	 * <br>
	 * @param paramMap
	 * @param template
	 * @return パラメータマップ
	 * @throws RequestParameterException
	 */
	private HashMap<String, Object> putParamMap(HashMap<String, Object> paramMap, CAANMsg template) throws RequestParameterException
	{
		CAANMsg[] templates = { template };
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}

	/**
	 * 申込明細登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @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")))
		{
			if (getMskmWorkMapValue(param, "mskm_no") == null)
			{
				template.setNull(EKK0021D010CBSMsg.MSKM_NO);
			}
			else
			{
				template.set(EKK0021D010CBSMsg.MSKM_NO, getMskmWorkMapValue(param, "mskm_no"));
				mskmNo = getMskmWorkMapValue(param, "mskm_no");
			}
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKM_NO, (String)inMap.get(prefix + "mskm_no"));
			mskmNo = (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"));
		}

		// 更新年月日時分秒(更新前)
		String lastDtm = JKKBpCommon.getLastDtmByMskm(param, (String)inMap.get(prefix + "upd_dtm_bf"));
		template.set(EKK0021D010CBSMsg.UPD_DTM_BF, lastDtm);
		
		// 申込書明細番号
		if (inMap == null || inMap.get(prefix + "mskmsho_dtl_no") == null || "".equals(inMap.get(prefix + "mskmsho_dtl_no")))
		{
			template.setNull(EKK0021D010CBSMsg.MSKMSHO_DTL_NO);
		}
		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;
	}

	/**
	 * サービス契約＜eo光ネット＞登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0091D010Msg(IRequestParameterReadWrite param, String fixedText, String prefix) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0091D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0091D010CBSMsg.TEMPLATEID, "EKK0091D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0091D010CBSMsg.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);

		// 作業領域の取得
		Map workMap = (Map)param.getMappingWorkArea();

		HashMap inMap = null;
		/* 作業項目情報 */
		if (workMap != null)
		{
			inMap = (HashMap)workMap.get(CC_WORK_AREA_NAME);
		}
		else
		{
			inMap = null;
		}

		// 作業マップ.申込明細番号
		if (inMap == null || inMap.get("mskm_dtl_no") == null || "".equals(inMap.get("mskm_dtl_no")))
		{
			if (getMskmDtlWorkMapValue(param, "mskm_dtl_no_net") == null)
			{
				template.setNull(EKK0091D010CBSMsg.MSKM_DTL_NO);
			}
			else
			{
				template.set(EKK0091D010CBSMsg.MSKM_DTL_NO, (String)getMskmDtlWorkMapValue(param, "mskm_dtl_no_net"));
			}

		}
		else
		{
			template.set(EKK0091D010CBSMsg.MSKM_DTL_NO, (String)inMap.get("mskm_dtl_no"));
		}

		/* ユーザデータ情報 */
		inMap = (HashMap)(param.getData(fixedText));

		// 機能コード
		template.set(EKK0091D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// SYSID　
		if (inMap == null || inMap.get(prefix + "sysid") == null || "".equals(inMap.get(prefix + "sysid")))
		{
			if (getKeishaWorkMapValue(param, "sysid") == null)
			{
				template.setNull(EKK0091D010CBSMsg.SYSID);
			}
			else
			{
				template.set(EKK0091D010CBSMsg.SYSID, getKeishaWorkMapValue(param, "sysid"));
			}
		}
		else
		{
			template.set(EKK0091D010CBSMsg.SYSID, (String)inMap.get(prefix + "sysid"));
		}

		// サービスコード
		if (inMap == null || inMap.get(prefix + "svc_cd") == null || "".equals(inMap.get(prefix + "svc_cd")))
		{
			template.setNull(EKK0091D010CBSMsg.SVC_CD);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.SVC_CD, (String)inMap.get(prefix + "svc_cd"));
		}

		// 面開発案件番号
		if (inMap == null || inMap.get(prefix + "menkaihat_anken_no") == null || "".equals(inMap.get(prefix + "menkaihat_anken_no")))
		{
			template.setNull(EKK0091D010CBSMsg.MENKAIHAT_ANKEN_NO);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.MENKAIHAT_ANKEN_NO, (String)inMap.get(prefix + "menkaihat_anken_no"));
		}

		// 料金グループコード
		if (inMap == null || inMap.get(prefix + "prc_grp_cd") == null || "".equals(inMap.get(prefix + "prc_grp_cd")))
		{
			template.setNull(EKK0091D010CBSMsg.PRC_GRP_CD);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.PRC_GRP_CD, (String)inMap.get(prefix + "prc_grp_cd"));
		}

		// 料金コースコード
		if (inMap == null || inMap.get(prefix + "pcrs_cd") == null || "".equals(inMap.get(prefix + "pcrs_cd")))
		{
			template.setNull(EKK0091D010CBSMsg.PCRS_CD);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.PCRS_CD, (String)inMap.get(prefix + "pcrs_cd"));
		}

		// 料金プランコード
		if (inMap == null || inMap.get(prefix + "pplan_cd") == null || "".equals(inMap.get(prefix + "pplan_cd")))
		{
			template.setNull(EKK0091D010CBSMsg.PPLAN_CD);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.PPLAN_CD, (String)inMap.get(prefix + "pplan_cd"));
		}

		// 提供方式契約番号
		if (inMap == null || inMap.get(prefix + "tk_hoshiki_kei_no") == null || "".equals(inMap.get(prefix + "tk_hoshiki_kei_no")))
		{
			template.setNull(EKK0091D010CBSMsg.TK_HOSHIKI_KEI_NO);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.TK_HOSHIKI_KEI_NO, (String)inMap.get(prefix + "tk_hoshiki_kei_no"));
		}

		// サービス利用開始希望年月日
		if (inMap == null || inMap.get(prefix + "svc_use_sta_kibo_ymd") == null || "".equals(inMap.get(prefix + "svc_use_sta_kibo_ymd")))
		{
			template.setNull(EKK0091D010CBSMsg.SVC_USE_STA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.SVC_USE_STA_KIBO_YMD, (String)inMap.get(prefix + "svc_use_sta_kibo_ymd"));
		}

		// 予約適用開始希望年月日
		if (inMap == null || inMap.get(prefix + "rsv_tsta_kibo_ymd") == null || "".equals(inMap.get(prefix + "rsv_tsta_kibo_ymd")))
		{
			template.setNull(EKK0091D010CBSMsg.RSV_TSTA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.RSV_TSTA_KIBO_YMD, (String)inMap.get(prefix + "rsv_tsta_kibo_ymd"));
		}

		// ID速報書出力要否
		if (inMap == null || inMap.get(prefix + "id_sokhosho_output_yh") == null || "".equals(inMap.get(prefix + "id_sokhosho_output_yh")))
		{
			template.setNull(EKK0091D010CBSMsg.ID_SOKHOSHO_OUTPUT_YH);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.ID_SOKHOSHO_OUTPUT_YH, (String)inMap.get(prefix + "id_sokhosho_output_yh"));
		}

		// 支払方法継続フラグ
		if (inMap == null || inMap.get(prefix + "payway_keizoku_flg") == null || "".equals(inMap.get(prefix + "payway_keizoku_flg")))
		{
			template.setNull(EKK0091D010CBSMsg.PAYWAY_KEIZOKU_FLG);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.PAYWAY_KEIZOKU_FLG, (String)inMap.get(prefix + "payway_keizoku_flg"));
		}

		// 試用加入年月日
		if (inMap == null || inMap.get(prefix + "ftrial_kanyu_ymd") == null || "".equals(inMap.get(prefix + "ftrial_kanyu_ymd")))
		{
			template.setNull(EKK0091D010CBSMsg.FTRIAL_KANYU_YMD);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.FTRIAL_KANYU_YMD, (String)inMap.get(prefix + "ftrial_kanyu_ymd"));
		}

		// 試用期間終了年月日
		if (inMap == null || inMap.get(prefix + "ftrial_prd_endymd") == null || "".equals(inMap.get(prefix + "ftrial_prd_endymd")))
		{
			template.setNull(EKK0091D010CBSMsg.FTRIAL_PRD_ENDYMD);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.FTRIAL_PRD_ENDYMD, (String)inMap.get(prefix + "ftrial_prd_endymd"));
		}

		// 本加入年月日
		if (inMap == null || inMap.get(prefix + "honkanyu_ymd") == null || "".equals(inMap.get(prefix + "honkanyu_ymd")))
		{
			template.setNull(EKK0091D010CBSMsg.HONKANYU_YMD);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.HONKANYU_YMD, (String)inMap.get(prefix + "honkanyu_ymd"));
		}

		// 本加入移行期限年月日
		if (inMap == null || inMap.get(prefix + "honkanyu_iko_kigen_ymd") == null || "".equals(inMap.get(prefix + "honkanyu_iko_kigen_ymd")))
		{
			template.setNull(EKK0091D010CBSMsg.HONKANYU_IKO_KIGEN_YMD);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.HONKANYU_IKO_KIGEN_YMD, (String)inMap.get(prefix + "honkanyu_iko_kigen_ymd"));
		}

		// 予約適用年月日
		if (inMap == null || inMap.get(prefix + "rsv_aply_ymd") == null || "".equals(inMap.get(prefix + "rsv_aply_ymd")))
		{
			template.setNull(EKK0091D010CBSMsg.RSV_APLY_YMD);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.RSV_APLY_YMD, (String)inMap.get(prefix + "rsv_aply_ymd"));
		}

		// 予約適用コード
		if (inMap == null || inMap.get(prefix + "rsv_aply_cd") == null || "".equals(inMap.get(prefix + "rsv_aply_cd")))
		{
			template.setNull(EKK0091D010CBSMsg.RSV_APLY_CD);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.RSV_APLY_CD, (String)inMap.get(prefix + "rsv_aply_cd"));
		}

		// レター発送仕分区分
		if (inMap == null || inMap.get(prefix + "letter_hasso_shiwake_div") == null || "".equals(inMap.get(prefix + "letter_hasso_shiwake_div")))
		{
			template.setNull(EKK0091D010CBSMsg.LETTER_HASSO_SHIWAKE_DIV);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.LETTER_HASSO_SHIWAKE_DIV, (String)inMap.get(prefix + "letter_hasso_shiwake_div"));
		}

		// サンキューレター送付先コード
		if (inMap == null || inMap.get(prefix + "thnx_letter_shs_cd") == null || "".equals(inMap.get(prefix + "thnx_letter_shs_cd")))
		{
			template.setNull(EKK0091D010CBSMsg.THNX_LETTER_SHS_CD);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.THNX_LETTER_SHS_CD, (String)inMap.get(prefix + "thnx_letter_shs_cd"));
		}

		// WEBオプション追加不可フラグ
		if (inMap == null || inMap.get(prefix + "web_op_add_fail_flg") == null || "".equals(inMap.get(prefix + "web_op_add_fail_flg")))
		{
			template.setNull(EKK0091D010CBSMsg.WEB_OP_ADD_FAIL_FLG);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.WEB_OP_ADD_FAIL_FLG, (String)inMap.get(prefix + "web_op_add_fail_flg"));
		}

		// 変更元法人サービス契約受付番号
		if (inMap == null || inMap.get(prefix + "chge_mt_hojinsvkei_uk_no") == null || "".equals(inMap.get(prefix + "chge_mt_hojinsvkei_uk_no")))
		{
			template.setNull(EKK0091D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NO);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NO, (String)inMap.get(prefix + "chge_mt_hojinsvkei_uk_no"));
		}

		// 変更元法人サービス契約受付番号子
		if (inMap == null || inMap.get(prefix + "chge_mt_hojinsvkei_uk_nopt") == null || "".equals(inMap.get(prefix + "chge_mt_hojinsvkei_uk_nopt")))
		{
			template.setNull(EKK0091D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NOPT);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NOPT, (String)inMap.get(prefix + "chge_mt_hojinsvkei_uk_nopt"));
		}

		// 変更元法人eo読替サービス契約番号
		if (inMap == null || inMap.get(prefix + "chmt_hjin_eo_ykae_svkei_no") == null || "".equals(inMap.get(prefix + "chmt_hjin_eo_ykae_svkei_no")))
		{
			template.setNull(EKK0091D010CBSMsg.CHMT_HJIN_EO_YKAE_SVKEI_NO);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.CHMT_HJIN_EO_YKAE_SVKEI_NO, (String)inMap.get(prefix + "chmt_hjin_eo_ykae_svkei_no"));
		}

		// 違約金発生コード
		if (inMap == null || inMap.get(prefix + "pnlty_hassei_cd") == null || "".equals(inMap.get(prefix + "pnlty_hassei_cd")))
		{
			template.setNull(EKK0091D010CBSMsg.PNLTY_HASSEI_CD);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.PNLTY_HASSEI_CD, (String)inMap.get(prefix + "pnlty_hassei_cd"));
		}

		// 異動区分
		if (inMap == null || inMap.get(prefix + "ido_div") == null || "".equals(inMap.get(prefix + "ido_div")))
		{
			template.setNull(EKK0091D010CBSMsg.IDO_DIV);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.IDO_DIV, (String)inMap.get(prefix + "ido_div"));
		}

		// 紹介コード
		if (inMap == null || inMap.get(prefix + "intr_cd") == null || "".equals(inMap.get(prefix + "intr_cd")))
		{
			template.setNull(EKK0091D010CBSMsg.INTR_CD);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.INTR_CD, (String)inMap.get(prefix + "intr_cd"));
		}

		// 課金開始年月日補正有無
		if (inMap == null || inMap.get(prefix + "chrg_sta_ymd_hosei_um") == null || "".equals(inMap.get(prefix + "chrg_sta_ymd_hosei_um")))
		{
			template.setNull(EKK0091D010CBSMsg.CHRG_STA_YMD_HOSEI_UM);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.CHRG_STA_YMD_HOSEI_UM, (String)inMap.get(prefix + "chrg_sta_ymd_hosei_um"));
		}

		// 業務連絡備考
		if (inMap == null || inMap.get(prefix + "work_rrk_biko") == null || "".equals(inMap.get(prefix + "work_rrk_biko")))
		{
			template.setNull(EKK0091D010CBSMsg.WORK_RRK_BIKO);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.WORK_RRK_BIKO, (String)inMap.get(prefix + "work_rrk_biko"));
		}

		// 自動照査処理状態コード
		if (inMap == null || inMap.get(prefix + "auto_shosa_tran_stat_cd") == null || "".equals(inMap.get(prefix + "auto_shosa_tran_stat_cd")))
		{
			template.setNull(EKK0091D010CBSMsg.AUTO_SHOSA_TRAN_STAT_CD);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.AUTO_SHOSA_TRAN_STAT_CD, (String)inMap.get(prefix + "auto_shosa_tran_stat_cd"));
		}

		// 固定IPアドレス引継ぎ有無
		if (inMap == null || inMap.get(prefix + "kotei_ip_ad_hktgi_um") == null || "".equals(inMap.get(prefix + "kotei_ip_ad_hktgi_um")))
		{
			template.setNull(EKK0091D010CBSMsg.KOTEI_IP_AD_HKTGI_UM);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.KOTEI_IP_AD_HKTGI_UM, (String)inMap.get(prefix + "kotei_ip_ad_hktgi_um"));
		}

		// PCパック有無
		if (inMap == null || inMap.get(prefix + "pc_pack_um") == null || "".equals(inMap.get(prefix + "pc_pack_um")))
		{
			template.setNull(EKK0091D010CBSMsg.PC_PACK_UM);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.PC_PACK_UM, (String)inMap.get(prefix + "pc_pack_um"));
		}

		// お客様NOVA利用有無
		if (inMap == null || inMap.get(prefix + "cust_nova_use_um") == null || "".equals(inMap.get(prefix + "cust_nova_use_um")))
		{
			template.setNull(EKK0091D010CBSMsg.CUST_NOVA_USE_UM);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.CUST_NOVA_USE_UM, (String)inMap.get(prefix + "cust_nova_use_um"));
		}

		// 請求契約番号
		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(EKK0091D010CBSMsg.SEIKY_KEI_NO);
			}
			else
			{
				template.set(EKK0091D010CBSMsg.SEIKY_KEI_NO, getPaywayWorkMapValue(param, "seiky_kei_no"));
			}
		}
		else
		{
			template.set(EKK0091D010CBSMsg.SEIKY_KEI_NO, (String)inMap.get(prefix + "seiky_kei_no"));
		}

		// 料金項目コード
		if (inMap == null || inMap.get(prefix + "prc_kmk_cd") == null || "".equals(inMap.get(prefix + "prc_kmk_cd")))
		{
			template.setNull(EKK0091D010CBSMsg.PRC_KMK_CD);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.PRC_KMK_CD, (String)inMap.get(prefix + "prc_kmk_cd"));
		}
		
		// 事務手数料自動適用要否
		if (inMap == null || inMap.get(prefix + "rule0059_auto_aply") == null || "".equals(inMap.get(prefix + "rule0059_auto_aply")))
		{
			template.setNull(EKK0091D010CBSMsg.RULE0059_AUTO_APLY);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.RULE0059_AUTO_APLY, (String)inMap.get(prefix + "rule0059_auto_aply"));
		}
		
		// 工事費自動適用要否
		if (inMap == null || inMap.get(prefix + "rule0079_auto_aply") == null || "".equals(inMap.get(prefix + "rule0079_auto_aply")))
		{
			template.setNull(EKK0091D010CBSMsg.RULE0079_AUTO_APLY);
		}
		else
		{
			template.set(EKK0091D010CBSMsg.RULE0079_AUTO_APLY, (String)inMap.get(prefix + "rule0079_auto_aply"));
		}
		
		// ANK-2822-00-00 2016/07/06 ADD START
		// パラメータより、KKSV0674011SC＜サービス契約一意照会（ネット・変更前）＞マップを取得
		HashMap kksv0674011sc = (HashMap)(param.getData("KKSV0674011SC"));
		// 変更前ネットサービス契約のサービス開始年月日を取得
		String svcStaYmd = (String)kksv0674011sc.get("svc_sta_ymd");
		// パラメータより、KKSV0674005CC＜eo光ネット変更区分判定ＣＣ＞ マップを取得
		HashMap kksv0674005cc = (HashMap)(param.getData("KKSV0674005CC"));
		// 住所変更登録方法を取得
		String jdgChgDivNet = (String)kksv0674005cc.get("jdg_chg_div_net");
		
		// 住所変更登録方法が「4：解約／新規」の場合のみ、「サービス開始年月日」のマッピングを行う
		if(null != svcStaYmd && "4".equals(jdgChgDivNet))
		{
			template.set(EKK0091D010CBSMsg.SVC_STA_YMD,svcStaYmd);
		}
		else
		{
			template.setNull(EKK0091D010CBSMsg.SVC_STA_YMD);
		}
		// ANK-2822-00-00 2016/07/06 ADD END

		return template;

	}

	/**
	 * サービス契約内訳＜eo光ネット＞登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0171D010Msg(IRequestParameterReadWrite param, String fixedText, String prefix) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0171D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0171D010CBSMsg.TEMPLATEID, "EKK0171D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0171D010CBSMsg.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);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();

		HashMap inMap = null;
		/* 作業項目情報 */
		if (workMap != null)
		{
			inMap = (HashMap)workMap.get(CC_WORK_AREA_NAME);
		}
		else
		{
			inMap = null;
		}

		// 作業マップ.サービス契約番号
		if (inMap == null || inMap.get("svc_kei_no") == null || "".equals(inMap.get("svc_kei_no")))
		{
			template.setNull(EKK0171D010CBSMsg.SVC_KEI_NO);
		}
		else
		{
			template.set(EKK0171D010CBSMsg.SVC_KEI_NO, (String)inMap.get("svc_kei_no"));
		}

		// 作業マップ.申込明細番号
		if (inMap == null || inMap.get("mskm_dtl_no") == null || "".equals(inMap.get("mskm_dtl_no")))
		{
			if (getMskmDtlWorkMapValue(param, "mskm_dtl_no_net") == null)
			{
				template.setNull(EKK0171D010CBSMsg.MSKM_DTL_NO);
			}
			else
			{
				template.set(EKK0171D010CBSMsg.MSKM_DTL_NO, (String)getMskmDtlWorkMapValue(param, "mskm_dtl_no_net"));
				mskmDtlNo = (String)getMskmDtlWorkMapValue(param, "mskm_dtl_no_net");
			}
		}
		else
		{
			template.set(EKK0171D010CBSMsg.MSKM_DTL_NO, (String)inMap.get("mskm_dtl_no"));
			mskmDtlNo = (String)inMap.get("mskm_dtl_no");
		}

		/* ユーザデータ情報 */
		inMap = (HashMap)(param.getData(fixedText));

		// 機能コード
		template.set(EKK0171D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 提供方式契約番号
		if (inMap == null || inMap.get(prefix + "tk_hoshiki_kei_no") == null || "".equals(inMap.get(prefix + "tk_hoshiki_kei_no")))
		{
			template.setNull(EKK0171D010CBSMsg.TK_HOSHIKI_KEI_NO);
		}
		else
		{
			template.set(EKK0171D010CBSMsg.TK_HOSHIKI_KEI_NO, (String)inMap.get(prefix + "tk_hoshiki_kei_no"));
		}

		// 支払方法継続フラグ
		if (inMap == null || inMap.get(prefix + "payway_keizoku_flg") == null || "".equals(inMap.get(prefix + "payway_keizoku_flg")))
		{
			template.setNull(EKK0171D010CBSMsg.PAYWAY_KEIZOKU_FLG);
		}
		else
		{
			template.set(EKK0171D010CBSMsg.PAYWAY_KEIZOKU_FLG, (String)inMap.get(prefix + "payway_keizoku_flg"));
		}

		// WEBオプション追加不可フラグ
		if (inMap == null || inMap.get(prefix + "web_op_add_fail_flg") == null || "".equals(inMap.get(prefix + "web_op_add_fail_flg")))
		{
			template.setNull(EKK0171D010CBSMsg.WEB_OP_ADD_FAIL_FLG);
		}
		else
		{
			template.set(EKK0171D010CBSMsg.WEB_OP_ADD_FAIL_FLG, (String)inMap.get(prefix + "web_op_add_fail_flg"));
		}

		// 業務連絡備考
		if (inMap == null || inMap.get(prefix + "work_rrk_biko") == null || "".equals(inMap.get(prefix + "work_rrk_biko")))
		{
			template.setNull(EKK0171D010CBSMsg.WORK_RRK_BIKO);
		}
		else
		{
			template.set(EKK0171D010CBSMsg.WORK_RRK_BIKO, (String)inMap.get(prefix + "work_rrk_biko"));
		}

		// サービス利用開始希望年月日
		if (inMap == null || inMap.get(prefix + "svc_use_sta_kibo_ymd") == null || "".equals(inMap.get(prefix + "svc_use_sta_kibo_ymd")))
		{
			template.setNull(EKK0171D010CBSMsg.SVC_USE_STA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0171D010CBSMsg.SVC_USE_STA_KIBO_YMD, (String)inMap.get(prefix + "svc_use_sta_kibo_ymd"));
		}

		// 予約適用開始希望年月日
		if (inMap == null || inMap.get(prefix + "rsv_tsta_kibo_ymd") == null || "".equals(inMap.get(prefix + "rsv_tsta_kibo_ymd")))
		{
			template.setNull(EKK0171D010CBSMsg.RSV_TSTA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0171D010CBSMsg.RSV_TSTA_KIBO_YMD, (String)inMap.get(prefix + "rsv_tsta_kibo_ymd"));
		}

		// 試用加入年月日
		if (inMap == null || inMap.get(prefix + "ftrial_kanyu_ymd") == null || "".equals(inMap.get(prefix + "ftrial_kanyu_ymd")))
		{
			template.setNull(EKK0171D010CBSMsg.FTRIAL_KANYU_YMD);
		}
		else
		{
			template.set(EKK0171D010CBSMsg.FTRIAL_KANYU_YMD, (String)inMap.get(prefix + "ftrial_kanyu_ymd"));
		}

		// 試用期間終了年月日
		if (inMap == null || inMap.get(prefix + "ftrial_prd_endymd") == null || "".equals(inMap.get(prefix + "ftrial_prd_endymd")))
		{
			template.setNull(EKK0171D010CBSMsg.FTRIAL_PRD_ENDYMD);
		}
		else
		{
			template.set(EKK0171D010CBSMsg.FTRIAL_PRD_ENDYMD, (String)inMap.get(prefix + "ftrial_prd_endymd"));
		}

		// 本加入年月日
		if (inMap == null || inMap.get(prefix + "honkanyu_ymd") == null || "".equals(inMap.get(prefix + "honkanyu_ymd")))
		{
			template.setNull(EKK0171D010CBSMsg.HONKANYU_YMD);
		}
		else
		{
			template.set(EKK0171D010CBSMsg.HONKANYU_YMD, (String)inMap.get(prefix + "honkanyu_ymd"));
		}

		// 本加入移行期限年月日
		if (inMap == null || inMap.get(prefix + "honkanyu_iko_kigen_ymd") == null || "".equals(inMap.get(prefix + "honkanyu_iko_kigen_ymd")))
		{
			template.setNull(EKK0171D010CBSMsg.HONKANYU_IKO_KIGEN_YMD);
		}
		else
		{
			template.set(EKK0171D010CBSMsg.HONKANYU_IKO_KIGEN_YMD, (String)inMap.get(prefix + "honkanyu_iko_kigen_ymd"));
		}
		// 違約金発生コード
		if (inMap == null || inMap.get(prefix + "pnlty_hassei_cd") == null || "".equals(inMap.get(prefix + "pnlty_hassei_cd")))
		{
			template.setNull(EKK0171D010CBSMsg.PNLTY_HASSEI_CD);
		}
		else
		{
			template.set(EKK0171D010CBSMsg.PNLTY_HASSEI_CD, (String)inMap.get(prefix + "pnlty_hassei_cd"));
		}

		// 異動区分
		if (inMap == null || inMap.get(prefix + "ido_div") == null || "".equals(inMap.get(prefix + "ido_div")))
		{
			template.setNull(EKK0171D010CBSMsg.IDO_DIV);
		}
		else
		{
			template.set(EKK0171D010CBSMsg.IDO_DIV, (String)inMap.get(prefix + "ido_div"));
		}

		// 提供帯域コード
		if (inMap == null || inMap.get(prefix + "tk_taiiki_cd") == null || "".equals(inMap.get(prefix + "tk_taiiki_cd")))
		{
			template.setNull(EKK0171D010CBSMsg.TK_TAIIKI_CD);
		}
		else
		{
			template.set(EKK0171D010CBSMsg.TK_TAIIKI_CD, (String)inMap.get(prefix + "tk_taiiki_cd"));
		}

		// 更新年月日時分秒(更新前)
		String lastDtm = JKKBpCommon.getLastDtmBySvcKeiNo(param, svcKeiNo, (String)inMap.get(prefix + "upd_dtm_bf"));
		template.set(EKK0171D010CBSMsg.UPD_DTM_BF, lastDtm);

		return template;
	}

	/**
	 * オプションサービス契約＜サポート＞登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0391D010Msg(IRequestParameterReadWrite param, String fixedText, String prefix) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0391D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0391D010CBSMsg.TEMPLATEID, "EKK0391D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0391D010CBSMsg.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);

		// 作業領域の取得
		Map workMap = (Map)param.getMappingWorkArea();

		HashMap inMap = null;
		/* 作業項目情報 */
		if (workMap != null)
		{
			inMap = (HashMap)workMap.get(CC_WORK_AREA_NAME);
		}
		else
		{
			inMap = null;
		}

		// 作業マップ.サービス契約番号
		if (inMap == null || inMap.get("svc_kei_no") == null || "".equals(inMap.get("svc_kei_no")))
		{
			template.setNull(EKK0391D010CBSMsg.SVC_KEI_NO);
		}
		else
		{
			template.set(EKK0391D010CBSMsg.SVC_KEI_NO, (String)inMap.get("svc_kei_no"));
		}

		// 作業マップ.申込明細番号
		if (inMap == null || inMap.get("mskm_dtl_no") == null || "".equals(inMap.get("mskm_dtl_no")))
		{
			if (getMskmDtlWorkMapValue(param, "mskm_dtl_no_net") == null)
			{
				template.setNull(EKK0391D010CBSMsg.MSKM_DTL_NO);
			}
			else
			{
				template.set(EKK0391D010CBSMsg.MSKM_DTL_NO, (String)getMskmDtlWorkMapValue(param, "mskm_dtl_no_net"));
			}
		}
		else
		{
			template.set(EKK0391D010CBSMsg.MSKM_DTL_NO, (String)inMap.get("mskm_dtl_no"));
		}

		/* ユーザデータ情報 */
		inMap = (HashMap)(param.getData(fixedText));

		// 機能コード
		template.set(EKK0391D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// オプションサービスコード
		if (inMap == null || inMap.get(prefix + "op_svc_cd") == null || "".equals(inMap.get(prefix + "op_svc_cd")))
		{
			template.setNull(EKK0391D010CBSMsg.OP_SVC_CD);
		}
		else
		{
			template.set(EKK0391D010CBSMsg.OP_SVC_CD, (String)inMap.get(prefix + "op_svc_cd"));
		}

		// 料金コースコード
		if (inMap == null || inMap.get(prefix + "pcrs_cd") == null || "".equals(inMap.get(prefix + "pcrs_cd")))
		{
			template.setNull(EKK0391D010CBSMsg.PCRS_CD);
		}
		else
		{
			template.set(EKK0391D010CBSMsg.PCRS_CD, (String)inMap.get(prefix + "pcrs_cd"));
		}

		// 料金プランコード
		if (inMap == null || inMap.get(prefix + "pplan_cd") == null || "".equals(inMap.get(prefix + "pplan_cd")))
		{
			template.setNull(EKK0391D010CBSMsg.PPLAN_CD);
		}
		else
		{
			template.set(EKK0391D010CBSMsg.PPLAN_CD, (String)inMap.get(prefix + "pplan_cd"));
		}

		// サービス契約内訳番号
		if (inMap == null || inMap.get(prefix + "svc_kei_ucwk_no") == null || "".equals(inMap.get(prefix + "svc_kei_ucwk_no")))
		{
			template.setNull(EKK0391D010CBSMsg.SVC_KEI_UCWK_NO);
		}
		else
		{
			template.set(EKK0391D010CBSMsg.SVC_KEI_UCWK_NO, (String)inMap.get(prefix + "svc_kei_ucwk_no"));
		}

		// SYSID
		if (inMap == null || inMap.get(prefix + "sysid") == null || "".equals(inMap.get(prefix + "sysid")))
		{
			if (getKeishaWorkMapValue(param, "sysid") == null)
			{
				template.setNull(EKK0391D010CBSMsg.SYSID);
			}
			else
			{
				template.set(EKK0391D010CBSMsg.SYSID, getKeishaWorkMapValue(param, "sysid"));
			}
		}
		else
		{
			template.set(EKK0391D010CBSMsg.SYSID, (String)inMap.get(prefix + "sysid"));
		}

		// 試用加入年月日
		if (inMap == null || inMap.get(prefix + "ftrial_kanyu_ymd") == null || "".equals(inMap.get(prefix + "ftrial_kanyu_ymd")))
		{
			template.setNull(EKK0391D010CBSMsg.FTRIAL_KANYU_YMD);
		}
		else
		{
			template.set(EKK0391D010CBSMsg.FTRIAL_KANYU_YMD, (String)inMap.get(prefix + "ftrial_kanyu_ymd"));
		}

		// 試用期間終了年月日
		if (inMap == null || inMap.get(prefix + "ftrial_prd_endymd") == null || "".equals(inMap.get(prefix + "ftrial_prd_endymd")))
		{
			template.setNull(EKK0391D010CBSMsg.FTRIAL_PRD_ENDYMD);
		}
		else
		{
			template.set(EKK0391D010CBSMsg.FTRIAL_PRD_ENDYMD, (String)inMap.get(prefix + "ftrial_prd_endymd"));
		}

		// 本加入年月日
		if (inMap == null || inMap.get(prefix + "honkanyu_ymd") == null || "".equals(inMap.get(prefix + "honkanyu_ymd")))
		{
			template.setNull(EKK0391D010CBSMsg.HONKANYU_YMD);
		}
		else
		{
			template.set(EKK0391D010CBSMsg.HONKANYU_YMD, (String)inMap.get(prefix + "honkanyu_ymd"));
		}

		// 本加入移行期限年月日
		if (inMap == null || inMap.get(prefix + "honkanyu_iko_kigen_ymd") == null || "".equals(inMap.get(prefix + "honkanyu_iko_kigen_ymd")))
		{
			template.setNull(EKK0391D010CBSMsg.HONKANYU_IKO_KIGEN_YMD);
		}
		else
		{
			template.set(EKK0391D010CBSMsg.HONKANYU_IKO_KIGEN_YMD, (String)inMap.get(prefix + "honkanyu_iko_kigen_ymd"));
		}

		// サービス利用開始希望年月日
		if (inMap == null || inMap.get(prefix + "svc_use_sta_kibo_ymd") == null || "".equals(inMap.get(prefix + "svc_use_sta_kibo_ymd")))
		{
			template.setNull(EKK0391D010CBSMsg.SVC_USE_STA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0391D010CBSMsg.SVC_USE_STA_KIBO_YMD, (String)inMap.get(prefix + "svc_use_sta_kibo_ymd"));
		}

		// 予約適用開始希望年月日
		if (inMap == null || inMap.get(prefix + "rsv_tsta_kibo_ymd") == null || "".equals(inMap.get(prefix + "rsv_tsta_kibo_ymd")))
		{
			template.setNull(EKK0391D010CBSMsg.RSV_TSTA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0391D010CBSMsg.RSV_TSTA_KIBO_YMD, (String)inMap.get(prefix + "rsv_tsta_kibo_ymd"));
		}

		// 違約金発生コード
		if (inMap == null || inMap.get(prefix + "pnlty_hassei_cd") == null || "".equals(inMap.get(prefix + "pnlty_hassei_cd")))
		{
			template.setNull(EKK0391D010CBSMsg.PNLTY_HASSEI_CD);
		}
		else
		{
			template.set(EKK0391D010CBSMsg.PNLTY_HASSEI_CD, (String)inMap.get(prefix + "pnlty_hassei_cd"));
		}

		// 異動区分
		if (inMap == null || inMap.get(prefix + "ido_div") == null || "".equals(inMap.get(prefix + "ido_div")))
		{
			template.setNull(EKK0391D010CBSMsg.IDO_DIV);
		}
		else
		{
			template.set(EKK0391D010CBSMsg.IDO_DIV, (String)inMap.get(prefix + "ido_div"));
		}

		// 親契約識別コード
		if (inMap == null || inMap.get(prefix + "oya_kei_skbt_cd") == null || "".equals(inMap.get(prefix + "oya_kei_skbt_cd")))
		{
			template.setNull(EKK0391D010CBSMsg.OYA_KEI_SKBT_CD);
		}
		else
		{
			template.set(EKK0391D010CBSMsg.OYA_KEI_SKBT_CD, (String)inMap.get(prefix + "oya_kei_skbt_cd"));
		}

		// 請求契約番号
		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(EKK0391D010CBSMsg.SEIKY_KEI_NO);
			}
			else
			{
				template.set(EKK0391D010CBSMsg.SEIKY_KEI_NO, getPaywayWorkMapValue(param, "seiky_kei_no"));
			}
		}
		else
		{
			template.set(EKK0391D010CBSMsg.SEIKY_KEI_NO, (String)inMap.get(prefix + "seiky_kei_no"));
		}

		// 料金項目コード
		if (inMap == null || inMap.get(prefix + "prc_kmk_cd") == null || "".equals(inMap.get(prefix + "prc_kmk_cd")))
		{
			template.setNull(EKK0391D010CBSMsg.PRC_KMK_CD);
		}
		else
		{
			template.set(EKK0391D010CBSMsg.PRC_KMK_CD, (String)inMap.get(prefix + "prc_kmk_cd"));
		}

		// 更新年月日時分秒(更新前)
		String lastDtm = JKKBpCommon.getLastDtmBySvcKeiNo(param, svcKeiNo, null);
		template.set(EKK0391D010CBSMsg.UPD_DTM_BF, lastDtm);

		return template;
	}

	/**
	 * サブオプションサービス契約＜ISP＞登録（ファミリーパックメールウィルスチェック用）の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0411D010Msg(IRequestParameterReadWrite param, String fixedText, String prefix) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0411D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0411D010CBSMsg.TEMPLATEID, "EKK0411D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0411D010CBSMsg.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);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();

		HashMap inMap = null;
		/* 作業項目情報 */
		if (workMap != null)
		{
			inMap = (HashMap)workMap.get(CC_WORK_AREA_NAME);
		}
		else
		{
			inMap = null;
		}

		// 作業マップ.オプションサービス契約番号
		if (inMap == null || inMap.get("op_svc_kei_no") == null || "".equals(inMap.get("op_svc_kei_no")))
		{
			template.setNull(EKK0411D010CBSMsg.OP_SVC_KEI_NO);
		}
		else
		{
			template.set(EKK0411D010CBSMsg.OP_SVC_KEI_NO, (String)inMap.get("op_svc_kei_no"));
		}
		
		// 作業マップ.申込明細番号
		if (inMap == null || inMap.get("mskm_dtl_no") == null || "".equals(inMap.get("mskm_dtl_no")))
		{
			if (getMskmDtlWorkMapValue(param, "mskm_dtl_no_net") == null)
			{
				template.setNull(EKK0411D010CBSMsg.MSKM_DTL_NO);
			}
			else
			{
				template.set(EKK0411D010CBSMsg.MSKM_DTL_NO, (String)getMskmDtlWorkMapValue(param, "mskm_dtl_no_net"));
			}

		}
		else
		{
			template.set(EKK0411D010CBSMsg.MSKM_DTL_NO, (String)inMap.get("mskm_dtl_no"));
		}
		

		/* ユーザデータ情報 */
		inMap = (HashMap)(param.getData(fixedText));

		// 機能コード
		template.set(EKK0411D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// サブオプションサービスコード
		if (inMap == null || inMap.get(prefix + "sbop_svc_cd") == null || "".equals(inMap.get(prefix + "sbop_svc_cd")))
		{
			template.setNull(EKK0411D010CBSMsg.SBOP_SVC_CD);
		}
		else
		{
			template.set(EKK0411D010CBSMsg.SBOP_SVC_CD, (String)inMap.get(prefix + "sbop_svc_cd"));
		}

		// 料金コースコード
		if (inMap == null || inMap.get(prefix + "pcrs_cd") == null || "".equals(inMap.get(prefix + "pcrs_cd")))
		{
			template.setNull(EKK0411D010CBSMsg.PCRS_CD);
		}
		else
		{
			template.set(EKK0411D010CBSMsg.PCRS_CD, (String)inMap.get(prefix + "pcrs_cd"));
		}

		// 料金プランコード
		if (inMap == null || inMap.get(prefix + "pplan_cd") == null || "".equals(inMap.get(prefix + "pplan_cd")))
		{
			template.setNull(EKK0411D010CBSMsg.PPLAN_CD);
		}
		else
		{
			template.set(EKK0411D010CBSMsg.PPLAN_CD, (String)inMap.get(prefix + "pplan_cd"));
		}

		// 試用加入年月日
		if (inMap == null || inMap.get(prefix + "ftrial_kanyu_ymd") == null || "".equals(inMap.get(prefix + "ftrial_kanyu_ymd")))
		{
			template.setNull(EKK0411D010CBSMsg.FTRIAL_KANYU_YMD);
		}
		else
		{
			template.set(EKK0411D010CBSMsg.FTRIAL_KANYU_YMD, (String)inMap.get(prefix + "ftrial_kanyu_ymd"));
		}

		// 試用期間終了年月日
		if (inMap == null || inMap.get(prefix + "ftrial_prd_endymd") == null || "".equals(inMap.get(prefix + "ftrial_prd_endymd")))
		{
			template.setNull(EKK0411D010CBSMsg.FTRIAL_PRD_ENDYMD);
		}
		else
		{
			template.set(EKK0411D010CBSMsg.FTRIAL_PRD_ENDYMD, (String)inMap.get(prefix + "ftrial_prd_endymd"));
		}

		// 本加入年月日
		if (inMap == null || inMap.get(prefix + "honkanyu_ymd") == null || "".equals(inMap.get(prefix + "honkanyu_ymd")))
		{
			template.setNull(EKK0411D010CBSMsg.HONKANYU_YMD);
		}
		else
		{
			template.set(EKK0411D010CBSMsg.HONKANYU_YMD, (String)inMap.get(prefix + "honkanyu_ymd"));
		}

		// 本加入移行期限年月日
		if (inMap == null || inMap.get(prefix + "honkanyu_iko_kigen_ymd") == null || "".equals(inMap.get(prefix + "honkanyu_iko_kigen_ymd")))
		{
			template.setNull(EKK0411D010CBSMsg.HONKANYU_IKO_KIGEN_YMD);
		}
		else
		{
			template.set(EKK0411D010CBSMsg.HONKANYU_IKO_KIGEN_YMD, (String)inMap.get(prefix + "honkanyu_iko_kigen_ymd"));
		}

		// サービス利用開始希望年月日
		if (inMap == null || inMap.get(prefix + "svc_use_sta_kibo_ymd") == null || "".equals(inMap.get(prefix + "svc_use_sta_kibo_ymd")))
		{
			template.setNull(EKK0411D010CBSMsg.SVC_USE_STA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0411D010CBSMsg.SVC_USE_STA_KIBO_YMD, (String)inMap.get(prefix + "svc_use_sta_kibo_ymd"));
		}

		// 予約適用開始希望年月日
		if (inMap == null || inMap.get(prefix + "rsv_tsta_kibo_ymd") == null || "".equals(inMap.get(prefix + "rsv_tsta_kibo_ymd")))
		{
			template.setNull(EKK0411D010CBSMsg.RSV_TSTA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0411D010CBSMsg.RSV_TSTA_KIBO_YMD, (String)inMap.get(prefix + "rsv_tsta_kibo_ymd"));
		}

		// 違約金発生コード
		if (inMap == null || inMap.get(prefix + "pnlty_hassei_cd") == null || "".equals(inMap.get(prefix + "pnlty_hassei_cd")))
		{
			template.setNull(EKK0411D010CBSMsg.PNLTY_HASSEI_CD);
		}
		else
		{
			template.set(EKK0411D010CBSMsg.PNLTY_HASSEI_CD, (String)inMap.get(prefix + "pnlty_hassei_cd"));
		}

		// 異動区分
		if (inMap == null || inMap.get(prefix + "ido_div") == null || "".equals(inMap.get(prefix + "ido_div")))
		{
			template.setNull(EKK0411D010CBSMsg.IDO_DIV);
		}
		else
		{
			template.set(EKK0411D010CBSMsg.IDO_DIV, (String)inMap.get(prefix + "ido_div"));
		}

		// 追加容量
		if (inMap == null || inMap.get(prefix + "add_capa") == null || "".equals(inMap.get(prefix + "add_capa")))
		{
			template.setNull(EKK0411D010CBSMsg.ADD_CAPA);
		}
		else
		{
			template.set(EKK0411D010CBSMsg.ADD_CAPA, (String)inMap.get(prefix + "add_capa"));
		}

		// エイリアス
		if (inMap == null || inMap.get(prefix + "alias") == null || "".equals(inMap.get(prefix + "alias")))
		{
			template.setNull(EKK0411D010CBSMsg.ALIAS);
		}
		else
		{
			template.set(EKK0411D010CBSMsg.ALIAS, (String)inMap.get(prefix + "alias"));
		}

		// エイリアス変更年月日
		if (inMap == null || inMap.get(prefix + "alias_chge_ymd") == null || "".equals(inMap.get(prefix + "alias_chge_ymd")))
		{
			template.setNull(EKK0411D010CBSMsg.ALIAS_CHGE_YMD);
		}
		else
		{
			template.set(EKK0411D010CBSMsg.ALIAS_CHGE_YMD, (String)inMap.get(prefix + "alias_chge_ymd"));
		}

		// 請求契約番号
		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(EKK0411D010CBSMsg.SEIKY_KEI_NO);
			}
			else
			{
				template.set(EKK0411D010CBSMsg.SEIKY_KEI_NO, getPaywayWorkMapValue(param, "seiky_kei_no"));
			}
		}
		else
		{
			template.set(EKK0411D010CBSMsg.SEIKY_KEI_NO, (String)inMap.get(prefix + "seiky_kei_no"));
		}

		// 料金項目コード
		if (inMap == null || inMap.get(prefix + "prc_kmk_cd") == null || "".equals(inMap.get(prefix + "prc_kmk_cd")))
		{
			template.setNull(EKK0411D010CBSMsg.PRC_KMK_CD);
		}
		else
		{
			template.set(EKK0411D010CBSMsg.PRC_KMK_CD, (String)inMap.get(prefix + "prc_kmk_cd"));
		}

		// 更新年月日時分秒(更新前)
		String lastDtm = JKKBpCommon.getLastDtmBySvcKeiNo(param, svcKeiNo, null);
		template.set(EKK0411D010CBSMsg.UPD_DTM_BF, lastDtm);

		return template;
	}

	/**
	 * 回線対象サービス契約登録の上りマッピングを行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0241D010Msg(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0241D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0241D010CBSMsg.TEMPLATEID, "EKK0241D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0241D010CBSMsg.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);

		// 機能コード
		if (inMap != null)
		{
			template.set(EKK0241D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));
		}

		// 作業領域のマップを取得
		HashMap workDataMap = null;
		Map workMap = param.getMappingWorkArea();
		if (workMap != null)
		{
			workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME);
		}

		// サービス契約番号
		if (inMap == null || inMap.get("kk0241_svc_kei_no") == null || "".equals(inMap.get("kk0241_svc_kei_no")))
		{
			if (workDataMap == null || workDataMap.get("svc_kei_no") == null || "".equals(workDataMap.get("svc_kei_no")))
			{
				template.setNull(EKK0241D010CBSMsg.SVC_KEI_NO);
			}
			else
			{
				template.set(EKK0241D010CBSMsg.SVC_KEI_NO, (String)workDataMap.get("svc_kei_no"));
			}
		}
		else
		{
			template.set(EKK0241D010CBSMsg.SVC_KEI_NO, (String)inMap.get("kk0241_svc_kei_no"));
		}

		// サービス契約回線内訳番号
		if (inMap == null || inMap.get("kk0241_svc_kei_kaisen_ucwk_no") == null || "".equals(inMap.get("kk0241_svc_kei_kaisen_ucwk_no")))
		{
			template.setNull(EKK0241D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO);
		}
		else
		{
			template.set(EKK0241D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO, (String)inMap.get("kk0241_svc_kei_kaisen_ucwk_no"));
		}

		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 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));
			JKKBpCommon.setMskmDtlNo(param, template.getString(EKK0021D010CBSMsg.MSKM_DTL_NO));
			// 契約新規申込ワークエリアへ登録
			JKKBpCommon.setWkMskmDtlNoNet(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.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
		{
			dataMap.put(prefix + "upd_dtm", template.getString(EKK0021D010CBSMsg.UPD_DTM));
			
			String lastDtm = template.getString(EKK0021D010CBSMsg.UPD_DTM);
			JKKBpCommon.setLastDtmByMskm(param, lastDtm);
		}

		// 更新オペレータアカウント
		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));
		}

		/* 作業項目情報 */
		HashMap addSvcKeiNetWorkMap = (HashMap)workMap.get(CC_WORK_AREA_NAME);
		if (addSvcKeiNetWorkMap == null)
		{
			addSvcKeiNetWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_NAME, addSvcKeiNetWorkMap);
		}

		// 申込明細番号
		if (PREFIX_MSKM_DTL.equals(prefix))
		{
			if (template.isNull(EKK0021D010CBSMsg.MSKM_DTL_NO))
			{
				addSvcKeiNetWorkMap.put("mskm_dtl_no", "");
			}
			else
			{
				addSvcKeiNetWorkMap.put("mskm_dtl_no", template.getString(EKK0021D010CBSMsg.MSKM_DTL_NO));
			}
		}
		else if (PREFIX_REMOSUP_MSKM_DTL.equals(prefix))
		{
			// リモートサポートプラス用
			if (template.isNull(EKK0021D010CBSMsg.MSKM_DTL_NO))
			{
				addSvcKeiNetWorkMap.put("remosup_mskm_dtl_no", "");
			}
			else
			{
				addSvcKeiNetWorkMap.put("remosup_mskm_dtl_no", template.getString(EKK0021D010CBSMsg.MSKM_DTL_NO));
			}
		}

		// エラー情報の設定
		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;
	}

	/**
	 * サービス契約＜eo光ネット＞登録の下りマッピング処理
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK0091D010Msg(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_NAME);
		if (workDataMap == null)
		{
			workDataMap = new HashMap();
			workMap.put(CC_WORK_AREA_NAME, workDataMap);
		}

		/* 業務データ設定 */
		HashMap dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

		// サービス契約番号
		if (template.isNull(EKK0091D010CBSMsg.SVC_KEI_NO))
		{
			dataMap.put(prefix + "svc_kei_no", "");
		}
		else
		{
			dataMap.put(prefix + "svc_kei_no", template.getString(EKK0091D010CBSMsg.SVC_KEI_NO));
			workDataMap.put("svc_kei_no", template.getString(EKK0091D010CBSMsg.SVC_KEI_NO));
			// 契約新規申込ワークエリアへ登録
			JKKBpCommon.setWkSvcKeiNoNet(param, template.getString(EKK0091D010CBSMsg.SVC_KEI_NO));
			svcKeiNo = template.getString(EKK0091D010CBSMsg.SVC_KEI_NO);
		}

		// 世代登録年月日時分秒
		if (template.isNull(EKK0091D010CBSMsg.GENE_ADD_DTM))
		{
			dataMap.put(prefix + "gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "gene_add_dtm", template.getString(EKK0091D010CBSMsg.GENE_ADD_DTM));
		}
		// サービス契約ステータス
		if (template.isNull(EKK0091D010CBSMsg.SVC_KEI_STAT))
		{
			dataMap.put(prefix + "svc_kei_stat", "");
		}
		else
		{
			dataMap.put(prefix + "svc_kei_stat", template.getString(EKK0091D010CBSMsg.SVC_KEI_STAT));
		}
		
		// 審査結果送信コード
		if (template.isNull(EKK0091D010CBSMsg.SKEKKA_SEND_CD))
		{
			dataMap.put(prefix + "skekka_send_cd", "");
		}
		else
		{
			dataMap.put(prefix + "skekka_send_cd", template.getString(EKK0091D010CBSMsg.SKEKKA_SEND_CD));
		}

		// 予約適用年月日
		if (template.isNull(EKK0091D010CBSMsg.RSV_APLY_YMD))
		{
			dataMap.put(prefix + "rsv_aply_ymd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_ymd", template.getString(EKK0091D010CBSMsg.RSV_APLY_YMD));
		}
		// 予約適用コード
		if (template.isNull(EKK0091D010CBSMsg.RSV_APLY_CD))
		{
			dataMap.put(prefix + "rsv_aply_cd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_cd", template.getString(EKK0091D010CBSMsg.RSV_APLY_CD));
		}
		// 初期デフォルトパスワード
		if (template.isNull(EKK0091D010CBSMsg.SHK_DFLT_PWD))
		{
			dataMap.put(prefix + "shk_dflt_pwd", "");
		}
		else
		{
			dataMap.put(prefix + "shk_dflt_pwd", template.getString(EKK0091D010CBSMsg.SHK_DFLT_PWD));
		}

		// 回復不可契約抽出済フラグ
		if (template.isNull(EKK0091D010CBSMsg.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(EKK0091D010CBSMsg.KAIHK_FAIL_KEI_CST_ZM_FLG));
		}

		// 世代登録年月日時分秒(サービス契約<eo光ネット>)
		if (template.isNull(EKK0091D010CBSMsg.KK0091_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0091_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0091_gene_add_dtm", template.getString(EKK0091D010CBSMsg.KK0091_GENE_ADD_DTM));
		}
		// 課金先番号
		if (template.isNull(EKK0091D010CBSMsg.KAKINS_NO))
		{
			dataMap.put(prefix + "kakins_no", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_no", template.getString(EKK0091D010CBSMsg.KAKINS_NO));
		}

		// 課金先適用開始年月日
		if (template.isNull(EKK0091D010CBSMsg.KAKINS_TSTAYMD))
		{
			dataMap.put(prefix + "kakins_tstaymd", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_tstaymd", template.getString(EKK0091D010CBSMsg.KAKINS_TSTAYMD));
		}

		// 課金先適用終了年月日
		if (template.isNull(EKK0091D010CBSMsg.KAKINS_TENDYMD))
		{
			dataMap.put(prefix + "kakins_tendymd", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_tendymd", template.getString(EKK0091D010CBSMsg.KAKINS_TENDYMD));
		}
		// 登録年月日時分秒
		if (template.isNull(EKK0091D010CBSMsg.ADD_DTM))
		{
			dataMap.put(prefix + "add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "add_dtm", template.getString(EKK0091D010CBSMsg.ADD_DTM));
		}
		// 登録オペレータアカウント
		if (template.isNull(EKK0091D010CBSMsg.ADD_OPEACNT))
		{
			dataMap.put(prefix + "add_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "add_opeacnt", template.getString(EKK0091D010CBSMsg.ADD_OPEACNT));
		}
		// 更新年月日時分秒
		if (template.isNull(EKK0091D010CBSMsg.UPD_DTM))
		{
			dataMap.put(prefix + "upd_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "upd_dtm", template.getString(EKK0091D010CBSMsg.UPD_DTM));
			
			String lastDtm = template.getString(EKK0091D010CBSMsg.UPD_DTM);
			JKKBpCommon.setLastDtmBySvcKeiNo(param, template.getString(EKK0091D010CBSMsg.SVC_KEI_NO), lastDtm);
		}
		// 更新オペレータアカウント
		if (template.isNull(EKK0091D010CBSMsg.UPD_OPEACNT))
		{
			dataMap.put(prefix + "upd_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "upd_opeacnt", template.getString(EKK0091D010CBSMsg.UPD_OPEACNT));
		}
		// 無効フラグ
		if (template.isNull(EKK0091D010CBSMsg.MK_FLG))
		{
			dataMap.put(prefix + "mk_flg", "");
		}
		else
		{
			dataMap.put(prefix + "mk_flg", template.getString(EKK0091D010CBSMsg.MK_FLG));
		}

		/* 作業項目情報 */
		HashMap addSvcKeiNetWorkMap = (HashMap)workMap.get(CC_WORK_AREA_NAME);
		if (addSvcKeiNetWorkMap == null)
		{
			addSvcKeiNetWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_NAME, addSvcKeiNetWorkMap);
		}

		// サービス契約番号
		if (template.isNull(EKK0091D010CBSMsg.SVC_KEI_NO))
		{
			addSvcKeiNetWorkMap.put("svc_kei_no", "");
		}
		else
		{
			addSvcKeiNetWorkMap.put("svc_kei_no", template.getString(EKK0091D010CBSMsg.SVC_KEI_NO));
		}

		// 更新年月日時分秒
		if (template.isNull(EKK0091D010CBSMsg.UPD_DTM))
		{
			addSvcKeiNetWorkMap.put("upd_dtm_bf", "");
		}
		else
		{
			addSvcKeiNetWorkMap.put("upd_dtm_bf", template.getString(EKK0091D010CBSMsg.UPD_DTM));
		}
// UI課題対応 SOD発行 Y.MORIMOTO 2012.10.19 START
		// 世代登録年月日時分秒
		if (template.isNull(EKK0091D010CBSMsg.GENE_ADD_DTM))
		{
			addSvcKeiNetWorkMap.put("gene_add_dtm", "");
		}
		else
		{
			addSvcKeiNetWorkMap.put("gene_add_dtm", template.getString(EKK0091D010CBSMsg.GENE_ADD_DTM));
		}
// UI課題対応 SOD発行 Y.MORIMOTO 2012.10.19 END
		// エラー情報の設定
		editErrInfoEKK0091D010Msg(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 msgList
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK0171D010Msg(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 dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

		// サービス契約内訳番号
		if (template.isNull(EKK0171D010CBSMsg.SVC_KEI_UCWK_NO))
		{
			dataMap.put(prefix + "svc_kei_ucwk_no", "");
		}
		else
		{
			dataMap.put(prefix + "svc_kei_ucwk_no", template.getString(EKK0171D010CBSMsg.SVC_KEI_UCWK_NO));
		}
		// 世代登録年月日時分秒(サービス契約内訳)
		if (template.isNull(EKK0171D010CBSMsg.KK0161_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0161_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0161_gene_add_dtm", template.getString(EKK0171D010CBSMsg.KK0161_GENE_ADD_DTM));
		}
		// サービス契約内訳ステータス
		if (template.isNull(EKK0171D010CBSMsg.SVC_KEI_UCWK_STAT))
		{
			dataMap.put(prefix + "svc_kei_ucwk_stat", "");
		}
		else
		{
			dataMap.put(prefix + "svc_kei_ucwk_stat", template.getString(EKK0171D010CBSMsg.SVC_KEI_UCWK_STAT));
		}
		// WEBオプション追加不可フラグ（出力）
		if (template.isNull(EKK0171D010CBSMsg.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(EKK0171D010CBSMsg.WEB_OP_ADD_FAIL_FLG_O));
		}
		// 予約適用年月日
		if (template.isNull(EKK0171D010CBSMsg.RSV_APLY_YMD))
		{
			dataMap.put(prefix + "rsv_aply_ymd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_ymd", template.getString(EKK0171D010CBSMsg.RSV_APLY_YMD));
		}
		// 予約適用コード
		if (template.isNull(EKK0171D010CBSMsg.RSV_APLY_CD))
		{
			dataMap.put(prefix + "rsv_aply_cd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_cd", template.getString(EKK0171D010CBSMsg.RSV_APLY_CD));
		}
		// 世代登録年月日時分秒(サービス契約内訳<eo光ネット>)
		if (template.isNull(EKK0171D010CBSMsg.KK0171_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0171_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0171_gene_add_dtm", template.getString(EKK0171D010CBSMsg.KK0171_GENE_ADD_DTM));
		}
		// 登録年月日時分秒
		if (template.isNull(EKK0171D010CBSMsg.ADD_DTM))
		{
			dataMap.put(prefix + "add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "add_dtm", template.getString(EKK0171D010CBSMsg.ADD_DTM));
		}
		// 登録オペレータアカウント
		if (template.isNull(EKK0171D010CBSMsg.ADD_OPEACNT))
		{
			dataMap.put(prefix + "add_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "add_opeacnt", template.getString(EKK0171D010CBSMsg.ADD_OPEACNT));
		}
		// 更新年月日時分秒
		if (template.isNull(EKK0171D010CBSMsg.UPD_DTM))
		{
			dataMap.put(prefix + "upd_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "upd_dtm", template.getString(EKK0171D010CBSMsg.UPD_DTM));
			
			String lastDtm = template.getString(EKK0171D010CBSMsg.UPD_DTM);
			JKKBpCommon.setLastDtmBySvcKeiNo(param, svcKeiNo, lastDtm);
		}
		// 更新オペレータアカウント
		if (template.isNull(EKK0171D010CBSMsg.UPD_OPEACNT))
		{
			dataMap.put(prefix + "upd_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "upd_opeacnt", template.getString(EKK0171D010CBSMsg.UPD_OPEACNT));
		}
		// 無効フラグ
		if (template.isNull(EKK0171D010CBSMsg.MK_FLG))
		{
			dataMap.put(prefix + "mk_flg", "");
		}
		else
		{
			dataMap.put(prefix + "mk_flg", template.getString(EKK0171D010CBSMsg.MK_FLG));
		}

		/* 作業項目情報 */
		HashMap addSvcKeiNetWorkMap = (HashMap)workMap.get(CC_WORK_AREA_NAME);
		if (addSvcKeiNetWorkMap == null)
		{
			addSvcKeiNetWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_NAME, addSvcKeiNetWorkMap);
		}

		// サービス契約内訳番号
		if (template.isNull(EKK0171D010CBSMsg.SVC_KEI_UCWK_NO))
		{
			addSvcKeiNetWorkMap.put("svc_kei_ucwk_no", "");
		}
		else
		{
			addSvcKeiNetWorkMap.put("svc_kei_ucwk_no", template.getString(EKK0171D010CBSMsg.SVC_KEI_UCWK_NO));
		}
		// エラー情報の設定
		editErrInfoEKK0171D010Msg(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 msgList
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK0391D010Msg(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 dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

		// オプションサービス契約番号
		if (template.isNull(EKK0391D010CBSMsg.OP_SVC_KEI_NO))
		{
			dataMap.put(prefix + "op_svc_kei_no", "");
		}
		else
		{
			dataMap.put(prefix + "op_svc_kei_no", template.getString(EKK0391D010CBSMsg.OP_SVC_KEI_NO));
		}
		// 世代登録年月日時分秒(オプションサービス契約)
		if (template.isNull(EKK0391D010CBSMsg.KK0351_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0351_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0351_gene_add_dtm", template.getString(EKK0391D010CBSMsg.KK0351_GENE_ADD_DTM));
		}
		// オプションサービス契約ステータス
		if (template.isNull(EKK0391D010CBSMsg.OP_SVC_KEI_STAT))
		{
			dataMap.put(prefix + "op_svc_kei_stat", "");
		}
		else
		{
			dataMap.put(prefix + "op_svc_kei_stat", template.getString(EKK0391D010CBSMsg.OP_SVC_KEI_STAT));
		}
		// 予約適用年月日
		if (template.isNull(EKK0391D010CBSMsg.RSV_APLY_YMD))
		{
			dataMap.put(prefix + "rsv_aply_ymd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_ymd", template.getString(EKK0391D010CBSMsg.RSV_APLY_YMD));
		}
		// 予約適用コード
		if (template.isNull(EKK0391D010CBSMsg.RSV_APLY_CD))
		{
			dataMap.put(prefix + "rsv_aply_cd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_cd", template.getString(EKK0391D010CBSMsg.RSV_APLY_CD));
		}
		// 世代登録年月日時分秒(オプションサービス契約<サポート>)
		if (template.isNull(EKK0391D010CBSMsg.KK0391_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0391_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0391_gene_add_dtm", template.getString(EKK0391D010CBSMsg.KK0391_GENE_ADD_DTM));
		}
		// 登録年月日時分秒
		if (template.isNull(EKK0391D010CBSMsg.ADD_DTM))
		{
			dataMap.put(prefix + "add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "add_dtm", template.getString(EKK0391D010CBSMsg.ADD_DTM));
		}
		// 登録オペレータアカウント
		if (template.isNull(EKK0391D010CBSMsg.ADD_OPEACNT))
		{
			dataMap.put(prefix + "add_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "add_opeacnt", template.getString(EKK0391D010CBSMsg.ADD_OPEACNT));
		}
		// 更新年月日時分秒
		if (template.isNull(EKK0391D010CBSMsg.UPD_DTM))
		{
			dataMap.put(prefix + "upd_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "upd_dtm", template.getString(EKK0391D010CBSMsg.UPD_DTM));
		}
		// 更新オペレータアカウント
		if (template.isNull(EKK0391D010CBSMsg.UPD_OPEACNT))
		{
			dataMap.put(prefix + "upd_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "upd_opeacnt", template.getString(EKK0391D010CBSMsg.UPD_OPEACNT));
		}
		// 無効フラグ
		if (template.isNull(EKK0391D010CBSMsg.MK_FLG))
		{
			dataMap.put(prefix + "mk_flg", "");
		}
		else
		{
			dataMap.put(prefix + "mk_flg", template.getString(EKK0391D010CBSMsg.MK_FLG));
		}
		// 課金先番号
		if (template.isNull(EKK0391D010CBSMsg.KAKINS_NO))
		{
			dataMap.put(prefix + "kakins_no", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_no", template.getString(EKK0391D010CBSMsg.KAKINS_NO));
		}

		// 課金先適用開始年月日
		if (template.isNull(EKK0391D010CBSMsg.KAKINS_TSTAYMD))
		{
			dataMap.put(prefix + "kakins_tstaymd", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_tstaymd", template.getString(EKK0391D010CBSMsg.KAKINS_TSTAYMD));
		}

		// 課金先適用終了年月日
		if (template.isNull(EKK0391D010CBSMsg.KAKINS_TENDYMD))
		{
			dataMap.put(prefix + "kakins_tendymd", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_tendymd", template.getString(EKK0391D010CBSMsg.KAKINS_TENDYMD));
		}

		// エラー情報の設定
		editErrInfoEKK0391D010Msg(param, template, (Integer)returnCode, fixedText, prefix);

		// エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}

		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * サブオプションサービス契約＜ISP＞登録の下りマッピング処理
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK0411D010Msg(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 dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

		// サブオプションサービス契約番号
		if (template.isNull(EKK0411D010CBSMsg.SBOP_SVC_KEI_NO))
		{
			dataMap.put(prefix + "sbop_svc_kei_no", "");
		}
		else
		{
			dataMap.put(prefix + "sbop_svc_kei_no", template.getString(EKK0411D010CBSMsg.SBOP_SVC_KEI_NO));
		}
		// 世代登録年月日時分秒(サブオプションサービス契約)
		if (template.isNull(EKK0411D010CBSMsg.KK0401_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0401_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0401_gene_add_dtm", template.getString(EKK0411D010CBSMsg.KK0401_GENE_ADD_DTM));
		}
		// サブオプションサービス契約ステータス
		if (template.isNull(EKK0411D010CBSMsg.SBOP_SVC_KEI_STAT))
		{
			dataMap.put(prefix + "sbop_svc_kei_stat", "");
		}
		else
		{
			dataMap.put(prefix + "sbop_svc_kei_stat", template.getString(EKK0411D010CBSMsg.SBOP_SVC_KEI_STAT));
		}
		// 予約適用年月日
		if (template.isNull(EKK0411D010CBSMsg.RSV_APLY_YMD))
		{
			dataMap.put(prefix + "rsv_aply_ymd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_ymd", template.getString(EKK0411D010CBSMsg.RSV_APLY_YMD));
		}
		// 予約適用コード
		if (template.isNull(EKK0411D010CBSMsg.RSV_APLY_CD))
		{
			dataMap.put(prefix + "rsv_aply_cd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_cd", template.getString(EKK0411D010CBSMsg.RSV_APLY_CD));
		}
		// 世代登録年月日時分秒(サブオプションサービス契約<ISP>)
		if (template.isNull(EKK0411D010CBSMsg.KK0411_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0411_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0411_gene_add_dtm", template.getString(EKK0411D010CBSMsg.KK0411_GENE_ADD_DTM));
		}
		// 登録年月日時分秒
		if (template.isNull(EKK0411D010CBSMsg.ADD_DTM))
		{
			dataMap.put(prefix + "add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "add_dtm", template.getString(EKK0411D010CBSMsg.ADD_DTM));
		}
		// 登録オペレータアカウント
		if (template.isNull(EKK0411D010CBSMsg.ADD_OPEACNT))
		{
			dataMap.put(prefix + "add_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "add_opeacnt", template.getString(EKK0411D010CBSMsg.ADD_OPEACNT));
		}
		// 更新年月日時分秒
		if (template.isNull(EKK0411D010CBSMsg.UPD_DTM))
		{
			dataMap.put(prefix + "upd_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "upd_dtm", template.getString(EKK0411D010CBSMsg.UPD_DTM));

			String lastDtm = template.getString(EKK0411D010CBSMsg.UPD_DTM);
			JKKBpCommon.setLastDtmBySvcKeiNo(param, svcKeiNo, lastDtm);
		}
		// 更新オペレータアカウント
		if (template.isNull(EKK0411D010CBSMsg.UPD_OPEACNT))
		{
			dataMap.put(prefix + "upd_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "upd_opeacnt", template.getString(EKK0411D010CBSMsg.UPD_OPEACNT));
		}
		// 無効フラグ
		if (template.isNull(EKK0411D010CBSMsg.MK_FLG))
		{
			dataMap.put(prefix + "mk_flg", "");
		}
		else
		{
			dataMap.put(prefix + "mk_flg", template.getString(EKK0411D010CBSMsg.MK_FLG));
		}

		// 課金先番号
		if (template.isNull(EKK0411D010CBSMsg.KAKINS_NO))
		{
			dataMap.put(prefix + "kakins_no", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_no", template.getString(EKK0411D010CBSMsg.KAKINS_NO));
		}

		// 課金先適用開始年月日
		if (template.isNull(EKK0411D010CBSMsg.KAKINS_TSTAYMD))
		{
			dataMap.put(prefix + "kakins_tstaymd", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_tstaymd", template.getString(EKK0411D010CBSMsg.KAKINS_TSTAYMD));
		}

		// 課金先適用終了年月日
		if (template.isNull(EKK0411D010CBSMsg.KAKINS_TENDYMD))
		{
			dataMap.put(prefix + "kakins_tendymd", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_tendymd", template.getString(EKK0411D010CBSMsg.KAKINS_TENDYMD));
		}

		// エラー情報の設定
		editErrInfoEKK0411D010Msg(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 msgList
	 * @param param
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK0241D010Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		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 dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

		// 回線内訳使用開始年月日
		if (template.isNull(EKK0241D010CBSMsg.KAISEN_UCWK_USE_STAYMD))
		{
			dataMap.put("kk0241_kaisen_ucwk_use_staymd", "");
		}
		else
		{
			dataMap.put("kk0241_kaisen_ucwk_use_staymd", template.getString(EKK0241D010CBSMsg.KAISEN_UCWK_USE_STAYMD));
		}

		// 回線内訳使用終了年月日
		if (template.isNull(EKK0241D010CBSMsg.KAISEN_UCWK_USE_ENDYMD))
		{
			dataMap.put("kk0241_kaisen_ucwk_use_endymd", "");
		}
		else
		{
			dataMap.put("kk0241_kaisen_ucwk_use_endymd", template.getString(EKK0241D010CBSMsg.KAISEN_UCWK_USE_ENDYMD));
		}

		// 登録年月日時分秒
		if (template.isNull(EKK0241D010CBSMsg.ADD_DTM))
		{
			dataMap.put("kk0241_add_dtm", "");
		}
		else
		{
			dataMap.put("kk0241_add_dtm", template.getString(EKK0241D010CBSMsg.ADD_DTM));
		}

		// 登録オペレータアカウント
		if (template.isNull(EKK0241D010CBSMsg.ADD_OPEACNT))
		{
			dataMap.put("kk0241_add_opeacnt", "");
		}
		else
		{
			dataMap.put("kk0241_add_opeacnt", template.getString(EKK0241D010CBSMsg.ADD_OPEACNT));
		}

		// 更新年月日時分秒
		if (template.isNull(EKK0241D010CBSMsg.UPD_DTM))
		{
			dataMap.put("kk0241_upd_dtm", "");
		}
		else
		{
			dataMap.put("kk0241_upd_dtm", template.getString(EKK0241D010CBSMsg.UPD_DTM));
		}

		// 更新オペレータアカウント
		if (template.isNull(EKK0241D010CBSMsg.UPD_OPEACNT))
		{
			dataMap.put("kk0241_upd_opeacnt", "");
		}
		else
		{
			dataMap.put("kk0241_upd_opeacnt", template.getString(EKK0241D010CBSMsg.UPD_OPEACNT));
		}

		// 無効フラグ
		if (template.isNull(EKK0241D010CBSMsg.MK_FLG))
		{
			dataMap.put("kk0241_mk_flg", "");
		}
		else
		{
			dataMap.put("kk0241_mk_flg", template.getString(EKK0241D010CBSMsg.MK_FLG));
		}

		// エラー情報の設定
		editErrInfoEKK0241D010Msg(param, template, (Integer)returnCode, fixedText);

		// エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}

		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * サービスコンポーネント実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 * @param param リクエストパラメータ
	 * @param templates テンプレート
	 * @param returnCode リターンコード
	 * @param fixedText
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, String fixedText)
			throws RequestParameterException
	{
		HashMap inMap = (HashMap)param.getData(fixedText);
		// マップに値が設定されていない場合は処理を行わない。
		if (inMap == null)
		{
			return param;
		}
		
		int templateCount = 0;

		if (getMskmDtlWorkMapValue(param, "mskm_dtl_no_net") == null)
		{
			// 申込明細登録
			editErrInfoEKK0021D010Msg(param, templates[templateCount++], returnCode, fixedText, PREFIX_MSKM_DTL);
		}

		// サービス契約＜eo光ネット＞登録
		editErrInfoEKK0091D010Msg(param, templates[templateCount++], returnCode, fixedText, PREFIX_NET);

		// サービス契約内訳＜eo光ネット＞登録
		editErrInfoEKK0171D010Msg(param, templates[templateCount++], returnCode, fixedText, PREFIX_NET_UCWK);

		if (getMapValue(param, fixedText, "kk0391_op_svc_cd") != null)
		{
			// オプションサービス契約＜サポート＞登録（リモートサポートプラス用）
			editErrInfoEKK0391D010Msg(param, templates[templateCount++], returnCode, fixedText, PREFIX_OPT_SUPPORT);
		}

		if (getMapValue(param, fixedText, "kk0411_sbop_svc_cd") != null)
		{
			// サブオプションサービス契約＜ISP＞登録（ファミリーパックメールウィルスチェック用）
			editErrInfoEKK0411D010Msg(param, templates[templateCount++], returnCode, fixedText, PREFIX_FAMILY_VIRUS);
		}

		// サービス契約回線内訳番号がわたされていれば回線対象サービス契約登録の登録を行う
		if (inMap != null && inMap.get("kk0241_svc_kei_kaisen_ucwk_no") != null && !"".equals(inMap.get("kk0241_svc_kei_kaisen_ucwk_no")))
		{
			// 回線対象サービス契約登録
			editErrInfoEKK0241D010Msg(param, templates[templateCount++], returnCode, fixedText);
		}

		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.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 template
	 * @param returnCode
	 * @param fixedText
	 * @param prefix
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0091D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			String fixedText, String prefix) throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0091D010CBSMsg.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(EKK0091D010CBSMsg.SYSID_ERR))
		{
			if (!inMap.containsKey(prefix + "sysid_err"))
			{
				inMap.put(prefix + "sysid_err", template.getString(EKK0091D010CBSMsg.SYSID_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.SVC_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_cd_err"))
			{
				inMap.put(prefix + "svc_cd_err", template.getString(EKK0091D010CBSMsg.SVC_CD_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_dtl_no_err"))
			{
				inMap.put(prefix + "mskm_dtl_no_err", template.getString(EKK0091D010CBSMsg.MSKM_DTL_NO_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.MENKAIHAT_ANKEN_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "menkaihat_anken_no_err"))
			{
				inMap.put(prefix + "menkaihat_anken_no_err", template.getString(EKK0091D010CBSMsg.MENKAIHAT_ANKEN_NO_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.PRC_GRP_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "prc_grp_cd_err"))
			{
				inMap.put(prefix + "prc_grp_cd_err", template.getString(EKK0091D010CBSMsg.PRC_GRP_CD_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.PCRS_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pcrs_cd_err"))
			{
				inMap.put(prefix + "pcrs_cd_err", template.getString(EKK0091D010CBSMsg.PCRS_CD_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.PPLAN_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pplan_cd_err"))
			{
				inMap.put(prefix + "pplan_cd_err", template.getString(EKK0091D010CBSMsg.PPLAN_CD_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.TK_HOSHIKI_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "tk_hoshiki_kei_no_err"))
			{
				inMap.put(prefix + "tk_hoshiki_kei_no_err", template.getString(EKK0091D010CBSMsg.TK_HOSHIKI_KEI_NO_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.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(EKK0091D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "rsv_tsta_kibo_ymd_err"))
			{
				inMap.put(prefix + "rsv_tsta_kibo_ymd_err", template.getString(EKK0091D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.ID_SOKHOSHO_OUTPUT_YH_ERR))
		{
			if (!inMap.containsKey(prefix + "id_sokhosho_output_yh_err"))
			{
				inMap.put(prefix + "id_sokhosho_output_yh_err", template.getString(EKK0091D010CBSMsg.ID_SOKHOSHO_OUTPUT_YH_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.PAYWAY_KEIZOKU_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "payway_keizoku_flg_err"))
			{
				inMap.put(prefix + "payway_keizoku_flg_err", template.getString(EKK0091D010CBSMsg.PAYWAY_KEIZOKU_FLG_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.FTRIAL_KANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_kanyu_ymd_err"))
			{
				inMap.put(prefix + "ftrial_kanyu_ymd_err", template.getString(EKK0091D010CBSMsg.FTRIAL_KANYU_YMD_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_prd_endymd_err"))
			{
				inMap.put(prefix + "ftrial_prd_endymd_err", template.getString(EKK0091D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.HONKANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_ymd_err", template.getString(EKK0091D010CBSMsg.HONKANYU_YMD_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_iko_kigen_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_iko_kigen_ymd_err", template.getString(EKK0091D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.LETTER_HASSO_SHIWAKE_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "letter_hasso_shiwake_div_err"))
			{
				inMap.put(prefix + "letter_hasso_shiwake_div_err", template.getString(EKK0091D010CBSMsg.LETTER_HASSO_SHIWAKE_DIV_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.THNX_LETTER_SHS_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "thnx_letter_shs_cd_err"))
			{
				inMap.put(prefix + "thnx_letter_shs_cd_err", template.getString(EKK0091D010CBSMsg.THNX_LETTER_SHS_CD_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.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(EKK0091D010CBSMsg.WEB_OP_ADD_FAIL_FLG_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.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(EKK0091D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NO_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.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(EKK0091D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NOPT_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.CHMT_HJIN_EO_YKAE_SVKEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "chmt_hjin_eo_ykae_svkei_no_err"))
			{
				inMap.put(prefix + "chmt_hjin_eo_ykae_svkei_no_err", template.getString(EKK0091D010CBSMsg.CHMT_HJIN_EO_YKAE_SVKEI_NO_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.PNLTY_HASSEI_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pnlty_hassei_cd_err"))
			{
				inMap.put(prefix + "pnlty_hassei_cd_err", template.getString(EKK0091D010CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "ido_div_err"))
			{
				inMap.put(prefix + "ido_div_err", template.getString(EKK0091D010CBSMsg.IDO_DIV_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.INTR_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "intr_cd_err"))
			{
				inMap.put(prefix + "intr_cd_err", template.getString(EKK0091D010CBSMsg.INTR_CD_ERR));
			}
		}

		// 課金開始年月日補正有無
		if (!template.isNull(EKK0091D010CBSMsg.CHRG_STA_YMD_HOSEI_UM_ERR))
		{
			if (!inMap.containsKey(prefix + "chrg_sta_ymd_hosei_um_err"))
			{
				inMap.put(prefix + "chrg_sta_ymd_hosei_um_err", template.getString(EKK0091D010CBSMsg.CHRG_STA_YMD_HOSEI_UM_ERR));
			}
		}

		// 業務連絡備考
		if (!template.isNull(EKK0091D010CBSMsg.WORK_RRK_BIKO_ERR))
		{
			if (!inMap.containsKey(prefix + "work_rrk_biko_err"))
			{
				inMap.put(prefix + "work_rrk_biko_err", template.getString(EKK0091D010CBSMsg.WORK_RRK_BIKO_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.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(EKK0091D010CBSMsg.AUTO_SHOSA_TRAN_STAT_CD_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.KOTEI_IP_AD_HKTGI_UM_ERR))
		{
			if (!inMap.containsKey(prefix + "kotei_ip_ad_hktgi_um_err"))
			{
				inMap.put(prefix + "kotei_ip_ad_hktgi_um_err", template.getString(EKK0091D010CBSMsg.KOTEI_IP_AD_HKTGI_UM_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.PC_PACK_UM_ERR))
		{
			if (!inMap.containsKey(prefix + "pc_pack_um_err"))
			{
				inMap.put(prefix + "pc_pack_um_err", template.getString(EKK0091D010CBSMsg.PC_PACK_UM_ERR));
			}
		}

		if (!template.isNull(EKK0091D010CBSMsg.CUST_NOVA_USE_UM_ERR))
		{
			if (!inMap.containsKey(prefix + "cust_nova_use_um_err"))
			{
				inMap.put(prefix + "cust_nova_use_um_err", template.getString(EKK0091D010CBSMsg.CUST_NOVA_USE_UM_ERR));
			}
		}

		// 請求契約番号
		if (!template.isNull(EKK0091D010CBSMsg.SEIKY_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "seiky_kei_no_err"))
			{
				inMap.put(prefix + "seiky_kei_no_err", template.getString(EKK0091D010CBSMsg.SEIKY_KEI_NO_ERR));
			}
		}

		// 料金項目コード
		if (!template.isNull(EKK0091D010CBSMsg.PRC_KMK_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "prc_kmk_cd_err"))
			{
				inMap.put(prefix + "prc_kmk_cd_err", template.getString(EKK0091D010CBSMsg.PRC_KMK_CD_ERR));
			}
		}

		// 事務手数料自動適用要否
		if (!template.isNull(EKK0091D010CBSMsg.RULE0059_AUTO_APLY_ERR))
		{
			if (!inMap.containsKey(prefix + "rule0059_auto_aply_err"))
			{
				inMap.put(prefix + "rule0059_auto_aply_err", template.getString(EKK0091D010CBSMsg.RULE0059_AUTO_APLY_ERR));
			}
		}
		
		// 工事費自動適用要否
		if (!template.isNull(EKK0091D010CBSMsg.RULE0079_AUTO_APLY_ERR))
		{
			if (!inMap.containsKey(prefix + "rule0079_auto_aply_err"))
			{
				inMap.put(prefix + "rule0079_auto_aply_err", template.getString(EKK0091D010CBSMsg.RULE0079_AUTO_APLY_ERR));
			}
		}

		return param;
	}

	/**
	 * サービス契約内訳＜eo光ネット＞登録のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @param prefix
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0171D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			String fixedText, String prefix) throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0091D010CBSMsg.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(EKK0171D010CBSMsg.SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_kei_no_err"))
			{
				inMap.put(prefix + "svc_kei_no_err", template.getString(EKK0171D010CBSMsg.SVC_KEI_NO_ERR));
			}
		}

		// 申込明細番号
		if (!template.isNull(EKK0171D010CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_dtl_no_err"))
			{
				inMap.put(prefix + "mskm_dtl_no_err", template.getString(EKK0171D010CBSMsg.MSKM_DTL_NO_ERR));
			}
		}

		// 提供方式契約番号
		if (!template.isNull(EKK0171D010CBSMsg.TK_HOSHIKI_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "tk_hoshiki_kei_no_err"))
			{
				inMap.put(prefix + "tk_hoshiki_kei_no_err", template.getString(EKK0171D010CBSMsg.TK_HOSHIKI_KEI_NO_ERR));
			}
		}

		// 支払方法継続フラグ
		if (!template.isNull(EKK0171D010CBSMsg.PAYWAY_KEIZOKU_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "payway_keizoku_flg_err"))
			{
				inMap.put(prefix + "payway_keizoku_flg_err", template.getString(EKK0171D010CBSMsg.PAYWAY_KEIZOKU_FLG_ERR));
			}
		}

		// WEBオプション追加不可フラグ
		if (!template.isNull(EKK0171D010CBSMsg.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(EKK0171D010CBSMsg.WEB_OP_ADD_FAIL_FLG_ERR));
			}
		}

		// 業務連絡備考
		if (!template.isNull(EKK0171D010CBSMsg.WORK_RRK_BIKO_ERR))
		{
			if (!inMap.containsKey(prefix + "work_rrk_biko_err"))
			{
				inMap.put(prefix + "work_rrk_biko_err", template.getString(EKK0171D010CBSMsg.WORK_RRK_BIKO_ERR));
			}
		}

		// サービス利用開始希望年月日
		if (!template.isNull(EKK0171D010CBSMsg.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(EKK0171D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR));
			}
		}

		// 予約適用開始希望年月日
		if (!template.isNull(EKK0171D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "rsv_tsta_kibo_ymd_err"))
			{
				inMap.put(prefix + "rsv_tsta_kibo_ymd_err", template.getString(EKK0171D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR));
			}
		}

		// 試用加入年月日
		if (!template.isNull(EKK0171D010CBSMsg.FTRIAL_KANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_kanyu_ymd_err"))
			{
				inMap.put(prefix + "ftrial_kanyu_ymd_err", template.getString(EKK0171D010CBSMsg.FTRIAL_KANYU_YMD_ERR));
			}
		}

		// 試用期間終了年月日
		if (!template.isNull(EKK0171D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_prd_endymd_err"))
			{
				inMap.put(prefix + "ftrial_prd_endymd_err", template.getString(EKK0171D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR));
			}
		}

		// 本加入年月日
		if (!template.isNull(EKK0171D010CBSMsg.HONKANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_ymd_err", template.getString(EKK0171D010CBSMsg.HONKANYU_YMD_ERR));
			}
		}

		// 本加入移行期限年月日
		if (!template.isNull(EKK0171D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_iko_kigen_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_iko_kigen_ymd_err", template.getString(EKK0171D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR));
			}
		}

		// 違約金発生コード
		if (!template.isNull(EKK0171D010CBSMsg.PNLTY_HASSEI_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pnlty_hassei_cd_err"))
			{
				inMap.put(prefix + "pnlty_hassei_cd_err", template.getString(EKK0171D010CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}

		// 異動区分
		if (!template.isNull(EKK0171D010CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "ido_div_err"))
			{
				inMap.put(prefix + "ido_div_err", template.getString(EKK0171D010CBSMsg.IDO_DIV_ERR));
			}
		}

		// 提供帯域コード
		if (!template.isNull(EKK0171D010CBSMsg.TK_TAIIKI_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "tk_taiiki_cd_err"))
			{
				inMap.put(prefix + "tk_taiiki_cd_err", template.getString(EKK0171D010CBSMsg.TK_TAIIKI_CD_ERR));
			}
		}

		// 更新年月日時分秒(更新前)
		if (!template.isNull(EKK0171D010CBSMsg.UPD_DTM_BF_ERR))
		{
			if (!inMap.containsKey(prefix + "upd_dtm_bf_err"))
			{
				inMap.put(prefix + "upd_dtm_bf_err", template.getString(EKK0171D010CBSMsg.UPD_DTM_BF_ERR));
			}
		}

		return param;
	}

	/**
	 * オプションサービス契約＜サポート＞登録のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @param prefix
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0391D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			String fixedText, String prefix) throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0391D010CBSMsg.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(EKK0391D010CBSMsg.OP_SVC_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "op_svc_cd_err"))
			{
				inMap.put(prefix + "op_svc_cd_err", template.getString(EKK0391D010CBSMsg.OP_SVC_CD_ERR));
			}
		}

		// 料金コースコード
		if (!template.isNull(EKK0391D010CBSMsg.PCRS_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pcrs_cd_err"))
			{
				inMap.put(prefix + "pcrs_cd_err", template.getString(EKK0391D010CBSMsg.PCRS_CD_ERR));
			}
		}

		// 料金プランコード
		if (!template.isNull(EKK0391D010CBSMsg.PPLAN_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pplan_cd_err"))
			{
				inMap.put(prefix + "pplan_cd_err", template.getString(EKK0391D010CBSMsg.PPLAN_CD_ERR));
			}
		}

		// サービス契約番号
		if (!template.isNull(EKK0391D010CBSMsg.SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_kei_no_err"))
			{
				inMap.put(prefix + "svc_kei_no_err", template.getString(EKK0391D010CBSMsg.SVC_KEI_NO_ERR));
			}
		}

		// サービス契約内訳番号
		if (!template.isNull(EKK0391D010CBSMsg.SVC_KEI_UCWK_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_kei_ucwk_no_err"))
			{
				inMap.put(prefix + "svc_kei_ucwk_no_err", template.getString(EKK0391D010CBSMsg.SVC_KEI_UCWK_NO_ERR));
			}
		}

		// SYSID
		if (!template.isNull(EKK0391D010CBSMsg.SYSID_ERR))
		{
			if (!inMap.containsKey(prefix + "sysid_err"))
			{
				inMap.put(prefix + "sysid_err", template.getString(EKK0391D010CBSMsg.SYSID_ERR));
			}
		}

		// 申込明細番号
		if (!template.isNull(EKK0391D010CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_dtl_no_err"))
			{
				inMap.put(prefix + "mskm_dtl_no_err", template.getString(EKK0391D010CBSMsg.MSKM_DTL_NO_ERR));
			}
		}

		// 試用加入年月日
		if (!template.isNull(EKK0391D010CBSMsg.FTRIAL_KANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_kanyu_ymd_err"))
			{
				inMap.put(prefix + "ftrial_kanyu_ymd_err", template.getString(EKK0391D010CBSMsg.FTRIAL_KANYU_YMD_ERR));
			}
		}

		// 試用期間終了年月日
		if (!template.isNull(EKK0391D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_prd_endymd_err"))
			{
				inMap.put(prefix + "ftrial_prd_endymd_err", template.getString(EKK0391D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR));
			}
		}

		// 本加入年月日
		if (!template.isNull(EKK0391D010CBSMsg.HONKANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_ymd_err", template.getString(EKK0391D010CBSMsg.HONKANYU_YMD_ERR));
			}
		}

		// 本加入移行期限年月日
		if (!template.isNull(EKK0391D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_iko_kigen_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_iko_kigen_ymd_err", template.getString(EKK0391D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR));
			}
		}

		// サービス利用開始希望年月日
		if (!template.isNull(EKK0391D010CBSMsg.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(EKK0391D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR));
			}
		}

		// 予約適用開始希望年月日
		if (!template.isNull(EKK0391D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "rsv_tsta_kibo_ymd_err"))
			{
				inMap.put(prefix + "rsv_tsta_kibo_ymd_err", template.getString(EKK0391D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR));
			}
		}

		// 違約金発生コード
		if (!template.isNull(EKK0391D010CBSMsg.PNLTY_HASSEI_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pnlty_hassei_cd_err"))
			{
				inMap.put(prefix + "pnlty_hassei_cd_err", template.getString(EKK0391D010CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}

		// 異動区分
		if (!template.isNull(EKK0391D010CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "ido_div_err"))
			{
				inMap.put(prefix + "ido_div_err", template.getString(EKK0391D010CBSMsg.IDO_DIV_ERR));
			}
		}

		// 親契約識別コード
		if (!template.isNull(EKK0391D010CBSMsg.OYA_KEI_SKBT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "oya_kei_skbt_cd_err"))
			{
				inMap.put(prefix + "oya_kei_skbt_cd_err", template.getString(EKK0391D010CBSMsg.OYA_KEI_SKBT_CD_ERR));
			}
		}

		// 請求契約番号
		if (!template.isNull(EKK0391D010CBSMsg.SEIKY_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "seiky_kei_no_err"))
			{
				inMap.put(prefix + "seiky_kei_no_err", template.getString(EKK0391D010CBSMsg.SEIKY_KEI_NO_ERR));
			}
		}

		// 料金項目コード
		if (!template.isNull(EKK0391D010CBSMsg.PRC_KMK_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "prc_kmk_cd_err"))
			{
				inMap.put(prefix + "prc_kmk_cd_err", template.getString(EKK0391D010CBSMsg.PRC_KMK_CD_ERR));
			}
		}

		// 更新年月日時分秒(更新前)
		if (!template.isNull(EKK0391D010CBSMsg.UPD_DTM_BF_ERR))
		{
			if (!inMap.containsKey(prefix + "upd_dtm_bf_err"))
			{
				inMap.put(prefix + "upd_dtm_bf_err", template.getString(EKK0391D010CBSMsg.UPD_DTM_BF_ERR));
			}
		}

		return param;
	}

	/**
	 * サブオプションサービス契約＜ISP＞登録のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @param prefix
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0411D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			String fixedText, String prefix) throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0411D010CBSMsg.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(EKK0411D010CBSMsg.OP_SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "op_svc_kei_no_err"))
			{
				inMap.put(prefix + "op_svc_kei_no_err", template.getString(EKK0411D010CBSMsg.OP_SVC_KEI_NO_ERR));
			}
		}

		// サブオプションサービスコード
		if (!template.isNull(EKK0411D010CBSMsg.SBOP_SVC_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "sbop_svc_cd_err"))
			{
				inMap.put(prefix + "sbop_svc_cd_err", template.getString(EKK0411D010CBSMsg.SBOP_SVC_CD_ERR));
			}
		}

		// 料金コースコード
		if (!template.isNull(EKK0411D010CBSMsg.PCRS_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pcrs_cd_err"))
			{
				inMap.put(prefix + "pcrs_cd_err", template.getString(EKK0411D010CBSMsg.PCRS_CD_ERR));
			}
		}

		// 料金プランコード
		if (!template.isNull(EKK0411D010CBSMsg.PPLAN_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pplan_cd_err"))
			{
				inMap.put(prefix + "pplan_cd_err", template.getString(EKK0411D010CBSMsg.PPLAN_CD_ERR));
			}
		}

		// 申込明細番号
		if (!template.isNull(EKK0411D010CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_dtl_no_err"))
			{
				inMap.put(prefix + "mskm_dtl_no_err", template.getString(EKK0411D010CBSMsg.MSKM_DTL_NO_ERR));
			}
		}

		// 試用加入年月日
		if (!template.isNull(EKK0411D010CBSMsg.FTRIAL_KANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_kanyu_ymd_err"))
			{
				inMap.put(prefix + "ftrial_kanyu_ymd_err", template.getString(EKK0411D010CBSMsg.FTRIAL_KANYU_YMD_ERR));
			}
		}

		// 試用期間終了年月日
		if (!template.isNull(EKK0411D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_prd_endymd_err"))
			{
				inMap.put(prefix + "ftrial_prd_endymd_err", template.getString(EKK0411D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR));
			}
		}

		// 本加入年月日
		if (!template.isNull(EKK0411D010CBSMsg.HONKANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_ymd_err", template.getString(EKK0411D010CBSMsg.HONKANYU_YMD_ERR));
			}
		}

		// 本加入移行期限年月日
		if (!template.isNull(EKK0411D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_iko_kigen_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_iko_kigen_ymd_err", template.getString(EKK0411D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR));
			}
		}

		// サービス利用開始希望年月日
		if (!template.isNull(EKK0411D010CBSMsg.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(EKK0411D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR));
			}
		}

		// 予約適用開始希望年月日
		if (!template.isNull(EKK0411D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "rsv_tsta_kibo_ymd_err"))
			{
				inMap.put(prefix + "rsv_tsta_kibo_ymd_err", template.getString(EKK0411D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR));
			}
		}

		// 違約金発生コード
		if (!template.isNull(EKK0411D010CBSMsg.PNLTY_HASSEI_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pnlty_hassei_cd_err"))
			{
				inMap.put(prefix + "pnlty_hassei_cd_err", template.getString(EKK0411D010CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}

		// 異動区分
		if (!template.isNull(EKK0411D010CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "ido_div_err"))
			{
				inMap.put(prefix + "ido_div_err", template.getString(EKK0411D010CBSMsg.IDO_DIV_ERR));
			}
		}

		// 追加容量
		if (!template.isNull(EKK0411D010CBSMsg.ADD_CAPA_ERR))
		{
			if (!inMap.containsKey(prefix + "add_capa_err"))
			{
				inMap.put(prefix + "add_capa_err", template.getString(EKK0411D010CBSMsg.ADD_CAPA_ERR));
			}
		}

		// エイリアス
		if (!template.isNull(EKK0411D010CBSMsg.ALIAS_ERR))
		{
			if (!inMap.containsKey(prefix + "alias_err"))
			{
				inMap.put(prefix + "alias_err", template.getString(EKK0411D010CBSMsg.ALIAS_ERR));
			}
		}

		// エイリアス変更年月日
		if (!template.isNull(EKK0411D010CBSMsg.ALIAS_CHGE_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "alias_chge_ymd_err"))
			{
				inMap.put(prefix + "alias_chge_ymd_err", template.getString(EKK0411D010CBSMsg.ALIAS_CHGE_YMD_ERR));
			}
		}

		// 請求契約番号
		if (!template.isNull(EKK0411D010CBSMsg.SEIKY_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "seiky_kei_no_err"))
			{
				inMap.put(prefix + "seiky_kei_no_err", template.getString(EKK0411D010CBSMsg.SEIKY_KEI_NO_ERR));
			}
		}

		// 料金項目コード
		if (!template.isNull(EKK0411D010CBSMsg.PRC_KMK_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "prc_kmk_cd_err"))
			{
				inMap.put(prefix + "prc_kmk_cd_err", template.getString(EKK0411D010CBSMsg.PRC_KMK_CD_ERR));
			}
		}

		// 更新年月日時分秒(更新前)
		if (!template.isNull(EKK0411D010CBSMsg.UPD_DTM_BF_ERR))
		{
			if (!inMap.containsKey(prefix + "upd_dtm_bf_err"))
			{
				inMap.put(prefix + "upd_dtm_bf_err", template.getString(EKK0411D010CBSMsg.UPD_DTM_BF_ERR));
			}
		}

		return param;
	}

	/**
	 * 回線対象サービス契約登録のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0241D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0241D010CBSMsg.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(EKK0241D010CBSMsg.SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey("kk0241_svc_kei_no_err"))
			{
				inMap.put("kk0241_svc_kei_no_err", template.getString(EKK0241D010CBSMsg.SVC_KEI_NO_ERR));
			}
		}
		// サービス契約回線内訳番号
		if (!template.isNull(EKK0241D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR))
		{
			if (!inMap.containsKey("kk241_svc_kei_kaisen_ucwk_no_err"))
			{
				inMap.put("kk241_svc_kei_kaisen_ucwk_no_err", template.getString(EKK0241D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR));
			}
		}

		return param;
	}

	/**
	 * オプションサービス契約登録部品の上りマッピング処理を行います。
	 * @param param
	 * @param fixedText
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	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"));
			}
		}
	}

	/**
	 * オプションサービス契約<ISP>登録部品の上りマッピング処理を行います。
	 * @param param
	 * @param fixedText
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void editInAddOpSvcKeiISP(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)param.getData(fixedText);
		
		ArrayList inList = (ArrayList)(inMap.get(OP_ISP_ADD_LIST));

		if(null != inList)
		{
			int opListCnt = 0;
			opListCnt = inList.size();
			for (int i = 0; i < opListCnt; i++)
			{
				HashMap svcMap = (HashMap)inList.get(i);

				// サービス契約番号
				svcMap.put("kk0361_svc_kei_no", this.svcKeiNo);
				// SYSID
				if (svcMap.get("kk0361_sysid") == null || "".equals(svcMap.get("kk0361_sysid")))
				{
					if (getKeishaWorkMapValue(param, "sysid") != null)
					{
						svcMap.put("kk0361_sysid", getKeishaWorkMapValue(param, "sysid"));
					}
				}
				// 申込明細番号
				svcMap.put("kk0361_mskm_dtl_no", this.mskmDtlNo);
				// 請求契約番号
				if (svcMap.get("kk0361_seiky_kei_no") == null || "".equals(svcMap.get("kk0361_seiky_kei_no")))
				{
					if (getPaywayWorkMapValue(param, "seiky_kei_no") != null)
					{
						svcMap.put("kk0361_seiky_kei_no", getPaywayWorkMapValue(param, "seiky_kei_no"));
					}
				}

			}
		}
	}

	/**
	 * 割賦契約登録部品の上りマッピング処理を行います。
	 * @param param
	 * @param fixedText
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void editInAddkapKei(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)param.getData(fixedText);
		
		ArrayList inList = (ArrayList)(inMap.get(KAP_ADD_LIST));

		if(null != inList)
		{
			int opListCnt = 0;
			opListCnt = inList.size();
			for (int i = 0; i < opListCnt; i++)
			{
				HashMap svcMap = (HashMap)inList.get(i);

				// 機器提供サービス契約番号
				if (getWorkMapValue(param, "kktk_svc_kei_no") != null)
				{
					svcMap.put("kk2541_kktk_svc_kei_no", getWorkMapValue(param, "kktk_svc_kei_no"));
				}
				// 登録時機器変更番号
				if (getWorkMapValue(param, "kiki_chg_no") != null)
				{
					svcMap.put("kk2541_add_ji_kiki_chg_no", getWorkMapValue(param, "kiki_chg_no"));
				}
				// 申込明細番号
				svcMap.put("kk2541_mskm_dtl_no", this.mskmDtlNo);

			}
		}
	}

	/**
	 * ファミリーパック自動登録用マッピングを行います。
	 * @param param IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void setFamipaData(IRequestParameterReadWrite param) throws RequestParameterException
	{
		HashMap kksv008027Map = (HashMap)param.getData(CC_WORK_AREA_NAME_KKSV008027);
		if (kksv008027Map == null)
		{
			kksv008027Map = new HashMap();
			param.setData(CC_WORK_AREA_NAME_KKSV008027, kksv008027Map);
		}

		HashMap kksv008028Map = (HashMap)param.getData(CC_WORK_AREA_NAME_KKSV008028);
		if (kksv008028Map == null)
		{
			kksv008028Map = new HashMap();
			param.setData(CC_WORK_AREA_NAME_KKSV008028, kksv008028Map);
		}

		HashMap kksv008252Map = (HashMap)param.getData(CC_WORK_AREA_NAME_KKSV008252);
		if (kksv008252Map == null)
		{
			kksv008252Map = new HashMap();
			param.setData(CC_WORK_AREA_NAME_KKSV008252, kksv008252Map);
		}

		HashMap kksv008253Map = (HashMap)param.getData(CC_WORK_AREA_NAME_KKSV008253);
	
		if (kksv008253Map == null)
		{
			kksv008253Map = new HashMap();
			param.setData(CC_WORK_AREA_NAME_KKSV008253, kksv008253Map);
		}

		// 申込明細番号
		kksv008027Map.put("mskm_dtl_no", mskmDtlNo);
		kksv008028Map.put("mskm_dtl_no", mskmDtlNo);
		kksv008252Map.put("mskm_dtl_no", mskmDtlNo);
		kksv008253Map.put("mskm_dtl_no", mskmDtlNo);

		// 申込番号
		if (null == mskmNo && getMskmWorkMapValue(param, "mskm_no") != null)
		{
			mskmNo = getMskmWorkMapValue(param, "mskm_no");
		}
		kksv008027Map.put("mskm_no", mskmNo);
		kksv008252Map.put("mskm_no", mskmNo);

		// サービス契約番号
		kksv008027Map.put("key_svc_kei_no", svcKeiNo);
		kksv008028Map.put("key_svc_kei_no", svcKeiNo);
		kksv008252Map.put("key_svc_kei_no", svcKeiNo);
		kksv008253Map.put("key_svc_kei_no", svcKeiNo);
	}
	
	/**
	 * 機器提供サービス契約登録部品の上りマッピング処理
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param index
	 * @param svcListNm
	 * @param prefix
	 * @exception RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void editInAddKktkSvcKei(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);
		}
		
		svcMap.put(JCMConstants.FUNC_CODE_KEY, inMap.get(JCMConstants.FUNC_CODE_KEY));

// 20130107 星野 ADD START
// 親契約識別コードが「サービス契約回線内訳」の場合はサービス契約番号は設定しない
		if(!"02".equals( svcMap.get(prefix + "oya_kei_skbt_cd" ) ) ){
// 20130107 星野 ADD END
			// サービス契約番号
			svcMap.put(prefix + "svc_kei_no", this.svcKeiNo);
// 20130107 星野 ADD START
		}
// 20130107 星野 ADD END
		
		// SYSID
		if (svcMap == null || svcMap.get(prefix + "sysid") == null || "".equals(svcMap.get(prefix + "sysid")))
		{
			svcMap.put(prefix + "sysid", getKeishaWorkMapValue(param, "sysid"));
		}
		
		// 申込明細番号
		svcMap.put(prefix + "mskm_dtl_no", this.mskmDtlNo);
		
		// 請求契約番号
		if (svcMap == null || svcMap.get(prefix + "seiky_kei_no") == null || "".equals(svcMap.get(prefix + "seiky_kei_no")))
		{
			svcMap.put(prefix + "seiky_kei_no", getPaywayWorkMapValue(param, "seiky_kei_no"));
		}
		
		// 更新年月日時分秒(更新前)
		String lastDtm = JKKBpCommon.getLastDtmBySvcKeiNo(param, this.svcKeiNo, null);
		svcMap.put(prefix + "upd_dtm_bf", lastDtm);
	}
	
	/**
	 *  機器提供サービス契約登録部品の下りマッピング処理
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param index
	 * @param svcListNm
	 * @param prefix
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private void editOutAddKktkSvcKei(IRequestParameterReadWrite param, String fixedText, int index, String svcListNm, String prefix)
	throws Exception
	{
		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);
		}
		
		// 作業領域の取得
		Map workMap = (Map)param.getMappingWorkArea();

		// 更新年月日時分秒
		String lastDtm = (String)dataMap.get(prefix + "upd_dtm");
		JKKBpCommon.setLastDtmBySvcKeiNo(param, this.svcKeiNo, lastDtm);

		/* 作業項目情報 */
		HashMap addSvcKeiNetWorkMap = (HashMap)workMap.get(CC_WORK_AREA_NAME);
		if (addSvcKeiNetWorkMap == null)
		{
			addSvcKeiNetWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_NAME, addSvcKeiNetWorkMap);
		}

		// 機器提供サービスコード
		String kktkSvcCd = (String)dataMap.get(prefix + "kktk_svc_cd");
		if (JKKStrConst.KKTK_SVC_CD_TABLET.equals(kktkSvcCd))
		{
			// 機器提供サービス契約番号
			String kktkSvcKeiNo = (String)dataMap.get(prefix + "kktk_svc_kei_no");
			addSvcKeiNetWorkMap.put("kktk_svc_kei_no", kktkSvcKeiNo);

			// 機器提供変更番号
			String kikiChgNo = (String)dataMap.get(prefix + "kiki_chg_no");
			addSvcKeiNetWorkMap.put("kiki_chg_no", kikiChgNo);
		}
	}
	
	/**
	 * 割引サービス契約登録の上りマッピング処理
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param index
	 * @param svcListNm
	 * @param prefix
	 * @exception RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void editInAddWribSvcKei(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);
		}
		
		svcMap.put(JCMConstants.FUNC_CODE_KEY, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// SYSID
		if (svcMap == null || svcMap.get(prefix + "sysid") == null || "".equals(svcMap.get(prefix + "sysid")))
		{
			svcMap.put(prefix + "sysid", getKeishaWorkMapValue(param, "sysid"));
		}

		// 申込明細番号
		if (getWorkMapValue(param, "mskm_dtl_no") == null)
		{
			svcMap.put(prefix + "mskm_dtl_no", getMskmDtlWorkMapValue(param, "mskm_dtl_no_net"));
		}
		else
		{
			svcMap.put(prefix + "mskm_dtl_no", getWorkMapValue(param, "mskm_dtl_no"));
		}

		ArrayList<HashMap<String, Object>> msg1List = (ArrayList<HashMap<String, Object>>)svcMap.get(prefix + "EKK0451D010CBSMsg1List");
		if(null == msg1List)
		{
			msg1List = new ArrayList<HashMap<String, Object>>();
		}
		
		for(HashMap<String, Object> childMap : msg1List)
		{
			// サービス契約番号
			if (childMap == null || childMap.get(prefix + "svc_kei_no") == null || "".equals(childMap.get(prefix + "svc_kei_no")))
			{
				childMap.put(prefix + "svc_kei_no", this.svcKeiNo);
			}
		}

		// 更新年月日時分秒(更新前)
		String lastDtm = JKKBpCommon.getLastDtmBySvcKeiNo(param, this.svcKeiNo, null);
		svcMap.put(prefix + "upd_dtm_bf", lastDtm);
	}

	/**
	 *  割引サービス契約登録の下りマッピング処理
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param index
	 * @param svcListNm
	 * @param prefix
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private void editOutAddWribSvcKei(IRequestParameterReadWrite param, String fixedText, int index, String svcListNm, String prefix)
	throws Exception
	{
		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);
		}
		
		// 更新年月日時分秒
		String lastDtm = (String)dataMap.get(prefix + "upd_dtm");
		JKKBpCommon.setLastDtmBySvcKeiNo(param, this.svcKeiNo, lastDtm);
	}
	
	/**
	 * 一時金情報の設定を行います。
	 * @param param
	 * @param fixedText
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private void addTempChrg(IRequestParameterReadWrite param, String fixedText, SessionHandle handle, String tkhosiki_cd) throws Exception
	{
		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)param.getData(fixedText);
		
		HashMap<String, String> condMap = new HashMap<String, String>();
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;
		
		// 住所変更登録コモンコンポーネントマッピングクラスインスタンスを取得
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();

		// SCリクエストInvokerを取得
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		
// ST2-2013-0001613対応 START
		/** 提供方式契約情報を取得する */
		HashMap<String, Object> kk0891_a010_map = new HashMap<String, Object>();
		if (!StringUtils.isEmpty(tkhosiki_cd)) {
			// 提供方式契約番号を設定
			condMap.put("cond_key_tk_hoshiki_kei_no", tkhosiki_cd);
			
			// ・EKK0891A010 提供方式契約一意照会
			reqMap = mapper.setEKK0891A010(param, fixedText, condMap);
			resMap = scCall.run(reqMap, handle);
			kk0891_a010_map = mapper.getEKK0891A010(param, fixedText, resMap);
			mapper.scResultCheck(param);
		}
// ST2-2013-0001613対応 END
		
		/** 事務手数料判定SIFにて必須項目を取得 */
		
		condMap.clear();
		// 異動区分を設定
		condMap.put(EKK1021C011CBSMsg.IDO_DIV, "00001");
		// 申込料金グループコードを設定
		condMap.put(EKK1021C011CBSMsg.MSKM_PRC_GRP_CD, (String)inMap.get("mskm_prc_grp_cd"));
		// ネット同時申込有無を設定
		condMap.put(EKK1021C011CBSMsg.NET_DOJI_MSKM_UM, (String)inMap.get("net_doji_mskm_um"));
		// 申込料金コースコードを設定
		condMap.put(EKK1021C011CBSMsg.MSKM_PCRS_CD, (String)inMap.get("mskm_pcrs_cd"));
		// 工事有無を設定
		condMap.put(EKK1021C011CBSMsg.KOJI_UM, (String)inMap.get("koji_um"));
		// オプションサービスコードを設定
		condMap.put(EKK1021C011CBSMsg.OP_SVC_CD, (String)inMap.get("op_svc_cd"));
		// 割引サービスコードを設定
		condMap.put(EKK1021C011CBSMsg.WRIB_SVC_CD, (String)inMap.get("wrib_svc_cd"));
		// 割ID通知書手数料有無を設定
		condMap.put(EKK1021C011CBSMsg.ID_TCHISHO_CMS_UM, (String)inMap.get("id_tchisho_cms_um"));
		// 異動理由コードを設定
		condMap.put(EKK1021C011CBSMsg.IDO_RSN_CD, (String)inMap.get("ido_rsn_cd"));
		// 番ポ有無を設定
		condMap.put(EKK1021C011CBSMsg.BMP_UM, (String)inMap.get("bmp_um"));
		// マンション識別コードを設定
		condMap.put(EKK1021C011CBSMsg.MANS_SKBT_CD, (String)inMap.get("mans_skbt_cd"));
// ST2-2013-0001613対応 START
		// 機器提供種別コードを設定
		condMap.put(EKK1021C011CBSMsg.KKTK_SBT_CD, (String)inMap.get("vdsltype"));
		// 提供方式コードを設定
		condMap.put(EKK1021C011CBSMsg.TK_HOSHIKI_CD, (String)kk0891_a010_map.get(EKK0891A010CBSMsg1List.TK_HOSHIKI_CD));
		// 提供料金種別コードを設定
		condMap.put(EKK1021C011CBSMsg.TK_PRC_SBT_CD, (String)kk0891_a010_map.get(EKK0891A010CBSMsg1List.TK_PRC_SBT_CD));
// ST2-2013-0001613対応 END
		
// ST2-2013-0001613対応 START
		// ・EKK1021C011  事務手数料判定
		reqMap = mapper.setEKK1021C011(param, fixedText, condMap);
		resMap = scCall.run(reqMap, handle);
		ArrayList<HashMap<String, Object>> kk1021_c011_list = mapper.getEKK1021C011_02(param, fixedText, resMap);
		mapper.scResultCheck(param);
		
		/** 一時金設定SIFにて必須項目を取得 */
		// 事務手数料判定結果取得用マップ
		Iterator<HashMap<String, Object>> kk1021_c011_ite = kk1021_c011_list.iterator();
		while(kk1021_c011_ite.hasNext()) {
			
			HashMap<String, Object> kk1021_c011_map = kk1021_c011_ite.next();
			HashMap<String, Object> kk1021_d010_map = new HashMap<String, Object>();
			if ("1".equals(kk1021_c011_map.get(EKK1021C011CBSMsg1List.JUDGE_RSLT))
// OM-2013-0003955対応 20131106 星野 ADD START
				// 工事費は住所変更では不要 
				&& !"20".equals(kk1021_c011_map.get(EKK1021C011CBSMsg1List.ICJKN_BRI_CD))
// OM-2013-0003955対応 20131106 星野 ADD END
			) {
				
				// 一時支払料金番号
				kk1021_d010_map.put(EKK1021D010CBSMsg.TMP_PAY_PRC_NO, kk1021_c011_map.get(EKK1021C011CBSMsg1List.TMP_PAY_PRC_NO));
// OM-2013-0003954対応 20131106 星野 DEL START
//				// 一時金設定コード
//				kk1021_d010_map.put(EKK1021D010CBSMsg.ICJKN_SETTE_CD, kk1021_c011_map.get(EKK1021C011CBSMsg1List.ICJKN_SETTE_CD));
// OM-2013-0003954対応 20131106 星野 DEL END
				// 一時金指定率
				String icjkn_shitei_rt = (String)inMap.get("icjkn_shitei_rt");
// OM-2013-0003954対応 20131106 星野 ADD START
				// 一時金設定コード
				kk1021_d010_map.put(EKK1021D010CBSMsg.ICJKN_SETTE_CD, convJmteCd(icjkn_shitei_rt) );
// OM-2013-0003954対応 20131106 星野 ADD END
				String rt = null;

				if ("1".equals(icjkn_shitei_rt))		//一時金設定コード：有り
				{
					rt = "100.0";
				}
				else if ("2".equals(icjkn_shitei_rt))	//一時金設定コード：半額
				{
					rt = "50.0";
				}
				else if ("3".equals(icjkn_shitei_rt))	//一時金設定コード：指定額
				{
					rt = "100.0";
				}
				kk1021_d010_map.put(EKK1021D010CBSMsg.ICJKN_SHITEI_RT, rt);
				
				// 一時金指定額
				kk1021_d010_map.put(EKK1021D010CBSMsg.ICJKN_SHITEI_AMNT, inMap.get("icjkn_shitei_gk"));
				// サービス契約番号
				kk1021_d010_map.put(EKK1021D010CBSMsg.SVC_KEI_NO, this.svcKeiNo);
				// 申込明細番号
				kk1021_d010_map.put(EKK1021D010CBSMsg.MSKM_DTL_NO, this.mskmDtlNo);
				
				// ・EKK1021D010  一時金設定登録
				reqMap = mapper.setEKK1021D010(param, fixedText, kk1021_d010_map);
				resMap = scCall.run(reqMap, handle);
				mapper.getEKK1021D010(param, fixedText, resMap);
				mapper.scResultCheck(param);
			}
		}
// ST2-2013-0001613対応 END
		
// OT-2013-0000688対応 20130724 星野 ADD START
		String hyoujyun_kojihi_div = (String)inMap.get("hyoujyun_kojihi_div");
		// 標準工事費区分が「無料」の場合
		if("02".equals(hyoujyun_kojihi_div)){
			
			HashMap<String, Object> kk1021_d010_map = new HashMap<String, Object>();
			// 一時支払料金番号 工事費（徴収しない）
			kk1021_d010_map.put(EKK1021D010CBSMsg.TMP_PAY_PRC_NO, "999990000001");
			// 一時金設定コード 有
			kk1021_d010_map.put(EKK1021D010CBSMsg.ICJKN_SETTE_CD, "02");
			// 一時金指定率
			kk1021_d010_map.put(EKK1021D010CBSMsg.ICJKN_SHITEI_RT, "");
			// 一時金指定額
			kk1021_d010_map.put(EKK1021D010CBSMsg.ICJKN_SHITEI_AMNT, "");
			// サービス契約番号
			kk1021_d010_map.put(EKK1021D010CBSMsg.SVC_KEI_NO, this.svcKeiNo);
			// 申込明細番号
			kk1021_d010_map.put(EKK1021D010CBSMsg.MSKM_DTL_NO, this.mskmDtlNo);
			// 完了状態コード 対象外
			kk1021_d010_map.put(EKK1021D010CBSMsg.FIN_STAT_CD, "2");
			
			// ・EKK1021D010  一時金設定登録
			reqMap = mapper.setEKK1021D010(param, fixedText, kk1021_d010_map);
			resMap = scCall.run(reqMap, handle);
			mapper.getEKK1021D010(param, fixedText, resMap);
			mapper.scResultCheck(param);
		}
// OT-2013-0000688対応 20130724 星野 ADD END
	}
	
// OM-2013-0003954対応 20131106 星野 ADD START
	/**
	 * CD00748⇒CD00346への変換を行う
	 * */
	private String convJmteCd(String kanyukin)
	{
		if ("0".equals(kanyukin)) {
			kanyukin = "01";
		} else if ("1".equals(kanyukin)) {
			kanyukin = "02";
		} else if ("2".equals(kanyukin)) {
			kanyukin = "03";
		} else if ("3".equals(kanyukin)) {
			kanyukin = "04";
		}

		return kanyukin;
	}
// OM-2013-0003954対応 20131106 星野 ADD END
	
	/**
	 * 進捗の設定を行います。
	 * @param param
	 * @param fixedText
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private void writePgr(IRequestParameterReadWrite param, String fixedText, SessionHandle handle) throws Exception
	{
		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)param.getData(fixedText);
		
		HashMap<String, String> condMap = new HashMap<String, String>();
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;
		
		// 住所変更登録コモンコンポーネントマッピングクラスインスタンスを取得
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();

		// SCリクエストInvokerを取得
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		
		/** 進捗を登録 */ 
		// 異動区分を設定
		condMap.put(EKK1091D010CBSMsg.IDO_DIV, (String)inMap.get("kk0091_ido_div"));
		// サービス契約番号
		condMap.put(EKK1091D010CBSMsg.SVC_KEI_NO, this.svcKeiNo);
		// 異動年月日時分秒
		condMap.put(EKK1091D010CBSMsg.IDO_DTM, JCCBPCommon.getSysDateTimeStamp());
		// 進捗ステータス
		condMap.put(EKK1091D010CBSMsg.PRG_STAT, "0100");
		// 機能コードを設定
		inMap.put("func_cd", "1");
		// ・EKK1091D010 進捗登録
		reqMap = mapper.setEKK1091D010(param, fixedText, condMap, getIdoRsnList(param, fixedText));
		resMap = scCall.run(reqMap, handle);
		mapper.scResultCheck(param);
		
		// 進捗ステータス
		condMap.put(EKK1091D010CBSMsg.PRG_STAT, "3100");
		// ・EKK1091D010 進捗登録
		reqMap = mapper.setEKK1091D010(param, fixedText, condMap, getIdoRsnList(param, fixedText));
		resMap = scCall.run(reqMap, handle);
		mapper.scResultCheck(param);
		
		// 進捗ステータス
		condMap.put(EKK1091D010CBSMsg.PRG_STAT, "3301");
		// ・EKK1091D010 進捗登録
		reqMap = mapper.setEKK1091D010(param, fixedText, condMap, getIdoRsnList(param, fixedText));
		resMap = scCall.run(reqMap, handle);
		mapper.scResultCheck(param);
		
		// 進捗ステータス
		condMap.put(EKK1091D010CBSMsg.PRG_STAT, "9811");
		// ・EKK1091D010 進捗登録
		reqMap = mapper.setEKK1091D010(param, fixedText, condMap, getIdoRsnList(param, fixedText));
		resMap = scCall.run(reqMap, handle);
		mapper.scResultCheck(param);
	}
	
	/**
	 * 異動理由リスト 取得処理.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @throws  Exception  例外が発生した場合
	 * @return  進捗登録用の異動理由リスト
	 */
	private ArrayList<HashMap<String, Object>> getIdoRsnList( IRequestParameterReadWrite param, String fixedText ) throws Exception {

		/** 事前準備 */
		HashMap<String, Object> paramMap = (HashMap<String, Object>)param.getData(fixedText);

		// 投入データ設定[異動理由リスト]
		ArrayList<HashMap<String, Object>> put_ido_rsn_list = new ArrayList<HashMap<String, Object>>();

		// param.異動理由リストの情報を投入データとして登録
		ArrayList<HashMap<String, Object>> prm_ido_rsn_list = (ArrayList<HashMap<String, Object>>)paramMap.get( JKKAdchgConstCC.PARAM_KEY_IDO_RSN_LIST );
		Iterator<HashMap<String, Object>> prm_ido_rsn_ite = prm_ido_rsn_list.iterator();
		while( prm_ido_rsn_ite.hasNext() ){

			HashMap<String, Object> cur_ido_rsn = prm_ido_rsn_ite.next();

			// 投入データを登録
			HashMap<String, Object> put_ido_rsn = new HashMap<String, Object>();
			put_ido_rsn.put( EKK1091D010CBSMsg1List.IDO_RSN_CD, (String)cur_ido_rsn.get( JKKAdchgConstCC.PARAM_KEY_IDO_RSN_CD ) );
			put_ido_rsn.put( EKK1091D010CBSMsg1List.IDO_RSN_MEMO, (String)cur_ido_rsn.get( JKKAdchgConstCC.PARAM_KEY_IDO_RSN_MEMO ) );
			put_ido_rsn_list.add( put_ido_rsn );
		}

		return put_ido_rsn_list;
	}
}
