/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：JCHMskmNyoSnnAddCC
 *   ソースファイル名：JCHMskmNyoSnnAddCC.java
 *   作成者          ：富士通
 *   日付            ：2012年03月12日
 *＜機能概要＞
 *   申込内容承認登録CC部品です。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2012/03/12	富士通		新規作成
 *	v5.00.00	2013/08/07	FJ) 垣内	【IT2-2013-0000711】申込書番号にnullを設定するよう修正
 *
 **********************************************************************/
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.SCCallException;
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.JACStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JCRUtilCommon;
import eo.ejb.cbs.cbsmsg.EKK0011D020CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0011D020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0021D010CBSMsg;

/**
 * 請求収納の督促状況更新により呼び出される申込内容承認登録CC部品です。
 * <p>
 * <BR>
 * 
 * @author 富士通
 */
public class JCHMskmNyoSnnAddCC extends AbstractCommonComponent
{

	/**
	 * 申込内容承認登録処理チェック処理.<br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return HashMap<String, Object>
	 * @throws RequestParameterException RequestParameterException
	 */
	public HashMap<String, Object> getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
			throws RequestParameterException
	{
		HashMap<String, Object> paramMap = editInMsgEKK0011D020(param);

		return paramMap;
	}

	/**
	 * 申込内容承認登録マップに指定されたリストを基に申込内容承認登録を行います。 <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ
	 * @throws Exception 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite mskmNyoSnnAdd(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		// -------------------------------------------------- //
		// 申込内容承認登録
		// -------------------------------------------------- //
		// 申込内容承認登録上りマッピング処理
		// 上りマッピングの処理結果を取得するためのマップを生成
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		HashMap<String, Object> paramMapEKK0011D020 = editInMsgEKK0011D020(param);
		Map<?, ?> resultEKK0011D020 = null;

		// サービス契約リストのうち、１件目のみを対象し、実行する
		if (paramMapEKK0011D020 != null)
		{
			// SC呼出実行
			// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
			resultEKK0011D020 = scCall.run(paramMapEKK0011D020, handle);

			// 申込内容承認登録下りマッピング処理
			editOutMsgEKK0011D020(resultEKK0011D020, param, fixedText);
		}

		// 業務データ設定
		HashMap<String, Object> dataMap = (HashMap<String, Object>) param.getData("KKSV017201CC");
		if (dataMap == null)
		{
			dataMap = new HashMap<String, Object>();
			param.setData("KKSV017201CC", dataMap);
		}

		// サービス契約リスト
		ArrayList<HashMap<String, Object>> svcKeiNoList = (ArrayList<HashMap<String, Object>>) dataMap.get("svc_kei_no_list");

		// サービス契約リストが１件以下の場合、リターンする
		if (svcKeiNoList == null || svcKeiNoList.size() <= 1)
		{
			return param;
		}

		// -------------------------------------------------- //
		// 申込明細登録
		// -------------------------------------------------- //
		// 申込明細登録上りマッピング処理
		// 上りマッピングの処理結果を取得するためのマップを生成
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		HashMap<String, Object> paramMapEKK0021D010 = editInMsgEKK0021D010(param);
		Map<?, ?> resultEKK0021D010 = null;

		// サービス契約リストのうち、２件目以降を対象とし、実行する
		if (paramMapEKK0021D010 != null)
		{
			// SC呼出実行
			// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
			resultEKK0021D010 = scCall.run(paramMapEKK0021D010, handle);

			// 申込明細登録下りマッピング処理
			editOutMsgEKK0021D010(resultEKK0021D010, param, fixedText);
		}

		return param;
	}

	/**
	 * サービスコンポーネント実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 * @param param リクエストパラメータ
	 * @param templates テンプレート
	 * @param returnCode リターンコード
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException RequestParameterException
	 */
	public IRequestParameterReadWrite editErrorInfo(IRequestParameterReadWrite param
			, CAANMsg[] templates, int returnCode) throws RequestParameterException
	{
		if (templates == null || templates.length == 0)
		{
			return param;
		}

		CAANMsg template = templates[0];
		if (EKK0011D020CBSMsg.class.getName().equals(template.getSchemaName()))
		{
			return editErrorInfoEKK0011D020(param, templates, returnCode);
		}
		else if (EKK0021D010CBSMsg.class.getName().equals(template.getSchemaName()))
		{
			return editErrorInfoEKK0021D010(param, templates, returnCode);
		}

		return param;

	}

	/**
	 * 申込内容承認登録サービスインターフェイス用メッセージ設定処理<br>
	 * 
	 * @param param リクエストパラメータ
	 * @return HashMap<String, Object>
	 * @throws RequestParameterException
	 */
	private HashMap<String, Object> editInMsgEKK0011D020(IRequestParameterReadWrite param) throws RequestParameterException
	{
		/* ◇パラメータマップ生成 */
		HashMap<String, Object> paramMap = this.createNewParamMap(param);

		/* ◇テンプレート生成(サービス契約番号リストの件数分) */
		CAANMsg template = null;
		CAANMsg[] templateArray = null;
		ArrayList<CAANMsg> templateList = new ArrayList<CAANMsg>();
		ArrayList<HashMap<String, Object>> svcKeiList = getMapListItem(param, "svc_kei_no_list");
		for (int idx = 0; idx < 1; idx++)
		{
			HashMap<String, Object> subMap = svcKeiList.get(idx);

			/* ◇ユーザデータ情報 */
			template = new CAANMsg(EKK0011D020CBSMsg.class.getName());
			this.setTemplateCommonItem(param, template, EKK0011D020CBSMsg.TEMPLATEID, "EKK0011D020", EKK0011D020CBSMsg.FUNC_CODE);

			/* ◇業務データの設定 */
			// 機能コード
			template.set(EKK0011D020CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);

			// サービス契約番号リスト.ＳＹＳＩＤ → ＳＹＳＩＤ
			if (subMap == null || subMap.get("sysid") == null || JACStrConst.KARA_MOJI.equals(subMap.get("sysid")))
			{
				template.setNull(EKK0011D020CBSMsg.SYSID);
			}
			else
			{
				template.set(EKK0011D020CBSMsg.SYSID, (String) subMap.get("sysid"));
			}
			// 固定値 → 申込種別コード
			template.set(EKK0011D020CBSMsg.MSKM_SBT_CD, String.valueOf("00005"));
			
			// 申込内容承認登録ＳＣ.申込書到着年月日 → 申込書到着年月日
			if (subMap == null || subMap.get("mskmsho_ariv_ymd") == null || "".equals(subMap.get("mskmsho_ariv_ymd")))
			{
				template.setNull(EKK0011D020CBSMsg.MSKMSHO_ARIV_YMD);
			}
			else
			{
				template.set(EKK0011D020CBSMsg.MSKMSHO_ARIV_YMD, (String) subMap.get("mskmsho_ariv_ymd"));
			}

			// 運用年月日時分秒 → 申込受付年月日時分秒
			template.set(EKK0011D020CBSMsg.MSKM_UK_DTM, JCCBPCommon.getOpeDateTimeStamp(null));

			// 申込内容承認登録ＳＣ.申込受付担当ユーザーＩＤ → 申込受付担当ユーザーＩＤ
			if (subMap == null || subMap.get("mskm_uk_tnt_user_id") == null || "".equals(subMap.get("mskm_uk_tnt_user_id")))
			{
				template.setNull(EKK0011D020CBSMsg.MSKM_UK_TNT_USER_ID);
			}
			else
			{
				template.set(EKK0011D020CBSMsg.MSKM_UK_TNT_USER_ID, (String) subMap.get("mskm_uk_tnt_user_id"));
			}

			// 運用年月日 → 申込年月日
			template.set(EKK0011D020CBSMsg.MSKM_YMD, JCCBPCommon.getOpeDate(null));

			// 申込内容承認登録ＳＣ.総合営業センター受付番号 → 総合営業センター受付番号
			if (subMap == null || subMap.get("ttl_business_center_uk_no") == null || "".equals(subMap.get("ttl_business_center_uk_no")))
			{
				template.setNull(EKK0011D020CBSMsg.TTL_BUSINESS_CENTER_UK_NO);
			}
			else
			{
				template.set(EKK0011D020CBSMsg.TTL_BUSINESS_CENTER_UK_NO, (String) subMap.get("ttl_business_center_uk_no"));
			}

			// 申込内容承認登録ＳＣ.総合営業申込契機コード → 総合営業申込契機コード
			if (subMap == null || subMap.get("ttl_business_mskm_opt_cd") == null || "".equals(subMap.get("ttl_business_mskm_opt_cd")))
			{
				template.setNull(EKK0011D020CBSMsg.TTL_BUSINESS_MSKM_OPT_CD);
			}
			else
			{
				template.set(EKK0011D020CBSMsg.TTL_BUSINESS_MSKM_OPT_CD, (String) subMap.get("ttl_business_mskm_opt_cd"));
			}

			// 申込内容承認登録ＳＣ.申込連絡先電話番号 → 申込連絡先電話番号
			if (subMap == null || subMap.get("mskm_rrks_telno") == null || "".equals(subMap.get("mskm_rrks_telno")))
			{
				template.setNull(EKK0011D020CBSMsg.MSKM_RRKS_TELNO);
			}
			else
			{
				template.set(EKK0011D020CBSMsg.MSKM_RRKS_TELNO, (String) subMap.get("mskm_rrks_telno"));
			}

			// 申込内容承認登録ＳＣ.申込実施者種別コード → 申込実施者種別コード
			if (subMap == null || subMap.get("mskm_jssis_sbt_cd") == null || "".equals(subMap.get("mskm_jssis_sbt_cd")))
			{
				template.setNull(EKK0011D020CBSMsg.MSKM_JSSIS_SBT_CD);
			}
			else
			{
				template.set(EKK0011D020CBSMsg.MSKM_JSSIS_SBT_CD, (String) subMap.get("mskm_jssis_sbt_cd"));
			}

			// 申込内容承認登録ＳＣ.お客様ご要望事項 → お客様ご要望事項
			if (subMap == null || subMap.get("cust_yobo_jiko") == null || "".equals(subMap.get("cust_yobo_jiko")))
			{
				template.setNull(EKK0011D020CBSMsg.CUST_YOBO_JIKO);
			}
			else
			{
				template.set(EKK0011D020CBSMsg.CUST_YOBO_JIKO, (String) subMap.get("cust_yobo_jiko"));
			}

			// 申込内容承認登録ＳＣ.本人確認書類名 → 本人確認書類名
//			if (subMap == null || subMap.get("hnin_cfm_bunsho_kind_nm") == null || "".equals(subMap.get("hnin_cfm_bunsho_kind_nm")))
//			{
//				template.setNull(EKK0011D020CBSMsg.HNIN_CFM_BUNSHO_KIND_NM);
//			}
//			else
//			{
//				template.set(EKK0011D020CBSMsg.HNIN_CFM_BUNSHO_KIND_NM, (String) subMap.get("hnin_cfm_bunsho_kind_nm"));
//			}

			// 申込内容承認登録ＳＣ.電話連絡希望日種別コード → 電話連絡希望日種別コード
			if (subMap == null || subMap.get("tel_rrk_kibod_sbt_cd") == null || "".equals(subMap.get("tel_rrk_kibod_sbt_cd")))
			{
				template.setNull(EKK0011D020CBSMsg.TEL_RRK_KIBOD_SBT_CD);
			}
			else
			{
				template.set(EKK0011D020CBSMsg.TEL_RRK_KIBOD_SBT_CD, (String) subMap.get("tel_rrk_kibod_sbt_cd"));
			}

			// 申込内容承認登録ＳＣ.電話連絡希望時間帯コード → 電話連絡希望時間帯コード
			if (subMap == null || subMap.get("tel_rrk_kibo_time_cd") == null || "".equals(subMap.get("tel_rrk_kibo_time_cd")))
			{
				template.setNull(EKK0011D020CBSMsg.TEL_RRK_KIBO_TIME_CD);
			}
			else
			{
				template.set(EKK0011D020CBSMsg.TEL_RRK_KIBO_TIME_CD, (String) subMap.get("tel_rrk_kibo_time_cd"));
			}

			// 申込内容承認登録ＳＣ.宅内調査希望日種別コード → 宅内調査希望日種別コード
			if (subMap == null || subMap.get("takcho_kibod_sbt_cd") == null || "".equals(subMap.get("takcho_kibod_sbt_cd")))
			{
				template.setNull(EKK0011D020CBSMsg.TAKCHO_KIBOD_SBT_CD);
			}
			else
			{
				template.set(EKK0011D020CBSMsg.TAKCHO_KIBOD_SBT_CD, (String) subMap.get("takcho_kibod_sbt_cd"));
			}

			// 申込内容承認登録ＳＣ.宅内調査希望時間帯コード → 宅内調査希望時間帯コード
			if (subMap == null || subMap.get("takcho_kibo_time_cd") == null || "".equals(subMap.get("takcho_kibo_time_cd")))
			{
				template.setNull(EKK0011D020CBSMsg.TAKCHO_KIBO_TIME_CD);
			}
			else
			{
				template.set(EKK0011D020CBSMsg.TAKCHO_KIBO_TIME_CD, (String) subMap.get("takcho_kibo_time_cd"));
			}

			// 申込内容承認登録ＳＣ.仮申込フラグ → 仮申込フラグ
			if (subMap == null || subMap.get("kari_mskm_flg") == null || "".equals(subMap.get("kari_mskm_flg")))
			{
				template.setNull(EKK0011D020CBSMsg.KARI_MSKM_FLG);
			}
			else
			{
				template.set(EKK0011D020CBSMsg.KARI_MSKM_FLG, (String) subMap.get("kari_mskm_flg"));
			}

			// 申込内容承認登録ＳＣ.リファラー → リファラー
			if (subMap == null || subMap.get("referer") == null || "".equals(subMap.get("referer")))
			{
				template.setNull(EKK0011D020CBSMsg.REFERER);
			}
			else
			{
				template.set(EKK0011D020CBSMsg.REFERER, (String) subMap.get("referer"));
			}

			// 申込内容承認登録ＳＣ.関西電力お客様情報授受同意有無 → 関西電力お客様情報授受同意有無
			if (subMap == null || subMap.get("kepco_custinfo_juju_doi_um") == null || "".equals(subMap.get("kepco_custinfo_juju_doi_um")))
			{
				template.setNull(EKK0011D020CBSMsg.KEPCO_CUSTINFO_JUJU_DOI_UM);
			}
			else
			{
				template.set(EKK0011D020CBSMsg.KEPCO_CUSTINFO_JUJU_DOI_UM, (String) subMap.get("kepco_custinfo_juju_doi_um"));
			}

			// 申込内容承認登録ＳＣ.照査前連絡事項要否 → 照査前連絡事項要否
			if (subMap == null || subMap.get("shosa_bf_rrk_jiko_yh") == null || "".equals(subMap.get("shosa_bf_rrk_jiko_yh")))
			{
				template.setNull(EKK0011D020CBSMsg.SHOSA_BF_RRK_JIKO_YH);
			}
			else
			{
				template.set(EKK0011D020CBSMsg.SHOSA_BF_RRK_JIKO_YH, (String) subMap.get("shosa_bf_rrk_jiko_yh"));
			}

			// 申込内容承認登録ＳＣ.照査前連絡事項 → 照査前連絡事項
			if (subMap == null || subMap.get("shosa_bf_rrk_jiko") == null || "".equals(subMap.get("shosa_bf_rrk_jiko")))
			{
				template.setNull(EKK0011D020CBSMsg.SHOSA_BF_RRK_JIKO);
			}
			else
			{
				template.set(EKK0011D020CBSMsg.SHOSA_BF_RRK_JIKO, (String) subMap.get("shosa_bf_rrk_jiko"));
			}

			// 申込内容承認登録ＳＣ.利用サービス継続種別コード → 利用サービス継続種別コード
			if (subMap == null || subMap.get("use_svc_keizk_sbt_cd") == null || "".equals(subMap.get("use_svc_keizk_sbt_cd")))
			{
				template.setNull(EKK0011D020CBSMsg.USE_SVC_KEIZK_SBT_CD);
			}
			else
			{
				template.set(EKK0011D020CBSMsg.USE_SVC_KEIZK_SBT_CD, (String) subMap.get("use_svc_keizk_sbt_cd"));
			}

			// 固定値 → コンシューマ営業用申込状態識別コード
			template.set(EKK0011D020CBSMsg.CONSMBSN_MSKM_STAT_SKBT_CD, String.valueOf("04"));


			templateArray = template.getCAANMsgList(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST);
			
			if(templateArray == null)
			{
				templateArray = new CAANMsg[1];
			}
			
			for(int i = 0; i < 1; i++)
			{
				HashMap<String,Object> childMap = null;

				CAANMsg childTemplate = templateArray[i];
				if(childTemplate == null )
				{
					childTemplate = new CAANMsg(EKK0011D020CBSMsg1List.class.getName());
				}

				// null → 申込内容承認登録明細.申込書番号
				childTemplate.setNull(EKK0011D020CBSMsg1List.MSKMSHO_NO);

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.ＷＥＢ受付番号 → 申込内容承認登録明細.ＷＥＢ受付番号
				if (childMap == null || childMap.get("web_uk_no") == null || "".equals(childMap.get("web_uk_no")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.WEB_UK_NO);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.WEB_UK_NO, (String) childMap.get("web_uk_no"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.申込形態コード → 申込内容承認登録明細.申込形態コード
				if (childMap == null || childMap.get("mskm_form_cd") == null || "".equals(childMap.get("mskm_form_cd")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.MSKM_FORM_CD);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.MSKM_FORM_CD, (String) childMap.get("mskm_form_cd"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.申込明細種別コード → 申込内容承認登録明細.申込明細種別コード
				if (childMap == null || childMap.get("mskm_dtl_sbt_cd") == null || "".equals(childMap.get("mskm_dtl_sbt_cd")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.MSKM_DTL_SBT_CD);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.MSKM_DTL_SBT_CD, (String) childMap.get("mskm_dtl_sbt_cd"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.連絡先携帯電話番号 → 申込内容承認登録明細.連絡先携帯電話番号
				if (childMap == null || childMap.get("rrks_ktai_telno") == null || "".equals(childMap.get("rrks_ktai_telno")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.RRKS_KTAI_TELNO);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.RRKS_KTAI_TELNO, (String) childMap.get("rrks_ktai_telno"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.連絡先勤務先名 → 申込内容承認登録明細.連絡先勤務先名
				if (childMap == null || childMap.get("rrks_offc_nm") == null || "".equals(childMap.get("rrks_offc_nm")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.RRKS_OFFC_NM);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.RRKS_OFFC_NM, (String) childMap.get("rrks_offc_nm"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.昼間連絡先電話番号 → 申込内容承認登録明細.昼間連絡先電話番号
				if (childMap == null || childMap.get("dt_rrks_telno") == null || "".equals(childMap.get("dt_rrks_telno")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.DT_RRKS_TELNO);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.DT_RRKS_TELNO, (String) childMap.get("dt_rrks_telno"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.新規申込種別コード → 申込内容承認登録明細.新規申込種別コード
				if (childMap == null || childMap.get("new_mskm_sbt_cd") == null || "".equals(childMap.get("new_mskm_sbt_cd")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.NEW_MSKM_SBT_CD);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.NEW_MSKM_SBT_CD, (String) childMap.get("new_mskm_sbt_cd"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.申込契機コード → 申込内容承認登録明細.申込契機コード
				if (childMap == null || childMap.get("mskm_optnty_cd") == null || "".equals(childMap.get("mskm_optnty_cd")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.MSKM_OPTNTY_CD);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.MSKM_OPTNTY_CD, (String) childMap.get("mskm_optnty_cd"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.申込経路コード → 申込内容承認登録明細.申込経路コード
//				if (childMap == null || childMap.get("mskm_route_cd") == null || "".equals(childMap.get("mskm_route_cd")))
//				{
//					childTemplate.setNull(EKK0011D020CBSMsg1List.MSKM_ROUTE_CD);
//				}
//				else
//				{
//					childTemplate.set(EKK0011D020CBSMsg1List.MSKM_ROUTE_CD, (String) childMap.get("mskm_route_cd"));
//				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.宅内調査希望アポ期限年月日 → 申込内容承認登録明細.宅内調査希望アポ期限年月日
				if (childMap == null || childMap.get("takcho_kibo_apo_kigen_ymd") == null || "".equals(childMap.get("takcho_kibo_apo_kigen_ymd")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.TAKCHO_KIBO_APO_KIGEN_YMD);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.TAKCHO_KIBO_APO_KIGEN_YMD, (String) childMap.get("takcho_kibo_apo_kigen_ymd"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.工事アポ連絡先指定コード → 申込内容承認登録明細.工事アポ連絡先指定コード
				if (childMap == null || childMap.get("koji_apo_rrks_shitei_cd") == null || "".equals(childMap.get("koji_apo_rrks_shitei_cd")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.KOJI_APO_RRKS_SHITEI_CD);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.KOJI_APO_RRKS_SHITEI_CD, (String) childMap.get("koji_apo_rrks_shitei_cd"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.工事アポ連絡先電話番号 → 申込内容承認登録明細.工事アポ連絡先電話番号
				if (childMap == null || childMap.get("koji_apo_rrks_telno") == null || "".equals(childMap.get("koji_apo_rrks_telno")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.KOJI_APO_RRKS_TELNO);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.KOJI_APO_RRKS_TELNO, (String) childMap.get("koji_apo_rrks_telno"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.連絡事項登録年月日時分秒 → 申込内容承認登録明細.連絡事項登録年月日時分秒
				if (childMap == null || childMap.get("rrk_jiko_add_dtm") == null || "".equals(childMap.get("rrk_jiko_add_dtm")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.RRK_JIKO_ADD_DTM);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.RRK_JIKO_ADD_DTM, (String) childMap.get("rrk_jiko_add_dtm"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.申込連絡先メールアドレス → 申込内容承認登録明細.申込連絡先メールアドレス
				if (childMap == null || childMap.get("mskm_rrks_mlad") == null || "".equals(childMap.get("mskm_rrks_mlad")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.MSKM_RRKS_MLAD);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.MSKM_RRKS_MLAD, (String) childMap.get("mskm_rrks_mlad"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.工事進捗通知メールアドレス → 申込内容承認登録明細.工事進捗通知メールアドレス
				if (childMap == null || childMap.get("koji_prg_tchi_mlad") == null || "".equals(childMap.get("koji_prg_tchi_mlad")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.KOJI_PRG_TCHI_MLAD);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.KOJI_PRG_TCHI_MLAD, (String) childMap.get("koji_prg_tchi_mlad"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.連絡事項 → 申込内容承認登録明細.連絡事項
				if (childMap == null || childMap.get("rrk_jiko") == null || "".equals(childMap.get("rrk_jiko")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.RRK_JIKO);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.RRK_JIKO, (String) childMap.get("rrk_jiko"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.工事進捗通知携帯メールアドレス → 申込内容承認登録明細.工事進捗通知携帯メールアドレス
				if (childMap == null || childMap.get("kjsc_tch_ktai_mlad") == null || "".equals(childMap.get("kjsc_tch_ktai_mlad")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.KJSC_TCH_KTAI_MLAD);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.KJSC_TCH_KTAI_MLAD, (String) childMap.get("kjsc_tch_ktai_mlad"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.メール送信除外フラグ → 申込内容承認登録明細.メール送信除外フラグ
				if (childMap == null || childMap.get("ml_send_jgi_flg") == null || "".equals(childMap.get("ml_send_jgi_flg")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.ML_SEND_JGI_FLG);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.ML_SEND_JGI_FLG, (String) childMap.get("ml_send_jgi_flg"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.メール送信除外理由メモ → 申込内容承認登録明細.メール送信除外理由メモ
				if (childMap == null || childMap.get("ml_send_jgi_rsn_memo") == null || "".equals(childMap.get("ml_send_jgi_rsn_memo")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.ML_SEND_JGI_RSN_MEMO);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.ML_SEND_JGI_RSN_MEMO, (String) childMap.get("ml_send_jgi_rsn_memo"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.番ポ申込連絡先電話番号 → 申込内容承認登録明細.番ポ申込連絡先電話番号
				if (childMap == null || childMap.get("bmp_mskm_rrks_tln") == null || "".equals(childMap.get("bmp_mskm_rrks_tln")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.BMP_MSKM_RRKS_TLN);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.BMP_MSKM_RRKS_TLN, (String) childMap.get("bmp_mskm_rrks_tln"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.オプションサービス引継有無 → 申込内容承認登録明細.オプションサービス引継有無
				if (childMap == null || childMap.get("op_svc_hktgi_um") == null || "".equals(childMap.get("op_svc_hktgi_um")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.OP_SVC_HKTGI_UM);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.OP_SVC_HKTGI_UM, (String) childMap.get("op_svc_hktgi_um"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.解約書類送付希望有無 → 申込内容承認登録明細.解約書類送付希望有無
				if (childMap == null || childMap.get("dsl_aticle_sohu_kibo_um") == null || "".equals(childMap.get("dsl_aticle_sohu_kibo_um")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.DSL_ATICLE_SOHU_KIBO_UM);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.DSL_ATICLE_SOHU_KIBO_UM, (String) childMap.get("dsl_aticle_sohu_kibo_um"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.連絡手段補記 → 申込内容承認登録明細.連絡手段補記
				if (childMap == null || childMap.get("rrk_way_hoki") == null || "".equals(childMap.get("rrk_way_hoki")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.RRK_WAY_HOKI);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.RRK_WAY_HOKI, (String) childMap.get("rrk_way_hoki"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.新築物件コード → 申込内容承認登録明細.新築物件コード
				if (childMap == null || childMap.get("newconst_bukken_cd") == null || "".equals(childMap.get("newconst_bukken_cd")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.NEWCONST_BUKKEN_CD);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.NEWCONST_BUKKEN_CD, (String) childMap.get("newconst_bukken_cd"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.復活案件フラグ → 申込内容承認登録明細.復活案件フラグ
				if (childMap == null || childMap.get("hukkat_anken_flg") == null || "".equals(childMap.get("hukkat_anken_flg")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.HUKKAT_ANKEN_FLG);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.HUKKAT_ANKEN_FLG, (String) childMap.get("hukkat_anken_flg"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.同一設備再申込コード → 申込内容承認登録明細.同一設備再申込コード
				if (childMap == null || childMap.get("same_equip_re_mskm_cd") == null || "".equals(childMap.get("same_equip_re_mskm_cd")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.SAME_EQUIP_RE_MSKM_CD);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.SAME_EQUIP_RE_MSKM_CD, (String) childMap.get("same_equip_re_mskm_cd"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.本人確認書類種別コード → 申込内容承認登録明細.本人確認書類種別コード
				if (childMap == null || childMap.get("hnin_cfm_aticle_sbt_cd") == null || "".equals(childMap.get("hnin_cfm_aticle_sbt_cd")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.HNIN_CFM_ATICLE_SBT_CD);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.HNIN_CFM_ATICLE_SBT_CD, (String) childMap.get("hnin_cfm_aticle_sbt_cd"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.申込書種別コード → 申込内容承認登録明細.申込書種別コード
				if (childMap == null || childMap.get("mskmsho_sbt_cd") == null || "".equals(childMap.get("mskmsho_sbt_cd")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.MSKMSHO_SBT_CD);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.MSKMSHO_SBT_CD, (String) childMap.get("mskmsho_sbt_cd"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.地図添付有無 → 申込内容承認登録明細.地図添付有無
				if (childMap == null || childMap.get("map_temp_um") == null || "".equals(childMap.get("map_temp_um")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.MAP_TEMP_UM);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.MAP_TEMP_UM, (String) childMap.get("map_temp_um"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.ＫＣＮＳＴＢ申込台数 → 申込内容承認登録明細.ＫＣＮＳＴＢ申込台数
				if (childMap == null || childMap.get("kcn_stb_mskm_cnt") == null || "".equals(childMap.get("kcn_stb_mskm_cnt")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.KCN_STB_MSKM_CNT);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.KCN_STB_MSKM_CNT, (String) childMap.get("kcn_stb_mskm_cnt"));
				}

				// 申込内容承認登録ＳＣ.申込内容承認登録明細.ＫＣＮＳＴＢ種類コード → 申込内容承認登録明細.ＫＣＮＳＴＢ種類コード
				if (childMap == null || childMap.get("kcn_stb_kind_cd") == null || "".equals(childMap.get("kcn_stb_kind_cd")))
				{
					childTemplate.setNull(EKK0011D020CBSMsg1List.KCN_STB_KIND_CD);
				}
				else
				{
					childTemplate.set(EKK0011D020CBSMsg1List.KCN_STB_KIND_CD, (String) childMap.get("kcn_stb_kind_cd"));
				}

				templateArray[i] = childTemplate;

			}
			template.set(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST, templateArray);

			templateList.add(template);
		}

		CAANMsg[] templates = templateList.toArray(new CAANMsg[templateList.size()]);
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}

	/**
	 * 申込明細登録サービスインターフェイス用メッセージ設定処理<br>
	 * 
	 * @param param リクエストパラメータ
	 * @return HashMap<String, Object>
	 * @throws RequestParameterException
	 */
	private HashMap<String, Object> editInMsgEKK0021D010(IRequestParameterReadWrite param) throws RequestParameterException
	{
		/* ◇パラメータマップ生成 */
		HashMap<String, Object> paramMap = this.createNewParamMap(param);

		/* ◇テンプレート生成(サービス契約番号リストの件数分) */
		CAANMsg template = null;
		ArrayList<CAANMsg> templateList = new ArrayList<CAANMsg>();
		ArrayList<HashMap<String, Object>> svcKeiList = getMapListItem(param, "svc_kei_no_list");

		// 1件目から申込番号を取得
		HashMap<String, Object> subMap0 = svcKeiList.get(0);
		String mskmNo = (String)subMap0.get("mskm_no");
		
		for (int idx = 1; idx < svcKeiList.size(); idx++)
		{
			HashMap<String, Object> subMap = svcKeiList.get(idx);

			/* ◇ユーザデータ情報 */
			template = new CAANMsg(EKK0021D010CBSMsg.class.getName());
			this.setTemplateCommonItem(param, template, EKK0021D010CBSMsg.TEMPLATEID, "EKK0021D010", EKK0021D010CBSMsg.FUNC_CODE);

			/* ◇業務データの設定 */
			// 機能コード
			template.set(EKK0021D010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);

			// 申込明細登録明細.申込番号
			template.set(EKK0021D010CBSMsg.MSKM_NO, mskmNo);

			// null → 申込明細登録明細.申込書番号
			template.setNull(EKK0021D010CBSMsg.MSKMSHO_NO);

			// 申込明細登録明細.申込年月日
			template.set(EKK0021D010CBSMsg.MSKM_YMD, JCCBPCommon.getOpeDate(null));

			// サービス契約番号リスト.ＳＹＳＩＤ → ＳＹＳＩＤ
			if (JCRUtilCommon.isNull(subMap.get("sysid")))
			{
				template.setNull(EKK0021D010CBSMsg.SYSID);
			}
			else
			{
				template.set(EKK0021D010CBSMsg.SYSID, (String)subMap.get("sysid"));
			}

			// 申込明細登録明細.ＷＥＢ受付番号
			template.setNull(EKK0021D010CBSMsg.WEB_UK_NO);

			// 申込明細登録明細.申込形態コード
			template.setNull(EKK0021D010CBSMsg.MSKM_FORM_CD);

			// 申込明細登録明細.申込明細種別コード
			template.setNull(EKK0021D010CBSMsg.MSKM_DTL_SBT_CD);

			// 申込明細登録明細.連絡先携帯電話番号
			template.setNull(EKK0021D010CBSMsg.RRKS_KTAI_TELNO);

			// 申込明細登録明細.連絡先勤務先名
			template.setNull(EKK0021D010CBSMsg.RRKS_OFFC_NM);

			// 申込明細登録明細.昼間連絡先電話番号
			template.setNull(EKK0021D010CBSMsg.DT_RRKS_TELNO);

			// 申込明細登録明細.新規申込種別コード
			template.setNull(EKK0021D010CBSMsg.NEW_MSKM_SBT_CD);

			// 申込明細登録明細.申込契機コード
			template.setNull(EKK0021D010CBSMsg.MSKM_OPTNTY_CD);

			// 申込明細登録明細.申込経路コード
//			template.setNull(EKK0021D010CBSMsg.MSKM_ROUTE_CD);

			// 申込明細登録明細.宅内調査希望アポ期限年月日
			template.setNull(EKK0021D010CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD);

			// 申込明細登録明細.工事アポ連絡先指定コード
			template.setNull(EKK0021D010CBSMsg.KOJI_APO_RRKS_SHITEI_CD);

			// 申込明細登録明細.工事アポ連絡先電話番号
			template.setNull(EKK0021D010CBSMsg.KOJI_APO_RRKS_TELNO);

			// 申込明細登録明細.連絡事項登録年月日時分秒
			template.setNull(EKK0021D010CBSMsg.RRK_JIKO_ADD_DTM);

			// 申込明細登録明細.申込連絡先メールアドレス
			template.setNull(EKK0021D010CBSMsg.MSKM_RRKS_MLAD);

			// 申込明細登録明細.工事進捗通知メールアドレス
			template.setNull(EKK0021D010CBSMsg.KOJI_PRG_TCHI_MLAD);

			// 申込明細登録明細.連絡事項
			template.setNull(EKK0021D010CBSMsg.RRK_JIKO);

			// 申込明細登録明細.工事進捗通知携帯メールアドレス
			template.setNull(EKK0021D010CBSMsg.KJSC_TCH_KTAI_MLAD);

			// 申込明細登録明細.メール送信除外フラグ
			template.setNull(EKK0021D010CBSMsg.ML_SEND_JGI_FLG);

			// 申込明細登録明細.メール送信除外理由メモ
			template.setNull(EKK0021D010CBSMsg.ML_SEND_JGI_RSN_MEMO);

			// 申込明細登録明細.番ポ申込連絡先電話番号
			template.setNull(EKK0021D010CBSMsg.BMP_MSKM_RRKS_TLN);

			// 申込明細登録明細.オプションサービス引継有無
			template.setNull(EKK0021D010CBSMsg.OP_SVC_HKTGI_UM);

			// 申込明細登録明細.解約書類送付希望有無
			template.setNull(EKK0021D010CBSMsg.DSL_ATICLE_SOHU_KIBO_UM);

			// 申込明細登録明細.連絡手段補記
			template.setNull(EKK0021D010CBSMsg.RRK_WAY_HOKI);

			// 申込明細登録明細.新築物件コード
			template.setNull(EKK0021D010CBSMsg.NEWCONST_BUKKEN_CD);

			// 申込明細登録明細.復活案件フラグ
			template.setNull(EKK0021D010CBSMsg.HUKKAT_ANKEN_FLG);

			// 申込明細登録明細.同一設備再申込コード
			template.setNull(EKK0021D010CBSMsg.SAME_EQUIP_RE_MSKM_CD);

			// 申込明細登録明細.本人確認書類種別コード
			template.setNull(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_SBT_CD);

			// 申込明細登録明細.申込書種別コード
			template.setNull(EKK0021D010CBSMsg.MSKMSHO_SBT_CD);

			// 申込明細登録明細.契約付加コード
			template.setNull(EKK0021D010CBSMsg.KEI_HUKA_CD);

			// 申込明細登録明細.地図添付有無
			template.setNull(EKK0021D010CBSMsg.MAP_TEMP_UM);

			// 申込明細登録明細.KCNSTB申込台数
			template.setNull(EKK0021D010CBSMsg.KCN_STB_MSKM_CNT);

			// 申込明細登録明細.KCNSTB種類コード
			template.setNull(EKK0021D010CBSMsg.KCN_STB_KIND_CD);

			// 申込明細登録明細.マンション設備システム連携用記事欄
			template.setNull(EKK0021D010CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN);

			// 申込明細登録明細.マンションID
			template.setNull(EKK0021D010CBSMsg.MANSION_ID);

			// 申込明細登録明細.CAT-ID
			template.setNull(EKK0021D010CBSMsg.CATID);

			// 申込明細登録明細.申込受付種別コード
			template.setNull(EKK0021D010CBSMsg.MKM_UK_SBT_CD);

			// 申込明細登録明細.申込書取扱情報担当者名
			template.setNull(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM);

			// 申込明細登録明細.申込書取扱情報電話番号
			template.setNull(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TELNO);

//			// 申込明細登録明細.更新年月日時分秒(更新前)
//			template.set(EKK0021D010CBSMsg.UPD_DTM_BF, (String) JCCBPCommon.getSysDateTimeStamp());

			templateList.add(template);

		}

		if (templateList.size() == 0)
		{
			return null;
		}

		CAANMsg[] templates = templateList.toArray(new CAANMsg[templateList.size()]);
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}

	/**
	 * 申込内容承認登録サービスインターフェイス用メッセージ取得処理<br>
	 * 
	 * @param msgList メッセージリスト
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return IRequestParameterReadWrite
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutMsgEKK0011D020(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception
	{

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);

		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 業務データ設定
		HashMap<String, Object> dataMap = (HashMap<String, Object>) param.getData("KKSV017201CC");
		if (dataMap == null)
		{
			dataMap = new HashMap<String, Object>();
			param.setData("KKSV017201CC", dataMap);
		}
		ArrayList<HashMap<String, Object>> svcKeiList = (ArrayList<HashMap<String, Object>>) dataMap.get("svc_kei_no_list");
		for (int idx = 0; idx < 1; idx++)
		{
			CAANMsg childTemplate;
			CAANMsg parentTemplate = templates[idx];
			HashMap<String, Object> svcKeiMap = (HashMap<String, Object>) svcKeiList.get(idx);

			// サービス契約番号リストマップ.申込番号 ← 申込番号
			if (parentTemplate.isNull(EKK0011D020CBSMsg.MSKM_NO))
			{
				svcKeiMap.put("mskm_no", new String());
			}
			else
			{
				svcKeiMap.put("mskm_no", parentTemplate.getString(EKK0011D020CBSMsg.MSKM_NO));
			}

			// サービス契約番号リストマップ.世代登録年月日時分秒（申込） ← 世代登録年月日時分秒（申込）
			if (parentTemplate.isNull(EKK0011D020CBSMsg.KK0011_GENE_ADD_DTM))
			{
				svcKeiMap.put("kk0011_gene_add_dtm", new String());
			}
			else
			{
				svcKeiMap.put("kk0011_gene_add_dtm", parentTemplate.getString(EKK0011D020CBSMsg.KK0011_GENE_ADD_DTM));
			}

			// サービス契約番号リストマップ.申込ステータス ← 申込ステータス
			if (parentTemplate.isNull(EKK0011D020CBSMsg.MSKM_STAT))
			{
				svcKeiMap.put("mskm_stat", new String());
			}
			else
			{
				svcKeiMap.put("mskm_stat", parentTemplate.getString(EKK0011D020CBSMsg.MSKM_STAT));
			}
			
			CAANMsg[] templateArray = parentTemplate.getCAANMsgList(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST);
			ArrayList dataList = (ArrayList)dataMap.get("EKK0011D020CBSMsg1List");

			if (dataList == null)
			{
				dataList = new ArrayList();
			}
			
			if (templateArray != null && templateArray.length != 0)
			{
				ArrayList<HashMap<String, Object>> tmpList = new ArrayList<HashMap<String, Object>>();
				for (int i = 0; i < templateArray.length; i++)
				{
					childTemplate = templateArray[i];
					HashMap<String, Object> tmpMap = new HashMap<String, Object>();

					// サービス契約番号リストマップ.申込内容承認登録明細.申込明細番号 ← 申込内容承認登録明細.申込明細番号
					if (childTemplate.isNull(EKK0011D020CBSMsg1List.MSKM_DTL_NO))
					{
						tmpMap.put("mskm_dtl_no", new String());
					}
					else
					{
						tmpMap.put("mskm_dtl_no", childTemplate.getString(EKK0011D020CBSMsg1List.MSKM_DTL_NO));
					}
					
					// サービス契約番号リストマップ.申込内容承認登録明細.世代登録年月日時分秒（申込明細） ← 申込内容承認登録明細.世代登録年月日時分秒（申込明細）
					if (childTemplate.isNull(EKK0011D020CBSMsg1List.KK0021_GENE_ADD_DTM))
					{
						tmpMap.put("kk0021_gene_add_dtm", new String());
					}
					else
					{
						tmpMap.put("kk0021_gene_add_dtm", childTemplate.getString(EKK0011D020CBSMsg1List.KK0021_GENE_ADD_DTM));
					}
					
					// サービス契約番号リストマップ.申込内容承認登録明細.申込明細ステータス ← 申込内容承認登録明細.申込明細ステータス
					if (childTemplate.isNull(EKK0011D020CBSMsg1List.MSKM_DTL_STAT))
					{
						tmpMap.put("mskm_dtl_stat", new String());
					}
					else
					{
						tmpMap.put("mskm_dtl_stat", childTemplate.getString(EKK0011D020CBSMsg1List.MSKM_DTL_STAT));
					}

					tmpList.add(tmpMap);
				}
				svcKeiMap.put("EKK0011D020CBSMsg1List", tmpList);
			}
		}

		// エラー情報の設定
		editErrorInfo(param, templates, (Integer) return_code);

		//エラー情報のマップを取得
		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));

		// 例外通知
		String rtnCode = msgList.get(JCMConstants.RET_CD_INT_KEY).toString();
		String status = (String) param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (!("0".equals(rtnCode) && 0 == Integer.parseInt(status)))
		{
			throw new SCCallException("INVALID_RETURN_MESSAGE", rtnCode, (Integer) return_code);
		}

		return param;
	}

	/**
	 * 申込明細登録サービスインターフェイス用メッセージ取得処理<br>
	 * 
	 * @param msgList メッセージリスト
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return IRequestParameterReadWrite
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editOutMsgEKK0021D010(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception
	{

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);

		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 業務データ設定
		HashMap<String, Object> dataMap = (HashMap<String, Object>) param.getData("KKSV017201CC");
		if (dataMap == null)
		{
			dataMap = new HashMap<String, Object>();
			param.setData("KKSV017201CC", dataMap);
		}
		ArrayList<HashMap<String, Object>> svcKeiList = (ArrayList<HashMap<String, Object>>) dataMap.get("svc_kei_no_list");

		// 1件目から申込番号を取得
		HashMap<String, Object> subMap0 = svcKeiList.get(0);
		String mskmNo = (String)subMap0.get("mskm_no");

		int j = 0;
		for (int idx = 1; idx < svcKeiList.size(); idx++)
		{
			CAANMsg parentTemplate = templates[j++];
			HashMap<String, Object> svcKeiMap = (HashMap<String, Object>) svcKeiList.get(idx);

			// サービス契約番号リストマップ.申込番号 ← 申込番号
			if (parentTemplate.isNull(EKK0021D010CBSMsg.MSKM_DTL_NO))
			{
				svcKeiMap.put("mskm_no", new String());
			}
			else
			{
				svcKeiMap.put("mskm_no", mskmNo);
			}

			// サービス契約番号リストマップ.申込明細番号 ← 申込明細番号
			if (parentTemplate.isNull(EKK0021D010CBSMsg.MSKM_DTL_NO))
			{
				svcKeiMap.put("mskm_dtl_no", new String());
			}
			else
			{
				svcKeiMap.put("mskm_dtl_no", parentTemplate.getString(EKK0021D010CBSMsg.MSKM_DTL_NO));
			}

			// サービス契約番号リストマップ.世代登録年月日時分秒（申込） ← 世代登録年月日時分秒（申込）
			if (parentTemplate.isNull(EKK0021D010CBSMsg.GENE_ADD_DTM))
			{
				svcKeiMap.put("gene_add_dtm", new String());
			}
			else
			{
				svcKeiMap.put("gene_add_dtm", parentTemplate.getString(EKK0021D010CBSMsg.GENE_ADD_DTM));
			}

			// サービス契約番号リストマップ.申込明細ステータス ← 申込明細ステータス
			if (parentTemplate.isNull(EKK0021D010CBSMsg.MSKM_DTL_STAT))
			{
				svcKeiMap.put("mskm_dtl_stat", new String());
			}
			else
			{
				svcKeiMap.put("mskm_dtl_stat", parentTemplate.getString(EKK0021D010CBSMsg.MSKM_DTL_STAT));
			}

			ArrayList dataList = (ArrayList)dataMap.get("EKK0011D020CBSMsg1List");

			if (dataList == null)
			{
				dataList = new ArrayList();
			}

			ArrayList<HashMap<String, Object>> tmpList = new ArrayList<HashMap<String, Object>>();
			HashMap<String, Object> tmpMap = new HashMap<String, Object>();

			// サービス契約番号リストマップ.申込明細登録明細.申込明細番号 ← 申込明細登録明細.申込明細番号
			if (parentTemplate.isNull(EKK0021D010CBSMsg.MSKM_DTL_NO))
			{
				tmpMap.put("mskm_dtl_no", new String());
			}
			else
			{
				tmpMap.put("mskm_dtl_no", parentTemplate.getString(EKK0021D010CBSMsg.MSKM_DTL_NO));
			}

			// サービス契約番号リストマップ.申込明細登録明細.世代登録年月日時分秒（申込明細） ← 申込明細登録明細.世代登録年月日時分秒（申込明細）
			if (parentTemplate.isNull(EKK0021D010CBSMsg.GENE_ADD_DTM))
			{
				tmpMap.put("kk0021_gene_add_dtm", new String());
			}
			else
			{
				tmpMap.put("kk0021_gene_add_dtm", parentTemplate.getString(EKK0021D010CBSMsg.GENE_ADD_DTM));
			}

			// サービス契約番号リストマップ.申込明細登録明細.申込明細ステータス ← 申込明細登録明細.申込明細ステータス
			if (parentTemplate.isNull(EKK0021D010CBSMsg.MSKM_DTL_STAT))
			{
				tmpMap.put("mskm_dtl_stat", new String());
			}
			else
			{
				tmpMap.put("mskm_dtl_stat", parentTemplate.getString(EKK0021D010CBSMsg.MSKM_DTL_STAT));
			}

			tmpList.add(tmpMap);
			svcKeiMap.put("EKK0011D020CBSMsg1List", tmpList);

		}

		// エラー情報の設定
		editErrorInfo(param, templates, (Integer) return_code);

		//エラー情報のマップを取得
		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));

		// 例外通知
		String rtnCode = msgList.get(JCMConstants.RET_CD_INT_KEY).toString();
		String status = (String) param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (!("0".equals(rtnCode) && 0 == Integer.parseInt(status)))
		{
			throw new SCCallException("INVALID_RETURN_MESSAGE", rtnCode, (Integer) return_code);
		}

		return param;
	}

	/**
	 * 申込内容承認登録サービスIF実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 * 
	 * @param param リクエストパラメータ
	 * @param templates テンプレート
	 * @param returnCode リターンコード
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException RequestParameterException
	 */
	private IRequestParameterReadWrite editErrorInfoEKK0011D020(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode)
			throws RequestParameterException
	{
		ArrayList<HashMap<String, Object>> svcKeiList = getMapListItem(param, "svc_kei_no_list");
		for (int idx = 0; idx < 1; idx++)
		{
			CAANMsg template = templates[idx];
			HashMap<String, Object> svcKeiMap = (HashMap<String, Object>) svcKeiList.get(idx);

			int templateStatus = template.getInt(EKK0011D020CBSMsg.STATUS);
			if (returnCode != 0)
			{
				templateStatus = 9000;
			}

			if (JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", 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("%1$04d", templateStatus);
				String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);
				param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
				param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
			}

			// SYSID のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.SYSID_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.SYSID_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.SYSID_ERR, template.getString(EKK0011D020CBSMsg.SYSID_ERR));
				}
			}
			// 申込種別コード のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.MSKM_SBT_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.MSKM_SBT_CD_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.MSKM_SBT_CD_ERR, template.getString(EKK0011D020CBSMsg.MSKM_SBT_CD_ERR));
				}
			}
			// 申込書到着年月日 のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.MSKMSHO_ARIV_YMD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.MSKMSHO_ARIV_YMD_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.MSKMSHO_ARIV_YMD_ERR, template.getString(EKK0011D020CBSMsg.MSKMSHO_ARIV_YMD_ERR));
				}
			}
			// 申込受付年月日時分秒 のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.MSKM_UK_DTM_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.MSKM_UK_DTM_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.MSKM_UK_DTM_ERR, template.getString(EKK0011D020CBSMsg.MSKM_UK_DTM_ERR));
				}
			}
			// 申込受付担当ユーザーID のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.MSKM_UK_TNT_USER_ID_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.MSKM_UK_TNT_USER_ID_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.MSKM_UK_TNT_USER_ID_ERR, template.getString(EKK0011D020CBSMsg.MSKM_UK_TNT_USER_ID_ERR));
				}
			}
			// 申込年月日 のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.MSKM_YMD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.MSKM_YMD_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.MSKM_YMD_ERR, template.getString(EKK0011D020CBSMsg.MSKM_YMD_ERR));
				}
			}
			// 総合営業センター受付番号 のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.TTL_BUSINESS_CENTER_UK_NO_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.TTL_BUSINESS_CENTER_UK_NO_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.TTL_BUSINESS_CENTER_UK_NO_ERR, template.getString(EKK0011D020CBSMsg.TTL_BUSINESS_CENTER_UK_NO_ERR));
				}
			}
			// 総合営業申込契機コード のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.TTL_BUSINESS_MSKM_OPT_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.TTL_BUSINESS_MSKM_OPT_CD_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.TTL_BUSINESS_MSKM_OPT_CD_ERR, template.getString(EKK0011D020CBSMsg.TTL_BUSINESS_MSKM_OPT_CD_ERR));
				}
			}
			// 申込連絡先電話番号 のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.MSKM_RRKS_TELNO_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.MSKM_RRKS_TELNO_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.MSKM_RRKS_TELNO_ERR, template.getString(EKK0011D020CBSMsg.MSKM_RRKS_TELNO_ERR));
				}
			}
			// 申込実施者種別コード のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.MSKM_JSSIS_SBT_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.MSKM_JSSIS_SBT_CD_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.MSKM_JSSIS_SBT_CD_ERR, template.getString(EKK0011D020CBSMsg.MSKM_JSSIS_SBT_CD_ERR));
				}
			}
			// お客様ご要望事項 のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.CUST_YOBO_JIKO_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.CUST_YOBO_JIKO_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.CUST_YOBO_JIKO_ERR, template.getString(EKK0011D020CBSMsg.CUST_YOBO_JIKO_ERR));
				}
			}
			// 本人確認書類名 のエラー情報返却
//			if (!template.isNull(EKK0011D020CBSMsg.HNIN_CFM_BUNSHO_KIND_NM_ERR))
//			{
//				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.HNIN_CFM_BUNSHO_KIND_NM_ERR))
//				{
//					svcKeiMap.put(EKK0011D020CBSMsg.HNIN_CFM_BUNSHO_KIND_NM_ERR, template.getString(EKK0011D020CBSMsg.HNIN_CFM_BUNSHO_KIND_NM_ERR));
//				}
//			}
			// 電話連絡希望日種別コード のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.TEL_RRK_KIBOD_SBT_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.TEL_RRK_KIBOD_SBT_CD_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.TEL_RRK_KIBOD_SBT_CD_ERR, template.getString(EKK0011D020CBSMsg.TEL_RRK_KIBOD_SBT_CD_ERR));
				}
			}
			// 電話連絡希望時間帯コード のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.TEL_RRK_KIBO_TIME_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.TEL_RRK_KIBO_TIME_CD_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.TEL_RRK_KIBO_TIME_CD_ERR, template.getString(EKK0011D020CBSMsg.TEL_RRK_KIBO_TIME_CD_ERR));
				}
			}
			// 宅内調査希望日種別コード のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.TAKCHO_KIBOD_SBT_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.TAKCHO_KIBOD_SBT_CD_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.TAKCHO_KIBOD_SBT_CD_ERR, template.getString(EKK0011D020CBSMsg.TAKCHO_KIBOD_SBT_CD_ERR));
				}
			}
			// 宅内調査希望時間帯コード のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.TAKCHO_KIBO_TIME_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.TAKCHO_KIBO_TIME_CD_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.TAKCHO_KIBO_TIME_CD_ERR, template.getString(EKK0011D020CBSMsg.TAKCHO_KIBO_TIME_CD_ERR));
				}
			}
			// 仮申込フラグ のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.KARI_MSKM_FLG_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.KARI_MSKM_FLG_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.KARI_MSKM_FLG_ERR, template.getString(EKK0011D020CBSMsg.KARI_MSKM_FLG_ERR));
				}
			}
			// リファラー のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.REFERER_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.REFERER_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.REFERER_ERR, template.getString(EKK0011D020CBSMsg.REFERER_ERR));
				}
			}
			// 関西電力お客様情報授受同意有無 のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.KEPCO_CUSTINFO_JUJU_DOI_UM_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.KEPCO_CUSTINFO_JUJU_DOI_UM_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.KEPCO_CUSTINFO_JUJU_DOI_UM_ERR, template.getString(EKK0011D020CBSMsg.KEPCO_CUSTINFO_JUJU_DOI_UM_ERR));
				}
			}
			// 照査前連絡事項要否 のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.SHOSA_BF_RRK_JIKO_YH_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.SHOSA_BF_RRK_JIKO_YH_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.SHOSA_BF_RRK_JIKO_YH_ERR, template.getString(EKK0011D020CBSMsg.SHOSA_BF_RRK_JIKO_YH_ERR));
				}
			}
			// 照査前連絡事項 のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.SHOSA_BF_RRK_JIKO_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.SHOSA_BF_RRK_JIKO_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.SHOSA_BF_RRK_JIKO_ERR, template.getString(EKK0011D020CBSMsg.SHOSA_BF_RRK_JIKO_ERR));
				}
			}
			// 利用サービス継続種別コード のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.USE_SVC_KEIZK_SBT_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.USE_SVC_KEIZK_SBT_CD_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.USE_SVC_KEIZK_SBT_CD_ERR, template.getString(EKK0011D020CBSMsg.USE_SVC_KEIZK_SBT_CD_ERR));
				}
			}
			// コンシューマ営業用申込状態識別コード のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.CONSMBSN_MSKM_STAT_SKBT_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.CONSMBSN_MSKM_STAT_SKBT_CD_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.CONSMBSN_MSKM_STAT_SKBT_CD_ERR, template.getString(EKK0011D020CBSMsg.CONSMBSN_MSKM_STAT_SKBT_CD_ERR));
				}
			}
			// 申込内容承認登録明細 のエラー情報返却
			if (!template.isNull(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST_ERR))
				{
					svcKeiMap.put(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST_ERR, template.getString(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST_ERR));
				}
			}
		}

		return param;
	}

	/**
	 * 申込明細登録サービスIF実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 * 
	 * @param param リクエストパラメータ
	 * @param templates テンプレート
	 * @param returnCode リターンコード
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException RequestParameterException
	 */
	private IRequestParameterReadWrite editErrorInfoEKK0021D010(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode)
			throws RequestParameterException
	{
		ArrayList<HashMap<String, Object>> svcKeiList = getMapListItem(param, "svc_kei_no_list");
		for (int idx = 0; idx < 1; idx++)
		{
			CAANMsg template = templates[idx];
			HashMap<String, Object> svcKeiMap = (HashMap<String, Object>) svcKeiList.get(idx);

			int templateStatus = template.getInt(EKK0021D010CBSMsg.STATUS);
			if (returnCode != 0)
			{
				templateStatus = 9000;
			}

			if (JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", 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("%1$04d", templateStatus);
				String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);
				param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
				param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
			}

			// 申込番号 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.MSKM_NO_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.MSKM_NO_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.MSKM_NO_ERR, template.getString(EKK0021D010CBSMsg.MSKM_NO_ERR));
				}
			}
			// 申込書番号 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.MSKMSHO_NO_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.MSKMSHO_NO_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.MSKMSHO_NO_ERR, template.getString(EKK0021D010CBSMsg.MSKMSHO_NO_ERR));
				}
			}
			// 申込年月日 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.MSKM_YMD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.MSKM_YMD_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.MSKM_YMD_ERR, template.getString(EKK0021D010CBSMsg.MSKM_YMD_ERR));
				}
			}
			// SYSID のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.SYSID_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.SYSID_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.SYSID_ERR, template.getString(EKK0021D010CBSMsg.SYSID_ERR));
				}
			}
			// WEB受付番号 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.WEB_UK_NO_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.WEB_UK_NO_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.WEB_UK_NO_ERR, template.getString(EKK0021D010CBSMsg.WEB_UK_NO_ERR));
				}
			}
			// 申込形態コード のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.MSKM_FORM_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.MSKM_FORM_CD_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.MSKM_FORM_CD_ERR, template.getString(EKK0021D010CBSMsg.MSKM_FORM_CD_ERR));
				}
			}
			// 申込明細種別コード のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.MSKM_DTL_SBT_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.MSKM_DTL_SBT_CD_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.MSKM_DTL_SBT_CD_ERR, template.getString(EKK0021D010CBSMsg.MSKM_DTL_SBT_CD_ERR));
				}
			}
			// 連絡先携帯電話番号 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.RRKS_KTAI_TELNO_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.RRKS_KTAI_TELNO_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.RRKS_KTAI_TELNO_ERR, template.getString(EKK0021D010CBSMsg.RRKS_KTAI_TELNO_ERR));
				}
			}
			// 連絡先勤務先名 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.RRKS_OFFC_NM_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.RRKS_OFFC_NM_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.RRKS_OFFC_NM_ERR, template.getString(EKK0021D010CBSMsg.RRKS_OFFC_NM_ERR));
				}
			}
			// 昼間連絡先電話番号 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.DT_RRKS_TELNO_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.DT_RRKS_TELNO_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.DT_RRKS_TELNO_ERR, template.getString(EKK0021D010CBSMsg.DT_RRKS_TELNO_ERR));
				}
			}
			// 新規申込種別コード のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.NEW_MSKM_SBT_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.NEW_MSKM_SBT_CD_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.NEW_MSKM_SBT_CD_ERR, template.getString(EKK0021D010CBSMsg.NEW_MSKM_SBT_CD_ERR));
				}
			}
			// 申込契機コード のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.MSKM_OPTNTY_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.MSKM_OPTNTY_CD_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.MSKM_OPTNTY_CD_ERR, template.getString(EKK0021D010CBSMsg.MSKM_OPTNTY_CD_ERR));
				}
			}
			// 申込経路コード のエラー情報返却
//			if (!template.isNull(EKK0021D010CBSMsg.MSKM_ROUTE_CD_ERR))
//			{
//				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.MSKM_ROUTE_CD_ERR))
//				{
//					svcKeiMap.put(EKK0021D010CBSMsg.MSKM_ROUTE_CD_ERR, template.getString(EKK0021D010CBSMsg.MSKM_ROUTE_CD_ERR));
//				}
//			}
			// 宅内調査希望アポ期限年月日 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD_ERR, template.getString(EKK0021D010CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD_ERR));
				}
			}
			// 工事アポ連絡先指定コード のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.KOJI_APO_RRKS_SHITEI_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.KOJI_APO_RRKS_SHITEI_CD_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.KOJI_APO_RRKS_SHITEI_CD_ERR, template.getString(EKK0021D010CBSMsg.KOJI_APO_RRKS_SHITEI_CD_ERR));
				}
			}
			//工事アポ連絡先電話番号 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.KOJI_APO_RRKS_TELNO_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.KOJI_APO_RRKS_TELNO_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.KOJI_APO_RRKS_TELNO_ERR, template.getString(EKK0021D010CBSMsg.KOJI_APO_RRKS_TELNO_ERR));
				}
			}
			// 連絡事項登録年月日時分秒 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.RRK_JIKO_ADD_DTM_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.RRK_JIKO_ADD_DTM_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.RRK_JIKO_ADD_DTM_ERR, template.getString(EKK0021D010CBSMsg.RRK_JIKO_ADD_DTM_ERR));
				}
			}
			// 申込連絡先メールアドレス のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.MSKM_RRKS_MLAD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.MSKM_RRKS_MLAD_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.MSKM_RRKS_MLAD_ERR, template.getString(EKK0021D010CBSMsg.MSKM_RRKS_MLAD_ERR));
				}
			}
			// 工事進捗通知メールアドレス のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.KOJI_PRG_TCHI_MLAD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.KOJI_PRG_TCHI_MLAD_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.KOJI_PRG_TCHI_MLAD_ERR, template.getString(EKK0021D010CBSMsg.KOJI_PRG_TCHI_MLAD_ERR));
				}
			}
			// 連絡事項 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.RRK_JIKO_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.RRK_JIKO_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.RRK_JIKO_ERR, template.getString(EKK0021D010CBSMsg.RRK_JIKO_ERR));
				}
			}
			// 工事進捗通知携帯メールアドレス のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.KJSC_TCH_KTAI_MLAD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.KJSC_TCH_KTAI_MLAD_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.KJSC_TCH_KTAI_MLAD_ERR, template.getString(EKK0021D010CBSMsg.KJSC_TCH_KTAI_MLAD_ERR));
				}
			}
			// メール送信除外フラグ のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.ML_SEND_JGI_FLG_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.ML_SEND_JGI_FLG_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.ML_SEND_JGI_FLG_ERR, template.getString(EKK0021D010CBSMsg.ML_SEND_JGI_FLG_ERR));
				}
			}
			// メール送信除外理由メモ のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.ML_SEND_JGI_RSN_MEMO_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.ML_SEND_JGI_RSN_MEMO_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.ML_SEND_JGI_RSN_MEMO_ERR, template.getString(EKK0021D010CBSMsg.ML_SEND_JGI_RSN_MEMO_ERR));
				}
			}
			// 番ポ申込連絡先電話番号 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.BMP_MSKM_RRKS_TLN_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.BMP_MSKM_RRKS_TLN_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.BMP_MSKM_RRKS_TLN_ERR, template.getString(EKK0021D010CBSMsg.BMP_MSKM_RRKS_TLN_ERR));
				}
			}
			// オプションサービス引継有無 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.OP_SVC_HKTGI_UM_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.OP_SVC_HKTGI_UM_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.OP_SVC_HKTGI_UM_ERR, template.getString(EKK0021D010CBSMsg.OP_SVC_HKTGI_UM_ERR));
				}
			}
			// 解約書類送付希望有無 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.DSL_ATICLE_SOHU_KIBO_UM_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.DSL_ATICLE_SOHU_KIBO_UM_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.DSL_ATICLE_SOHU_KIBO_UM_ERR, template.getString(EKK0021D010CBSMsg.DSL_ATICLE_SOHU_KIBO_UM_ERR));
				}
			}
			// 連絡手段補記 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.RRK_WAY_HOKI_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.RRK_WAY_HOKI_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.RRK_WAY_HOKI_ERR, template.getString(EKK0021D010CBSMsg.RRK_WAY_HOKI_ERR));
				}
			}
			// 新築物件コード のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.NEWCONST_BUKKEN_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.NEWCONST_BUKKEN_CD_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.NEWCONST_BUKKEN_CD_ERR, template.getString(EKK0021D010CBSMsg.NEWCONST_BUKKEN_CD_ERR));
				}
			}
			// 復活案件フラグ のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.HUKKAT_ANKEN_FLG_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.HUKKAT_ANKEN_FLG_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.HUKKAT_ANKEN_FLG_ERR, template.getString(EKK0021D010CBSMsg.HUKKAT_ANKEN_FLG_ERR));
				}
			}
			// 同一設備再申込コード のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.SAME_EQUIP_RE_MSKM_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.SAME_EQUIP_RE_MSKM_CD_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.SAME_EQUIP_RE_MSKM_CD_ERR, template.getString(EKK0021D010CBSMsg.SAME_EQUIP_RE_MSKM_CD_ERR));
				}
			}
			// 本人確認書類種別コード のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_SBT_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_SBT_CD_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_SBT_CD_ERR, template.getString(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_SBT_CD_ERR));
				}
			}
			// 申込書種別コード のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.MSKMSHO_SBT_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.MSKMSHO_SBT_CD_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.MSKMSHO_SBT_CD_ERR, template.getString(EKK0021D010CBSMsg.MSKMSHO_SBT_CD_ERR));
				}
			}
			// 契約付加コード のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.KEI_HUKA_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.KEI_HUKA_CD_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.KEI_HUKA_CD_ERR, template.getString(EKK0021D010CBSMsg.KEI_HUKA_CD_ERR));
				}
			}
			// 地図添付有無 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.MAP_TEMP_UM_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.MAP_TEMP_UM_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.MAP_TEMP_UM_ERR, template.getString(EKK0021D010CBSMsg.MAP_TEMP_UM_ERR));
				}
			}
			// KCNSTB申込台数 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.KCN_STB_MSKM_CNT_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.KCN_STB_MSKM_CNT_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.KCN_STB_MSKM_CNT_ERR, template.getString(EKK0021D010CBSMsg.KCN_STB_MSKM_CNT_ERR));
				}
			}
			// KCNSTB種類コード のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.KCN_STB_KIND_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.KCN_STB_KIND_CD_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.KCN_STB_KIND_CD_ERR, template.getString(EKK0021D010CBSMsg.KCN_STB_KIND_CD_ERR));
				}
			}
			// マンション設備システム連携用記事欄 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN_ERR, template.getString(EKK0021D010CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN_ERR));
				}
			}
			// マンションID のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.MANSION_ID_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.MANSION_ID_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.MANSION_ID_ERR, template.getString(EKK0021D010CBSMsg.MANSION_ID_ERR));
				}
			}
			// CAT-IDのエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.CATID_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.CATID_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.CATID_ERR, template.getString(EKK0021D010CBSMsg.CATID_ERR));
				}
			}
			// 申込受付種別コード のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.MKM_UK_SBT_CD_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.MKM_UK_SBT_CD_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.MKM_UK_SBT_CD_ERR, template.getString(EKK0021D010CBSMsg.MKM_UK_SBT_CD_ERR));
				}
			}
			// 申込書取扱情報担当者名 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM_ERR, template.getString(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM_ERR));
				}
			}
			// 申込書取扱情報電話番号 のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TELNO_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TELNO_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TELNO_ERR, template.getString(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TELNO_ERR));
				}
			}
			// 更新年月日時分秒(更新前) のエラー情報返却
			if (!template.isNull(EKK0021D010CBSMsg.UPD_DTM_BF_ERR))
			{
				if (!svcKeiMap.containsKey(EKK0021D010CBSMsg.UPD_DTM_BF_ERR))
				{
					svcKeiMap.put(EKK0021D010CBSMsg.UPD_DTM_BF_ERR, template.getString(EKK0021D010CBSMsg.UPD_DTM_BF_ERR));
				}
			}
		}

		return param;
	}

	// ▼▼ クラス内共通処理 ▼▼
	/**
	 * サービスインタフェースに渡すパラメータマップを新規に作成します。 マップには共通項目である電文ヘッダ、コントロールマップを設定します。 <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param childMap 請求契約明細１件のマップ
	 * @throws RequestParameterException パラメータ取得で例外が発生した場合
	 */
	private HashMap<String, Object> createNewParamMap(IRequestParameterReadWrite param) throws RequestParameterException
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		/* ◇電文ヘッダ */
		// 電文ID
		paramMap.put(JCMConstants.TRANZACTION_ID_KEY, param.getTelegramID());
		// ユースケースID
		paramMap.put(JCMConstants.USECASE_ID_KEY, param.getUsecaseID());
		// オペレーションID
		paramMap.put(JCMConstants.OPERATION_ID_KEY, param.getOperationID());
		// サービス呼び出し区分
		paramMap.put(JCMConstants.CALL_TYPE_KEY, param.getCallType());

		/* ◇コントロールマップ */
		// 依頼先ホスト名
		paramMap.put(JCMConstants.CLIENT_HOST_NAME_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTNAME));
		// 依頼元IPアドレス
		paramMap.put(JCMConstants.CLIENT_IP_ADDRESS_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTIP));
		// 依頼元画面ID
		paramMap.put(JCMConstants.INVOKE_GAMEN_ID_KEY, param.getControlMapData(SCControlMapKeys.REQ_VIEWID));
		// オペレータID
		paramMap.put(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));

		return paramMap;
	}

	/**
	 * テンプレートの共通項目を設定します。 <br>
	 * 
	 * @param param リクエストパラメータ
	 * @param template テンプレート
	 * @param templateIdKey テンプレートIDキー名
	 * @param templateIdVal テンプレートID値
	 * @param templateFuncCdKey テンプレート機能コードキー名
	 * @throws RequestParameterException パラメータ取得で例外が発生した場合
	 */
	private CAANMsg setTemplateCommonItem(IRequestParameterReadWrite param, CAANMsg template, String templateIdKey, String templateIdVal,
			String templateFuncCdKey) throws RequestParameterException
	{
		// テンプレートID
		template.set(templateIdKey, templateIdVal);

		// 機能コード（デフォルト：１）
		template.set(templateFuncCdKey, "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);

		return template;
	}

	/**
	 * マップから指定されたリスト項目名の値を取得します。 <br>
	 * 
	 * @param param リクエストパラメータ
	 * @param key リスト項目名
	 * @return マップ項目値
	 * @throws RequestParameterException パラメータ取得で例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private ArrayList<HashMap<String, Object>> getMapListItem(IRequestParameterReadWrite param, String key) throws RequestParameterException
	{
		HashMap<String, Object> inMap = (HashMap<String, Object>) param.getData("KKSV017201CC");
		return (ArrayList<HashMap<String, Object>>) inMap.get(key);
	}
	// ▲▲ クラス内共通処理 ▲▲
}
