/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKAddSvcKeiAdslExeCC
*   ソースファイル名：JKKAddSvcKeiAdslExeCC.java
*   作成者          ：富士通
*   日付            ：2011年12月7日
*＜機能概要＞
*   eoADSL登録処理を行います。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/12/07   FJ）木村    新規作成
*   v5.00.00    2013/1/17    FJ) 北浦   【KAD-2012-0001108】書面での受付番号の申込イメージの紐付けについて
*
**********************************************************************/

package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.bp.x21.bpm.ServiceComponentRequestInvoker;
import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.CCException;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.mapping.bp.common.TemplateErrorUtil;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;

import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EKK0141D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0221D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0361D010CBSMsg;

/**
 * eoADSL登録部品
 * <BR>
 * @author 富士通
 */
public class JKKAddSvcKeiAdslExeCC 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 = "JKKAddSvcKeiAdslExeCCWork";
	/** 作業マップ名（申込登録用CCワーク) */
	private static final String CC_WORK_AREA_NAME_MSKM = "JKKAddMskmServiceCCWork";
	/** 作業マップ名（申込明細登録用CCワーク) */
	private static final String CC_WORK_AREA_NAME_MSKM_LIST = "JKKAddMskmServiceCCWorkList";
	/** 作業マップ名（請求支払登録用CCワーク) */
	private static final String CC_WORK_AREA_NAME_PAYWAY = "JKKAddSvcPaywayCCWork";
	/** 作業マップ名（契約者登録用CCワーク)  */
	private static final String CC_WORK_AREA_NAME_KEISHA = "JKKAddKeishaServiceCCWork";

	
	
	/** エラー用 */
	private static final String SC_ERROR_STRING = "サービスコンポーネントエラー";
	/** モデムレンタル **/
	public static final String EOADSL_RENT_MODEM_FLG = "1";
	
	/** フレッツ */
	private static final String ADSL_FLETS = "06";
	
	
	/** サービス契約＜eoADSL＞登録用プレフィックス */
	private static final String PREFIX_ADSL = "kk0141_";
	/** サービス契約内訳＜eoADSL＞登録用プレフィックス */
	private static final String PREFIX_ADSL_UCWK = "kk0221_";
	/** オプションサービス契約＜ISP＞登録(モデムレンタル登録)用プレフィックス */
	private static final String PREFIX_OPT_MODEM = "kk0361_";

	
	/** 契約者情報登録作業項目マップに入っているSYSID */
	private String keishaWkSysid = null;
	
	/** 支払方法登録作業項目マップに入っている請求契約番号 */
	private String paywayWkSeikyKeiNo = null;

	/** 申込情報登録作業項目マップに入っている申込明細番号(ADSL用) */
	private String mskmWkMskmDtlNoAdsl = null;

	/** 排他制御用のサービス契約番号 */
	private String exclSvcKeiNo = null;

	
	
	
	/**
	 * eoADSL登録処理を行います。
	 * <br>
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @return IRequestParameterReadWrite
	 * @throws Exception
	 */
	public IRequestParameterReadWrite addSvcKeiAdsl(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;
		
		/* ユーザデータ情報 */
		if (param.getData(fixedText) == null)
		{
			return param;
		}
		
		// 他CCからの引継用作業項目を取得
		keishaWkSysid = getKeishaWorkMapValue(param, "sysid");
		paywayWkSeikyKeiNo = getPayWayWorkMapValue(param, "seiky_kei_no");
		mskmWkMskmDtlNoAdsl = getMskmWorkMapValue(param , "mskm_dtl_no_adsl");

		// サービス契約<eoADSL>登録
		template = editInEKK0141D010(param, fixedText, PREFIX_ADSL); // 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
		editRetEKK0141D010(result, param, fixedText, PREFIX_ADSL); // 下りマッピング
		if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
		{
			// ステータスが単項目エラー以上であれば例外をスロー
			throw new CCException(SC_ERROR_STRING, new Exception());
		}
		
		exclSvcKeiNo = (String)getWorkMapValue(param, "svc_kei_no");
		
		// サービス契約内訳<eoADSL>登録
		if (ADSL_FLETS.equals(getMapValue(param, fixedText, PREFIX_ADSL + "prc_grp_cd")))
		{
			//フレッツの場合のみ作成 
			template = editInEKK0221D010(param, fixedText, PREFIX_ADSL_UCWK); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editRetEKK0221D010(result, param, fixedText, PREFIX_ADSL_UCWK); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{
				// ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}
		
		// オプションサービス契約登録部品呼び出し
		editInAddOpSvcKei(param, fixedText);
		JKKBpCommon.addOpSvcKei(handle, param, fixedText);

		// オプションサービス契約<ISP>登録(モデム)
		if(null != getMapValue(param, fixedText, PREFIX_OPT_MODEM + "op_svc_cd"))
		{
			template = editInEKK0361D010(param, fixedText, PREFIX_OPT_MODEM); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editRetEKK0361D010(result, param, fixedText, PREFIX_OPT_MODEM); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{
				// ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}
		
		return param;
	}

	
	/**
	 * リクエストパラメータのキーに対応する値を返却します。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText
	 * @param key 取得する値のキー
	 * @return 取得した値
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private String getMapValue(IRequestParameterReadWrite param, String fixedText, String key) throws RequestParameterException
	{
		HashMap inMap = (HashMap)(param.getData(fixedText));
		String result = (String)inMap.get(key);
		if ("".equals(result))
		{
			result = null;
		}

		return result;
	}
	
	/**
	 * 作業マップの値を取得します。
	 * <br>
	 * @param param
	 * @param key
	 * @return 取得した値
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private Object getWorkMapValue(IRequestParameterReadWrite param, String key) throws RequestParameterException
	{
		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();

		HashMap ccWorkMap = null;
		/* 作業項目情報 */
		if (workMap != null)
		{
			ccWorkMap = (HashMap)workMap.get(CC_WORK_AREA_NAME);
		}
		else
		{
			ccWorkMap = null;
		}

		Object result = null;
		if (ccWorkMap != null)
		{
			result = ccWorkMap.get(key);
		}

		if ("".equals(result))
		{
			result = null;
		}

		return result;
	}

	/**
	 * ワークマップの情報を取得します
	 * @param param
	 * @param mapName
	 * @param key
	 * @return String
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private String getWrokMapValueBase(IRequestParameterReadWrite param, String mapName, String key)
	throws RequestParameterException
	{
		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			return null;
		}

		Map ccWorkMap = (HashMap)workMap.get(mapName);
		if (ccWorkMap == null)
		{
			return null;
		}
		
		String result = (String)ccWorkMap.get(key);
		if ("".equals(result))
		{
			result = null;
		}
		return result;
	}

	/**
	 * 作業マップに値を設定します。
	 * <br>
	 * @param param
	 * @param key
	 * @param value
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void setWorkMapValue(IRequestParameterReadWrite param, String key, Object value)
	throws RequestParameterException
	{
		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();

		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}
		
		HashMap ccWorkMap = (HashMap)workMap.get(CC_WORK_AREA_NAME);
		if (ccWorkMap == null)
		{
			ccWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_NAME, ccWorkMap);
		}
		
		ccWorkMap.put(key, value);
	}
	
	/**
	 * 請求支払情報の取得処理を行います。
	 * <br>
	 * @param param
	 * @param key
	 * @return 値
	 * @throws RequestParameterException
	 */
	private String getPayWayWorkMapValue(IRequestParameterReadWrite param, String key) throws RequestParameterException
	{
		return getWrokMapValueBase(param, CC_WORK_AREA_NAME_PAYWAY, key);
	}
	
	/**
	 *契約者情報の取得処理を行います。
	 * <br>
	 * @param param
	 * @param key
	 * @return 値
	 * @throws RequestParameterException
	 */
	private String getKeishaWorkMapValue(IRequestParameterReadWrite param, String key) throws RequestParameterException
	{
		return getWrokMapValueBase(param, CC_WORK_AREA_NAME_KEISHA, key);
	}

	/**
	 * 申込情報の取得処理を行います。
	 * <br>
	 * @param param
	 * @param key
	 * @return 値
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private String getMskmWorkMapValue(IRequestParameterReadWrite param, String key) throws RequestParameterException
	{
		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			return null;
		}
		
		Map inMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_MSKM);
		List<Map> list = (ArrayList<Map>)inMap.get(CC_WORK_AREA_NAME_MSKM_LIST);
		if (list != null)
		{
			for (Map map : list)
			{
				if (map.get(key) != null)
				{
					return (String)map.get(key);
				}
			}
		}
		
		return null;
	}

	/**
	 *CAANMsgに必要なデータのマッピング処理を行います。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return パラメータマップ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public HashMap 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;
		}
		
		// サービス契約<eoADSL>登録
		msgList.add(editInEKK0141D010(param, fixedText, PREFIX_ADSL));
		
		// サービス契約内訳<eoADSL>登録
		if (ADSL_FLETS.equals(getMapValue(param, fixedText, PREFIX_ADSL + "prc_grp_cd")))
		{
			msgList.add(editInEKK0221D010(param, fixedText, PREFIX_ADSL_UCWK));
		}

		/*
		 * チェック不要
		 * 
		// 料金コース料金コース_オプションサービス一覧照会（料金コースコード）
		msgList.add(editInEKK0811B001(param, fixedText, PREFIX_PCRS_OPSVC));
		// オプションサービス契約<ISP>登録(モデムレンタル)
		msgList.add(editInEKK0361D010(param, fixedText, PREFIX_OPT_MODEM));
		*/
		
		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));
	}

	/**
	 * 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 パラメータマップ
	 */
	private HashMap<String, Object> putParamMap(HashMap<String, Object> paramMap, CAANMsg template)
	{
		CAANMsg[] templates = { template };
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}

	/**
	 * サービス契約＜eoADSL＞登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0141D010(IRequestParameterReadWrite param, String fixedText, String prefix) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0141D010CBSMsg.class.getName());
		
		// テンプレートID
		template.set(EKK0141D010CBSMsg.TEMPLATEID, "EKK0141D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// SYSID
		if (inMap == null || inMap.get(prefix + "sysid") == null || "".equals(inMap.get(prefix + "sysid")))
		{
			if (keishaWkSysid == null)
			{
				template.setNull(EKK0141D010CBSMsg.SYSID);
			}
			else
			{
				template.set(EKK0141D010CBSMsg.SYSID, keishaWkSysid);
			}
		}
		else
		{
			template.set(EKK0141D010CBSMsg.SYSID, inMap.get(prefix + "sysid"));
		}
		
		// サービスコード
		if (inMap == null || inMap.get(prefix + "svc_cd") == null || "".equals(inMap.get(prefix + "svc_cd")))
		{
			template.setNull(EKK0141D010CBSMsg.SVC_CD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.SVC_CD, (String)inMap.get(prefix + "svc_cd"));
		}
		
		// 申込明細番号
		if (inMap == null || inMap.get(prefix + "mskm_dtl_no") == null || "".equals(inMap.get(prefix + "mskm_dtl_no")))
		{
			if (mskmWkMskmDtlNoAdsl == null)
			{
				template.setNull(EKK0141D010CBSMsg.MSKM_DTL_NO);
			}
			else
			{
				template.set(EKK0141D010CBSMsg.MSKM_DTL_NO, mskmWkMskmDtlNoAdsl);
			}
		}
		else
		{
			template.set(EKK0141D010CBSMsg.MSKM_DTL_NO, inMap.get(prefix + "mskm_dtl_no"));
			mskmWkMskmDtlNoAdsl = (String)inMap.get(prefix + "mskm_dtl_no");
		}
		
		// 面開発案件番号
		if (inMap == null || inMap.get(prefix + "menkaihat_anken_no") == null || "".equals(inMap.get(prefix + "menkaihat_anken_no")))
		{
			template.setNull(EKK0141D010CBSMsg.MENKAIHAT_ANKEN_NO);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.PRC_GRP_CD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.PCRS_CD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.PPLAN_CD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.TK_HOSHIKI_KEI_NO);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.SVC_USE_STA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.RSV_TSTA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.ID_SOKHOSHO_OUTPUT_YH);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.PAYWAY_KEIZOKU_FLG);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.FTRIAL_KANYU_YMD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.FTRIAL_PRD_ENDYMD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.HONKANYU_YMD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.HONKANYU_IKO_KIGEN_YMD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.HONKANYU_IKO_KIGEN_YMD, (String)inMap.get(prefix + "honkanyu_iko_kigen_ymd"));
		}
		
		// レター発送仕分区分
		if (inMap == null || inMap.get(prefix + "letter_hasso_shiwake_div") == null || "".equals(inMap.get(prefix + "letter_hasso_shiwake_div")))
		{
			template.setNull(EKK0141D010CBSMsg.LETTER_HASSO_SHIWAKE_DIV);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.THNX_LETTER_SHS_CD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.WEB_OP_ADD_FAIL_FLG);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NO);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NOPT);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NOPT, (String)inMap.get(prefix + "chge_mt_hojinsvkei_uk_nopt"));
		}
		
		// 違約金発生コード
		if (inMap == null || inMap.get(prefix + "pnlty_hassei_cd") == null || "".equals(inMap.get(prefix + "pnlty_hassei_cd")))
		{
			template.setNull(EKK0141D010CBSMsg.PNLTY_HASSEI_CD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.IDO_DIV);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.INTR_CD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.INTR_CD, (String)inMap.get(prefix + "intr_cd"));
		}
		
		// 業務連絡備考
		if (inMap == null || inMap.get(prefix + "work_rrk_biko") == null || "".equals(inMap.get(prefix + "work_rrk_biko")))
		{
			template.setNull(EKK0141D010CBSMsg.WORK_RRK_BIKO);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.AUTO_SHOSA_TRAN_STAT_CD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.AUTO_SHOSA_TRAN_STAT_CD, (String)inMap.get(prefix + "auto_shosa_tran_stat_cd"));
		}
		
		// ADSLタイプコード
		if (inMap == null || inMap.get(prefix + "adsl_type_cd") == null || "".equals(inMap.get(prefix + "adsl_type_cd")))
		{
			template.setNull(EKK0141D010CBSMsg.ADSL_TYPE_CD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.ADSL_TYPE_CD, (String)inMap.get(prefix + "adsl_type_cd"));
		}
		
		// ADSL使用電話番号
		if (inMap == null || inMap.get(prefix + "adsl_use_telno") == null || "".equals(inMap.get(prefix + "adsl_use_telno")))
		{
			template.setNull(EKK0141D010CBSMsg.ADSL_USE_TELNO);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.ADSL_USE_TELNO, (String)inMap.get(prefix + "adsl_use_telno"));
		}
		
		// エリア判定局番
		if (inMap == null || inMap.get(prefix + "area_judge_kyoku_no") == null || "".equals(inMap.get(prefix + "area_judge_kyoku_no")))
		{
			template.setNull(EKK0141D010CBSMsg.AREA_JUDGE_KYOKU_NO);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.AREA_JUDGE_KYOKU_NO, (String)inMap.get(prefix + "area_judge_kyoku_no"));
		}
		
		// 設置先既設電話番号
		if (inMap == null || inMap.get(prefix + "stc_saki_kst_telno") == null || "".equals(inMap.get(prefix + "stc_saki_kst_telno")))
		{
			template.setNull(EKK0141D010CBSMsg.STC_SAKI_KST_TELNO);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.STC_SAKI_KST_TELNO, (String)inMap.get(prefix + "stc_saki_kst_telno"));
		}
		
		// NTT集約局名
		if (inMap == null || inMap.get(prefix + "ntt_shyakk_nm") == null || "".equals(inMap.get(prefix + "ntt_shyakk_nm")))
		{
			template.setNull(EKK0141D010CBSMsg.NTT_SHYAKK_NM);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.NTT_SHYAKK_NM, (String)inMap.get(prefix + "ntt_shyakk_nm"));
		}
		
		// ADSL回線種別コード
		if (inMap == null || inMap.get(prefix + "adsl_kaisen_sbt_cd") == null || "".equals(inMap.get(prefix + "adsl_kaisen_sbt_cd")))
		{
			template.setNull(EKK0141D010CBSMsg.ADSL_KAISEN_SBT_CD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.ADSL_KAISEN_SBT_CD, (String)inMap.get(prefix + "adsl_kaisen_sbt_cd"));
		}
		
		// ADSL回線名義人名
		if (inMap == null || inMap.get(prefix + "adsl_kaisen_meigin_nm") == null || "".equals(inMap.get(prefix + "adsl_kaisen_meigin_nm")))
		{
			template.setNull(EKK0141D010CBSMsg.ADSL_KAISEN_MEIGIN_NM);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.ADSL_KAISEN_MEIGIN_NM, (String)inMap.get(prefix + "adsl_kaisen_meigin_nm"));
		}
		
		
		// ADSL宅内工事コード
		if (inMap == null || inMap.get(prefix + "adsl_taknikj_cd") == null || "".equals(inMap.get(prefix + "adsl_taknikj_cd")))
		{
			template.setNull(EKK0141D010CBSMsg.ADSL_TAKNIKJ_CD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.ADSL_TAKNIKJ_CD, (String)inMap.get(prefix + "adsl_taknikj_cd"));
		}
		
		// アナログ切替承認区分
		if (inMap == null || inMap.get(prefix + "analog_switch_shonin_div") == null || "".equals(inMap.get(prefix + "analog_switch_shonin_div")))
		{
			template.setNull(EKK0141D010CBSMsg.ANALOG_SWITCH_SHONIN_DIV);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.ANALOG_SWITCH_SHONIN_DIV, (String)inMap.get(prefix + "analog_switch_shonin_div"));
		}
		
		// eAccess代理店コード
		if (inMap == null || inMap.get(prefix + "eaccess_agnt_cd") == null || "".equals(inMap.get(prefix + "eaccess_agnt_cd")))
		{
			template.setNull(EKK0141D010CBSMsg.EACCESS_AGNT_CD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.EACCESS_AGNT_CD, (String)inMap.get(prefix + "eaccess_agnt_cd"));
		}
		
		// eAccessキャンペーンコード
		if (inMap == null || inMap.get(prefix + "eaccess_cmp_cd") == null || "".equals(inMap.get(prefix + "eaccess_cmp_cd")))
		{
			template.setNull(EKK0141D010CBSMsg.EACCESS_CMP_CD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.EACCESS_CMP_CD, (String)inMap.get(prefix + "eaccess_cmp_cd"));
		}
		
		// CPE提供要否
		if (inMap == null || inMap.get(prefix + "cpe_tk_yh") == null || "".equals(inMap.get(prefix + "cpe_tk_yh")))
		{
			template.setNull(EKK0141D010CBSMsg.CPE_TK_YH);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.CPE_TK_YH, (String)inMap.get(prefix + "cpe_tk_yh"));
		}
		
		// 請求契約番号
		if (inMap == null || inMap.get(prefix + "seiky_kei_no") == null || "".equals(inMap.get(prefix + "seiky_kei_no")))
		{
			if (paywayWkSeikyKeiNo == null)
			{
				template.setNull(EKK0141D010CBSMsg.SEIKY_KEI_NO);
			}
			else
			{
				template.set(EKK0141D010CBSMsg.SEIKY_KEI_NO, paywayWkSeikyKeiNo);
			}
		}
		else
		{
			template.set(EKK0141D010CBSMsg.SEIKY_KEI_NO, inMap.get(prefix + "seiky_kei_no"));
			paywayWkSeikyKeiNo = (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(EKK0141D010CBSMsg.PRC_KMK_CD);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.RULE0059_AUTO_APLY);
		}
		else
		{
			template.set(EKK0141D010CBSMsg.RULE0059_AUTO_APLY, (String)inMap.get(prefix + "rule0059_auto_aply"));
		}
		
		return template;
	}
	
	/**
	 * サービス契約内訳＜eoADSL＞登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0221D010(IRequestParameterReadWrite param, String fixedText, String prefix) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0221D010CBSMsg.class.getName());
		
		// テンプレートID
		template.set(EKK0221D010CBSMsg.TEMPLATEID, "EKK0221D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0221D010CBSMsg.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(EKK0221D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// サービス契約番号
		if(getWorkMapValue(param, "svc_kei_no") == null)
		{
			template.setNull(EKK0221D010CBSMsg.SVC_KEI_NO);
		}
		else
		{
			template.set(EKK0221D010CBSMsg.SVC_KEI_NO, getWorkMapValue(param, "svc_kei_no"));
		}
		

		// 申込明細番号
		if (inMap == null || inMap.get(prefix + "mskm_dtl_no") == null || "".equals(inMap.get(prefix + "mskm_dtl_no")))
		{
			if (mskmWkMskmDtlNoAdsl == null)
			{
				template.setNull(EKK0221D010CBSMsg.MSKM_DTL_NO);
			}
			else
			{
				template.set(EKK0221D010CBSMsg.MSKM_DTL_NO, mskmWkMskmDtlNoAdsl);
			}
		}
		else
		{
			template.set(EKK0221D010CBSMsg.MSKM_DTL_NO, (String)inMap.get(prefix + "mskm_dtl_no"));
		}

		// 提供方式契約番号
		if (inMap == null || inMap.get(prefix + "tk_hoshiki_kei_no") == null || "".equals(inMap.get(prefix + "tk_hoshiki_kei_no")))
		{
			template.setNull(EKK0221D010CBSMsg.TK_HOSHIKI_KEI_NO);
		}
		else
		{
			template.set(EKK0221D010CBSMsg.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(EKK0221D010CBSMsg.PAYWAY_KEIZOKU_FLG);
		}
		else
		{
			template.set(EKK0221D010CBSMsg.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(EKK0221D010CBSMsg.WEB_OP_ADD_FAIL_FLG);
		}
		else
		{
			template.set(EKK0221D010CBSMsg.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(EKK0221D010CBSMsg.WORK_RRK_BIKO);
		}
		else
		{
			template.set(EKK0221D010CBSMsg.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(EKK0221D010CBSMsg.SVC_USE_STA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0221D010CBSMsg.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(EKK0221D010CBSMsg.RSV_TSTA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0221D010CBSMsg.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(EKK0221D010CBSMsg.FTRIAL_KANYU_YMD);
		}
		else
		{
			template.set(EKK0221D010CBSMsg.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(EKK0221D010CBSMsg.FTRIAL_PRD_ENDYMD);
		}
		else
		{
			template.set(EKK0221D010CBSMsg.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(EKK0221D010CBSMsg.HONKANYU_YMD);
		}
		else
		{
			template.set(EKK0221D010CBSMsg.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(EKK0221D010CBSMsg.HONKANYU_IKO_KIGEN_YMD);
		}
		else
		{
			template.set(EKK0221D010CBSMsg.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(EKK0221D010CBSMsg.PNLTY_HASSEI_CD);
		}
		else
		{
			template.set(EKK0221D010CBSMsg.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(EKK0221D010CBSMsg.IDO_DIV);
		}
		else
		{
			template.set(EKK0221D010CBSMsg.IDO_DIV, (String)inMap.get(prefix + "ido_div"));
		}
		
		// ADSL宅内工事コード
		if (inMap == null || inMap.get(prefix + "adsl_taknikj_cd") == null || "".equals(inMap.get(prefix + "adsl_taknikj_cd")))
		{
			template.setNull(EKK0221D010CBSMsg.ADSL_TAKNIKJ_CD);
		}
		else
		{
			template.set(EKK0221D010CBSMsg.ADSL_TAKNIKJ_CD, (String)inMap.get(prefix + "adsl_taknikj_cd"));
		}
		
		// ADSL工事依頼年月日
		if (inMap == null || inMap.get(prefix + "adsl_koji_reqymd") == null || "".equals(inMap.get(prefix + "adsl_koji_reqymd")))
		{
			template.setNull(EKK0221D010CBSMsg.ADSL_KOJI_REQYMD);
		}
		else
		{
			template.set(EKK0221D010CBSMsg.ADSL_KOJI_REQYMD, (String)inMap.get(prefix + "adsl_koji_reqymd"));
		}
		
		return template;
	}
	
	/**
	 * オプションサービス契約＜ISP＞登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @param idx
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0361D010(IRequestParameterReadWrite param, String fixedText, String prefix)
			throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0361D010CBSMsg.class.getName());
		
		// テンプレートID
		template.set(EKK0361D010CBSMsg.TEMPLATEID, "EKK0361D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0361D010CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)(param.getData(fixedText));

		// 機能コード
		template.set(EKK0361D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		String opSvcCd = null;
		// オプションサービスコード
		if (inMap == null || inMap.get(prefix + "op_svc_cd") == null || "".equals(inMap.get(prefix + "op_svc_cd")))
		{
			template.setNull(EKK0361D010CBSMsg.OP_SVC_CD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.OP_SVC_CD, (String)inMap.get(prefix + "op_svc_cd"));
			opSvcCd = (String)inMap.get(prefix + "op_svc_cd");
		}
		
		// 料金コースコード
		if (opSvcCd == null || "".equals(opSvcCd))
		{
			template.setNull(EKK0361D010CBSMsg.PCRS_CD);
		}
		else
		{
			if (JKKStrConst.OP_SVC_CD_MDM_EM.equals(opSvcCd))
			{
				template.set(EKK0361D010CBSMsg.PCRS_CD, JKKStrConst.OPSVC_PCRS_MDM_EM);
			}
			else if (JKKStrConst.OP_SVC_CD_MDM_FLETS.equals(opSvcCd))
			{
				template.set(EKK0361D010CBSMsg.PCRS_CD, JKKStrConst.OPSVC_PCRS_MDM_FLETS);
			}
			else
			{
				template.setNull(EKK0361D010CBSMsg.PCRS_CD);
			}
		}
		
		// 料金プランコード
		if (opSvcCd == null || "".equals(opSvcCd))
		{
			template.setNull(EKK0361D010CBSMsg.PPLAN_CD);
		}
		else
		{
			if (JKKStrConst.OP_SVC_CD_MDM_EM.equals(opSvcCd))
			{
				template.set(EKK0361D010CBSMsg.PPLAN_CD, JKKStrConst.OPSVC_PPLAN_MDM_EM);
			}
			else if (JKKStrConst.OP_SVC_CD_MDM_FLETS.equals(opSvcCd))
			{
				template.set(EKK0361D010CBSMsg.PPLAN_CD, JKKStrConst.OPSVC_PPLAN_MDM_FLETS);
			}
			else
			{
				template.setNull(EKK0361D010CBSMsg.PPLAN_CD);
			}
		}
		
		// 親契約識別コード
		if (inMap == null || inMap.get(prefix + "oya_kei_skbt_cd") == null || "".equals(inMap.get(prefix + "oya_kei_skbt_cd")))
		{
			template.set(EKK0361D010CBSMsg.OYA_KEI_SKBT_CD, JKKStrConst.CD_DIV_OYAKEISKBTCD_SVCKEI);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.OYA_KEI_SKBT_CD, (String)inMap.get(prefix + "oya_kei_skbt_cd"));
		}
		
		// サービス契約番号
		if (inMap == null || inMap.get(prefix + "svc_kei_no") == null || "".equals(inMap.get(prefix + "svc_kei_no")))
		{
			if (getWorkMapValue(param, "svc_kei_no") == null)
			{
				template.setNull(EKK0361D010CBSMsg.SVC_KEI_NO);
			}
			else
			{
				template.set(EKK0361D010CBSMsg.SVC_KEI_NO, getWorkMapValue(param, "svc_kei_no"));
			}
		}
		else
		{
			template.set(EKK0361D010CBSMsg.SVC_KEI_NO, (String)inMap.get(prefix + "svc_kei_no"));
		}
		
		// サービス契約内訳番号
		if (inMap == null || inMap.get(prefix + "svc_kei_ucwk_no") == null || "".equals(inMap.get(prefix + "svc_kei_ucwk_no")))
		{
			template.setNull(EKK0361D010CBSMsg.SVC_KEI_UCWK_NO);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.SVC_KEI_UCWK_NO, (String)inMap.get(prefix + "svc_kei_ucwk_no"));
		}
		
		// SYSID
		if (inMap == null || inMap.get(prefix + "sysid") == null || "".equals(inMap.get(prefix + "sysid")))
		{
			if (keishaWkSysid == null)
			{
				template.setNull(EKK0361D010CBSMsg.SYSID);
			}
			else
			{
				template.set(EKK0361D010CBSMsg.SYSID, keishaWkSysid);
			}
		}
		else
		{
			template.set(EKK0361D010CBSMsg.SYSID, inMap.get(prefix + "sysid"));
		}
		
		// 申込明細番号
		if (inMap == null || inMap.get(prefix + "msk_dtl_no") == null || "".equals(inMap.get(prefix + "msk_dtl_no")))
		{
			if (mskmWkMskmDtlNoAdsl == null)
			{
				template.setNull(EKK0361D010CBSMsg.MSKM_DTL_NO);
			}
			else
			{
				template.set(EKK0361D010CBSMsg.MSKM_DTL_NO, mskmWkMskmDtlNoAdsl);
			}
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MSKM_DTL_NO, inMap.get(prefix + "msk_dtl_no"));
		}
		
		// 試用加入年月日
		if (inMap == null || inMap.get(prefix + "ftrial_kanyu_ymd") == null || "".equals(inMap.get(prefix + "ftrial_kanyu_ymd")))
		{
			template.setNull(EKK0361D010CBSMsg.FTRIAL_KANYU_YMD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.FTRIAL_KANYU_YMD, (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(EKK0361D010CBSMsg.FTRIAL_PRD_ENDYMD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.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(EKK0361D010CBSMsg.HONKANYU_YMD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.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(EKK0361D010CBSMsg.HONKANYU_IKO_KIGEN_YMD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.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(EKK0361D010CBSMsg.SVC_USE_STA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.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(EKK0361D010CBSMsg.RSV_TSTA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.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(EKK0361D010CBSMsg.PNLTY_HASSEI_CD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.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(EKK0361D010CBSMsg.IDO_DIV);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.IDO_DIV, (String)inMap.get(prefix + "ido_div"));
		}
		
		// 希望メールアカウント1
		if (inMap == null || inMap.get(prefix + "kibo_ml_account_1") == null || "".equals(inMap.get(prefix + "kibo_ml_account_1")))
		{
			template.setNull(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_1);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_1, (String)inMap.get(prefix + "kibo_ml_account_1"));
		}
		
		// 希望メールアカウント2
		if (inMap == null || inMap.get(prefix + "kibo_ml_account_2") == null || "".equals(inMap.get(prefix + "kibo_ml_account_2")))
		{
			template.setNull(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_2);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_2, (String)inMap.get(prefix + "kibo_ml_account_2"));
		}
		
		// 希望メールアカウント3
		if (inMap == null || inMap.get(prefix + "kibo_ml_account_3") == null || "".equals(inMap.get(prefix + "kibo_ml_account_3")))
		{
			template.setNull(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_3);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_3, (String)inMap.get(prefix + "kibo_ml_account_3"));
		}
		
		// マルチセッション用セッション数
		if (inMap == null || inMap.get(prefix + "mltise_session_cnt") == null || "".equals(inMap.get(prefix + "mltise_session_cnt")))
		{
			template.setNull(EKK0361D010CBSMsg.MLTISE_SESSION_CNT);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLTISE_SESSION_CNT, (String)inMap.get(prefix + "mltise_session_cnt"));
		}
		
		// マルチセッション用初期認証IDパスワード
		if (inMap == null || inMap.get(prefix + "mltise_shk_ninsho_id_pwd") == null || "".equals(inMap.get(prefix + "mltise_shk_ninsho_id_pwd")))
		{
			template.setNull(EKK0361D010CBSMsg.MLTISE_SHK_NINSHO_ID_PWD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLTISE_SHK_NINSHO_ID_PWD, (String)inMap.get(prefix + "mltise_shk_ninsho_id_pwd"));
		}
		
		// マルチセッション用認証ID
		if (inMap == null || inMap.get(prefix + "mltise_ninsho_id") == null || "".equals(inMap.get(prefix + "mltise_ninsho_id")))
		{
			template.setNull(EKK0361D010CBSMsg.MLTISE_NINSHO_ID);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLTISE_NINSHO_ID, (String)inMap.get(prefix + "mltise_ninsho_id"));
		}
		
		// マルチセッション用認証IDパスワード
		if (inMap == null || inMap.get(prefix + "mltise_ninsho_id_pwd") == null || "".equals(inMap.get(prefix + "mltise_ninsho_id_pwd")))
		{
			template.setNull(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_PWD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_PWD, (String)inMap.get(prefix + "mltise_ninsho_id_pwd"));
		}
		
		// 固定IPアドレス
		if (inMap == null || inMap.get(prefix + "kotei_ip_ad") == null || "".equals(inMap.get(prefix + "kotei_ip_ad")))
		{
			template.setNull(EKK0361D010CBSMsg.KOTEI_IP_AD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.KOTEI_IP_AD, (String)inMap.get(prefix + "kotei_ip_ad"));
		}
		
		// ネットマスク
		if (inMap == null || inMap.get(prefix + "netmask") == null || "".equals(inMap.get(prefix + "netmask")))
		{
			template.setNull(EKK0361D010CBSMsg.NETMASK);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.NETMASK, (String)inMap.get(prefix + "netmask"));
		}
		
		// 容量
		if (inMap == null || inMap.get(prefix + "capa") == null || "".equals(inMap.get(prefix + "capa")))
		{
			template.setNull(EKK0361D010CBSMsg.CAPA);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.CAPA, (String)inMap.get(prefix + "capa"));
		}
		
		// URL(ドメイン)
		if (inMap == null || inMap.get(prefix + "url_domain") == null || "".equals(inMap.get(prefix + "url_domain")))
		{
			template.setNull(EKK0361D010CBSMsg.URL_DOMAIN);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.URL_DOMAIN, (String)inMap.get(prefix + "url_domain"));
		}
		
		// URL(アカウント)
		if (inMap == null || inMap.get(prefix + "url_account") == null || "".equals(inMap.get(prefix + "url_account")))
		{
			template.setNull(EKK0361D010CBSMsg.URL_ACCOUNT);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.URL_ACCOUNT, (String)inMap.get(prefix + "url_account"));
		}
		
		// メーリングリスト名
		if (inMap == null || inMap.get(prefix + "mllist_nm") == null || "".equals(inMap.get(prefix + "mllist_nm")))
		{
			template.setNull(EKK0361D010CBSMsg.MLLIST_NM);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLLIST_NM, (String)inMap.get(prefix + "mllist_nm"));
		}
		
		// メーリングリスト呼称
		if (inMap == null || inMap.get(prefix + "mllist_kosho") == null || "".equals(inMap.get(prefix + "mllist_kosho")))
		{
			template.setNull(EKK0361D010CBSMsg.MLLIST_KOSHO);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLLIST_KOSHO, (String)inMap.get(prefix + "mllist_kosho"));
		}
		
		// メーリングリスト公開要否
		if (inMap == null || inMap.get(prefix + "mllist_kokai_yh") == null || "".equals(inMap.get(prefix + "mllist_kokai_yh")))
		{
			template.setNull(EKK0361D010CBSMsg.MLLIST_KOKAI_YH);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLLIST_KOKAI_YH, (String)inMap.get(prefix + "mllist_kokai_yh"));
		}
		
		// メーリングリスト最大ユーザー数
		if (inMap == null || inMap.get(prefix + "mllist_max_user_cnt") == null || "".equals(inMap.get(prefix + "mllist_max_user_cnt")))
		{
			template.setNull(EKK0361D010CBSMsg.MLLIST_MAX_USER_CNT);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLLIST_MAX_USER_CNT, (String)inMap.get(prefix + "mllist_max_user_cnt"));
		}
		
		// メーリングリスト管理者メールアドレス
		if (inMap == null || inMap.get(prefix + "mllist_krisha_mlad") == null || "".equals(inMap.get(prefix + "mllist_krisha_mlad")))
		{
			template.setNull(EKK0361D010CBSMsg.MLLIST_KRISHA_MLAD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLLIST_KRISHA_MLAD, (String)inMap.get(prefix + "mllist_krisha_mlad"));
		}
		
		// 独自ドメイン名
		if (inMap == null || inMap.get(prefix + "dokuji_domain_nm") == null || "".equals(inMap.get(prefix + "dokuji_domain_nm")))
		{
			template.setNull(EKK0361D010CBSMsg.DOKUJI_DOMAIN_NM);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.DOKUJI_DOMAIN_NM, (String)inMap.get(prefix + "dokuji_domain_nm"));
		}
		
		// ホスティングメールアカウント数
		if (inMap == null || inMap.get(prefix + "hosml_account_cnt") == null || "".equals(inMap.get(prefix + "hosml_account_cnt")))
		{
			template.setNull(EKK0361D010CBSMsg.HOSML_ACCOUNT_CNT);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.HOSML_ACCOUNT_CNT, (String)inMap.get(prefix + "hosml_account_cnt"));
		}
		
		// ホスティングメールボックス総容量
		if (inMap == null || inMap.get(prefix + "hosml_box_capa") == null || "".equals(inMap.get(prefix + "hosml_box_capa")))
		{
			template.setNull(EKK0361D010CBSMsg.HOSML_BOX_CAPA);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.HOSML_BOX_CAPA, (String)inMap.get(prefix + "hosml_box_capa"));
		}
		
		// ダイヤルパッドPIN
		if (inMap == null || inMap.get(prefix + "dpad_pin") == null || "".equals(inMap.get(prefix + "dpad_pin")))
		{
			template.setNull(EKK0361D010CBSMsg.DPAD_PIN);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.DPAD_PIN, (String)inMap.get(prefix + "dpad_pin"));
		}
		
		// ダイヤルパッドID公開要否
		if (inMap == null || inMap.get(prefix + "dpad_id_kokai_yh") == null || "".equals(inMap.get(prefix + "dpad_id_kokai_yh")))
		{
			template.setNull(EKK0361D010CBSMsg.DPAD_ID_KOKAI_YH);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.DPAD_ID_KOKAI_YH, (String)inMap.get(prefix + "dpad_id_kokai_yh"));
		}
		
		// ダイアルアップ接続用認証ID
		if (inMap == null || inMap.get(prefix + "dupcon_ninsho_id") == null || "".equals(inMap.get(prefix + "dupcon_ninsho_id")))
		{
			template.setNull(EKK0361D010CBSMsg.DUPCON_NINSHO_ID);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.DUPCON_NINSHO_ID, (String)inMap.get(prefix + "dupcon_ninsho_id"));
		}
		
		// DNS設定コード
		if (inMap == null || inMap.get(prefix + "dns_sette_cd") == null || "".equals(inMap.get(prefix + "dns_sette_cd")))
		{
			template.setNull(EKK0361D010CBSMsg.DNS_SETTE_CD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.DNS_SETTE_CD, (String)inMap.get(prefix + "dns_sette_cd"));
		}
		
		// スポット有害サイトブロック対象SYSID
		if (inMap == null || inMap.get(prefix + "spot_ygsiteblck_trgt_sysid") == null || "".equals(inMap.get(prefix + "spot_ygsiteblck_trgt_sysid")))
		{
			template.setNull(EKK0361D010CBSMsg.SPOT_YGSITEBLCK_TRGT_SYSID);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.SPOT_YGSITEBLCK_TRGT_SYSID, (String)inMap.get(prefix + "spot_ygsiteblck_trgt_sysid"));
		}
		
		// サービス個別設定連絡先メールアドレス
		if (inMap == null || inMap.get(prefix + "svc_kbt_set_rrks_mlad") == null || "".equals(inMap.get(prefix + "svc_kbt_set_rrks_mlad")))
		{
			template.setNull(EKK0361D010CBSMsg.SVC_KBT_SET_RRKS_MLAD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.SVC_KBT_SET_RRKS_MLAD, (String)inMap.get(prefix + "svc_kbt_set_rrks_mlad"));
		}
		
		// 通話明細公開要否
		if (inMap == null || inMap.get(prefix + "tuwa_dtl_kokai_yh") == null || "".equals(inMap.get(prefix + "tuwa_dtl_kokai_yh")))
		{
			template.setNull(EKK0361D010CBSMsg.TUWA_DTL_KOKAI_YH);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.TUWA_DTL_KOKAI_YH, (String)inMap.get(prefix + "tuwa_dtl_kokai_yh"));
		}

		// IPv6アドレス(インターフェイスID)
		if (inMap == null || inMap.get(prefix + "ipv6_ad_ifid") == null || "".equals(inMap.get(prefix + "ipv6_ad_ifid")))
		{
			template.setNull(EKK0361D010CBSMsg.IPV6_AD_IFID);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.IPV6_AD_IFID, (String)inMap.get(prefix + "ipv6_ad_ifid"));
		}

		// 請求契約番号
		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(EKK0361D010CBSMsg.SEIKY_KEI_NO);
			}
			else
			{
				template.set(EKK0361D010CBSMsg.SEIKY_KEI_NO, getPaywayWorkMapValue(param, "seiky_kei_no"));
			}
		}
		else
		{
			template.set(EKK0361D010CBSMsg.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(EKK0361D010CBSMsg.PRC_KMK_CD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.PRC_KMK_CD, (String)inMap.get(prefix + "prc_kmk_cd"));
		}
		
		// 初期POPIDパスワード
		if (inMap == null || inMap.get(prefix + "shk_pop_id_pwd") == null || "".equals(inMap.get(prefix + "shk_pop_id_pwd")))
		{
			template.setNull(EKK0361D010CBSMsg.SHK_POP_ID_PWD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.SHK_POP_ID_PWD, (String)inMap.get(prefix + "shk_pop_id_pwd"));
		}
		
		// POPID
		if (inMap == null || inMap.get(prefix + "pop_id") == null || "".equals(inMap.get(prefix + "pop_id")))
		{
			template.setNull(EKK0361D010CBSMsg.POP_ID);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.POP_ID, (String)inMap.get(prefix + "pop_id"));
		}
		
		// メールアドレス
		if (inMap == null || inMap.get(prefix + "mlad") == null || "".equals(inMap.get(prefix + "mlad")))
		{
			template.setNull(EKK0361D010CBSMsg.MLAD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.MLAD, (String)inMap.get(prefix + "mlad"));
		}
		
		// 初期WebIDパスワード
		if (inMap == null || inMap.get(prefix + "shk_web_id_pwd") == null || "".equals(inMap.get(prefix + "shk_web_id_pwd")))
		{
			template.setNull(EKK0361D010CBSMsg.SHK_WEB_ID_PWD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.SHK_WEB_ID_PWD, (String)inMap.get(prefix + "shk_web_id_pwd"));
		}
		
		// WebID
		if (inMap == null || inMap.get(prefix + "web_id") == null || "".equals(inMap.get(prefix + "web_id")))
		{
			template.setNull(EKK0361D010CBSMsg.WEB_ID);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.WEB_ID, (String)inMap.get(prefix + "web_id"));
		}
		
		// 更新年月日時分秒(更新前)
		String lastUpdDtm = JKKBpCommon.getLastDtmBySvcKeiNo(param,
				exclSvcKeiNo,
				(String)inMap.get("kk0361_upd_dtm_bf"));
		template.set(EKK0361D010CBSMsg.UPD_DTM_BF, lastUpdDtm);
		
		// フェムトセル事業者コード
		if (inMap == null || inMap.get(prefix + "fmtcel_jgs_cd") == null || "".equals(inMap.get(prefix + "fmtcel_jgs_cd")))
		{
			template.setNull(EKK0361D010CBSMsg.FMTCEL_JGS_CD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.FMTCEL_JGS_CD, (String)inMap.get(prefix + "fmtcel_jgs_cd"));
		}
		
		// フェムトセル事業者コード
		if (inMap == null || inMap.get(prefix + "fmtcel_jgs_use_cd") == null || "".equals(inMap.get(prefix + "fmtcel_jgs_use_cd")))
		{
			template.setNull(EKK0361D010CBSMsg.FMTCEL_JGS_USE_CD);
		}
		else
		{
			template.set(EKK0361D010CBSMsg.FMTCEL_JGS_USE_CD, (String)inMap.get(prefix + "fmtcel_jgs_use_cd"));
		}
		
		return template;
	}
	
	/**
	 * サービス契約＜eoADSL＞登録の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return IRequestParameterReadWrite
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editRetEKK0141D010(Map<?, ?> msgList,
			IRequestParameterReadWrite param, String fixedText, String prefix) throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		/* 業務データ設定 */
		HashMap dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

		// サービス契約番号
		if (template.isNull(EKK0141D010CBSMsg.SVC_KEI_NO))
		{
			dataMap.put(prefix + "svc_kei_no", "");
		}
		else
		{
			dataMap.put(prefix + "svc_kei_no", template.getString(EKK0141D010CBSMsg.SVC_KEI_NO));
			setWorkMapValue(param, "svc_kei_no", template.getString(EKK0141D010CBSMsg.SVC_KEI_NO));
			// 契約新規申込ワークエリアへ登録
			JKKBpCommon.setWkSvcKeiNoAdsl(param, template.getString(EKK0141D010CBSMsg.SVC_KEI_NO));
		}
		
		// 世代登録年月日時分秒(サービス契約)
		if (template.isNull(EKK0141D010CBSMsg.KK0081_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0081_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0081_gene_add_dtm", template.getString(EKK0141D010CBSMsg.KK0081_GENE_ADD_DTM));
		}
		
		// サービス契約ステータス
		if (template.isNull(EKK0141D010CBSMsg.SVC_KEI_STAT))
		{
			dataMap.put(prefix + "svc_kei_stat", "");
		}
		else
		{
			dataMap.put(prefix + "svc_kei_stat", template.getString(EKK0141D010CBSMsg.SVC_KEI_STAT));
		}
		
		// 審査結果送信コード
		if (template.isNull(EKK0141D010CBSMsg.SKEKKA_SEND_CD))
		{
			dataMap.put(prefix + "skekka_send_cd", "");
		}
		else
		{
			dataMap.put(prefix + "skekka_send_cd", template.getString(EKK0141D010CBSMsg.SKEKKA_SEND_CD));
		}
		
		// 予約適用年月日
		if (template.isNull(EKK0141D010CBSMsg.RSV_APLY_YMD))
		{
			dataMap.put(prefix + "rsv_aply_ymd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_ymd", template.getString(EKK0141D010CBSMsg.RSV_APLY_YMD));
		}
		
		// 予約適用コード
		if (template.isNull(EKK0141D010CBSMsg.RSV_APLY_CD))
		{
			dataMap.put(prefix + "rsv_aply_cd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_cd", template.getString(EKK0141D010CBSMsg.RSV_APLY_CD));
		}
		
		// 初期デフォルトパスワード
		if (template.isNull(EKK0141D010CBSMsg.SHK_DFLT_PWD))
		{
			dataMap.put(prefix + "shk_dflt_pwd", "");
		}
		else
		{
			dataMap.put(prefix + "shk_dflt_pwd", template.getString(EKK0141D010CBSMsg.SHK_DFLT_PWD));
		}
		
		// 回復不可契約抽出済フラグ
		if (template.isNull(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.KAIHK_FAIL_KEI_CST_ZM_FLG));
		}
		
		// 世代登録年月日時分秒(サービス契約<eoADSL>)
		if (template.isNull(EKK0141D010CBSMsg.KK0141_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0141_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0141_gene_add_dtm", template.getString(EKK0141D010CBSMsg.KK0141_GENE_ADD_DTM));
		}
		
		// 課金先番号
		if (template.isNull(EKK0141D010CBSMsg.KAKINS_NO))
		{
			dataMap.put(prefix + "kakins_no", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_no", template.getString(EKK0141D010CBSMsg.KAKINS_NO));
		}
		
		// 課金先適用開始年月日
		if (template.isNull(EKK0141D010CBSMsg.KAKINS_TSTAYMD))
		{
			dataMap.put(prefix + "kakins_tstaymd", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_tstaymd", template.getString(EKK0141D010CBSMsg.KAKINS_TSTAYMD));
		}
		
		// 課金先適用終了年月日
		if (template.isNull(EKK0141D010CBSMsg.KAKINS_TENDYMD))
		{
			dataMap.put(prefix + "kakins_tendymd", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_tendymd", template.getString(EKK0141D010CBSMsg.KAKINS_TENDYMD));
		}
		
		// 登録年月日時分秒
		if (template.isNull(EKK0141D010CBSMsg.ADD_DTM))
		{
			dataMap.put(prefix + "add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "add_dtm", template.getString(EKK0141D010CBSMsg.ADD_DTM));
		}
		
		// 登録オペレータアカウント
		if (template.isNull(EKK0141D010CBSMsg.ADD_OPEACNT))
		{
			dataMap.put(prefix + "add_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "add_opeacnt", template.getString(EKK0141D010CBSMsg.ADD_OPEACNT));
		}
		
		// 更新年月日時分秒
		if (template.isNull(EKK0141D010CBSMsg.UPD_DTM))
		{
			dataMap.put(prefix + "upd_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "upd_dtm", template.getString(EKK0141D010CBSMsg.UPD_DTM));
			JKKBpCommon.setLastDtmBySvcKeiNo(param,
					template.getString(EKK0141D010CBSMsg.SVC_KEI_NO), 
					template.getString(EKK0141D010CBSMsg.UPD_DTM));
		}
		
		// 更新オペレータアカウント
		if (template.isNull(EKK0141D010CBSMsg.UPD_OPEACNT))
		{
			dataMap.put(prefix + "upd_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "upd_opeacnt", template.getString(EKK0141D010CBSMsg.UPD_OPEACNT));
		}
		
		// 無効フラグ
		if (template.isNull(EKK0141D010CBSMsg.MK_FLG))
		{
			dataMap.put(prefix + "mk_flg", "");
		}
		else
		{
			dataMap.put(prefix + "mk_flg", template.getString(EKK0141D010CBSMsg.MK_FLG));
		}
		
		// エラー情報の設定
		editErrInfoEKK0141D010Msg(param, template, (Integer)returnCode, fixedText, prefix);
		
		// エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}
	
	/**
	 * サービス契約内訳＜eoADSL＞登録の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @param prefix
	 * @return IRequestParameterReadWrite
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editRetEKK0221D010(Map<?, ?> msgList,
			IRequestParameterReadWrite param, String fixedText, String prefix) throws Exception
	{
		
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		/* 業務データ設定 */
		HashMap dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

		// サービス契約内訳番号
		if (template.isNull(EKK0221D010CBSMsg.SVC_KEI_UCWK_NO))
		{
			dataMap.put(prefix + "svc_kei_ucwk_no", "");
		}
		else
		{
			dataMap.put(prefix + "svc_kei_ucwk_no", template.getString(EKK0221D010CBSMsg.SVC_KEI_UCWK_NO));
		}
		
		// 世代登録年月日時分秒(サービス契約内訳)
		if (template.isNull(EKK0221D010CBSMsg.KK0161_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0161_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0161_gene_add_dtm", template.getString(EKK0221D010CBSMsg.KK0161_GENE_ADD_DTM));
		}
		
		// サービス契約内訳ステータス
		if (template.isNull(EKK0221D010CBSMsg.SVC_KEI_UCWK_STAT))
		{
			dataMap.put(prefix + "svc_kei_ucwk_stat", "");
		}
		else
		{
			dataMap.put(prefix + "svc_kei_ucwk_stat", template.getString(EKK0221D010CBSMsg.SVC_KEI_UCWK_STAT));
		}

		// WEBオプション追加不可フラグ（出力）
		if (template.isNull(EKK0221D010CBSMsg.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(EKK0221D010CBSMsg.WEB_OP_ADD_FAIL_FLG_O));
		}

		// 予約適用年月日
		if (template.isNull(EKK0221D010CBSMsg.RSV_APLY_YMD))
		{
			dataMap.put(prefix + "rsv_aply_ymd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_ymd", template.getString(EKK0221D010CBSMsg.RSV_APLY_YMD));
		}
		
		// 予約適用コード
		if (template.isNull(EKK0221D010CBSMsg.RSV_APLY_CD))
		{
			dataMap.put(prefix + "rsv_aply_cd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_cd", template.getString(EKK0221D010CBSMsg.RSV_APLY_CD));
		}
		
		// 登録年月日時分秒
		if (template.isNull(EKK0221D010CBSMsg.ADD_DTM))
		{
			dataMap.put(prefix + "add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "add_dtm", template.getString(EKK0221D010CBSMsg.ADD_DTM));
		}
		
		// 登録オペレータアカウント
		if (template.isNull(EKK0221D010CBSMsg.ADD_OPEACNT))
		{
			dataMap.put(prefix + "add_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "add_opeacnt", template.getString(EKK0221D010CBSMsg.ADD_OPEACNT));
		}
		
		// 更新年月日時分秒
		if (template.isNull(EKK0221D010CBSMsg.UPD_DTM))
		{
			dataMap.put(prefix + "upd_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "upd_dtm", template.getString(EKK0221D010CBSMsg.UPD_DTM));
			JKKBpCommon.setLastDtmBySvcKeiNo(param,
					exclSvcKeiNo, 
					template.getString(EKK0221D010CBSMsg.UPD_DTM));
		}
		
		// 更新オペレータアカウント
		if (template.isNull(EKK0221D010CBSMsg.UPD_OPEACNT))
		{
			dataMap.put(prefix + "upd_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "upd_opeacnt", template.getString(EKK0221D010CBSMsg.UPD_OPEACNT));
		}
		
		// 無効フラグ
		if (template.isNull(EKK0221D010CBSMsg.MK_FLG))
		{
			dataMap.put(prefix + "mk_flg", "");
		}
		else
		{
			dataMap.put(prefix + "mk_flg", template.getString(EKK0221D010CBSMsg.MK_FLG));
		}
		
		// 世代登録年月日時分秒(サービス契約内訳<eoADSL>)
		if (template.isNull(EKK0221D010CBSMsg.KK0221_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0221_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0221_gene_add_dtm", template.getString(EKK0221D010CBSMsg.KK0221_GENE_ADD_DTM));
		}

		// エラー情報の設定
		editErrInfoEKK0221D010Msg(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 IRequestParameterReadWrite
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editRetEKK0361D010(Map<?, ?> msgList, 	IRequestParameterReadWrite param, String fixedText, String prefix)
			throws Exception
	{
		//
		// このメソッドでは、本来登録した件数分だけOUTPUTを返却すべきかもしれないが
		// 実際には返却値が利用されることはないので、形だけ作成しておく。
		//
		
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		/* 業務データ設定 */
		HashMap dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

		// オプションサービス契約番号
		if (template.isNull(EKK0361D010CBSMsg.OP_SVC_KEI_NO))
		{
			dataMap.put(prefix + "op_svc_kei_no", "");
		}
		else
		{
			dataMap.put(prefix + "op_svc_kei_no", template.getString(EKK0361D010CBSMsg.OP_SVC_KEI_NO));
		}
		
		// 世代登録年月日時分秒(オプションサービス契約)
		if (template.isNull(EKK0361D010CBSMsg.KK0351_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0351_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0351_gene_add_dtm", template.getString(EKK0361D010CBSMsg.KK0351_GENE_ADD_DTM));
		}
		
		// オプションサービス契約ステータス
		if (template.isNull(EKK0361D010CBSMsg.OP_SVC_KEI_STAT))
		{
			dataMap.put(prefix + "op_svc_kei_stat", "");
		}
		else
		{
			dataMap.put(prefix + "op_svc_kei_stat", template.getString(EKK0361D010CBSMsg.OP_SVC_KEI_STAT));
		}
		
		// 予約適用年月日
		if (template.isNull(EKK0361D010CBSMsg.RSV_APLY_YMD))
		{
			dataMap.put(prefix + "rsv_aply_ymd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_ymd", template.getString(EKK0361D010CBSMsg.RSV_APLY_YMD));
		}
		
		// 予約適用コード
		if (template.isNull(EKK0361D010CBSMsg.RSV_APLY_CD))
		{
			dataMap.put(prefix + "rsv_aply_cd", "");
		}
		else
		{
			dataMap.put(prefix + "rsv_aply_cd", template.getString(EKK0361D010CBSMsg.RSV_APLY_CD));
		}
		
		// 登録年月日時分秒
		if (template.isNull(EKK0361D010CBSMsg.ADD_DTM))
		{
			dataMap.put(prefix + "add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "add_dtm", template.getString(EKK0361D010CBSMsg.ADD_DTM));
		}
		
		// 登録オペレータアカウント
		if (template.isNull(EKK0361D010CBSMsg.ADD_OPEACNT))
		{
			dataMap.put(prefix + "add_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "add_opeacnt", template.getString(EKK0361D010CBSMsg.ADD_OPEACNT));
		}
		
		// 更新年月日時分秒
		if (template.isNull(EKK0361D010CBSMsg.UPD_DTM))
		{
			dataMap.put(prefix + "upd_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "upd_dtm", template.getString(EKK0361D010CBSMsg.UPD_DTM));
			JKKBpCommon.setLastDtmBySvcKeiNo(param,
					exclSvcKeiNo, 
					template.getString(EKK0361D010CBSMsg.UPD_DTM));
		}
		
		// 更新オペレータアカウント
		if (template.isNull(EKK0361D010CBSMsg.UPD_OPEACNT))
		{
			dataMap.put(prefix + "upd_opeacnt", "");
		}
		else
		{
			dataMap.put(prefix + "upd_opeacnt", template.getString(EKK0361D010CBSMsg.UPD_OPEACNT));
		}
		
		// 無効フラグ
		if (template.isNull(EKK0361D010CBSMsg.MK_FLG))
		{
			dataMap.put(prefix + "mk_flg", "");
		}
		else
		{
			dataMap.put(prefix + "mk_flg", template.getString(EKK0361D010CBSMsg.MK_FLG));
		}
		
		// 世代登録年月日時分秒(オプションサービス契約<ISP>)
		if (template.isNull(EKK0361D010CBSMsg.KK0361_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0361_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0361_gene_add_dtm", template.getString(EKK0361D010CBSMsg.KK0361_GENE_ADD_DTM));
		}
		
		// メーリングリスト名（出力）
		if (template.isNull(EKK0361D010CBSMsg.MLLIST_NM_O))
		{
			dataMap.put(prefix + "mllist_nm_o", "");
		}
		else
		{
			dataMap.put(prefix + "mllist_nm_o", template.getString(EKK0361D010CBSMsg.MLLIST_NM_O));
		}
		
		// 課金先番号
		if (template.isNull(EKK0361D010CBSMsg.KAKINS_NO))
		{
			dataMap.put(prefix + "kakins_no", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_no", template.getString(EKK0361D010CBSMsg.KAKINS_NO));
		}
		
		// 課金先適用開始年月日
		if (template.isNull(EKK0361D010CBSMsg.KAKINS_TSTAYMD))
		{
			dataMap.put(prefix + "kakins_tstaymd", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_tstaymd", template.getString(EKK0361D010CBSMsg.KAKINS_TSTAYMD));
		}
		
		// 課金先適用終了年月日
		if (template.isNull(EKK0361D010CBSMsg.KAKINS_TENDYMD))
		{
			dataMap.put(prefix + "kakins_tendymd", "");
		}
		else
		{
			dataMap.put(prefix + "kakins_tendymd", template.getString(EKK0361D010CBSMsg.KAKINS_TENDYMD));
		}
		
		// サブオプションサービス契約番号
		if (template.isNull(EKK0361D010CBSMsg.SBOP_SVC_KEI_NO))
		{
			dataMap.put(prefix + "sbop_svc_kei_no", "");
		}
		else
		{
			dataMap.put(prefix + "sbop_svc_kei_no", template.getString(EKK0361D010CBSMsg.SBOP_SVC_KEI_NO));
		}
		
		// 世代登録年月日時分秒(サブオプションサービス契約) 
		if (template.isNull(EKK0361D010CBSMsg.SBOP_SVC_KEI_NO))
		{
			dataMap.put(prefix + "sbop_svc_kei_no", "");
		}
		else
		{
			dataMap.put(prefix + "sbop_svc_kei_no", template.getString(EKK0361D010CBSMsg.SBOP_SVC_KEI_NO));
		}
		
		// 世代登録年月日時分秒(サブオプションサービス契約) 
		if (template.isNull(EKK0361D010CBSMsg.KK0401_GENE_ADD_DTM))
		{
			dataMap.put(prefix + "kk0401_gene_add_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0401_gene_add_dtm", template.getString(EKK0361D010CBSMsg.KK0401_GENE_ADD_DTM));
		}
		
		// 更新年月日時分秒（サブオプションサービス契約）
		if (template.isNull(EKK0361D010CBSMsg.KK0401_UPD_DTM))
		{
			dataMap.put(prefix + "kk0401_upd_dtm", "");
		}
		else
		{
			dataMap.put(prefix + "kk0401_upd_dtm", template.getString(EKK0361D010CBSMsg.KK0401_UPD_DTM));
			JKKBpCommon.setLastDtmBySvcKeiNo(param,
					exclSvcKeiNo, 
					template.getString(EKK0361D010CBSMsg.KK0401_UPD_DTM));
		}
		
		// 表示用サービス提供開始年月日
		if (template.isNull(EKK0361D010CBSMsg.DSP_SVCTK_STAYMD))
		{
			dataMap.put(prefix + "dsp_svctk_staymd", "");
		}
		else
		{
			dataMap.put(prefix + "dsp_svctk_staymd", template.getString(EKK0361D010CBSMsg.DSP_SVCTK_STAYMD));
		}
		
		// フェムトセル用認証ID
		if (template.isNull(EKK0361D010CBSMsg.FMTCEL_NINSHO_ID))
		{
			dataMap.put(prefix + "fmtcel_ninsho_id", "");
		}
		else
		{
			dataMap.put(prefix + "fmtcel_ninsho_id", template.getString(EKK0361D010CBSMsg.FMTCEL_NINSHO_ID));
		}
		
		// フェムトセル用認証IDパスワード
		if (template.isNull(EKK0361D010CBSMsg.FMTCEL_NINSHO_ID_PWD))
		{
			dataMap.put(prefix + "fmtcel_ninsho_id_pwd", "");
		}
		else
		{
			dataMap.put(prefix + "fmtcel_ninsho_id_pwd", template.getString(EKK0361D010CBSMsg.FMTCEL_NINSHO_ID_PWD));
		}
		
		// エラー情報の設定
		editErrInfoEKK0361D010Msg(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;
	}
	
	/**
	 * サービスコンポーネント実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 * @param param
	 * @param templates
	 * @param returnCode
	 * @param fixedText
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, String fixedText)
			throws RequestParameterException
	{
		// ユーザデータ情報
		HashMap inMapChk = (HashMap)(param.getData(fixedText));
		if (inMapChk == null)
		{
			return param;
		}
		
		int templateCount = 0;
		
		// サービス契約<eoADSL>登録
		editErrInfoEKK0141D010Msg(param, templates[templateCount++], returnCode, fixedText, PREFIX_ADSL);
		
		if (ADSL_FLETS.equals(getMapValue(param, fixedText, PREFIX_ADSL + "prc_grp_cd")))
		{
			// サービス契約内訳<eoADSL>登録
			editErrInfoEKK0221D010Msg(param, templates[templateCount++], returnCode, fixedText, PREFIX_ADSL_UCWK);
		}
		
		/*
		 * チェック不要
		 * 
		// 料金コース_オプションサービス一覧
		editErrInfoEKK0811B001Msg(param, templates[templateCount++], returnCode, fixedText);
		// オプションサービス契約<ISP>登録
		editErrInfoEKK0361D010Msg(param, templates[templateCount++], returnCode, fixedText, PREFIX_OPT_MODEM);
		*/

		return param;
	}

	/**
	 *  サービス契約＜eoADSL＞登録のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @param prefix
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0141D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			String fixedText, String prefix) throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0141D010CBSMsg.STATUS);
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + String.format(RETURN_MESSAGE_FORMAT, templateStatus)) == null)
		{
			templateStatus = 0;
		}

		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}

		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format(RETURN_MESSAGE_FORMAT, templateStatus);
			String message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

		HashMap inMap = (HashMap)(param.getData(fixedText));
		
		// SYSID
		if (!template.isNull(EKK0141D010CBSMsg.SYSID_ERR))
		{
			if (!inMap.containsKey(prefix + "sysid_err"))
			{
				inMap.put(prefix + "sysid_err", template.getString(EKK0141D010CBSMsg.SYSID_ERR));
			}
		}

		// サービスコード
		if (!template.isNull(EKK0141D010CBSMsg.SVC_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_cd_err"))
			{
				inMap.put(prefix + "svc_cd_err", template.getString(EKK0141D010CBSMsg.SVC_CD_ERR));
			}
		}

		// 申込明細番号
		if (!template.isNull(EKK0141D010CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_dtl_no_err"))
			{
				inMap.put(prefix + "mskm_dtl_no_err", template.getString(EKK0141D010CBSMsg.MSKM_DTL_NO_ERR));
			}
		}

		// 面開発案件番号
		if (!template.isNull(EKK0141D010CBSMsg.MENKAIHAT_ANKEN_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "menkaihat_anken_no_err"))
			{
				inMap.put(prefix + "menkaihat_anken_no_err", template.getString(EKK0141D010CBSMsg.MENKAIHAT_ANKEN_NO_ERR));
			}
		}

		// 料金グループコード
		if (!template.isNull(EKK0141D010CBSMsg.PRC_GRP_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "prc_grp_cd_err"))
			{
				inMap.put(prefix + "prc_grp_cd_err", template.getString(EKK0141D010CBSMsg.PRC_GRP_CD_ERR));
			}
		}

		// 料金コースコード
		if (!template.isNull(EKK0141D010CBSMsg.PCRS_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pcrs_cd_err"))
			{
				inMap.put(prefix + "pcrs_cd_err", template.getString(EKK0141D010CBSMsg.PCRS_CD_ERR));
			}
		}

		// 料金プランコード
		if (!template.isNull(EKK0141D010CBSMsg.PPLAN_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pplan_cd_err"))
			{
				inMap.put(prefix + "pplan_cd_err", template.getString(EKK0141D010CBSMsg.PPLAN_CD_ERR));
			}
		}

		// 提供方式契約番号
		if (!template.isNull(EKK0141D010CBSMsg.TK_HOSHIKI_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "tk_hoshiki_kei_no_err"))
			{
				inMap.put(prefix + "tk_hoshiki_kei_no_err", template.getString(EKK0141D010CBSMsg.TK_HOSHIKI_KEI_NO_ERR));
			}
		}

		// サービス利用開始希望年月日
		if (!template.isNull(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR));
			}
		}

		// 予約適用開始希望年月日
		if (!template.isNull(EKK0141D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "rsv_tsta_kibo_ymd_err"))
			{
				inMap.put(prefix + "rsv_tsta_kibo_ymd_err", template.getString(EKK0141D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR));
			}
		}

		// ID速報書出力要否
		if (!template.isNull(EKK0141D010CBSMsg.ID_SOKHOSHO_OUTPUT_YH_ERR))
		{
			if (!inMap.containsKey(prefix + "id_sokhosho_output_yh_err"))
			{
				inMap.put(prefix + "id_sokhosho_output_yh_err", template.getString(EKK0141D010CBSMsg.ID_SOKHOSHO_OUTPUT_YH_ERR));
			}
		}

		// 支払い方法継続フラグ
		if (!template.isNull(EKK0141D010CBSMsg.PAYWAY_KEIZOKU_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "payway_keizoku_flg_err"))
			{
				inMap.put(prefix + "payway_keizoku_flg_err", template.getString(EKK0141D010CBSMsg.PAYWAY_KEIZOKU_FLG_ERR));
			}
		}

		// 試用加入年月日
		if (!template.isNull(EKK0141D010CBSMsg.FTRIAL_KANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_kanyu_ymd_err"))
			{
				inMap.put(prefix + "ftrial_kanyu_ymd_err", template.getString(EKK0141D010CBSMsg.FTRIAL_KANYU_YMD_ERR));
			}
		}

		// 試用期間終了年月日
		if (!template.isNull(EKK0141D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_prd_endymd_err"))
			{
				inMap.put(prefix + "ftrial_prd_endymd_err", template.getString(EKK0141D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR));
			}
		}

		// 本加入年月日
		if (!template.isNull(EKK0141D010CBSMsg.HONKANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_ymd_err", template.getString(EKK0141D010CBSMsg.HONKANYU_YMD_ERR));
			}
		}

		// 本加入移行期限年月日
		if (!template.isNull(EKK0141D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_iko_kigen_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_iko_kigen_ymd_err", template.getString(EKK0141D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR));
			}
		}

		// レター発送仕分区分
		if (!template.isNull(EKK0141D010CBSMsg.LETTER_HASSO_SHIWAKE_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "letter_hasso_shiwake_div_err"))
			{
				inMap.put(prefix + "letter_hasso_shiwake_div_err", template.getString(EKK0141D010CBSMsg.LETTER_HASSO_SHIWAKE_DIV_ERR));
			}
		}

		// サンキューレター送付先コード
		if (!template.isNull(EKK0141D010CBSMsg.THNX_LETTER_SHS_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "thnx_letter_shs_cd_err"))
			{
				inMap.put(prefix + "thnx_letter_shs_cd_err", template.getString(EKK0141D010CBSMsg.THNX_LETTER_SHS_CD_ERR));
			}
		}

		// WEBオプション追加不可フラグ
		if (!template.isNull(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.WEB_OP_ADD_FAIL_FLG_ERR));
			}
		}

		// 変更元法人サービス契約受付番号
		if (!template.isNull(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NO_ERR));
			}
		}

		// 変更元法人サービス契約受付番号(子)
		if (!template.isNull(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NOPT_ERR));
			}
		}

		// 違約金発生コード
		if (!template.isNull(EKK0141D010CBSMsg.PNLTY_HASSEI_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pnlty_hassei_cd_err"))
			{
				inMap.put(prefix + "pnlty_hassei_cd_err", template.getString(EKK0141D010CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}

		// 異動区分
		if (!template.isNull(EKK0141D010CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "ido_div_err"))
			{
				inMap.put(prefix + "ido_div_err", template.getString(EKK0141D010CBSMsg.IDO_DIV_ERR));
			}
		}

		// 紹介コード
		if (!template.isNull(EKK0141D010CBSMsg.INTR_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "intr_cd_err"))
			{
				inMap.put(prefix + "intr_cd_err", template.getString(EKK0141D010CBSMsg.INTR_CD_ERR));
			}
		}

		// 業務連絡備考
		if (!template.isNull(EKK0141D010CBSMsg.WORK_RRK_BIKO_ERR))
		{
			if (!inMap.containsKey(prefix + "work_rrk_biko_err"))
			{
				inMap.put(prefix + "work_rrk_biko_err", template.getString(EKK0141D010CBSMsg.WORK_RRK_BIKO_ERR));
			}
		}

		// 自動照査処理状態コード
		if (!template.isNull(EKK0141D010CBSMsg.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(EKK0141D010CBSMsg.AUTO_SHOSA_TRAN_STAT_CD_ERR));
			}
		}

		// ADSLタイプコード
		if (!template.isNull(EKK0141D010CBSMsg.ADSL_TYPE_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "adsl_type_cd_err"))
			{
				inMap.put(prefix + "adsl_type_cd_err", template.getString(EKK0141D010CBSMsg.ADSL_TYPE_CD_ERR));
			}
		}

		// ADSL使用電話番号
		if (!template.isNull(EKK0141D010CBSMsg.ADSL_USE_TELNO_ERR))
		{
			if (!inMap.containsKey(prefix + "adsl_use_telno_err"))
			{
				inMap.put(prefix + "adsl_use_telno_err", template.getString(EKK0141D010CBSMsg.ADSL_USE_TELNO_ERR));
			}
		}

		// エリア判定局番
		if (!template.isNull(EKK0141D010CBSMsg.AREA_JUDGE_KYOKU_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "area_judge_kyoku_no_err"))
			{
				inMap.put(prefix + "area_judge_kyoku_no_err", template.getString(EKK0141D010CBSMsg.AREA_JUDGE_KYOKU_NO_ERR));
			}
		}

		// 設置先既設電話番号
		if (!template.isNull(EKK0141D010CBSMsg.STC_SAKI_KST_TELNO_ERR))
		{
			if (!inMap.containsKey(prefix + "stc_saki_kst_telno_err"))
			{
				inMap.put(prefix + "stc_saki_kst_telno_err", template.getString(EKK0141D010CBSMsg.STC_SAKI_KST_TELNO_ERR));
			}
		}

		// NTT集約局名
		if (!template.isNull(EKK0141D010CBSMsg.NTT_SHYAKK_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "ntt_shyakk_nm_err"))
			{
				inMap.put(prefix + "ntt_shyakk_nm_err", template.getString(EKK0141D010CBSMsg.NTT_SHYAKK_NM_ERR));
			}
		}

		// ADSL回線種別コード
		if (!template.isNull(EKK0141D010CBSMsg.ADSL_KAISEN_SBT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "adsl_kaisen_sbt_cd_err"))
			{
				inMap.put(prefix + "adsl_kaisen_sbt_cd_err", template.getString(EKK0141D010CBSMsg.ADSL_KAISEN_SBT_CD_ERR));
			}
		}

		// ADSL回線名義人名
		if (!template.isNull(EKK0141D010CBSMsg.ADSL_KAISEN_MEIGIN_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "adsl_kaisen_meigin_nm_err"))
			{
				inMap.put(prefix + "adsl_kaisen_meigin_nm_err", template.getString(EKK0141D010CBSMsg.ADSL_KAISEN_MEIGIN_NM_ERR));
			}
		}

		// ADSL宅内工事コード
		if (!template.isNull(EKK0141D010CBSMsg.ADSL_TAKNIKJ_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "adsl_taknikj_cd_err"))
			{
				inMap.put(prefix + "adsl_taknikj_cd_err", template.getString(EKK0141D010CBSMsg.ADSL_TAKNIKJ_CD_ERR));
			}
		}

		// アナログ切替承認区分
		if (!template.isNull(EKK0141D010CBSMsg.ANALOG_SWITCH_SHONIN_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "analog_switch_shonin_div_err"))
			{
				inMap.put(prefix + "analog_switch_shonin_div_err", template.getString(EKK0141D010CBSMsg.ANALOG_SWITCH_SHONIN_DIV_ERR));
			}
		}

		// eAccess代理店コード
		if (!template.isNull(EKK0141D010CBSMsg.EACCESS_AGNT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "eaccess_agnt_cd_err"))
			{
				inMap.put(prefix + "eaccess_agnt_cd_err", template.getString(EKK0141D010CBSMsg.EACCESS_AGNT_CD_ERR));
			}
		}

		// eAccessキャンペーンコード
		if (!template.isNull(EKK0141D010CBSMsg.EACCESS_CMP_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "eaccess_cmp_cd_err"))
			{
				inMap.put(prefix + "eaccess_cmp_cd_err", template.getString(EKK0141D010CBSMsg.EACCESS_CMP_CD_ERR));
			}
		}

		// CPE提供要否
		if (!template.isNull(EKK0141D010CBSMsg.CPE_TK_YH_ERR))
		{
			if (!inMap.containsKey(prefix + "cpe_tk_yh_err"))
			{
				inMap.put(prefix + "cpe_tk_yh_err", template.getString(EKK0141D010CBSMsg.CPE_TK_YH_ERR));
			}
		}

		// 請求契約番号
		if (!template.isNull(EKK0141D010CBSMsg.SEIKY_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "seiky_kei_no_err"))
			{
				inMap.put(prefix + "seiky_kei_no_err", template.getString(EKK0141D010CBSMsg.SEIKY_KEI_NO_ERR));
			}
		}

		// 料金項目コード
		if (!template.isNull(EKK0141D010CBSMsg.PRC_KMK_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "prc_kmk_cd_err"))
			{
				inMap.put(prefix + "prc_kmk_cd_err", template.getString(EKK0141D010CBSMsg.PRC_KMK_CD_ERR));
			}
		}

		// 事務手数料自動適用要否
		if (!template.isNull(EKK0141D010CBSMsg.RULE0059_AUTO_APLY_ERR))
		{
			if (!inMap.containsKey(prefix + "rule0059_auto_aply_err"))
			{
				inMap.put(prefix + "rule0059_auto_aply_err", template.getString(EKK0141D010CBSMsg.RULE0059_AUTO_APLY_ERR));
			}
		}

		return param;
	}
	
	/**
	 * サービス契約内訳＜eoADSL＞登録のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @param prefix
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0221D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			String fixedText, String prefix) throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0221D010CBSMsg.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(EKK0221D010CBSMsg.SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_kei_no_err"))
			{
				inMap.put(prefix + "svc_kei_no_err", template.getString(EKK0221D010CBSMsg.SVC_KEI_NO_ERR));
			}
		}

		// 申込明細番号
		if (!template.isNull(EKK0221D010CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_dtl_no_err"))
			{
				inMap.put(prefix + "mskm_dtl_no_err", template.getString(EKK0221D010CBSMsg.MSKM_DTL_NO_ERR));
			}
		}

		// 提供方式契約番号
		if (!template.isNull(EKK0221D010CBSMsg.TK_HOSHIKI_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "tk_hoshiki_kei_no_err"))
			{
				inMap.put(prefix + "tk_hoshiki_kei_no_err", template.getString(EKK0221D010CBSMsg.TK_HOSHIKI_KEI_NO_ERR));
			}
		}

		// 支払い方法継続フラグ
		if (!template.isNull(EKK0221D010CBSMsg.PAYWAY_KEIZOKU_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "payway_keizoku_flg_err"))
			{
				inMap.put(prefix + "payway_keizoku_flg_err", template.getString(EKK0221D010CBSMsg.PAYWAY_KEIZOKU_FLG_ERR));
			}
		}

		// WEBオプション追加不可フラグ
		if (!template.isNull(EKK0221D010CBSMsg.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(EKK0221D010CBSMsg.WEB_OP_ADD_FAIL_FLG_ERR));
			}
		}

		// 業務連絡備考
		if (!template.isNull(EKK0221D010CBSMsg.WORK_RRK_BIKO_ERR))
		{
			if (!inMap.containsKey(prefix + "work_rrk_biko_err"))
			{
				inMap.put(prefix + "work_rrk_biko_err", template.getString(EKK0221D010CBSMsg.WORK_RRK_BIKO_ERR));
			}
		}

		// サービス利用開始希望年月日
		if (!template.isNull(EKK0221D010CBSMsg.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(EKK0221D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR));
			}
		}

		// 予約適用開始希望年月日
		if (!template.isNull(EKK0221D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "rsv_tsta_kibo_ymd_err"))
			{
				inMap.put(prefix + "rsv_tsta_kibo_ymd_err", template.getString(EKK0221D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR));
			}
		}

		// 試用加入年月日
		if (!template.isNull(EKK0221D010CBSMsg.FTRIAL_KANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_kanyu_ymd_err"))
			{
				inMap.put(prefix + "ftrial_kanyu_ymd_err", template.getString(EKK0221D010CBSMsg.FTRIAL_KANYU_YMD_ERR));
			}
		}

		// 試用期間終了年月日
		if (!template.isNull(EKK0221D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_prd_endymd_err"))
			{
				inMap.put(prefix + "ftrial_prd_endymd_err", template.getString(EKK0221D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR));
			}
		}

		// 本加入年月日
		if (!template.isNull(EKK0221D010CBSMsg.HONKANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_ymd_err", template.getString(EKK0221D010CBSMsg.HONKANYU_YMD_ERR));
			}
		}

		// 本加入移行期限年月日
		if (!template.isNull(EKK0221D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_iko_kigen_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_iko_kigen_ymd_err", template.getString(EKK0221D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR));
			}
		}

		// 違約金発生コード
		if (!template.isNull(EKK0221D010CBSMsg.PNLTY_HASSEI_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pnlty_hassei_cd_err"))
			{
				inMap.put(prefix + "pnlty_hassei_cd_err", template.getString(EKK0221D010CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}

		// 異動区分
		if (!template.isNull(EKK0221D010CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "ido_div_err"))
			{
				inMap.put(prefix + "ido_div_err", template.getString(EKK0221D010CBSMsg.IDO_DIV_ERR));
			}
		}

		// ADSL宅内工事コード
		if (!template.isNull(EKK0221D010CBSMsg.ADSL_TAKNIKJ_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "adsl_taknikj_cd_err"))
			{
				inMap.put(prefix + "adsl_taknikj_cd_err", template.getString(EKK0221D010CBSMsg.ADSL_TAKNIKJ_CD_ERR));
			}
		}

		// ADSL工事依頼年月日
		if (!template.isNull(EKK0221D010CBSMsg.ADSL_KOJI_REQYMD_ERR))
		{
			if (!inMap.containsKey(prefix + "adsl_koji_reqymd_err"))
			{
				inMap.put(prefix + "adsl_koji_reqymd_err", template.getString(EKK0221D010CBSMsg.ADSL_KOJI_REQYMD_ERR));
			}
		}

		return param;
	}
	
	/**
	 * オプションサービス契約＜ISP＞登録のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @param prefix
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0361D010Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			String fixedText, String prefix) throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0361D010CBSMsg.STATUS);
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + String.format(RETURN_MESSAGE_FORMAT, templateStatus)) == null)
		{
			templateStatus = 0;
		}

		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}

		if (templateStatus > bpStatus)
		{
			String formatStatus = String.format(RETURN_MESSAGE_FORMAT, templateStatus);
			String message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

		HashMap inMap = (HashMap)(param.getData(fixedText));
		
		// オプションサービスコード
		if (!template.isNull(EKK0361D010CBSMsg.OP_SVC_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "op_svc_cd_err"))
			{
				inMap.put(prefix + "op_svc_cd_err", template.getString(EKK0361D010CBSMsg.OP_SVC_CD_ERR));
			}
		}

		// 料金コースコード
		if (!template.isNull(EKK0361D010CBSMsg.PCRS_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pcrs_cd_err"))
			{
				inMap.put(prefix + "pcrs_cd_err", template.getString(EKK0361D010CBSMsg.PCRS_CD_ERR));
			}
		}

		// 料金プランコード
		if (!template.isNull(EKK0361D010CBSMsg.PPLAN_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pplan_cd_err"))
			{
				inMap.put(prefix + "pplan_cd_err", template.getString(EKK0361D010CBSMsg.PPLAN_CD_ERR));
			}
		}

		// 親契約識別コード
		if (!template.isNull(EKK0361D010CBSMsg.OYA_KEI_SKBT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "oya_kei_skbt_cd_err"))
			{
				inMap.put(prefix + "oya_kei_skbt_cd_err", template.getString(EKK0361D010CBSMsg.OYA_KEI_SKBT_CD_ERR));
			}
		}

		// サービス契約番号
		if (!template.isNull(EKK0361D010CBSMsg.SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_kei_no_err"))
			{
				inMap.put(prefix + "svc_kei_no_err", template.getString(EKK0361D010CBSMsg.SVC_KEI_NO_ERR));
			}
		}

		// サービス契約内訳番号
		if (!template.isNull(EKK0361D010CBSMsg.SVC_KEI_UCWK_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_kei_ucwk_no_err"))
			{
				inMap.put(prefix + "svc_kei_ucwk_no_err", template.getString(EKK0361D010CBSMsg.SVC_KEI_UCWK_NO_ERR));
			}
		}

		// SYSID
		if (!template.isNull(EKK0361D010CBSMsg.SYSID_ERR))
		{
			if (!inMap.containsKey(prefix + "sysid_err"))
			{
				inMap.put(prefix + "sysid_err", template.getString(EKK0361D010CBSMsg.SYSID_ERR));
			}
		}

		// 申込明細番号
		if (!template.isNull(EKK0361D010CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "mskm_dtl_no_err"))
			{
				inMap.put(prefix + "mskm_dtl_no_err", template.getString(EKK0361D010CBSMsg.MSKM_DTL_NO_ERR));
			}
		}

		// 試用加入年月日
		if (!template.isNull(EKK0361D010CBSMsg.FTRIAL_KANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_kanyu_ymd_err"))
			{
				inMap.put(prefix + "ftrial_kanyu_ymd_err", template.getString(EKK0361D010CBSMsg.FTRIAL_KANYU_YMD_ERR));
			}
		}

		// 試用期間終了年月日
		if (!template.isNull(EKK0361D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_prd_endymd_err"))
			{
				inMap.put(prefix + "ftrial_prd_endymd_err", template.getString(EKK0361D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR));
			}
		}

		// 本加入年月日
		if (!template.isNull(EKK0361D010CBSMsg.HONKANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_ymd_err", template.getString(EKK0361D010CBSMsg.HONKANYU_YMD_ERR));
			}
		}

		// 本加入移行期限年月日
		if (!template.isNull(EKK0361D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_iko_kigen_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_iko_kigen_ymd_err", template.getString(EKK0361D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR));
			}
		}

		// サービス利用開始希望年月日
		if (!template.isNull(EKK0361D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_use_sta_kibo_ymd_err"))
			{
				inMap.put(prefix + "svc_use_sta_kibo_ymd_err", template.getString(EKK0361D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR));
			}
		}

		// 予約適用開始希望年月日
		if (!template.isNull(EKK0361D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "rsv_tsta_kibo_ymd_err"))
			{
				inMap.put(prefix + "rsv_tsta_kibo_ymd_err", template.getString(EKK0361D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR));
			}
		}

		// 違約金発生コード
		if (!template.isNull(EKK0361D010CBSMsg.PNLTY_HASSEI_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pnlty_hassei_cd_err"))
			{
				inMap.put(prefix + "pnlty_hassei_cd_err", template.getString(EKK0361D010CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}

		// 異動区分
		if (!template.isNull(EKK0361D010CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "ido_div_err"))
			{
				inMap.put(prefix + "ido_div_err", template.getString(EKK0361D010CBSMsg.IDO_DIV_ERR));
			}
		}

		// 希望メールアカウント1
		if (!template.isNull(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_1_ERR))
		{
			if (!inMap.containsKey(prefix + "kibo_mlad_1_err"))
			{
				inMap.put(prefix + "kibo_mlad_1_err", template.getString(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_1_ERR));
			}
		}

		// 希望メールアカウント2
		if (!template.isNull(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_2_ERR))
		{
			if (!inMap.containsKey(prefix + "kibo_mlad_2_err"))
			{
				inMap.put(prefix + "kibo_mlad_2_err", template.getString(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_2_ERR));
			}
		}

		// 希望メールアカウント3
		if (!template.isNull(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_3_ERR))
		{
			if (!inMap.containsKey(prefix + "kibo_mlad_3_err"))
			{
				inMap.put(prefix + "kibo_mlad_3_err", template.getString(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_3_ERR));
			}
		}

		// マルチセッション用初期認証IDパスワード
		if (!template.isNull(EKK0361D010CBSMsg.MLTISE_SHK_NINSHO_ID_PWD_ERR))
		{
			if (!inMap.containsKey(prefix + "mltise_shk_ninsho_id_pwd_err"))
			{
				inMap.put(prefix + "mltise_shk_ninsho_id_pwd_err", template.getString(EKK0361D010CBSMsg.MLTISE_SHK_NINSHO_ID_PWD_ERR));
			}
		}

		// マルチセッション用認証ID
		if (!template.isNull(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_ERR))
		{
			if (!inMap.containsKey(prefix + "mltise_ninsho_id_err"))
			{
				inMap.put(prefix + "mltise_ninsho_id_err", template.getString(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_ERR));
			}
		}

		// マルチセッション用認証IDパスワード
		if (!template.isNull(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_PWD_ERR))
		{
			if (!inMap.containsKey(prefix + "mltise_ninsho_id_pwd_err"))
			{
				inMap.put(prefix + "mltise_ninsho_id_pwd_err", template.getString(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_PWD_ERR));
			}
		}

		// 固定IPアドレス
		if (!template.isNull(EKK0361D010CBSMsg.KOTEI_IP_AD_ERR))
		{
			if (!inMap.containsKey(prefix + "kotei_ip_ad_err"))
			{
				inMap.put(prefix + "kotei_ip_ad_err", template.getString(EKK0361D010CBSMsg.KOTEI_IP_AD_ERR));
			}
		}

		// ネットマスク
		if (!template.isNull(EKK0361D010CBSMsg.NETMASK_ERR))
		{
			if (!inMap.containsKey(prefix + "netmask_err"))
			{
				inMap.put(prefix + "netmask_err", template.getString(EKK0361D010CBSMsg.NETMASK_ERR));
			}
		}

		// URL(ドメイン)
		if (!template.isNull(EKK0361D010CBSMsg.URL_DOMAIN_ERR))
		{
			if (!inMap.containsKey(prefix + "url_domain_err"))
			{
				inMap.put(prefix + "url_domain_err", template.getString(EKK0361D010CBSMsg.URL_DOMAIN_ERR));
			}
		}

		// URL(アカウント)
		if (!template.isNull(EKK0361D010CBSMsg.URL_ACCOUNT_ERR))
		{
			if (!inMap.containsKey(prefix + "url_account_err"))
			{
				inMap.put(prefix + "url_account_err", template.getString(EKK0361D010CBSMsg.URL_ACCOUNT_ERR));
			}
		}

		// メーリングリスト名
		if (!template.isNull(EKK0361D010CBSMsg.MLLIST_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "mllist_nm_err"))
			{
				inMap.put(prefix + "mllist_nm_err", template.getString(EKK0361D010CBSMsg.MLLIST_NM_ERR));
			}
		}

		// メーリングリスト呼称
		if (!template.isNull(EKK0361D010CBSMsg.MLLIST_KOSHO_ERR))
		{
			if (!inMap.containsKey(prefix + "mllist_kosho_err"))
			{
				inMap.put(prefix + "mllist_kosho_err", template.getString(EKK0361D010CBSMsg.MLLIST_KOSHO_ERR));
			}
		}

		// メーリングリスト公開要否
		if (!template.isNull(EKK0361D010CBSMsg.MLLIST_KOKAI_YH_ERR))
		{
			if (!inMap.containsKey(prefix + "mllist_kokai_yh_err"))
			{
				inMap.put(prefix + "mllist_kokai_yh_err", template.getString(EKK0361D010CBSMsg.MLLIST_KOKAI_YH_ERR));
			}
		}

		// メーリングリスト最大ユーザー数
		if (!template.isNull(EKK0361D010CBSMsg.MLLIST_MAX_USER_CNT_ERR))
		{
			if (!inMap.containsKey(prefix + "mllist_max_user_cnt_err"))
			{
				inMap.put(prefix + "mllist_max_user_cnt_err", template.getString(EKK0361D010CBSMsg.MLLIST_MAX_USER_CNT_ERR));
			}
		}

		// メーリングリスト管理者メールアドレス
		if (!template.isNull(EKK0361D010CBSMsg.MLLIST_KRISHA_MLAD_ERR))
		{
			if (!inMap.containsKey(prefix + "mllist_krisha_mlad_err"))
			{
				inMap.put(prefix + "mllist_krisha_mlad_err", template.getString(EKK0361D010CBSMsg.MLLIST_KRISHA_MLAD_ERR));
			}
		}

		// 独自ドメイン名
		if (!template.isNull(EKK0361D010CBSMsg.DOKUJI_DOMAIN_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "dokuji_domain_nm_err"))
			{
				inMap.put(prefix + "dokuji_domain_nm_err", template.getString(EKK0361D010CBSMsg.DOKUJI_DOMAIN_NM_ERR));
			}
		}

		// ホスティングメールアカウント数
		if (!template.isNull(EKK0361D010CBSMsg.HOSML_ACCOUNT_CNT_ERR))
		{
			if (!inMap.containsKey(prefix + "hosml_account_cnt_err"))
			{
				inMap.put(prefix + "hosml_account_cnt_err", template.getString(EKK0361D010CBSMsg.HOSML_ACCOUNT_CNT_ERR));
			}
		}

		// ホスティングメールボックス総容量
		if (!template.isNull(EKK0361D010CBSMsg.HOSML_BOX_CAPA_ERR))
		{
			if (!inMap.containsKey(prefix + "hosml_box_capa_err"))
			{
				inMap.put(prefix + "hosml_box_capa_err", template.getString(EKK0361D010CBSMsg.HOSML_BOX_CAPA_ERR));
			}
		}

		// ダイヤルパッドPIN
		if (!template.isNull(EKK0361D010CBSMsg.DPAD_PIN_ERR))
		{
			if (!inMap.containsKey(prefix + "dpad_pin_err"))
			{
				inMap.put(prefix + "dpad_pin_err", template.getString(EKK0361D010CBSMsg.DPAD_PIN_ERR));
			}
		}

		// ダイヤルパッドID公開要否
		if (!template.isNull(EKK0361D010CBSMsg.DPAD_ID_KOKAI_YH_ERR))
		{
			if (!inMap.containsKey(prefix + "dpad_id_kokai_yh_err"))
			{
				inMap.put(prefix + "dpad_id_kokai_yh_err", template.getString(EKK0361D010CBSMsg.DPAD_ID_KOKAI_YH_ERR));
			}
		}

		// ダイアルアップ接続用認証ID
		if (!template.isNull(EKK0361D010CBSMsg.DUPCON_NINSHO_ID_ERR))
		{
			if (!inMap.containsKey(prefix + "dupcon_ninsho_id_err"))
			{
				inMap.put(prefix + "dupcon_ninsho_id_err", template.getString(EKK0361D010CBSMsg.DUPCON_NINSHO_ID_ERR));
			}
		}

		// DNS設定コード
		if (!template.isNull(EKK0361D010CBSMsg.DNS_SETTE_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "dns_sette_cd_err"))
			{
				inMap.put(prefix + "dns_sette_cd_err", template.getString(EKK0361D010CBSMsg.DNS_SETTE_CD_ERR));
			}
		}

		// スポット有害サイトブロック対象SYSID
		if (!template.isNull(EKK0361D010CBSMsg.SPOT_YGSITEBLCK_TRGT_SYSID_ERR))
		{
			if (!inMap.containsKey(prefix + "spot_ygsiteblck_trgt_sysid_err"))
			{
				inMap.put(prefix + "spot_ygsiteblck_trgt_sysid_err", template.getString(EKK0361D010CBSMsg.SPOT_YGSITEBLCK_TRGT_SYSID_ERR));
			}
		}

		// サービス個別設定連絡先メールアドレス
		if (!template.isNull(EKK0361D010CBSMsg.SVC_KBT_SET_RRKS_MLAD_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_kbt_set_rrks_mlad_err"))
			{
				inMap.put(prefix + "svc_kbt_set_rrks_mlad_err", template.getString(EKK0361D010CBSMsg.SVC_KBT_SET_RRKS_MLAD_ERR));
			}
		}

		// 通話明細公開要否
		if (!template.isNull(EKK0361D010CBSMsg.TUWA_DTL_KOKAI_YH_ERR))
		{
			if (!inMap.containsKey(prefix + "tuwa_dtl_kokai_yh_err"))
			{
				inMap.put(prefix + "tuwa_dtl_kokai_yh_err", template.getString(EKK0361D010CBSMsg.TUWA_DTL_KOKAI_YH_ERR));
			}
		}

		// IPv6アドレス(インターフェイスID)
		if (!template.isNull(EKK0361D010CBSMsg.IPV6_AD_IFID_ERR))
		{
			if (!inMap.containsKey(prefix + "ipv6_ad_ifid_err"))
			{
				inMap.put(prefix + "ipv6_ad_ifid_err", template.getString(EKK0361D010CBSMsg.IPV6_AD_IFID_ERR));
			}
		}

		// 請求契約番号
		if (!template.isNull(EKK0361D010CBSMsg.SEIKY_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "seiky_kei_no_err"))
			{
				inMap.put(prefix + "seiky_kei_no_err", template.getString(EKK0361D010CBSMsg.SEIKY_KEI_NO_ERR));
			}
		}

		// 料金項目コード
		if (!template.isNull(EKK0361D010CBSMsg.PRC_KMK_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "prc_kmk_cd_err"))
			{
				inMap.put(prefix + "prc_kmk_cd_err", template.getString(EKK0361D010CBSMsg.PRC_KMK_CD_ERR));
			}
		}

		// 更新年月日時分秒(更新前)
		if (!template.isNull(EKK0361D010CBSMsg.UPD_DTM_BF_ERR))
		{
			if (!inMap.containsKey(prefix + "upd_dtm_bf_err"))
			{
				inMap.put(prefix + "upd_dtm_bf_err", template.getString(EKK0361D010CBSMsg.UPD_DTM_BF_ERR));
			}
		}

		// 初期POPIDパスワード
		if (!template.isNull(EKK0361D010CBSMsg.SHK_POP_ID_PWD_ERR))
		{
			if (!inMap.containsKey(prefix + "shk_pop_id_pwd_err"))
			{
				inMap.put(prefix + "shk_pop_id_pwd_err", template.getString(EKK0361D010CBSMsg.SHK_POP_ID_PWD_ERR));
			}
		}

		// POPID
		if (!template.isNull(EKK0361D010CBSMsg.POP_ID_ERR))
		{
			if (!inMap.containsKey(prefix + "pop_id_err"))
			{
				inMap.put(prefix + "pop_id_err", template.getString(EKK0361D010CBSMsg.POP_ID_ERR));
			}
		}

		// メールアドレス
		if (!template.isNull(EKK0361D010CBSMsg.MLAD_ERR))
		{
			if (!inMap.containsKey(prefix + "mlad_err"))
			{
				inMap.put(prefix + "mlad_err", template.getString(EKK0361D010CBSMsg.MLAD_ERR));
			}
		}

		// 初期WebIDパスワード
		if (!template.isNull(EKK0361D010CBSMsg.SHK_WEB_ID_PWD_ERR))
		{
			if (!inMap.containsKey(prefix + "shk_web_id_pwd_err"))
			{
				inMap.put(prefix + "shk_web_id_pwd_err", template.getString(EKK0361D010CBSMsg.SHK_WEB_ID_PWD_ERR));
			}
		}

		// WebID
		if (!template.isNull(EKK0361D010CBSMsg.WEB_ID_ERR))
		{
			if (!inMap.containsKey(prefix + "web_id_err"))
			{
				inMap.put(prefix + "web_id_err", template.getString(EKK0361D010CBSMsg.WEB_ID_ERR));
			}
		}
		
		// フェムトセル事業者コード
		if (!template.isNull(EKK0361D010CBSMsg.FMTCEL_JGS_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "fmtcel_jgs_cd_err"))
			{
				inMap.put(prefix + "fmtcel_jgs_cd_err", template.getString(EKK0361D010CBSMsg.FMTCEL_JGS_CD_ERR));
			}
		}
		
		// フェムトセル事業者使用コード
		if (!template.isNull(EKK0361D010CBSMsg.FMTCEL_JGS_USE_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "fmtcel_jgs_use_cd_err"))
			{
				inMap.put(prefix + "fmtcel_jgs_use_cd_err", template.getString(EKK0361D010CBSMsg.FMTCEL_JGS_USE_CD_ERR));
			}
		}

		return param;
	}
	
	/**
	 * オプションサービス契約登録部品の上りマッピング処理を行います。
	 * @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", exclSvcKeiNo);
		inMap.put("kk0361_svc_kei_no", exclSvcKeiNo);
		
		
		// 請求契約番号
		inMap.put("kk0361_seiky_kei_no", paywayWkSeikyKeiNo);
		
		// 申込明細番号
		inMap.put("kk0361_mskm_dtl_no", mskmWkMskmDtlNoAdsl);
		
		// SYSID
		if (inMap.get("kk0361_sysid") == null || "".equals(inMap.get("kk0361_sysid")))
		{
			if (getKeishaWorkMapValue(param, "sysid") != null)
			{
				inMap.put("kk0361_sysid", getKeishaWorkMapValue(param, "sysid"));
			}
		}
		
		// ＫＥＹ＿料金コースコード
		if (inMap == null || inMap.get("kk0141_pcrs_cd") == null || "".equals(inMap.get("kk0141_pcrs_cd")))
		{
			inMap.put("key_pcrs_cd", null);
		}
		else
		{
			inMap.put("key_pcrs_cd", (String)inMap.get("kk0141_pcrs_cd"));
		}
	}
	
	/**
	 * 作業マップ（支払方法登録）の値を取得します。
	 * 
	 * <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;
	}
}
