/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKChkKikiSohusAdCC
*   ソースファイル名：JKKChkKikiSohusAdCC.java
*   作成者          ：富士通
*   日付            ：2013年01月22日
*＜機能概要＞
*   機器送付先住所チェックコモンコンポーネント部品
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v5.00.00    2013/01/22   FJ）中山    新規作成
*
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import com.fujitsu.futurity.bp.x21.bpm.ServiceComponentRequestInvoker;
import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.CCException;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.mapping.bp.common.TemplateErrorUtil;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;

import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EKK0341C230CBSMsg;


/**
 * 機器送付先住所チェックコモンコンポーネント部品です。
 * <br>
 * @author 富士通
 */
public class JKKChkKikiSohusAdCC extends AbstractCommonComponent
{
	/** リターンメッセージ */
	private static final String RETURN_MESSAGE_STRING = "RETURN_MESSAGE_";
	/** リターンメッセージ */
	private static final String RETURN_MESSAGE_FORMAT = "%1$04d";

	/** エラー用 */
	private static final String SC_ERROR_STRING = "サービスコンポーネントエラー";


	/**
	 * 機器送付先住所チェック処理を行います。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite checkKikiSohusAd(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		HashMap<String, Object> paramMap = setSCInputCommonData(param, new HashMap<String, Object>());
		Map<?, ?> result = null;
		CAANMsg template = null;
		
		HashMap inMap = (HashMap)param.getData(fixedText);
		if (null == inMap)
		{
			return param;
		}
		
		ArrayList<HashMap> dataList = (ArrayList<HashMap>)inMap.get("kktk_svc_kei_list");
		if (null == dataList)
		{
			return param;
		}
		
		for (HashMap dataMap : dataList)
		{
			// 機器提供サービス契約更新
			template = editInEKK0341C230Msg(param, dataMap, "");
			result = scCall.run(putParamMap(paramMap, template), handle);
			editOutEKK0341C230Msg(result, param, dataMap, "");
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{
				// ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}
		return param;
	}
	
	/**
	 * 単一CAANMsgのマッピング処理を行います。
	 * <br>
	 * @param paramMap パラメータマップ
	 * @param template CAANMsg
	 * @return パラメータマップ
	 * @throws RequestParameterException
	 */
	private HashMap<String, Object> putParamMap(HashMap<String, Object> paramMap, CAANMsg template) throws RequestParameterException
	{
		CAANMsg[] templates = { template };
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}
	
	/**
	 * SCの実行ステータスの取得処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @return SCの実行ステータス
	 * @throws Exception
	 */
	private int getReturnCode(IRequestParameterReadWrite param) throws Exception
	{
		return Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
	}

	/**
	 * CAANMsgに必要なデータのマッピング処理を行います。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ指定文字列
	 * @return パラメータマップ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
			throws RequestParameterException
	{
		ArrayList<CAANMsg> msgList = new ArrayList<CAANMsg>();
		
		HashMap inMap = (HashMap)param.getData(fixedText);
		if (null == inMap)
		{
			return null;
		}
		
		ArrayList<HashMap> dataList = (ArrayList<HashMap>)inMap.get("kktk_svc_kei_list");
		if (null == dataList)
		{
			return null;
		}
		
		for (HashMap dataMap : dataList)
		{
			msgList.add(editInEKK0341C230Msg(param, dataMap, ""));
		}

		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 リクエストパラメータ
	 * @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;
	}
	
	/**
	 * サービスコンポーネント実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 * <br>
	 * @param param リクエストパラメータ
	 * @param templates テンプレート
	 * @param returnCode リターンコード
	 * @param fixedText ユーザ指定文字列
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	public IRequestParameterReadWrite editErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, String fixedText)
			throws Throwable
	{
		int templateCount = 0;
		
		HashMap inMap = (HashMap)param.getData(fixedText);
		if (null == inMap)
		{
			return param;
		}
		
		ArrayList<HashMap> dataList = (ArrayList<HashMap>)inMap.get("kktk_svc_kei_list");
		if (null == dataList)
		{
			return param;
		}
		
		for (HashMap dataMap : dataList)
		{
			editErrInfoEKK0341C230Msg(param, templates[templateCount++], returnCode, dataMap, "");
		}
		
		return param;
	}

	/**
	 * 機器提供サービス契約情報変更上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param inMap インプットマップ
	 * @param prefix インプットマップの項目名のプレフィックス
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0341C230Msg(IRequestParameterReadWrite param, HashMap inMap, String prefix) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0341C230CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0341C230CBSMsg.TEMPLATEID, "EKK0341C230");

		// 機能コード（デフォルト：２）
		template.set(EKK0341C230CBSMsg.FUNC_CODE, "2");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

//		// 機能コード
//		template.set(EKK0341C230CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 機器提供サービス契約番号
		if (inMap == null || inMap.get(prefix + "kktk_svc_kei_no") == null || "".equals(inMap.get(prefix + "kktk_svc_kei_no")))
		{
			template.setNull(EKK0341C230CBSMsg.KKTK_SVC_KEI_NO);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KKTK_SVC_KEI_NO, (String)inMap.get(prefix + "kktk_svc_kei_no"));
		}

		// 機器提供種別コード
		if (inMap == null || inMap.get(prefix + "kktk_sbt_cd") == null || "".equals(inMap.get(prefix + "kktk_sbt_cd")))
		{
			template.setNull(EKK0341C230CBSMsg.KKTK_SBT_CD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KKTK_SBT_CD, (String)inMap.get(prefix + "kktk_sbt_cd"));
		}

		// 販売種別コード
		if (inMap == null || inMap.get(prefix + "hambai_sbt_cd") == null || "".equals(inMap.get(prefix + "hambai_sbt_cd")))
		{
			template.setNull(EKK0341C230CBSMsg.HAMBAI_SBT_CD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.HAMBAI_SBT_CD, (String)inMap.get(prefix + "hambai_sbt_cd"));
		}

		// 宅内機器型式コード
		if (inMap == null || inMap.get(prefix + "taknkiki_model_cd") == null || "".equals(inMap.get(prefix + "taknkiki_model_cd")))
		{
			template.setNull(EKK0341C230CBSMsg.TAKNKIKI_MODEL_CD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.TAKNKIKI_MODEL_CD, (String)inMap.get(prefix + "taknkiki_model_cd"));
		}

		// 機器製造番号
		if (inMap == null || inMap.get(prefix + "kiki_seizo_no") == null || "".equals(inMap.get(prefix + "kiki_seizo_no")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_SEIZO_NO);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_SEIZO_NO, (String)inMap.get(prefix + "kiki_seizo_no"));
		}

		// HDD容量コード
		if (inMap == null || inMap.get(prefix + "hdd_capa_cd") == null || "".equals(inMap.get(prefix + "hdd_capa_cd")))
		{
			template.setNull(EKK0341C230CBSMsg.HDD_CAPA_CD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.HDD_CAPA_CD, (String)inMap.get(prefix + "hdd_capa_cd"));
		}

		// 通信機器セットコード
		if (inMap == null || inMap.get(prefix + "tsushin_kiki_set_cd") == null || "".equals(inMap.get(prefix + "tsushin_kiki_set_cd")))
		{
			template.setNull(EKK0341C230CBSMsg.TSUSHIN_KIKI_SET_CD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.TSUSHIN_KIKI_SET_CD, (String)inMap.get(prefix + "tsushin_kiki_set_cd"));
		}

		// リンクSTBフラグ
		if (inMap == null || inMap.get(prefix + "link_stb_flg") == null || "".equals(inMap.get(prefix + "link_stb_flg")))
		{
			template.setNull(EKK0341C230CBSMsg.LINK_STB_FLG);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.LINK_STB_FLG, (String)inMap.get(prefix + "link_stb_flg"));
		}

		// 機器引当指定倉庫コード
		if (inMap == null || inMap.get(prefix + "kiki_hkat_shitei_soko_cd") == null || "".equals(inMap.get(prefix + "kiki_hkat_shitei_soko_cd")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_HKAT_SHITEI_SOKO_CD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_HKAT_SHITEI_SOKO_CD, (String)inMap.get(prefix + "kiki_hkat_shitei_soko_cd"));
		}

		// 機器引当指定倉庫棚コード
		if (inMap == null || inMap.get(prefix + "kiki_hkat_shitei_skdn_cd") == null || "".equals(inMap.get(prefix + "kiki_hkat_shitei_skdn_cd")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_HKAT_SHITEI_SKDN_CD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_HKAT_SHITEI_SKDN_CD, (String)inMap.get(prefix + "kiki_hkat_shitei_skdn_cd"));
		}

		// 機器送料有無
		if (inMap == null || inMap.get(prefix + "kiki_soryo_um") == null || "".equals(inMap.get(prefix + "kiki_soryo_um")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_SORYO_UM);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_SORYO_UM, (String)inMap.get(prefix + "kiki_soryo_um"));
		}

		// 機器送付先名
		if (inMap == null || inMap.get(prefix + "kiki_sohus_nm") == null || "".equals(inMap.get(prefix + "kiki_sohus_nm")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_SOHUS_NM);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_SOHUS_NM, (String)inMap.get(prefix + "kiki_sohus_nm"));
		}

		// 機器送付先カナ名
		if (inMap == null || inMap.get(prefix + "kiki_sohus_kana") == null || "".equals(inMap.get(prefix + "kiki_sohus_kana")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_SOHUS_KANA);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_SOHUS_KANA, (String)inMap.get(prefix + "kiki_sohus_kana"));
		}

		// 機器送付先住所コード
		if (inMap == null || inMap.get(prefix + "kiki_sohus_ad_cd") == null || "".equals(inMap.get(prefix + "kiki_sohus_ad_cd")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_SOHUS_AD_CD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_SOHUS_AD_CD, (String)inMap.get(prefix + "kiki_sohus_ad_cd"));
		}

		// 機器送付先郵便番号
		if (inMap == null || inMap.get(prefix + "kiki_sohus_pcd") == null || "".equals(inMap.get(prefix + "kiki_sohus_pcd")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_SOHUS_PCD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_SOHUS_PCD, (String)inMap.get(prefix + "kiki_sohus_pcd"));
		}

		// 機器送付先都道府県名
		if (inMap == null || inMap.get(prefix + "kiki_sohus_state_nm") == null || "".equals(inMap.get(prefix + "kiki_sohus_state_nm")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_SOHUS_STATE_NM);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_SOHUS_STATE_NM, (String)inMap.get(prefix + "kiki_sohus_state_nm"));
		}

		// 機器送付先市区町村名
		if (inMap == null || inMap.get(prefix + "kiki_sohus_city_nm") == null || "".equals(inMap.get(prefix + "kiki_sohus_city_nm")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_SOHUS_CITY_NM);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_SOHUS_CITY_NM, (String)inMap.get(prefix + "kiki_sohus_city_nm"));
		}

		// 機器送付先大字通称名
		if (inMap == null || inMap.get(prefix + "kiki_sohus_oaztsu_nm") == null || "".equals(inMap.get(prefix + "kiki_sohus_oaztsu_nm")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_SOHUS_OAZTSU_NM);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_SOHUS_OAZTSU_NM, (String)inMap.get(prefix + "kiki_sohus_oaztsu_nm"));
		}

		// 機器送付先字丁目名
		if (inMap == null || inMap.get(prefix + "kiki_sohus_azcho_nm") == null || "".equals(inMap.get(prefix + "kiki_sohus_azcho_nm")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_SOHUS_AZCHO_NM);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_SOHUS_AZCHO_NM, (String)inMap.get(prefix + "kiki_sohus_azcho_nm"));
		}

		// 機器送付先番地号
		if (inMap == null || inMap.get(prefix + "kiki_sohus_bnchigo") == null || "".equals(inMap.get(prefix + "kiki_sohus_bnchigo")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_SOHUS_BNCHIGO);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_SOHUS_BNCHIGO, (String)inMap.get(prefix + "kiki_sohus_bnchigo"));
		}

		// 機器送付先住所補記・建物名
		if (inMap == null || inMap.get(prefix + "kiki_sohus_adrttm") == null || "".equals(inMap.get(prefix + "kiki_sohus_adrttm")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_SOHUS_ADRTTM);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_SOHUS_ADRTTM, (String)inMap.get(prefix + "kiki_sohus_adrttm"));
		}

		// 機器送付先住所補記・部屋番号
		if (inMap == null || inMap.get(prefix + "kiki_sohus_adrrm") == null || "".equals(inMap.get(prefix + "kiki_sohus_adrrm")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_SOHUS_ADRRM);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_SOHUS_ADRRM, (String)inMap.get(prefix + "kiki_sohus_adrrm"));
		}

		// 機器送付先電話番号
		if (inMap == null || inMap.get(prefix + "kiki_sohus_telno") == null || "".equals(inMap.get(prefix + "kiki_sohus_telno")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_SOHUS_TELNO);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_SOHUS_TELNO, (String)inMap.get(prefix + "kiki_sohus_telno"));
		}

		// 機器送付先_契約者住所差異フラグ
		if (inMap == null || inMap.get(prefix + "kiki_sohus_ksh_ad_sai_flg") == null || "".equals(inMap.get(prefix + "kiki_sohus_ksh_ad_sai_flg")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_SOHUS_KSH_AD_SAI_FLG);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_SOHUS_KSH_AD_SAI_FLG, (String)inMap.get(prefix + "kiki_sohus_ksh_ad_sai_flg"));
		}

		// 機器送付先個別指定フラグ
		if (inMap == null || inMap.get(prefix + "kiki_shs_kbt_shitei_flg") == null || "".equals(inMap.get(prefix + "kiki_shs_kbt_shitei_flg")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_SHS_KBT_SHITEI_FLG);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_SHS_KBT_SHITEI_FLG, (String)inMap.get(prefix + "kiki_shs_kbt_shitei_flg"));
		}

		// 機器設置先名
		if (inMap == null || inMap.get(prefix + "kiki_stc_saki_nm") == null || "".equals(inMap.get(prefix + "kiki_stc_saki_nm")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_NM);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STC_SAKI_NM, (String)inMap.get(prefix + "kiki_stc_saki_nm"));
		}

		// 機器設置先カナ名
		if (inMap == null || inMap.get(prefix + "kiki_stc_saki_kana") == null || "".equals(inMap.get(prefix + "kiki_stc_saki_kana")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_KANA);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STC_SAKI_KANA, (String)inMap.get(prefix + "kiki_stc_saki_kana"));
		}

		// 機器設置先住所コード
		if (inMap == null || inMap.get(prefix + "kiki_stc_saki_ad_cd") == null || "".equals(inMap.get(prefix + "kiki_stc_saki_ad_cd")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_AD_CD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STC_SAKI_AD_CD, (String)inMap.get(prefix + "kiki_stc_saki_ad_cd"));
		}

		// 機器設置先郵便番号
		if (inMap == null || inMap.get(prefix + "kiki_stc_saki_pcd") == null || "".equals(inMap.get(prefix + "kiki_stc_saki_pcd")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_PCD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STC_SAKI_PCD, (String)inMap.get(prefix + "kiki_stc_saki_pcd"));
		}

		// 機器設置先都道府県名
		if (inMap == null || inMap.get(prefix + "kiki_stc_saki_state_nm") == null || "".equals(inMap.get(prefix + "kiki_stc_saki_state_nm")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_STATE_NM);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STC_SAKI_STATE_NM, (String)inMap.get(prefix + "kiki_stc_saki_state_nm"));
		}

		// 機器設置先市区町村名
		if (inMap == null || inMap.get(prefix + "kiki_stc_saki_city_nm") == null || "".equals(inMap.get(prefix + "kiki_stc_saki_city_nm")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_CITY_NM);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STC_SAKI_CITY_NM, (String)inMap.get(prefix + "kiki_stc_saki_city_nm"));
		}

		// 機器設置先大字通称名
		if (inMap == null || inMap.get(prefix + "kiki_stc_saki_oaztsu_nm") == null || "".equals(inMap.get(prefix + "kiki_stc_saki_oaztsu_nm")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_OAZTSU_NM);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STC_SAKI_OAZTSU_NM, (String)inMap.get(prefix + "kiki_stc_saki_oaztsu_nm"));
		}

		// 機器設置先字丁目名
		if (inMap == null || inMap.get(prefix + "kiki_stc_saki_azcho_nm") == null || "".equals(inMap.get(prefix + "kiki_stc_saki_azcho_nm")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_AZCHO_NM);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STC_SAKI_AZCHO_NM, (String)inMap.get(prefix + "kiki_stc_saki_azcho_nm"));
		}

		// 機器設置先番地号
		if (inMap == null || inMap.get(prefix + "kiki_stc_saki_bnchigo") == null || "".equals(inMap.get(prefix + "kiki_stc_saki_bnchigo")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_BNCHIGO);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STC_SAKI_BNCHIGO, (String)inMap.get(prefix + "kiki_stc_saki_bnchigo"));
		}

		// 機器設置先住所補記・建物名
		if (inMap == null || inMap.get(prefix + "kiki_stc_saki_adrttm") == null || "".equals(inMap.get(prefix + "kiki_stc_saki_adrttm")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_ADRTTM);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STC_SAKI_ADRTTM, (String)inMap.get(prefix + "kiki_stc_saki_adrttm"));
		}

		// 機器設置先住所補記・部屋番号
		if (inMap == null || inMap.get(prefix + "kiki_stc_saki_adrrm") == null || "".equals(inMap.get(prefix + "kiki_stc_saki_adrrm")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_ADRRM);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STC_SAKI_ADRRM, (String)inMap.get(prefix + "kiki_stc_saki_adrrm"));
		}

		// 機器設置先_契約者住所差異フラグ
		if (inMap == null || inMap.get(prefix + "kiki_stc_sk_ksh_ad_sai_flg") == null || "".equals(inMap.get(prefix + "kiki_stc_sk_ksh_ad_sai_flg")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STC_SK_KSH_AD_SAI_FLG);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STC_SK_KSH_AD_SAI_FLG, (String)inMap.get(prefix + "kiki_stc_sk_ksh_ad_sai_flg"));
		}

		// 機器設置先電話番号
		if (inMap == null || inMap.get(prefix + "kiki_stc_sk_telno") == null || "".equals(inMap.get(prefix + "kiki_stc_sk_telno")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STC_SK_TELNO);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STC_SK_TELNO, (String)inMap.get(prefix + "kiki_stc_sk_telno"));
		}

		// 機器設置先区画整理中フラグ
		if (inMap == null || inMap.get(prefix + "kiki_sts_kkk_seiri_chu_flg") == null || "".equals(inMap.get(prefix + "kiki_sts_kkk_seiri_chu_flg")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STS_KKK_SEIRI_CHU_FLG);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STS_KKK_SEIRI_CHU_FLG, (String)inMap.get(prefix + "kiki_sts_kkk_seiri_chu_flg"));
		}

		// 住所未確定フラグ
		if (inMap == null || inMap.get(prefix + "ad_mi_fix_flg") == null || "".equals(inMap.get(prefix + "ad_mi_fix_flg")))
		{
			template.setNull(EKK0341C230CBSMsg.AD_MI_FIX_FLG);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.AD_MI_FIX_FLG, (String)inMap.get(prefix + "ad_mi_fix_flg"));
		}

		// 配送区分
		if (inMap == null || inMap.get(prefix + "haiso_div") == null || "".equals(inMap.get(prefix + "haiso_div")))
		{
			template.setNull(EKK0341C230CBSMsg.HAISO_DIV);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.HAISO_DIV, (String)inMap.get(prefix + "haiso_div"));
		}

		// 試用加入年月日
		if (inMap == null || inMap.get(prefix + "ftrial_kanyu_ymd") == null || "".equals(inMap.get(prefix + "ftrial_kanyu_ymd")))
		{
			template.setNull(EKK0341C230CBSMsg.FTRIAL_KANYU_YMD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.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(EKK0341C230CBSMsg.FTRIAL_PRD_ENDYMD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.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(EKK0341C230CBSMsg.HONKANYU_YMD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.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(EKK0341C230CBSMsg.HONKANYU_IKO_KIGEN_YMD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.HONKANYU_IKO_KIGEN_YMD, (String)inMap.get(prefix + "honkanyu_iko_kigen_ymd"));
		}

		// 保証コード
		if (inMap == null || inMap.get(prefix + "hosho_cd") == null || "".equals(inMap.get(prefix + "hosho_cd")))
		{
			template.setNull(EKK0341C230CBSMsg.HOSHO_CD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.HOSHO_CD, (String)inMap.get(prefix + "hosho_cd"));
		}

		// 違約金発生コード
		if (inMap == null || inMap.get(prefix + "pnlty_hassei_cd") == null || "".equals(inMap.get(prefix + "pnlty_hassei_cd")))
		{
			template.setNull(EKK0341C230CBSMsg.PNLTY_HASSEI_CD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.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(EKK0341C230CBSMsg.IDO_DIV);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.IDO_DIV, (String)inMap.get(prefix + "ido_div"));
		}

		// CASカード使用許諾年月日
		if (inMap == null || inMap.get(prefix + "cas_card_use_kyodak_ymd") == null || "".equals(inMap.get(prefix + "cas_card_use_kyodak_ymd")))
		{
			template.setNull(EKK0341C230CBSMsg.CAS_CARD_USE_KYODAK_YMD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.CAS_CARD_USE_KYODAK_YMD, (String)inMap.get(prefix + "cas_card_use_kyodak_ymd"));
		}

		// 機器付加情報コード
		if (inMap == null || inMap.get(prefix + "kiki_huka_info_cd") == null || "".equals(inMap.get(prefix + "kiki_huka_info_cd")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_HUKA_INFO_CD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_HUKA_INFO_CD, (String)inMap.get(prefix + "kiki_huka_info_cd"));
		}

		// 配送方法コード
		if (inMap == null || inMap.get(prefix + "haiso_way_cd") == null || "".equals(inMap.get(prefix + "haiso_way_cd")))
		{
			template.setNull(EKK0341C230CBSMsg.HAISO_WAY_CD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.HAISO_WAY_CD, (String)inMap.get(prefix + "haiso_way_cd"));
		}

		// 機器移転先移動実施者識別コード
		if (inMap == null || inMap.get(prefix + "kiki_itens_mv_jssis_skcd") == null || "".equals(inMap.get(prefix + "kiki_itens_mv_jssis_skcd")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_ITENS_MV_JSSIS_SKCD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_ITENS_MV_JSSIS_SKCD, (String)inMap.get(prefix + "kiki_itens_mv_jssis_skcd"));
		}

		// 配送依頼指定年月日
		if (inMap == null || inMap.get(prefix + "haiso_req_shitei_ymd") == null || "".equals(inMap.get(prefix + "haiso_req_shitei_ymd")))
		{
			template.setNull(EKK0341C230CBSMsg.HAISO_REQ_SHITEI_YMD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.HAISO_REQ_SHITEI_YMD, (String)inMap.get(prefix + "haiso_req_shitei_ymd"));
		}

		// 更新年月日時分秒(更新前)
		if (inMap == null || inMap.get(prefix + "upd_dtm_bf") == null || "".equals(inMap.get(prefix + "upd_dtm_bf")))
		{
			template.setNull(EKK0341C230CBSMsg.UPD_DTM_BF);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.UPD_DTM_BF, (String)inMap.get(prefix + "upd_dtm_bf"));
		}
		
		// 機器送付先住所手動入力フラグ
		if (inMap == null || inMap.get(prefix + "kiki_shs_ad_man_input_flg") == null || "".equals(inMap.get(prefix + "kiki_shs_ad_man_input_flg")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_SHS_AD_MAN_INPUT_FLG);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_SHS_AD_MAN_INPUT_FLG, (String)inMap.get(prefix + "kiki_shs_ad_man_input_flg"));
		}
		
		// 回収機器有無
		if (inMap == null || inMap.get(prefix + "kaishu_kiki_um") == null || "".equals(inMap.get(prefix + "kaishu_kiki_um")))
		{
			template.setNull(EKK0341C230CBSMsg.KAISHU_KIKI_UM);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KAISHU_KIKI_UM, (String)inMap.get(prefix + "kaishu_kiki_um"));
		}
		
		// サービス開始時配送状況識別コード
		if (inMap == null || inMap.get(prefix + "svc_sta_ji_his_jokyo_skcd") == null || "".equals(inMap.get(prefix + "svc_sta_ji_his_jokyo_skcd")))
		{
			template.setNull(EKK0341C230CBSMsg.SVC_STA_JI_HIS_JOKYO_SKCD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.SVC_STA_JI_HIS_JOKYO_SKCD, (String)inMap.get(prefix + "svc_sta_ji_his_jokyo_skcd"));
		}
		
		// 機器送付先住所チェックレベル
		if (inMap == null || inMap.get(prefix + "kiki_sohus_ad_chk_lv") == null || "".equals(inMap.get(prefix + "kiki_sohus_ad_chk_lv")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_SOHUS_AD_CHK_LV);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_SOHUS_AD_CHK_LV, (String)inMap.get(prefix + "kiki_sohus_ad_chk_lv"));
		}
		
		// 機器設置先住所チェックレベル
		if (inMap == null || inMap.get(prefix + "kiki_stc_ad_chk_lv") == null || "".equals(inMap.get(prefix + "kiki_stc_ad_chk_lv")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STC_AD_CHK_LV);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STC_AD_CHK_LV, (String)inMap.get(prefix + "kiki_stc_ad_chk_lv"));
		}
		
		//機器指定時管理場所識別コード
		if (inMap == null || inMap.get(prefix + "kiki_sti_ji_kriplace_skcd") == null || "".equals(inMap.get(prefix + "kiki_sti_ji_kriplace_skcd")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STI_JI_KRIPLACE_SKCD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STI_JI_KRIPLACE_SKCD, (String)inMap.get(prefix + "kiki_sti_ji_kriplace_skcd"));
		}
		
		//機器指定時工事会社コード
		if (inMap == null || inMap.get(prefix + "kiki_sti_ji_kocomp_cd") == null || "".equals(inMap.get(prefix + "kiki_sti_ji_kocomp_cd")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STI_JI_KOCOMP_CD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STI_JI_KOCOMP_CD, (String)inMap.get(prefix + "kiki_sti_ji_kocomp_cd"));
		}
		
		//機器指定時工事会社棚コード
		if (inMap == null || inMap.get(prefix + "kiki_sti_ji_kocomp_slf_cd") == null || "".equals(inMap.get(prefix + "kiki_sti_ji_kocomp_slf_cd")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STI_JI_KOCOMP_SLF_CD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STI_JI_KOCOMP_SLF_CD, (String)inMap.get(prefix + "kiki_sti_ji_kocomp_slf_cd"));
		}
		
		//機器指定時預託先オフィスコード
		if (inMap == null || inMap.get(prefix + "kiki_sti_ji_ytkskof_cd") == null || "".equals(inMap.get(prefix + "kiki_sti_ji_ytkskof_cd")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STI_JI_YTKSKOF_CD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STI_JI_YTKSKOF_CD, (String)inMap.get(prefix + "kiki_sti_ji_ytkskof_cd"));
		}
		
		//機器指定時預託先オフィス棚コード
		if (inMap == null || inMap.get(prefix + "kiki_sti_ji_ytkskof_slf_cd") == null || "".equals(inMap.get(prefix + "kiki_sti_ji_ytkskof_slf_cd")))
		{
			template.setNull(EKK0341C230CBSMsg.KIKI_STI_JI_YTKSKOF_SLF_CD);
		}
		else
		{
			template.set(EKK0341C230CBSMsg.KIKI_STI_JI_YTKSKOF_SLF_CD, (String)inMap.get(prefix + "kiki_sti_ji_ytkskof_slf_cd"));
		}
		
		
		return template;
	}
	
	/**
	 * 機器提供サービス契約変更の下りマッピング処理
	 * <br>
	 * @param msgList メッセージリスト
	 * @param param リクエストパラメータ
	 * @param dataMap データ格納マップ
	 * @param prefix インプットマップの項目名のプレフィックス
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutEKK0341C230Msg(Map<?, ?> msgList, IRequestParameterReadWrite param, HashMap dataMap, 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);
		
		// エラー情報の設定
		editErrInfoEKK0341C230Msg(param, template, (Integer)returnCode, dataMap, prefix);

		// エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}

		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}
	
	/**
	 * 機器提供サービス契約変更のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param template CAANMsg
	 * @param returnCode リターンコード
	 * @param inMap
	 * @param prefix
	 * @return リクエストパラメータ
	 * @throws NumberFormatException
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0341C230Msg(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			HashMap inMap, String prefix) throws NumberFormatException, RequestParameterException
	{
		int templateStatus = template.getInt(EKK0341C230CBSMsg.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);
		}

		// 機器提供サービス契約番号
		if (!template.isNull(EKK0341C230CBSMsg.KKTK_SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "kktk_svc_kei_no_err"))
			{
				inMap.put(prefix + "kktk_svc_kei_no_err", template.getString(EKK0341C230CBSMsg.KKTK_SVC_KEI_NO_ERR));
			}
		}

		// 機器提供種別コード
		if (!template.isNull(EKK0341C230CBSMsg.KKTK_SBT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kktk_sbt_cd_err"))
			{
				inMap.put(prefix + "kktk_sbt_cd_err", template.getString(EKK0341C230CBSMsg.KKTK_SBT_CD_ERR));
			}
		}

		// 販売種別コード
		if (!template.isNull(EKK0341C230CBSMsg.HAMBAI_SBT_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "hambai_sbt_cd_err"))
			{
				inMap.put(prefix + "hambai_sbt_cd_err", template.getString(EKK0341C230CBSMsg.HAMBAI_SBT_CD_ERR));
			}
		}

		// 宅内機器型式コード
		if (!template.isNull(EKK0341C230CBSMsg.TAKNKIKI_MODEL_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "taknkiki_model_cd_err"))
			{
				inMap.put(prefix + "taknkiki_model_cd_err", template.getString(EKK0341C230CBSMsg.TAKNKIKI_MODEL_CD_ERR));
			}
		}

		// 機器製造番号
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_SEIZO_NO_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_seizo_no_err"))
			{
				inMap.put(prefix + "kiki_seizo_no_err", template.getString(EKK0341C230CBSMsg.KIKI_SEIZO_NO_ERR));
			}
		}

		// HDD容量コード
		if (!template.isNull(EKK0341C230CBSMsg.HDD_CAPA_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "hdd_capa_cd_err"))
			{
				inMap.put(prefix + "hdd_capa_cd_err", template.getString(EKK0341C230CBSMsg.HDD_CAPA_CD_ERR));
			}
		}

		// 通信機器セットコード
		if (!template.isNull(EKK0341C230CBSMsg.TSUSHIN_KIKI_SET_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "tsushin_kiki_set_cd_err"))
			{
				inMap.put(prefix + "tsushin_kiki_set_cd_err", template.getString(EKK0341C230CBSMsg.TSUSHIN_KIKI_SET_CD_ERR));
			}
		}

		// リンクSTBフラグ
		if (!template.isNull(EKK0341C230CBSMsg.LINK_STB_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "link_stb_flg_err"))
			{
				inMap.put(prefix + "link_stb_flg_err", template.getString(EKK0341C230CBSMsg.LINK_STB_FLG_ERR));
			}
		}

		// 機器引当指定倉庫コード
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_HKAT_SHITEI_SOKO_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_hkat_shitei_soko_cd_err"))
			{
				inMap.put(prefix + "kiki_hkat_shitei_soko_cd_err", template.getString(EKK0341C230CBSMsg.KIKI_HKAT_SHITEI_SOKO_CD_ERR));
			}
		}

		// 機器引当指定倉庫棚コード
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_HKAT_SHITEI_SKDN_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_hkat_shitei_skdn_cd_err"))
			{
				inMap.put(prefix + "kiki_hkat_shitei_skdn_cd_err", template.getString(EKK0341C230CBSMsg.KIKI_HKAT_SHITEI_SKDN_CD_ERR));
			}
		}

		// 機器送料有無
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_SORYO_UM_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_soryo_um_err"))
			{
				inMap.put(prefix + "kiki_soryo_um_err", template.getString(EKK0341C230CBSMsg.KIKI_SORYO_UM_ERR));
			}
		}

		// 機器送付先名
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_SOHUS_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sohus_nm_err"))
			{
				inMap.put(prefix + "kiki_sohus_nm_err", template.getString(EKK0341C230CBSMsg.KIKI_SOHUS_NM_ERR));
			}
		}

		// 機器送付先カナ名
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_SOHUS_KANA_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sohus_kana_err"))
			{
				inMap.put(prefix + "kiki_sohus_kana_err", template.getString(EKK0341C230CBSMsg.KIKI_SOHUS_KANA_ERR));
			}
		}

		// 機器送付先住所コード
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_SOHUS_AD_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sohus_ad_cd_err"))
			{
				inMap.put(prefix + "kiki_sohus_ad_cd_err", template.getString(EKK0341C230CBSMsg.KIKI_SOHUS_AD_CD_ERR));
			}
		}

		// 機器送付先郵便番号
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_SOHUS_PCD_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sohus_pcd_err"))
			{
				inMap.put(prefix + "kiki_sohus_pcd_err", template.getString(EKK0341C230CBSMsg.KIKI_SOHUS_PCD_ERR));
			}
		}

		// 機器送付先都道府県名
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_SOHUS_STATE_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sohus_state_nm_err"))
			{
				inMap.put(prefix + "kiki_sohus_state_nm_err", template.getString(EKK0341C230CBSMsg.KIKI_SOHUS_STATE_NM_ERR));
			}
		}

		// 機器送付先市区町村名
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_SOHUS_CITY_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sohus_city_nm_err"))
			{
				inMap.put(prefix + "kiki_sohus_city_nm_err", template.getString(EKK0341C230CBSMsg.KIKI_SOHUS_CITY_NM_ERR));
			}
		}

		// 機器送付先大字通称名
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_SOHUS_OAZTSU_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sohus_oaztsu_nm_err"))
			{
				inMap.put(prefix + "kiki_sohus_oaztsu_nm_err", template.getString(EKK0341C230CBSMsg.KIKI_SOHUS_OAZTSU_NM_ERR));
			}
		}

		// 機器送付先字丁目名
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_SOHUS_AZCHO_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sohus_azcho_nm_err"))
			{
				inMap.put(prefix + "kiki_sohus_azcho_nm_err", template.getString(EKK0341C230CBSMsg.KIKI_SOHUS_AZCHO_NM_ERR));
			}
		}

		// 機器送付先番地号
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_SOHUS_BNCHIGO_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sohus_bnchigo_err"))
			{
				inMap.put(prefix + "kiki_sohus_bnchigo_err", template.getString(EKK0341C230CBSMsg.KIKI_SOHUS_BNCHIGO_ERR));
			}
		}

		// 機器送付先住所補記・建物名
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_SOHUS_ADRTTM_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sohus_adrttm_err"))
			{
				inMap.put(prefix + "kiki_sohus_adrttm_err", template.getString(EKK0341C230CBSMsg.KIKI_SOHUS_ADRTTM_ERR));
			}
		}

		// 機器送付先住所補記・部屋番号
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_SOHUS_ADRRM_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sohus_adrrm_err"))
			{
				inMap.put(prefix + "kiki_sohus_adrrm_err", template.getString(EKK0341C230CBSMsg.KIKI_SOHUS_ADRRM_ERR));
			}
		}

		// 機器送付先電話番号
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_SOHUS_TELNO_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sohus_telno_err"))
			{
				inMap.put(prefix + "kiki_sohus_telno_err", template.getString(EKK0341C230CBSMsg.KIKI_SOHUS_TELNO_ERR));
			}
		}

		// 機器送付先_契約者住所差異フラグ
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_SOHUS_KSH_AD_SAI_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sohus_ksh_ad_sai_flg_err"))
			{
				inMap.put(prefix + "kiki_sohus_ksh_ad_sai_flg_err", template.getString(EKK0341C230CBSMsg.KIKI_SOHUS_KSH_AD_SAI_FLG_ERR));
			}
		}

		// 機器送付先個別指定フラグ
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_SHS_KBT_SHITEI_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_shs_kbt_shitei_flg_err"))
			{
				inMap.put(prefix + "kiki_shs_kbt_shitei_flg_err", template.getString(EKK0341C230CBSMsg.KIKI_SHS_KBT_SHITEI_FLG_ERR));
			}
		}

		// 機器設置先名
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_stc_saki_nm_err"))
			{
				inMap.put(prefix + "kiki_stc_saki_nm_err", template.getString(EKK0341C230CBSMsg.KIKI_STC_SAKI_NM_ERR));
			}
		}

		// 機器設置先カナ名
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_KANA_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_stc_saki_kana_err"))
			{
				inMap.put(prefix + "kiki_stc_saki_kana_err", template.getString(EKK0341C230CBSMsg.KIKI_STC_SAKI_KANA_ERR));
			}
		}

		// 機器設置先住所コード
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_AD_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_stc_saki_ad_cd_err"))
			{
				inMap.put(prefix + "kiki_stc_saki_ad_cd_err", template.getString(EKK0341C230CBSMsg.KIKI_STC_SAKI_AD_CD_ERR));
			}
		}

		// 機器設置先郵便番号
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_PCD_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_stc_saki_pcd_err"))
			{
				inMap.put(prefix + "kiki_stc_saki_pcd_err", template.getString(EKK0341C230CBSMsg.KIKI_STC_SAKI_PCD_ERR));
			}
		}

		// 機器設置先都道府県名
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_STATE_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_stc_saki_state_nm_err"))
			{
				inMap.put(prefix + "kiki_stc_saki_state_nm_err", template.getString(EKK0341C230CBSMsg.KIKI_STC_SAKI_STATE_NM_ERR));
			}
		}

		// 機器設置先市区町村名
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_CITY_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_stc_saki_city_nm_err"))
			{
				inMap.put(prefix + "kiki_stc_saki_city_nm_err", template.getString(EKK0341C230CBSMsg.KIKI_STC_SAKI_CITY_NM_ERR));
			}
		}

		// 機器設置先大字通称名
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_OAZTSU_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_stc_saki_oaztsu_nm_err"))
			{
				inMap.put(prefix + "kiki_stc_saki_oaztsu_nm_err", template.getString(EKK0341C230CBSMsg.KIKI_STC_SAKI_OAZTSU_NM_ERR));
			}
		}

		// 機器設置先字丁目名
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_AZCHO_NM_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_stc_saki_azcho_nm_err"))
			{
				inMap.put(prefix + "kiki_stc_saki_azcho_nm_err", template.getString(EKK0341C230CBSMsg.KIKI_STC_SAKI_AZCHO_NM_ERR));
			}
		}

		// 機器設置先番地号
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_BNCHIGO_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_stc_saki_bnchigo_err"))
			{
				inMap.put(prefix + "kiki_stc_saki_bnchigo_err", template.getString(EKK0341C230CBSMsg.KIKI_STC_SAKI_BNCHIGO_ERR));
			}
		}

		// 機器設置先住所補記・建物名
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_ADRTTM_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_stc_saki_adrttm_err"))
			{
				inMap.put(prefix + "kiki_stc_saki_adrttm_err", template.getString(EKK0341C230CBSMsg.KIKI_STC_SAKI_ADRTTM_ERR));
			}
		}

		// 機器設置先住所補記・部屋番号
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STC_SAKI_ADRRM_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_stc_saki_adrrm_err"))
			{
				inMap.put(prefix + "kiki_stc_saki_adrrm_err", template.getString(EKK0341C230CBSMsg.KIKI_STC_SAKI_ADRRM_ERR));
			}
		}

		// 機器設置先_契約者住所差異フラグ
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STC_SK_KSH_AD_SAI_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_stc_sk_ksh_ad_sai_flg_err"))
			{
				inMap.put(prefix + "kiki_stc_sk_ksh_ad_sai_flg_err", template.getString(EKK0341C230CBSMsg.KIKI_STC_SK_KSH_AD_SAI_FLG_ERR));
			}
		}

		// 機器設置先電話番号
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STC_SK_TELNO_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_stc_sk_telno_err"))
			{
				inMap.put(prefix + "kiki_stc_sk_telno_err", template.getString(EKK0341C230CBSMsg.KIKI_STC_SK_TELNO_ERR));
			}
		}

		// 機器設置先区画整理中フラグ
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STS_KKK_SEIRI_CHU_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sts_kkk_seiri_chu_flg_err"))
			{
				inMap.put(prefix + "kiki_sts_kkk_seiri_chu_flg_err", template.getString(EKK0341C230CBSMsg.KIKI_STS_KKK_SEIRI_CHU_FLG_ERR));
			}
		}

		// 住所未確定フラグ
		if (!template.isNull(EKK0341C230CBSMsg.AD_MI_FIX_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "ad_mi_fix_flg_err"))
			{
				inMap.put(prefix + "ad_mi_fix_flg_err", template.getString(EKK0341C230CBSMsg.AD_MI_FIX_FLG_ERR));
			}
		}

		// 配送区分
		if (!template.isNull(EKK0341C230CBSMsg.HAISO_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "haiso_div_err"))
			{
				inMap.put(prefix + "haiso_div_err", template.getString(EKK0341C230CBSMsg.HAISO_DIV_ERR));
			}
		}

		// 試用加入年月日
		if (!template.isNull(EKK0341C230CBSMsg.FTRIAL_KANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_kanyu_ymd_err"))
			{
				inMap.put(prefix + "ftrial_kanyu_ymd_err", template.getString(EKK0341C230CBSMsg.FTRIAL_KANYU_YMD_ERR));
			}
		}

		// 試用期間終了年月日
		if (!template.isNull(EKK0341C230CBSMsg.FTRIAL_PRD_ENDYMD_ERR))
		{
			if (!inMap.containsKey(prefix + "ftrial_prd_endymd_err"))
			{
				inMap.put(prefix + "ftrial_prd_endymd_err", template.getString(EKK0341C230CBSMsg.FTRIAL_PRD_ENDYMD_ERR));
			}
		}

		// 本加入年月日
		if (!template.isNull(EKK0341C230CBSMsg.HONKANYU_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_ymd_err", template.getString(EKK0341C230CBSMsg.HONKANYU_YMD_ERR));
			}
		}

		// 本加入移行期限年月日
		if (!template.isNull(EKK0341C230CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "honkanyu_iko_kigen_ymd_err"))
			{
				inMap.put(prefix + "honkanyu_iko_kigen_ymd_err", template.getString(EKK0341C230CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR));
			}
		}

		// 保証コード
		if (!template.isNull(EKK0341C230CBSMsg.HOSHO_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "hosho_cd_err"))
			{
				inMap.put(prefix + "hosho_cd_err", template.getString(EKK0341C230CBSMsg.HOSHO_CD_ERR));
			}
		}

		// 違約金発生コード
		if (!template.isNull(EKK0341C230CBSMsg.PNLTY_HASSEI_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "pnlty_hassei_cd_err"))
			{
				inMap.put(prefix + "pnlty_hassei_cd_err", template.getString(EKK0341C230CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}

		// 異動区分
		if (!template.isNull(EKK0341C230CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey(prefix + "ido_div_err"))
			{
				inMap.put(prefix + "ido_div_err", template.getString(EKK0341C230CBSMsg.IDO_DIV_ERR));
			}
		}

		// CASカード使用許諾年月日
		if (!template.isNull(EKK0341C230CBSMsg.CAS_CARD_USE_KYODAK_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "cas_card_use_kyodak_ymd_err"))
			{
				inMap.put(prefix + "cas_card_use_kyodak_ymd_err", template.getString(EKK0341C230CBSMsg.CAS_CARD_USE_KYODAK_YMD_ERR));
			}
		}

		// 機器付加情報コード
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_HUKA_INFO_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_huka_info_cd_err"))
			{
				inMap.put(prefix + "kiki_huka_info_cd_err", template.getString(EKK0341C230CBSMsg.KIKI_HUKA_INFO_CD_ERR));
			}
		}

		// 配送方法コード
		if (!template.isNull(EKK0341C230CBSMsg.HAISO_WAY_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "haiso_way_cd_err"))
			{
				inMap.put(prefix + "haiso_way_cd_err", template.getString(EKK0341C230CBSMsg.HAISO_WAY_CD_ERR));
			}
		}

		// 機器移転先移動実施者識別コード
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_ITENS_MV_JSSIS_SKCD_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_itens_mv_jssis_skcd_err"))
			{
				inMap.put(prefix + "kiki_itens_mv_jssis_skcd_err", template.getString(EKK0341C230CBSMsg.KIKI_ITENS_MV_JSSIS_SKCD_ERR));
			}
		}

		// 配送依頼指定年月日
		if (!template.isNull(EKK0341C230CBSMsg.HAISO_REQ_SHITEI_YMD_ERR))
		{
			if (!inMap.containsKey(prefix + "haiso_req_shitei_ymd_err"))
			{
				inMap.put(prefix + "haiso_req_shitei_ymd_err", template.getString(EKK0341C230CBSMsg.HAISO_REQ_SHITEI_YMD_ERR));
			}
		}

		// 更新年月日時分秒(更新前)
		if (!template.isNull(EKK0341C230CBSMsg.UPD_DTM_BF_ERR))
		{
			if (!inMap.containsKey(prefix + "upd_dtm_bf_err"))
			{
				inMap.put(prefix + "upd_dtm_bf_err", template.getString(EKK0341C230CBSMsg.UPD_DTM_BF_ERR));
			}
		}

		// 機器送付先住所手動入力フラグ
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_SHS_AD_MAN_INPUT_FLG_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_shs_ad_man_input_flg_err"))
			{
				inMap.put(prefix + "kiki_shs_ad_man_input_flg_err", template.getString(EKK0341C230CBSMsg.KIKI_SHS_AD_MAN_INPUT_FLG_ERR));
			}
		}
		
		// 回収機器有無
		if (!template.isNull(EKK0341C230CBSMsg.KAISHU_KIKI_UM_ERR))
		{
			if (!inMap.containsKey(prefix + "kaishu_kiki_um_err"))
			{
				inMap.put(prefix + "kaishu_kiki_um_err", template.getString(EKK0341C230CBSMsg.KAISHU_KIKI_UM_ERR));
			}
		}
		
		//サービス開始時配送状況識別コード
		if (!template.isNull(EKK0341C230CBSMsg.SVC_STA_JI_HIS_JOKYO_SKCD_ERR))
		{
			if (!inMap.containsKey(prefix + "svc_sta_ji_his_jokyo_skcd_err"))
			{
				inMap.put(prefix + "svc_sta_ji_his_jokyo_skcd_err", template.getString(EKK0341C230CBSMsg.SVC_STA_JI_HIS_JOKYO_SKCD_ERR));
			}
		}
		
		//機器送付先住所チェックレベル
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_SOHUS_AD_CHK_LV_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sohus_ad_chk_lv_err"))
			{
				inMap.put(prefix + "kiki_sohus_ad_chk_lv_err", template.getString(EKK0341C230CBSMsg.KIKI_SOHUS_AD_CHK_LV_ERR));
			}
		}
		
		//機器設置先住所チェックレベル
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STC_AD_CHK_LV_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_stc_ad_chk_lv_err"))
			{
				inMap.put(prefix + "kiki_stc_ad_chk_lv_err", template.getString(EKK0341C230CBSMsg.KIKI_STC_AD_CHK_LV_ERR));
			}
		}
		
		//機器指定時管理場所識別コード
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STI_JI_KRIPLACE_SKCD_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sti_ji_kriplace_skcd_err"))
			{
				inMap.put(prefix + "kiki_sti_ji_kriplace_skcd_err", template.getString(EKK0341C230CBSMsg.KIKI_STI_JI_KRIPLACE_SKCD_ERR));
			}
		}
		
		//機器指定時工事会社コード
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STI_JI_KOCOMP_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sti_ji_kocomp_cd_err"))
			{
				inMap.put(prefix + "kiki_sti_ji_kocomp_cd_err", template.getString(EKK0341C230CBSMsg.KIKI_STI_JI_KOCOMP_CD_ERR));
			}
		}
		
		//機器指定時工事会社棚コード
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STI_JI_KOCOMP_SLF_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sti_ji_kocomp_slf_cd_err"))
			{
				inMap.put(prefix + "kiki_sti_ji_kocomp_slf_cd_err", template.getString(EKK0341C230CBSMsg.KIKI_STI_JI_KOCOMP_SLF_CD_ERR));
			}
		}
		
		//機器指定時預託先オフィスコード
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STI_JI_YTKSKOF_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sti_ji_ytkskof_cd_err"))
			{
				inMap.put(prefix + "kiki_sti_ji_ytkskof_cd_err", template.getString(EKK0341C230CBSMsg.KIKI_STI_JI_YTKSKOF_CD_ERR));
			}
		}
		
		//機器指定時預託先オフィス棚コード
		if (!template.isNull(EKK0341C230CBSMsg.KIKI_STI_JI_YTKSKOF_SLF_CD_ERR))
		{
			if (!inMap.containsKey(prefix + "kiki_sti_ji_ytkskof_slf_cd_err"))
			{
				inMap.put(prefix + "kiki_sti_ji_ytkskof_slf_cd_err", template.getString(EKK0341C230CBSMsg.KIKI_STI_JI_YTKSKOF_SLF_CD_ERR));
			}
		}

		return param;
	}

}
