/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JKKKojiJuhenSvkwUpdCC
*	ソースファイル名：JKKKojiJuhenSvkwUpdCC.java
*	作成者			：FJ
*	日付			：2012年10月29日
*＜機能概要＞
*	工事案件住所変更画面サービス回線内訳更新CCの共通コンポーネント
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00.00	2012/10/29	FJ			新規作成
*	v4.00.01	2013/01/16	FJ）中井	【IT1-2013-0000016】対応
*	v5.00.00	2013/06/15	FJ）中井	【ANK-1537-00-00】対応
*	v5.00.01	2013/07/11	FJ）中井	【IT2-2013-0000606】対応
*	v5.00.02	2013/07/12	FJ）中井	【IT1-2013-0001368】対応
*	v7.00.00	2014/01/22	FJ）中井	【IT1-2014-0000032】対応
*	v7.00.01	2014/01/29	FJ）中井	【IT1-2014-0000050】対応
*   v7.00.02	2014/02/03  FJ) 中井	【OM-2014-0000938】対応
*   v7.00.03	2014/03/12	 FJ) 中井	【IT2-2014-0000157】対応
*
**********************************************************************/
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.ejb.cbs.cbsmsg.EKK0251A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0251A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0251C030CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2101C010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2101D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2101E010CBSMsg;

/**
 * 
 * @author 909488
 *
 */
public class JKKKojiJuhenSvkwUpdCC extends AbstractCommonComponent
{

	/** テンプレートID(EKK0251A010)サービス契約回線内訳一意照会 */
	private static final String TEMPLATE_ID_EKK0251A010 = "EKK0251A010";
	
	/** テンプレートID(EKK0251C030)サービス契約回線内訳内容変更 */
	private static final String TEMPLATE_ID_EKK0251C030 = "EKK0251C030";
	
	/** テンプレートID(EKK2101C010)住所変更明細更新 */
	private static final String TEMPLATE_ID_EKK2101C010 = "EKK2101C010";

	/** テンプレートID(EKK2101D010)住所変更明細登録 */
	private static final String TEMPLATE_ID_EKK2101D010 = "EKK2101D010";

	/** テンプレートID(EKK2101E010)住所変更明細論理削除 */
	private static final String TEMPLATE_ID_EKK2101E010 = "EKK2101E010";
	
	/**
	 * サービス契約の更新タイムスタンプ格納キー
	 */
	private static final String KK_COM_SVC_UP_DTM = "KK_COM_SVC_UP_DTM";
	
	/** 宅内機器移動コード（追加）*/
	private static final String TAKNKIKI_IDO_CD_01 = "01";
	
	/** 宅内機器移動コード（交換）*/
	private static final String TAKNKIKI_IDO_CD_02 = "02";
	
	/** 宅内機器移動コード（一部撤去）*/
	private static final String TAKNKIKI_IDO_CD_03 = "03";
	
	/** 宅内機器移動コード（移動）*/
	private static final String TAKNKIKI_IDO_CD_04 = "04";
	
	/** 内訳用宅内機器移動コード（論理削除）*/
	private static final String TAKNKIKI_IDO_CD_UCWK_05 = "05";
	
	/** 宅内機器移動コード（変更なし）*/
//	private static final String TAKNKIKI_IDO_CD_09 = "09";
	
	/** 住所変更明細種別コード（サービス契約内訳番号）*/
	private static final String ADCHG_DTL_SBT_CD_02 = "02";
	
	/** 住所変更明細種別コード（機器提供サービス契約番号）*/
	private static final String ADCHG_DTL_SBT_CD_03 = "03";
	
	/* ++++++++++ v7.00.00 追加開始 ++++++++++ */
	/** 住所変更明細種別コード（機器提供サービス契約番号(多機能ルーター)）*/
	private static final String ADCHG_DTL_SBT_CD_09 = "09";
	/* ++++++++++ v7.00.00 追加終了 ++++++++++ */
	
	/**  回線場所住所チェックレベル（チェックあり最下層チェックする）*/
	private static final String KISN_AD_CHK_LV_1 = "1";
	
	/**  回線場所住所チェックレベル（チェックあり最下層チェックしない）*/
	private static final String KISN_AD_CHK_LV_2 = "2";
	
	/**  回線場所住所未確定フラグ（未確定）*/
	private static final String KISN_PLC_AD_MI_FIX_FLG_1 = "1";
	
	/** 多機能ルーター機能移動状態（機能無）*/
	private static final String KKOP_SVC_KEI_NO_STAT_NON = "00";
	/** 多機能ルーター変更有*/
	private static final String TAKINO_ROUTER_ARI_CHG = "1";
	/** 多機能ルーター機能移動状態（新設）*/
	private static final String KKOP_SVC_KEI_NO_STAT_ADD = "01";
	/** 多機能ルーター機能移動状態（交換）*/
	private static final String KKOP_SVC_KEI_NO_STAT_DEL = "03";
	/** 多機能ルーター機能移動状態（移動）*/
	private static final String KKOP_SVC_KEI_NO_STAT_IDO = "04";

	


	/**
	 * 工事案件住所変更画面情報取得CCを呼出し、
	 * 工事案件住所変更画面情報取得を行う。
	 * 
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @return IRequestParameterReadWrite
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite chgAdrInfo(SessionHandle handle,
													IRequestParameterReadWrite param,
													String fixedText) throws Throwable
	{
		Map<?, ?> result = null;
		CAANMsg template = null;
		
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		// データ情報
		Map<String, Object> dataMap = (HashMap<String, Object>)param.getData(fixedText);
		Map<String, Object> kojiInfoMap = (HashMap<String, Object>)param.getData("kojiakInfoMap");
		ArrayList kikiInfoList = (ArrayList)kojiInfoMap.get("kktkSvcOutList");
		ArrayList adchgDtlList = (ArrayList)dataMap.get("adrChgDtlList");
		
		// 住所変更なし
		boolean kojak_juhen = (Boolean) dataMap.get("kojak_juhen");
		/* ++++++++++ v7.00.01 追加開始 ++++++++++ */
		// 多機能ルーター変更有
		String takino_router_ari = (String) dataMap.get("takino_router_ari");
		/* ++++++++++ v7.00.01 追加終了 ++++++++++ */
//		boolean adrChangeFlg = (Boolean) dataMap.get("adrChangeFlg");
		if(!kojak_juhen){
			return param;
		}
		//回線内訳番号なし
		if(dataMap.get("svc_kei_kaisen_ucwk_no") == null || "".equals(dataMap.get("svc_kei_kaisen_ucwk_no")))
		{
			return param;
		}
		
		//cc内ワーク
		Map<String, Object> ccMap = new HashMap<String, Object>();
		// 作業領域の取得
		Map workMap = (Map)param.getMappingWorkArea();
		if (workMap == null) {
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}
		if (workMap.get(KK_COM_SVC_UP_DTM) == null || "".equals(workMap.get(KK_COM_SVC_UP_DTM)))
		{
			ccMap.put(KK_COM_SVC_UP_DTM, dataMap.get("upd_dtm"));
		}
		else
		{
			ccMap.put(KK_COM_SVC_UP_DTM, (String)workMap.get(KK_COM_SVC_UP_DTM));
		}
		//住所変更チェックボックス
		ccMap.put("ad_chg", (Boolean) dataMap.get("ad_chg"));
		
		//住所変更明細更新用　住所変更テーブル更新日時
		ccMap.put("adchg_upd_dtm", (String)dataMap.get("adchg_upd_dtm"));
				
		// サービス契約回線内訳一意照会
		template = editInMsgEKK0251A010(param, dataMap, kojiInfoMap, ccMap);
		// ◇ SC呼出実行
		result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
		// ◇ 下りマッピング処理
		editOutMsgEKK0251A010(result, param, dataMap, ccMap);

		//JKKKojiChgPlaceNoCCで実行するため削除
//		if(adrChangeFlg){
//			//サービス契約回線内訳内容変更
//			template = editInMsgEKK0251C030(param, dataMap, kojiInfoMap, ccMap, (String)dataMap.get("func_code"));
//			// ◇ SC呼出実行
//			result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
//			// ◇ 下りマッピング処理
//			editOutMsgEKK0251C030(result, param, dataMap, ccMap);
//		}
			
		if("1".equals(dataMap.get("func_code")))
		{
			//住所変更明細登録
			HashMap childKikiMap = null;
			HashMap childadrMap = null;
			/* ++++++++++ v5.00.01 追加開始 ++++++++++ */
			HashMap<String, String> ucwkMap = new HashMap<String, String>();
			/* ++++++++++ v5.00.01 追加終了 ++++++++++ */
			ccMap.put("adchg_no", (String)((HashMap)adchgDtlList.get(0)).get("adchg_no"));
			boolean newKktkSvcNo = true;
			for (int i = 0; i < kikiInfoList.size(); i++)
			{
				childKikiMap = (HashMap)kikiInfoList.get(i);
				String kktkSvcKeiNo = (String) childKikiMap.get("kktk_svc_kei_no");
				String svcKeiUcwkNo = (String) childKikiMap.get("svc_kei_ucwk_no");
				/* ++++++++++ v7.00.01 修正開始 ++++++++++ */
				String kkopSvcKeiNoNet = "";
				if(childKikiMap.get("kkop_svc_kei_no_net") != null)
				{
					kkopSvcKeiNoNet = (String) childKikiMap.get("kkop_svc_kei_no_net");
				}
				newKktkSvcNo = true;
				//宅内機器異動コードが追加以外の場合は更新、論理削除
				for (int j = 0; j < adchgDtlList.size(); j++)
				{
					childadrMap = (HashMap)adchgDtlList.get(j);
					String adchg_dtl_sbt_cd = (String)childadrMap.get("adchg_dtl_sbt_cd");
					String chg_tg_kei_no =  (String)childadrMap.get("chg_tg_kei_no");
					String chbf_skbt_no =  (String)childadrMap.get("chbf_skbt_no");
					String chaf_skbt_no =  (String)childadrMap.get("chaf_skbt_no");
					String kkop_svc_kei_no_net_stat =  (String)childadrMap.get("kkop_svc_kei_no_net_stat");
					if(!ADCHG_DTL_SBT_CD_03.equals(adchg_dtl_sbt_cd) && !ADCHG_DTL_SBT_CD_09.equals(adchg_dtl_sbt_cd)){
						continue;
					}

					/* ++++++++++ v7.00.00 修正開始 ++++++++++ */
//					if(ADCHG_DTL_SBT_CD_03.equals(adchg_dtl_sbt_cd)
					if(ADCHG_DTL_SBT_CD_03.equals(adchg_dtl_sbt_cd) && chg_tg_kei_no != null && chg_tg_kei_no.equals(kktkSvcKeiNo))
					{
						/* ++++++++++ v7.00.01 修正終了 ++++++++++ */
						/* ++++++++++ v7.00.00 修正終了 ++++++++++ */
						/* ++++++++++ v4.00.01 追加開始 ++++++++++ */
						if( TAKNKIKI_IDO_CD_03.equals( (String)childKikiMap.get("taknkiki_ido_cd_j")) 
								&& (childadrMap.get("chbf_skbt_no") == null || "".equals( (String)childadrMap.get("chbf_skbt_no"))))
						{
							//新規作成（変更前識別番号なし）で宅内機器異動コードが一部撤去の場合は論理削除
							//住所変更明細論理削除
							template = editInMsgEKK2101E010(param, childadrMap, childKikiMap, ccMap);
							// ◇ SC呼出実行
							result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
							// ◇ 下りマッピング処理
							editOutMsgEKK2101E010(result, param, dataMap, ccMap);
							//サービス契約内訳
							/* ++++++++++ v5.00.01 追加開始 ++++++++++ */
							if(svcKeiUcwkNo != null && !"".equals(svcKeiUcwkNo) && !ucwkMap.containsKey(svcKeiUcwkNo))
							{
								ucwkMap.put(svcKeiUcwkNo, TAKNKIKI_IDO_CD_UCWK_05);
							}
							/* ++++++++++ v5.00.01 追加終了 ++++++++++ */
						}
						else if(TAKNKIKI_IDO_CD_03.equals( (String)childKikiMap.get("taknkiki_ido_cd_j"))
								&& (childadrMap.get("chaf_skbt_no") != null && !"".equals( (String)childadrMap.get("chaf_skbt_no"))))
						{
							//宅内機器異動コードが一部撤去の場合
							/* ++++++++++ v4.00.01 追加終了 ++++++++++ */
							//住所変更明細更新
							template = editInMsgEKK2101C010(param, childadrMap, childKikiMap, ccMap, ADCHG_DTL_SBT_CD_03);
							// ◇ SC呼出実行
							result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
							// ◇ 下りマッピング処理
							editOutMsgEKK2101C010(result, param, dataMap, ccMap);
							//サービス契約内訳
							/* ++++++++++ v5.00.01 追加開始 ++++++++++ */
							if(svcKeiUcwkNo != null && !"".equals(svcKeiUcwkNo) && !ucwkMap.containsKey(svcKeiUcwkNo))
							{
								ucwkMap.put(svcKeiUcwkNo, TAKNKIKI_IDO_CD_03);
							}
							/* ++++++++++ v5.00.01 追加終了 ++++++++++ */
						 }
						/* ++++++++++ v5.00.00 追加開始 ++++++++++ */
						/* ++++++++++ v7.00.03 修正開始 ++++++++++ */
						else if(TAKNKIKI_IDO_CD_04.equals( (String)childKikiMap.get("taknkiki_ido_cd_j")) 
								&& (childKikiMap.get("kiki_chg_no") != null && !"".equals(childKikiMap.get("kiki_chg_no"))
									|| childadrMap.get("chaf_skbt_no") == null || "".equals( (String)childadrMap.get("chaf_skbt_no"))
									|| childadrMap.get("chbf_skbt_no") == null || "".equals( (String)childadrMap.get("chbf_skbt_no"))) )
						{
							//宅内機器異動コードが移動の場合
							//住所変更明細更新
							template = editInMsgEKK2101C010(param, childadrMap, childKikiMap, ccMap, ADCHG_DTL_SBT_CD_03);
							// ◇ SC呼出実行
							result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
							// ◇ 下りマッピング処理
							editOutMsgEKK2101C010(result, param, dataMap, ccMap);
							//サービス契約内訳
							/* ++++++++++ v5.00.01 追加開始 ++++++++++ */
							if(svcKeiUcwkNo != null && !"".equals(svcKeiUcwkNo) && !ucwkMap.containsKey(svcKeiUcwkNo)
								&& childKikiMap.get("kiki_chg_no") != null && !"".equals(childKikiMap.get("kiki_chg_no")))
							{
								ucwkMap.put(svcKeiUcwkNo, TAKNKIKI_IDO_CD_04);
							}
							/* ++++++++++ v5.00.01 追加終了 ++++++++++ */
						 }
						/* ++++++++++ v7.00.03 修正終了 ++++++++++ */
						else if(childKikiMap.get("kiki_chg_no") != null && !"".equals(childKikiMap.get("kiki_chg_no"))
							&& (childadrMap.get("chbf_skbt_no") != null && !"".equals( (String)childadrMap.get("chbf_skbt_no"))))
						{
							//宅内機器異動コードが交換の場合
							//住所変更明細更新
							template = editInMsgEKK2101C010(param, childadrMap, childKikiMap, ccMap, ADCHG_DTL_SBT_CD_03);
							// ◇ SC呼出実行
							result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
							// ◇ 下りマッピング処理
							editOutMsgEKK2101C010(result, param, dataMap, ccMap);
							//サービス契約内訳
							/* ++++++++++ v5.00.01 追加開始 ++++++++++ */
							if(svcKeiUcwkNo != null && !"".equals(svcKeiUcwkNo) && !ucwkMap.containsKey(svcKeiUcwkNo))
							{
								ucwkMap.put(svcKeiUcwkNo, TAKNKIKI_IDO_CD_02);
							}
							/* ++++++++++ v5.00.01 追加終了 ++++++++++ */
						 }
						newKktkSvcNo = false;
						/* ++++++++++ v7.00.00 修正開始 ++++++++++ */
//							break;
						/* ++++++++++ v7.00.00 修正終了 ++++++++++ */
					}
					/* ++++++++++ v7.00.01 追加開始 ++++++++++ */
					else if(!"".equals(kkopSvcKeiNoNet) && ADCHG_DTL_SBT_CD_09.equals(adchg_dtl_sbt_cd) 
								&& !KKOP_SVC_KEI_NO_STAT_NON.equals(kkop_svc_kei_no_net_stat)  && TAKINO_ROUTER_ARI_CHG.equals(takino_router_ari))
					{
						if(TAKNKIKI_IDO_CD_03.equals( (String)childKikiMap.get("taknkiki_ido_cd_j")) && KKOP_SVC_KEI_NO_STAT_IDO.equals(kkop_svc_kei_no_net_stat))
						{
							//宅内機器異動コードが一部撤去の場合
							//住所変更明細更新
							template = editInMsgEKK2101C010(param, childadrMap, childKikiMap, ccMap, ADCHG_DTL_SBT_CD_03);
							// ◇ SC呼出実行
							result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
							// ◇ 下りマッピング処理
							editOutMsgEKK2101C010(result, param, dataMap, ccMap);
						}
						else if(TAKNKIKI_IDO_CD_03.equals( (String)childKikiMap.get("taknkiki_ido_cd_j")) && KKOP_SVC_KEI_NO_STAT_ADD.equals(kkop_svc_kei_no_net_stat))
						{
							//宅内機器異動コードが一部撤去の場合
							//住所変更明細論理削除
							template = editInMsgEKK2101E010(param, childadrMap, childKikiMap, ccMap);
							// ◇ SC呼出実行
							result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
							// ◇ 下りマッピング処理
							editOutMsgEKK2101E010(result, param, dataMap, ccMap);
						}
						else if(TAKNKIKI_IDO_CD_04.equals( (String)childKikiMap.get("taknkiki_ido_cd_j")) && KKOP_SVC_KEI_NO_STAT_DEL.equals(kkop_svc_kei_no_net_stat))
						{
							//宅内機器異動コードが移動の場合
							//住所変更明細更新
							template = editInMsgEKK2101C010(param, childadrMap, childKikiMap, ccMap, ADCHG_DTL_SBT_CD_03);
							// ◇ SC呼出実行
							result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
							// ◇ 下りマッピング処理
							editOutMsgEKK2101C010(result, param, dataMap, ccMap);
						 }
					}
					/* ++++++++++ v7.00.01 追加終了 ++++++++++ */
				}
	
				if(childKikiMap.get("kiki_chg_no") != null && !"".equals(childKikiMap.get("kiki_chg_no")))
				{
					if( newKktkSvcNo && (childKikiMap.get("taknkiki_ido_cd_j") == null
							|| TAKNKIKI_IDO_CD_01.equals( (String)childKikiMap.get("taknkiki_ido_cd_j"))
							|| TAKNKIKI_IDO_CD_01.equals( (String)childKikiMap.get("taknkiki_ido_cd"))
							|| "".equals( (String)childKikiMap.get("taknkiki_ido_cd_j"))))
					{
						//機器提供サービスコードが存在しない場合は新規登録
						//住所変更明細登録
						template = editInMsgEKK2101D010(param, childKikiMap, ccMap, ADCHG_DTL_SBT_CD_03);
						// ◇ SC呼出実行
						result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
						// ◇ 下りマッピング処理
						editOutMsgEKK2101D010(result, param, dataMap, ccMap);
						
						/* ++++++++++ v5.00.01 追加開始 ++++++++++ */
						//サービス契約内訳
						if(svcKeiUcwkNo != null && !"".equals(svcKeiUcwkNo) && !ucwkMap.containsKey(svcKeiUcwkNo))
						{
							//住所変更明細登録
							template = editInMsgEKK2101D010(param, childKikiMap, ccMap, ADCHG_DTL_SBT_CD_02);
							// ◇ SC呼出実行
							result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
							// ◇ 下りマッピング処理
							editOutMsgEKK2101D010(result, param, dataMap, ccMap);
							
							ucwkMap.put(svcKeiUcwkNo, TAKNKIKI_IDO_CD_01);
						}
						/* ++++++++++ v5.00.01 追加終了 ++++++++++ */
					}
				}
			}
			
			/* ++++++++++ v5.00.01 追加開始 ++++++++++ */
			//サービス契約内訳更新
			childKikiMap = new HashMap();
			for (int j = 0; j < adchgDtlList.size(); j++)
			{
				childadrMap = (HashMap)adchgDtlList.get(j);
				String adchg_dtl_sbt_cd = (String)childadrMap.get("adchg_dtl_sbt_cd");
				String chaf_skbt_no =  (String)childadrMap.get("chaf_skbt_no");
				String chbf_skbt_no =  (String)childadrMap.get("chbf_skbt_no");
				if(ADCHG_DTL_SBT_CD_02.equals(adchg_dtl_sbt_cd))
				{
					if(chaf_skbt_no != null && !"".equals(chaf_skbt_no) && ucwkMap.containsKey(chaf_skbt_no))
					{
						String idoCd = ucwkMap.get(chaf_skbt_no);
						childKikiMap.put("taknkiki_ido_cd_ucwk", idoCd);
						childKikiMap.put("svc_kei_ucwk_no", chaf_skbt_no);
						if(TAKNKIKI_IDO_CD_UCWK_05.equals(idoCd))
						{
							//新規作成（変更前識別番号なし）で宅内機器異動コードが一部撤去の場合は論理削除
							//住所変更明細論理削除
							template = editInMsgEKK2101E010(param, childadrMap, childKikiMap, ccMap);
							// ◇ SC呼出実行
							result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
							// ◇ 下りマッピング処理
							editOutMsgEKK2101E010(result, param, dataMap, ccMap);
						}
						else if(TAKNKIKI_IDO_CD_03.equals(idoCd) || TAKNKIKI_IDO_CD_02.equals(idoCd))
						{
							//住所変更明細更新
							childKikiMap.put("taknkiki_ido_cd_ucwk", idoCd);
							template = editInMsgEKK2101C010(param, childadrMap, childKikiMap, ccMap, ADCHG_DTL_SBT_CD_02);
							// ◇ SC呼出実行
							result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
							// ◇ 下りマッピング処理
							editOutMsgEKK2101C010(result, param, dataMap, ccMap);
						}
						
					}
					else if(chbf_skbt_no != null && !"".equals(chbf_skbt_no) && ucwkMap.containsKey(chbf_skbt_no))
					{
						String idoCd = ucwkMap.get(chbf_skbt_no);
						childKikiMap.put("taknkiki_ido_cd_ucwk", idoCd);
						childKikiMap.put("svc_kei_ucwk_no", chbf_skbt_no);
						if(TAKNKIKI_IDO_CD_04.equals(idoCd) || TAKNKIKI_IDO_CD_02.equals(idoCd))
						{
							//住所変更明細更新
							template = editInMsgEKK2101C010(param, childadrMap, childKikiMap, ccMap, ADCHG_DTL_SBT_CD_02);
							// ◇ SC呼出実行
							result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
							// ◇ 下りマッピング処理
							editOutMsgEKK2101C010(result, param, dataMap, ccMap);
						}
					}
				}
			}
			/* ++++++++++ v5.00.01 追加終了 ++++++++++ */
		}


		
		return param;
	}


	/**
	 * サービス契約回線内訳一意照会のマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	private CAANMsg editInMsgEKK0251A010(IRequestParameterReadWrite param, Map<String, Object> inMap, Map<String, Object> kojiInfoMap, Map<String, Object> ccMap) throws RequestParameterException
	{
		// サービス契約回線内訳一意照会サービスインターフェイスを作成
		CAANMsg template = new CAANMsg(EKK0251A010CBSMsg.class.getName());
		// テンプレートID
		template.set(EKK0251A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0251A010);
		// 機能コード
		template.set(EKK0251A010CBSMsg.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);
		
		// ◇ 業務データの設定
		// 機器提供サービス契約番号
		if(inMap.get("svc_kei_kaisen_ucwk_no") == null || "".equals(inMap.get("svc_kei_kaisen_ucwk_no")))
		{
			template.setNull(EKK0251A010CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO);
		}
		else
		{
			template.set(EKK0251A010CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, (String)inMap.get("svc_kei_kaisen_ucwk_no"));
		}
		
		return template;
	}

	/**
	 * サービス契約回線内訳一意照会の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param inMap
	 * @param ccMap
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void editOutMsgEKK0251A010(Map<?, ?> msgList, IRequestParameterReadWrite param, Map<String, Object> inMap, Map<String, Object> ccMap) throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		CAANMsg[] templateArray = null;
		// 結果を詰めるマップを取得
		ArrayList<HashMap<String, Object>> dataList = null;
		
		templateArray = parentTemplate.getCAANMsgList(EKK0251A010CBSMsg.EKK0251A010CBSMSG1LIST);
		dataList = (ArrayList)inMap.get("EKK0251A010CBSMsg1List");
		if (dataList == null)
		{
			dataList = new ArrayList();
		}
		
		
		if (templateArray != null )
		{

			CAANMsg childTemplate = templateArray[0];
			dataList.add(new HashMap());
			HashMap childMap = (HashMap)dataList.get(0);
			
			// 
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO)) {
				childMap.put("svc_kei_kaisen_ucwk_no", new String());
			} else {
				childMap.put("svc_kei_kaisen_ucwk_no", childTemplate.getString(EKK0251A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.GENE_ADD_DTM)) {
				childMap.put("gene_add_dtm", new String());
			} else {
				childMap.put("gene_add_dtm", childTemplate.getString(EKK0251A010CBSMsg1List.GENE_ADD_DTM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_STAT)) {
				childMap.put("svc_kei_kaisen_ucwk_stat", new String());
			} else {
				childMap.put("svc_kei_kaisen_ucwk_stat", childTemplate.getString(EKK0251A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_STAT));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_STAT_NM)) {
				childMap.put("svc_kei_kaisen_ucwk_stat_nm", new String());
			} else {
				childMap.put("svc_kei_kaisen_ucwk_stat_nm", childTemplate.getString(EKK0251A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_STAT_NM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.MSKM_DTL_NO)) {
				childMap.put("mskm_dtl_no", new String());
			} else {
				childMap.put("mskm_dtl_no", childTemplate.getString(EKK0251A010CBSMsg1List.MSKM_DTL_NO));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KISN_PLC_AD_MI_FIX_FLG)) {
				childMap.put("kisn_plc_ad_mi_fix_flg", new String());
			} else {
				childMap.put("kisn_plc_ad_mi_fix_flg", childTemplate.getString(EKK0251A010CBSMsg1List.KISN_PLC_AD_MI_FIX_FLG));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KISN_PLC_AD_MI_FIX_FLG_NM)) {
				childMap.put("kisn_plc_ad_mi_fix_flg_nm", new String());
			} else {
				childMap.put("kisn_plc_ad_mi_fix_flg_nm", childTemplate.getString(EKK0251A010CBSMsg1List.KISN_PLC_AD_MI_FIX_FLG_NM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KISN_PLC_AD_MI_FIX_RLS_YMD)) {
				childMap.put("kisn_plc_ad_mi_fix_rls_ymd", new String());
			} else {
				childMap.put("kisn_plc_ad_mi_fix_rls_ymd", childTemplate.getString(EKK0251A010CBSMsg1List.KISN_PLC_AD_MI_FIX_RLS_YMD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KAISEN_PLC_KSH_AD_SAI_FLG)) {
				childMap.put("kaisen_plc_ksh_ad_sai_flg", new String());
			} else {
				childMap.put("kaisen_plc_ksh_ad_sai_flg", childTemplate.getString(EKK0251A010CBSMsg1List.KAISEN_PLC_KSH_AD_SAI_FLG));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.CUST_SKK_AD_MI_FIX_FLG)) {
				childMap.put("cust_skk_ad_mi_fix_flg", new String());
			} else {
				childMap.put("cust_skk_ad_mi_fix_flg", childTemplate.getString(EKK0251A010CBSMsg1List.CUST_SKK_AD_MI_FIX_FLG));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.CUST_SKK_AD_MI_FIX_FLG_NM)) {
				childMap.put("cust_skk_ad_mi_fix_flg_nm", new String());
			} else {
				childMap.put("cust_skk_ad_mi_fix_flg_nm", childTemplate.getString(EKK0251A010CBSMsg1List.CUST_SKK_AD_MI_FIX_FLG_NM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.CUST_SOS_USE_UM)) {
				childMap.put("cust_sos_use_um", new String());
			} else {
				childMap.put("cust_sos_use_um", childTemplate.getString(EKK0251A010CBSMsg1List.CUST_SOS_USE_UM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.CUST_SOS_USE_UM_NM)) {
				childMap.put("cust_sos_use_um_nm", new String());
			} else {
				childMap.put("cust_sos_use_um_nm", childTemplate.getString(EKK0251A010CBSMsg1List.CUST_SOS_USE_UM_NM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KAISEN_CD)) {
				childMap.put("kaisen_cd", new String());
			} else {
				childMap.put("kaisen_cd", childTemplate.getString(EKK0251A010CBSMsg1List.KAISEN_CD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KAISEN_CD_NM)) {
				childMap.put("kaisen_cd_nm", new String());
			} else {
				childMap.put("kaisen_cd_nm", childTemplate.getString(EKK0251A010CBSMsg1List.KAISEN_CD_NM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.MANSION_BUKKEN_NO)) {
				childMap.put("mansion_bukken_no", new String());
			} else {
				childMap.put("mansion_bukken_no", childTemplate.getString(EKK0251A010CBSMsg1List.MANSION_BUKKEN_NO));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KAISEN_PLACE_TELNO)) {
				childMap.put("kaisen_place_telno", new String());
			} else {
				childMap.put("kaisen_place_telno", childTemplate.getString(EKK0251A010CBSMsg1List.KAISEN_PLACE_TELNO));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KAISEN_PLC_KANA)) {
				childMap.put("kaisen_plc_kana", new String());
			} else {
				childMap.put("kaisen_plc_kana", childTemplate.getString(EKK0251A010CBSMsg1List.KAISEN_PLC_KANA));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KAISEN_PLACE_AD_CD)) {
				childMap.put("kaisen_place_ad_cd", new String());
			} else {
				childMap.put("kaisen_place_ad_cd", childTemplate.getString(EKK0251A010CBSMsg1List.KAISEN_PLACE_AD_CD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KAISEN_PLACE_PCD)) {
				childMap.put("kaisen_place_pcd", new String());
			} else {
				childMap.put("kaisen_place_pcd", childTemplate.getString(EKK0251A010CBSMsg1List.KAISEN_PLACE_PCD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KAISEN_PLACE_STATE_NM)) {
				childMap.put("kaisen_place_state_nm", new String());
			} else {
				childMap.put("kaisen_place_state_nm", childTemplate.getString(EKK0251A010CBSMsg1List.KAISEN_PLACE_STATE_NM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KAISEN_PLACE_CITY_NM)) {
				childMap.put("kaisen_place_city_nm", new String());
			} else {
				childMap.put("kaisen_place_city_nm", childTemplate.getString(EKK0251A010CBSMsg1List.KAISEN_PLACE_CITY_NM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KAISEN_PLACE_OAZTSU_NM)) {
				childMap.put("kaisen_place_oaztsu_nm", new String());
			} else {
				childMap.put("kaisen_place_oaztsu_nm", childTemplate.getString(EKK0251A010CBSMsg1List.KAISEN_PLACE_OAZTSU_NM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KAISEN_PLACE_AZCHO_NM)) {
				childMap.put("kaisen_place_azcho_nm", new String());
			} else {
				childMap.put("kaisen_place_azcho_nm", childTemplate.getString(EKK0251A010CBSMsg1List.KAISEN_PLACE_AZCHO_NM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KAISEN_PLACE_BNCHIGO)) {
				childMap.put("kaisen_place_bnchigo", new String());
			} else {
				childMap.put("kaisen_place_bnchigo", childTemplate.getString(EKK0251A010CBSMsg1List.KAISEN_PLACE_BNCHIGO));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KAISEN_PLACE_ADRTTM)) {
				childMap.put("kaisen_place_adrttm", new String());
			} else {
				childMap.put("kaisen_place_adrttm", childTemplate.getString(EKK0251A010CBSMsg1List.KAISEN_PLACE_ADRTTM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KAISEN_PLACE_ADRRM)) {
				childMap.put("kaisen_place_adrrm", new String());
			} else {
				childMap.put("kaisen_place_adrrm", childTemplate.getString(EKK0251A010CBSMsg1List.KAISEN_PLACE_ADRRM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KAISEN_PLACE_NO)) {
				childMap.put("kaisen_place_no", new String());
			} else {
				childMap.put("kaisen_place_no", childTemplate.getString(EKK0251A010CBSMsg1List.KAISEN_PLACE_NO));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KISN_PLC_KKK_SEIRI_CHU_FLG)) {
				childMap.put("kisn_plc_kkk_seiri_chu_fl", new String());
			} else {
				childMap.put("kisn_plc_kkk_seiri_chu_fl", childTemplate.getString(EKK0251A010CBSMsg1List.KISN_PLC_KKK_SEIRI_CHU_FLG));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KISN_PLC_HSK_CD_1)) {
				childMap.put("kisn_plc_hsk_cd_1", new String());
			} else {
				childMap.put("kisn_plc_hsk_cd_1", childTemplate.getString(EKK0251A010CBSMsg1List.KISN_PLC_HSK_CD_1));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KISN_PLC_HSK_CD_2)) {
				childMap.put("kisn_plc_hsk_cd_2", new String());
			} else {
				childMap.put("kisn_plc_hsk_cd_2", childTemplate.getString(EKK0251A010CBSMsg1List.KISN_PLC_HSK_CD_2));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KISN_PLC_HSK_MEMO)) {
				childMap.put("kisn_plc_hsk_mem", new String());
			} else {
				childMap.put("kisn_plc_hsk_mem", childTemplate.getString(EKK0251A010CBSMsg1List.KISN_PLC_HSK_MEMO));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.USE_STAYMD)) {
				childMap.put("use_staymd", new String());
			} else {
				childMap.put("use_staymd", childTemplate.getString(EKK0251A010CBSMsg1List.USE_STAYMD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.AD_FORM_CD)) {
				childMap.put("ad_form_cd", new String());
			} else {
				childMap.put("ad_form_cd", childTemplate.getString(EKK0251A010CBSMsg1List.AD_FORM_CD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.AD_FORM_CD_NM)) {
				childMap.put("ad_form_cd_nm", new String());
			} else {
				childMap.put("ad_form_cd_nm", childTemplate.getString(EKK0251A010CBSMsg1List.AD_FORM_CD_NM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.SHUNKO_RSV_YMD)) {
				childMap.put("shunko_rsv_ymd", new String());
			} else {
				childMap.put("shunko_rsv_ymd", childTemplate.getString(EKK0251A010CBSMsg1List.SHUNKO_RSV_YMD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.EPOWER_SODEN_RSV_YMD)) {
				childMap.put("epower_soden_rsv_ymd", new String());
			} else {
				childMap.put("epower_soden_rsv_ymd", childTemplate.getString(EKK0251A010CBSMsg1List.EPOWER_SODEN_RSV_YMD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.NYUKYO_RSV_YMD)) {
				childMap.put("nyukyo_rsv_ymd", new String());
			} else {
				childMap.put("nyukyo_rsv_ymd", childTemplate.getString(EKK0251A010CBSMsg1List.NYUKYO_RSV_YMD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.HIKIWATASHI_RSV_YMD)) {
				childMap.put("hikiwatashi_rsv_ymd", new String());
			} else {
				childMap.put("hikiwatashi_rsv_ymd", childTemplate.getString(EKK0251A010CBSMsg1List.HIKIWATASHI_RSV_YMD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.HIKKOSHI_RSV_YMD)) {
				childMap.put("hikkoshi_rsv_ymd", new String());
			} else {
				childMap.put("hikkoshi_rsv_ymd", childTemplate.getString(EKK0251A010CBSMsg1List.HIKKOSHI_RSV_YMD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.XZAHYO)) {
				childMap.put("xzahyo", new String());
			} else {
				childMap.put("xzahyo", childTemplate.getString(EKK0251A010CBSMsg1List.XZAHYO));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.YZAHYO)) {
				childMap.put("yzahyo", new String());
			} else {
				childMap.put("yzahyo", childTemplate.getString(EKK0251A010CBSMsg1List.YZAHYO));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.LGTD)) {
				childMap.put("lgtd", new String());
			} else {
				childMap.put("lgtd", childTemplate.getString(EKK0251A010CBSMsg1List.LGTD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.LTTD)) {
				childMap.put("lttd", new String());
			} else {
				childMap.put("lttd", childTemplate.getString(EKK0251A010CBSMsg1List.LTTD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.TV_KOBET_TAIO_CD)) {
				childMap.put("tv_kobet_taio_cd", new String());
			} else {
				childMap.put("tv_kobet_taio_cd", childTemplate.getString(EKK0251A010CBSMsg1List.TV_KOBET_TAIO_CD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.TV_ANTENNA_UM)) {
				childMap.put("tv_antenna_um", new String());
			} else {
				childMap.put("tv_antenna_um", childTemplate.getString(EKK0251A010CBSMsg1List.TV_ANTENNA_UM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.TV_ANTENNA_UM_NM)) {
				childMap.put("tv_antenna_um_nm", new String());
			} else {
				childMap.put("tv_antenna_um_nm", childTemplate.getString(EKK0251A010CBSMsg1List.TV_ANTENNA_UM_NM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.DIRECTION_CD_1)) {
				childMap.put("direction_cd_1", new String());
			} else {
				childMap.put("direction_cd_1", childTemplate.getString(EKK0251A010CBSMsg1List.DIRECTION_CD_1));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.DIRECTION_CD_2)) {
				childMap.put("direction_cd_2", new String());
			} else {
				childMap.put("direction_cd_2", childTemplate.getString(EKK0251A010CBSMsg1List.DIRECTION_CD_2));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KODATE_KCKU_FLR_CNT_CD)) {
				childMap.put("kodate_kcku_flr_cnt_cd", new String());
			} else {
				childMap.put("kodate_kcku_flr_cnt_cd", childTemplate.getString(EKK0251A010CBSMsg1List.KODATE_KCKU_FLR_CNT_CD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.SHUGJ_NYUKYO_FLR_CNT_CD)) {
				childMap.put("shugj_nyukyo_flr_cnt_cd", new String());
			} else {
				childMap.put("shugj_nyukyo_flr_cnt_cd", childTemplate.getString(EKK0251A010CBSMsg1List.SHUGJ_NYUKYO_FLR_CNT_CD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.SHUGJ_NYUKYO_FLR_CNT_CD_NM)) {
				childMap.put("shugj_nyukyo_flr_cnt_cd_nm", new String());
			} else {
				childMap.put("shugj_nyukyo_flr_cnt_cd_nm", childTemplate.getString(EKK0251A010CBSMsg1List.SHUGJ_NYUKYO_FLR_CNT_CD_NM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.PON_SBT_CD)) {
				childMap.put("pon_sbt_cd", new String());
			} else {
				childMap.put("pon_sbt_cd", childTemplate.getString(EKK0251A010CBSMsg1List.PON_SBT_CD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.PON_SBT_CD_NM)) {
				childMap.put("pon_sbt_cd_nm", new String());
			} else {
				childMap.put("pon_sbt_cd_nm", childTemplate.getString(EKK0251A010CBSMsg1List.PON_SBT_CD_NM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.LOOPBACK_TEST_FIN_YMD)) {
				childMap.put("loopback_test_fin_ymd", new String());
			} else {
				childMap.put("loopback_test_fin_ymd", childTemplate.getString(EKK0251A010CBSMsg1List.LOOPBACK_TEST_FIN_YMD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KAISEN_TK_COMP_CD)) {
				childMap.put("kaisen_tk_comp_cd", new String());
			} else {
				childMap.put("kaisen_tk_comp_cd", childTemplate.getString(EKK0251A010CBSMsg1List.KAISEN_TK_COMP_CD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KAISEN_TK_COMP_CD_NM)) {
				childMap.put("kaisen_tk_comp_cd_nm", new String());
			} else {
				childMap.put("kaisen_tk_comp_cd_nm", childTemplate.getString(EKK0251A010CBSMsg1List.KAISEN_TK_COMP_CD_NM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.VDSL_USE_TEL_KISN_SBT_CD)) {
				childMap.put("vdsl_use_tel_kisn_sbt_cd", new String());
			} else {
				childMap.put("vdsl_use_tel_kisn_sbt_cd", childTemplate.getString(EKK0251A010CBSMsg1List.VDSL_USE_TEL_KISN_SBT_CD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.VDSL_USE_DKSN_SWCH_RSV_YMD)) {
				childMap.put("vdsl_use_dksn_swch_rsv_ymd", new String());
			} else {
				childMap.put("vdsl_use_dksn_swch_rsv_ymd", childTemplate.getString(EKK0251A010CBSMsg1List.VDSL_USE_DKSN_SWCH_RSV_YMD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.VDSL_USE_TG_DBKSN_SBT_CD)) {
				childMap.put("vdsl_use_tg_dbksn_sbt_cd", new String());
			} else {
				childMap.put("vdsl_use_tg_dbksn_sbt_cd", childTemplate.getString(EKK0251A010CBSMsg1List.VDSL_USE_TG_DBKSN_SBT_CD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.VDSL_USE_TG_TELNO)) {
				childMap.put("vdsl_use_tg_telno", new String());
			} else {
				childMap.put("vdsl_use_tg_telno", childTemplate.getString(EKK0251A010CBSMsg1List.VDSL_USE_TG_TELNO));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.IDO_DIV)) {
				childMap.put("ido_div", new String());
			} else {
				childMap.put("ido_div", childTemplate.getString(EKK0251A010CBSMsg1List.IDO_DIV));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.IDO_DIV_NM)) {
				childMap.put("ido_div_nm", new String());
			} else {
				childMap.put("ido_div_nm", childTemplate.getString(EKK0251A010CBSMsg1List.IDO_DIV_NM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.HIKKOSHI_YMD)) {
				childMap.put("hikkoshi_ymd", new String());
			} else {
				childMap.put("hikkoshi_ymd", childTemplate.getString(EKK0251A010CBSMsg1List.HIKKOSHI_YMD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.GAITO_AREA_SVC_STAYMD)) {
				childMap.put("gaito_area_svc_staymd", new String());
			} else {
				childMap.put("gaito_area_svc_staymd", childTemplate.getString(EKK0251A010CBSMsg1List.GAITO_AREA_SVC_STAYMD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.TEKKYO_KOJI_KIBO_YMD)) {
				childMap.put("tekkyo_koji_kibo_ymd", new String());
			} else {
				childMap.put("tekkyo_koji_kibo_ymd", childTemplate.getString(EKK0251A010CBSMsg1List.TEKKYO_KOJI_KIBO_YMD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.USE_ENDYMD)) {
				childMap.put("use_endymd", new String());
			} else {
				childMap.put("use_endymd", childTemplate.getString(EKK0251A010CBSMsg1List.USE_ENDYMD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KITEN_HDSHO_CD)) {
				childMap.put("kiten_hdsho_cd", new String());
			} else {
				childMap.put("kiten_hdsho_cd", childTemplate.getString(EKK0251A010CBSMsg1List.KITEN_HDSHO_CD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.SHYAKK_CD)) {
				childMap.put("shyakk_cd", new String());
			} else {
				childMap.put("shyakk_cd", childTemplate.getString(EKK0251A010CBSMsg1List.SHYAKK_CD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.SVC_CANCEL_YMD)) {
				childMap.put("svc_cancel_ymd", new String());
			} else {
				childMap.put("svc_cancel_ymd", childTemplate.getString(EKK0251A010CBSMsg1List.SVC_CANCEL_YMD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.SVC_CANCEL_RSN_CD)) {
				childMap.put("svc_cancel_rsn_cd", new String());
			} else {
				childMap.put("svc_cancel_rsn_cd", childTemplate.getString(EKK0251A010CBSMsg1List.SVC_CANCEL_RSN_CD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.SVKEI_KISN_UW_CNCL_CL_YMD)) {
				childMap.put("svkei_kisn_uw_cncl_cl_ymd", new String());
			} else {
				childMap.put("svkei_kisn_uw_cncl_cl_ymd", childTemplate.getString(EKK0251A010CBSMsg1List.SVKEI_KISN_UW_CNCL_CL_YMD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KEPCO_BUSIOFFICE_CD)) {
				childMap.put("kepco_busioffice_cd", new String());
			} else {
				childMap.put("kepco_busioffice_cd", childTemplate.getString(EKK0251A010CBSMsg1List.KEPCO_BUSIOFFICE_CD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.SKS_YO_KISN_PLACE_AD_RM_NO)) {
				childMap.put("sks_yo_kisn_place_ad_rm_no", new String());
			} else {
				childMap.put("sks_yo_kisn_place_ad_rm_no", childTemplate.getString(EKK0251A010CBSMsg1List.SKS_YO_KISN_PLACE_AD_RM_NO));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.TEL_BAS_HOST_ID)) {
				childMap.put("tel_bas_host_id", new String());
			} else {
				childMap.put("tel_bas_host_id", childTemplate.getString(EKK0251A010CBSMsg1List.TEL_BAS_HOST_ID));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.TEL_VLAN_ID)) {
				childMap.put("tel_vlan_id", new String());
			} else {
				childMap.put("tel_vlan_id", childTemplate.getString(EKK0251A010CBSMsg1List.TEL_VLAN_ID));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.VLAN_ID_FIX_FLG)) {
				childMap.put("vlan_id_fix_flg", new String());
			} else {
				childMap.put("vlan_id_fix_flg", childTemplate.getString(EKK0251A010CBSMsg1List.VLAN_ID_FIX_FLG));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.VLAN_ID_FIX_FLG_NM)) {
				childMap.put("vlan_id_fix_flg_nm", new String());
			} else {
				childMap.put("vlan_id_fix_flg_nm", childTemplate.getString(EKK0251A010CBSMsg1List.VLAN_ID_FIX_FLG_NM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.TEL_VLAN_ID_TRKM_YMD)) {
				childMap.put("tel_vlan_id_trkm_ymd", new String());
			} else {
				childMap.put("tel_vlan_id_trkm_ymd", childTemplate.getString(EKK0251A010CBSMsg1List.TEL_VLAN_ID_TRKM_YMD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.SKS_SHS_AD_CHG_UM)) {
				childMap.put("sks_shs_ad_chg_um", new String());
			} else {
				childMap.put("sks_shs_ad_chg_um", childTemplate.getString(EKK0251A010CBSMsg1List.SKS_SHS_AD_CHG_UM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.SKS_SHS_AD_CHG_UM_NM)) {
				childMap.put("sks_shs_ad_chg_um_nm", new String());
			} else {
				childMap.put("sks_shs_ad_chg_um_nm", childTemplate.getString(EKK0251A010CBSMsg1List.SKS_SHS_AD_CHG_UM_NM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.SKS_SHS_AD_CHG_KIBO_YMD)) {
				childMap.put("sks_shs_ad_chg_kibo_ymd", new String());
			} else {
				childMap.put("sks_shs_ad_chg_kibo_ymd", childTemplate.getString(EKK0251A010CBSMsg1List.SKS_SHS_AD_CHG_KIBO_YMD));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KSHAD_CHG_UM)) {
				childMap.put("kshad_chg_um", new String());
			} else {
				childMap.put("kshad_chg_um", childTemplate.getString(EKK0251A010CBSMsg1List.KSHAD_CHG_UM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KSHAD_CHG_UM_NM)) {
				childMap.put("kshad_chg_um_nm", new String());
			} else {
				childMap.put("kshad_chg_um_nm", childTemplate.getString(EKK0251A010CBSMsg1List.KSHAD_CHG_UM_NM));
			}
			if (childTemplate.isNull(EKK0251A010CBSMsg1List.KSHAD_CHG_KIBO_YMD)) {
				childMap.put("kshad_chg_kibo_ymd", new String());
			} else {
				childMap.put("kshad_chg_kibo_ymd", childTemplate.getString(EKK0251A010CBSMsg1List.KSHAD_CHG_KIBO_YMD));
			}

		}
	
		ccMap.put("EKK0251A010CBSMsg1List", dataList);
		
		
		// リターンコード取得
		int returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);
		// エラー情報の設定
		editErrorInfoEKK0251A010(param, inMap, templates, returnCode);
		
		//エラー情報のマップを取得
		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();
		Integer status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);
		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status.intValue()))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
	}

	/**
	 * サービス契約回線内訳一意照会のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @param templates
	 * @param returnCode
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrorInfoEKK0251A010(IRequestParameterReadWrite param, Map<String, Object> inMap,
																CAANMsg[] templates, int returnCode) throws RequestParameterException
	{
		CAANMsg template = templates[0];
		int templateStatus = template.getInt(EKK0251A010CBSMsg.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(EKK0251A010CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO_ERR))
		{
			if (!inMap.containsKey(EKK0251A010CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO_ERR))
			{
				inMap.put(EKK0251A010CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO_ERR, template.getString(EKK0251A010CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO_ERR));
			}
		}
		return param;
	}

	/**
	 * サービス契約回線内訳内容変更のマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings({ "unchecked", "unused" })
	private CAANMsg editInMsgEKK0251C030(IRequestParameterReadWrite param, Map<String, Object> inMap, Map<String, Object> kojiInfoMap, Map<String, Object> ccMap, String func_code) throws RequestParameterException
	{
		// サービス契約回線内訳内容変更サービスインターフェイスを作成
		CAANMsg template = new CAANMsg(EKK0251C030CBSMsg.class.getName());
		// テンプレートID
		template.set(EKK0251C030CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0251C030);
		// 機能コード
		template.set(EKK0251C030CBSMsg.FUNC_CODE, func_code);
		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);
		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);
		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);
		
		Map<String, Object> childMap = new HashMap<String, Object>();
		ArrayList<HashMap<String, Object>> dataList =(ArrayList<HashMap<String, Object>>) ccMap.get("EKK0251A010CBSMsg1List");
		if(dataList != null && dataList.size() > 0){
			childMap = (HashMap)dataList.get(0);
		}
		
		// 更新年月日時分秒(更新前)
		if(ccMap.get(KK_COM_SVC_UP_DTM) == null || "".equals(ccMap.get(KK_COM_SVC_UP_DTM)))
		{
			template.setNull(EKK0251C030CBSMsg.UPD_DTM_BF);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.UPD_DTM_BF, (String)ccMap.get(KK_COM_SVC_UP_DTM));
		}
		// ◇ 業務データの設定
		// 機器提供サービス契約番号
		if(childMap.get("svc_kei_kaisen_ucwk_no") == null || "".equals(childMap.get("svc_kei_kaisen_ucwk_no")))
		{
			template.setNull(EKK0251C030CBSMsg.SVC_KEI_KAISEN_UCWK_NO);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.SVC_KEI_KAISEN_UCWK_NO, (String)childMap.get("svc_kei_kaisen_ucwk_no"));
		}
		
		if((Boolean) ccMap.get("ad_chg"))
		{
			// 回線場所住所未確定フラグ
			if(inMap.get("kisn_plc_ad_mi_fix_flg") == null || "".equals(inMap.get("kisn_plc_ad_mi_fix_flg")))
			{
				template.setNull(EKK0251C030CBSMsg.KISN_PLC_AD_MI_FIX_FLG);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KISN_PLC_AD_MI_FIX_FLG, (String)inMap.get("kisn_plc_ad_mi_fix_flg"));
				// 回線場所住所チェックレベル
				if(KISN_PLC_AD_MI_FIX_FLG_1.equals((String)inMap.get("kisn_plc_ad_mi_fix_flg"))){
					template.set(EKK0251C030CBSMsg.KISN_AD_CHK_LV, KISN_AD_CHK_LV_2);
				}
				else
				{
					template.set(EKK0251C030CBSMsg.KISN_AD_CHK_LV, KISN_AD_CHK_LV_1);
				}
			}
			// 回線場所区画整理中フラグ
			if(inMap.get("kisn_plc_kkk_seiri_chu_flg") == null || "".equals(inMap.get("kisn_plc_kkk_seiri_chu_flg")))
			{
				template.setNull(EKK0251C030CBSMsg.KISN_PLC_KKK_SEIRI_CHU_FLG);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KISN_PLC_KKK_SEIRI_CHU_FLG, (String)inMap.get("kisn_plc_kkk_seiri_chu_flg"));
			}
			// 回線場所住所コード
			if(inMap.get("kaisen_place_ad_cd") == null || "".equals(inMap.get("kaisen_place_ad_cd")))
			{
				template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_AD_CD);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KAISEN_PLACE_AD_CD, (String)inMap.get("kaisen_place_ad_cd"));
			}
			// 回線場所郵便番号
			if(inMap.get("kaisen_place_pcd") == null || "".equals(inMap.get("kaisen_place_pcd")))
			{
				template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_PCD);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KAISEN_PLACE_PCD, (String)inMap.get("kaisen_place_pcd"));
			}
			// 回線場所都道府県名
			if(inMap.get("kaisen_place_state_nm") == null || "".equals(inMap.get("kaisen_place_state_nm")))
			{
				template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_STATE_NM);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KAISEN_PLACE_STATE_NM, (String)inMap.get("kaisen_place_state_nm"));
			}
			// 回線場所市区町村名
			if(inMap.get("kaisen_place_city_nm") == null || "".equals(inMap.get("kaisen_place_city_nm")))
			{
				template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_CITY_NM);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KAISEN_PLACE_CITY_NM, (String)inMap.get("kaisen_place_city_nm"));
			}
			// 回線場所大字通称名
			if(inMap.get("kaisen_place_oaztsu_nm") == null || "".equals(inMap.get("kaisen_place_oaztsu_nm")))
			{
				template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_OAZTSU_NM);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KAISEN_PLACE_OAZTSU_NM, (String)inMap.get("kaisen_place_oaztsu_nm"));
			}
			// 回線場所字丁目名
			if(inMap.get("kaisen_place_azcho_nm") == null || "".equals(inMap.get("kaisen_place_azcho_nm")))
			{
				template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_AZCHO_NM);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KAISEN_PLACE_AZCHO_NM, (String)inMap.get("kaisen_place_azcho_nm"));
			}
			// 回線場所番地号
			if(inMap.get("kaisen_place_bnchigo") == null || "".equals(inMap.get("kaisen_place_bnchigo")))
			{
				template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_BNCHIGO);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KAISEN_PLACE_BNCHIGO, (String)inMap.get("kaisen_place_bnchigo"));
			}
			// 回線場所住所補記・建物名
			if(inMap.get("kaisen_place_adrttm") == null || "".equals(inMap.get("kaisen_place_adrttm")))
			{
				template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_ADRTTM);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KAISEN_PLACE_ADRTTM, (String)inMap.get("kaisen_place_adrttm"));
			}
			// 回線場所住所補記・部屋番号
			if(inMap.get("kaisen_place_adrrm") == null || "".equals(inMap.get("kaisen_place_adrrm")))
			{
				template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_ADRRM);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KAISEN_PLACE_ADRRM, (String)inMap.get("kaisen_place_adrrm"));
			}
			// 回線場所補足メモ
			if(inMap.get("kisn_plc_hsk_memo") == null || "".equals(inMap.get("kisn_plc_hsk_memo")))
			{
				template.setNull(EKK0251C030CBSMsg.KISN_PLC_HSK_MEMO);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KISN_PLC_HSK_MEMO, (String)inMap.get("kisn_plc_hsk_memo"));
			}
			
		}
		else
		{
			// 回線場所住所未確定フラグ
			if(childMap.get("kisn_plc_ad_mi_fix_flg") == null || "".equals(childMap.get("kisn_plc_ad_mi_fix_flg")))
			{
				template.setNull(EKK0251C030CBSMsg.KISN_PLC_AD_MI_FIX_FLG);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KISN_PLC_AD_MI_FIX_FLG, (String)childMap.get("kisn_plc_ad_mi_fix_flg"));
			}
			// 回線場所区画整理中フラグ
			if(childMap.get("kisn_plc_kkk_seiri_chu_flg") == null || "".equals(childMap.get("kisn_plc_kkk_seiri_chu_flg")))
			{
				template.setNull(EKK0251C030CBSMsg.KISN_PLC_KKK_SEIRI_CHU_FLG);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KISN_PLC_KKK_SEIRI_CHU_FLG, (String)childMap.get("kisn_plc_kkk_seiri_chu_flg"));
			}
			// 回線場所住所コード
			if(childMap.get("kaisen_place_ad_cd") == null || "".equals(childMap.get("kaisen_place_ad_cd")))
			{
				template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_AD_CD);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KAISEN_PLACE_AD_CD, (String)childMap.get("kaisen_place_ad_cd"));
			}
			// 回線場所郵便番号
			if(childMap.get("kaisen_place_pcd") == null || "".equals(childMap.get("kaisen_place_pcd")))
			{
				template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_PCD);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KAISEN_PLACE_PCD, (String)childMap.get("kaisen_place_pcd"));
			}
			// 回線場所都道府県名
			if(childMap.get("kaisen_place_state_nm") == null || "".equals(childMap.get("kaisen_place_state_nm")))
			{
				template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_STATE_NM);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KAISEN_PLACE_STATE_NM, (String)childMap.get("kaisen_place_state_nm"));
			}
			// 回線場所市区町村名
			if(childMap.get("kaisen_place_city_nm") == null || "".equals(childMap.get("kaisen_place_city_nm")))
			{
				template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_CITY_NM);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KAISEN_PLACE_CITY_NM, (String)childMap.get("kaisen_place_city_nm"));
			}
			// 回線場所大字通称名
			if(childMap.get("kaisen_place_oaztsu_nm") == null || "".equals(childMap.get("kaisen_place_oaztsu_nm")))
			{
				template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_OAZTSU_NM);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KAISEN_PLACE_OAZTSU_NM, (String)childMap.get("kaisen_place_oaztsu_nm"));
			}
			// 回線場所字丁目名
			if(childMap.get("kaisen_place_azcho_nm") == null || "".equals(childMap.get("kaisen_place_azcho_nm")))
			{
				template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_AZCHO_NM);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KAISEN_PLACE_AZCHO_NM, (String)childMap.get("kaisen_place_azcho_nm"));
			}
			// 回線場所番地号
			if(childMap.get("kaisen_place_bnchigo") == null || "".equals(childMap.get("kaisen_place_bnchigo")))
			{
				template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_BNCHIGO);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KAISEN_PLACE_BNCHIGO, (String)childMap.get("kaisen_place_bnchigo"));
			}
			// 回線場所住所補記・建物名
			if(childMap.get("kaisen_place_adrttm") == null || "".equals(childMap.get("kaisen_place_adrttm")))
			{
				template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_ADRTTM);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KAISEN_PLACE_ADRTTM, (String)childMap.get("kaisen_place_adrttm"));
			}
			// 回線場所住所補記・部屋番号
			if(childMap.get("kaisen_place_adrrm") == null || "".equals(childMap.get("kaisen_place_adrrm")))
			{
				template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_ADRRM);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KAISEN_PLACE_ADRRM, (String)childMap.get("kaisen_place_adrrm"));
			}
			// 回線場所補足メモ
			if(childMap.get("kisn_plc_hsk_memo") == null || "".equals(childMap.get("kisn_plc_hsk_memo")))
			{
				template.setNull(EKK0251C030CBSMsg.KISN_PLC_HSK_MEMO);
			}
			else
			{
				template.set(EKK0251C030CBSMsg.KISN_PLC_HSK_MEMO, (String)childMap.get("kisn_plc_hsk_memo"));
			}
		}

		// ******変更しない項目**************************
		
		
		// 申込明細番号
		if(childMap.get("mskm_dtl_no") == null || "".equals(childMap.get("mskm_dtl_no")))
		{
			template.setNull(EKK0251C030CBSMsg.MSKM_DTL_NO);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.MSKM_DTL_NO, (String)childMap.get("mskm_dtl_no"));
		}
		// 回線場所住所未確定解除年月日
		if(childMap.get("kisn_plc_ad_mi_fix_rls_ymd") == null || "".equals(childMap.get("kisn_plc_ad_mi_fix_rls_ymd")))
		{
			template.setNull(EKK0251C030CBSMsg.KISN_PLC_AD_MI_FIX_RLS_YMD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.KISN_PLC_AD_MI_FIX_RLS_YMD, (String)childMap.get("kisn_plc_ad_mi_fix_rls_ymd"));
		}
		// 回線場所_契約者住所差異フラグ
		if(childMap.get("kaisen_plc_ksh_ad_sai_flg") == null || "".equals(childMap.get("kaisen_plc_ksh_ad_sai_flg")))
		{
			template.setNull(EKK0251C030CBSMsg.KAISEN_PLC_KSH_AD_SAI_FLG);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.KAISEN_PLC_KSH_AD_SAI_FLG, (String)childMap.get("kaisen_plc_ksh_ad_sai_flg"));
		}
		// お客様申告住所未確定フラグ
		if(childMap.get("cust_skk_ad_mi_fix_flg") == null || "".equals(childMap.get("cust_skk_ad_mi_fix_flg")))
		{
			template.setNull(EKK0251C030CBSMsg.CUST_SKK_AD_MI_FIX_FLG);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.CUST_SKK_AD_MI_FIX_FLG, (String)childMap.get("cust_skk_ad_mi_fix_flg"));
		}
		// お客様SOS利用有無
		if(childMap.get("cust_sos_use_um") == null || "".equals(childMap.get("cust_sos_use_um")))
		{
			template.setNull(EKK0251C030CBSMsg.CUST_SOS_USE_UM);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.CUST_SOS_USE_UM, (String)childMap.get("cust_sos_use_um"));
		}
		// マンション物件番号
		if(childMap.get("mansion_bukken_no") == null || "".equals(childMap.get("mansion_bukken_no")))
		{
			template.setNull(EKK0251C030CBSMsg.MANSION_BUKKEN_NO);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.MANSION_BUKKEN_NO, (String)childMap.get("mansion_bukken_no"));
		}
		// 回線場所電話番号
		if(childMap.get("kaisen_place_telno") == null || "".equals(childMap.get("kaisen_place_telno")))
		{
			template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_TELNO);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.KAISEN_PLACE_TELNO, (String)childMap.get("kaisen_place_telno"));
		}
		// 回線場所カナ名
		if(childMap.get("kaisen_plc_kana") == null || "".equals(childMap.get("kaisen_plc_kana")))
		{
			template.setNull(EKK0251C030CBSMsg.KAISEN_PLC_KANA);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.KAISEN_PLC_KANA, (String)childMap.get("kaisen_plc_kana"));
		}
		// 回線場所番号
		if(childMap.get("kaisen_place_no") == null || "".equals(childMap.get("kaisen_place_no")))
		{
			template.setNull(EKK0251C030CBSMsg.KAISEN_PLACE_NO);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.KAISEN_PLACE_NO, (String)childMap.get("kaisen_place_no"));
		}
		// 回線場所補足コード1
		if(childMap.get("kisn_plc_hsk_cd_1") == null || "".equals(childMap.get("kisn_plc_hsk_cd_1")))
		{
			template.setNull(EKK0251C030CBSMsg.KISN_PLC_HSK_CD_1);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.KISN_PLC_HSK_CD_1, (String)childMap.get("kisn_plc_hsk_cd_1"));
		}
		// 回線場所補足コード2
		if(childMap.get("kisn_plc_hsk_cd_2") == null || "".equals(childMap.get("kisn_plc_hsk_cd_2")))
		{
			template.setNull(EKK0251C030CBSMsg.KISN_PLC_HSK_CD_2);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.KISN_PLC_HSK_CD_2, (String)childMap.get("kisn_plc_hsk_cd_2"));
		}
		// 住所形態コード
		if(childMap.get("ad_form_cd") == null || "".equals(childMap.get("ad_form_cd")))
		{
			template.setNull(EKK0251C030CBSMsg.AD_FORM_CD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.AD_FORM_CD, (String)childMap.get("ad_form_cd"));
		}
		// 竣工予定年月日
		if(childMap.get("shunko_rsv_ymd") == null || "".equals(childMap.get("shunko_rsv_ymd")))
		{
			template.setNull(EKK0251C030CBSMsg.SHUNKO_RSV_YMD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.SHUNKO_RSV_YMD, (String)childMap.get("shunko_rsv_ymd"));
		}
		// 電力送電予定年月日
		if(childMap.get("epower_soden_rsv_ymd") == null || "".equals(childMap.get("epower_soden_rsv_ymd")))
		{
			template.setNull(EKK0251C030CBSMsg.EPOWER_SODEN_RSV_YMD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.EPOWER_SODEN_RSV_YMD, (String)childMap.get("epower_soden_rsv_ymd"));
		}
		// 入居予定年月日
		if(childMap.get("nyukyo_rsv_ymd") == null || "".equals(childMap.get("nyukyo_rsv_ymd")))
		{
			template.setNull(EKK0251C030CBSMsg.NYUKYO_RSV_YMD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.NYUKYO_RSV_YMD, (String)childMap.get("nyukyo_rsv_ymd"));
		}
		// 引渡し予定年月日
		if(childMap.get("hikiwatashi_rsv_ymd") == null || "".equals(childMap.get("hikiwatashi_rsv_ymd")))
		{
			template.setNull(EKK0251C030CBSMsg.HIKIWATASHI_RSV_YMD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.HIKIWATASHI_RSV_YMD, (String)childMap.get("hikiwatashi_rsv_ymd"));
		}
		// 引越し予定年月日
		if(childMap.get("hikkoshi_rsv_ymd") == null || "".equals(childMap.get("hikkoshi_rsv_ymd")))
		{
			template.setNull(EKK0251C030CBSMsg.HIKKOSHI_RSV_YMD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.HIKKOSHI_RSV_YMD, (String)childMap.get("hikkoshi_rsv_ymd"));
		}
		// X座標
		if(childMap.get("xzahyo") == null || "".equals(childMap.get("xzahyo")))
		{
			template.setNull(EKK0251C030CBSMsg.XZAHYO);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.XZAHYO, (String)childMap.get("xzahyo"));
		}
		// Y座標
		if(childMap.get("yzahyo") == null || "".equals(childMap.get("yzahyo")))
		{
			template.setNull(EKK0251C030CBSMsg.YZAHYO);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.YZAHYO, (String)childMap.get("yzahyo"));
		}
		// 経度
		if(childMap.get("lgtd") == null || "".equals(childMap.get("lgtd")))
		{
			template.setNull(EKK0251C030CBSMsg.LGTD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.LGTD, (String)childMap.get("lgtd"));
		}
		// 緯度
		if(childMap.get("lttd") == null || "".equals(childMap.get("lttd")))
		{
			template.setNull(EKK0251C030CBSMsg.LTTD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.LTTD, (String)childMap.get("lttd"));
		}
		// 座標補正有無
		if(childMap.get("zahyo_hosei_um") == null || "".equals(childMap.get("zahyo_hosei_um")))
		{
			template.setNull(EKK0251C030CBSMsg.ZAHYO_HOSEI_UM);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.ZAHYO_HOSEI_UM, (String)childMap.get("zahyo_hosei_um"));
		}
		// テレビ個別対応コード
		if(childMap.get("tv_kobet_taio_cd") == null || "".equals(childMap.get("tv_kobet_taio_cd")))
		{
			template.setNull(EKK0251C030CBSMsg.TV_KOBET_TAIO_CD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.TV_KOBET_TAIO_CD, (String)childMap.get("tv_kobet_taio_cd"));
		}
		// TVアンテナ有無
		if(childMap.get("tv_antenna_um") == null || "".equals(childMap.get("tv_antenna_um")))
		{
			template.setNull(EKK0251C030CBSMsg.TV_ANTENNA_UM);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.TV_ANTENNA_UM, (String)childMap.get("tv_antenna_um"));
		}
		// 方角コード1
		if(childMap.get("direction_cd_1") == null || "".equals(childMap.get("direction_cd_1")))
		{
			template.setNull(EKK0251C030CBSMsg.DIRECTION_CD_1);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.DIRECTION_CD_1, (String)childMap.get("direction_cd_1"));
		}
		// 方角コード2
		if(childMap.get("direction_cd_2") == null || "".equals(childMap.get("direction_cd_2")))
		{
			template.setNull(EKK0251C030CBSMsg.DIRECTION_CD_2);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.DIRECTION_CD_2, (String)childMap.get("direction_cd_2"));
		}
		// 戸建建築階数コード
		if(childMap.get("kodate_kcku_flr_cnt_cd") == null || "".equals(childMap.get("kodate_kcku_flr_cnt_cd")))
		{
			template.setNull(EKK0251C030CBSMsg.KODATE_KCKU_FLR_CNT_CD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.KODATE_KCKU_FLR_CNT_CD, (String)childMap.get("kodate_kcku_flr_cnt_cd"));
		}
		// 集合住宅入居階数コード
		if(childMap.get("shugj_nyukyo_flr_cnt_cd") == null || "".equals(childMap.get("shugj_nyukyo_flr_cnt_cd")))
		{
			template.setNull(EKK0251C030CBSMsg.SHUGJ_NYUKYO_FLR_CNT_CD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.SHUGJ_NYUKYO_FLR_CNT_CD, (String)childMap.get("shugj_nyukyo_flr_cnt_cd"));
		}
		// PON種別コード
		if(childMap.get("pon_sbt_cd") == null || "".equals(childMap.get("pon_sbt_cd")))
		{
			template.setNull(EKK0251C030CBSMsg.PON_SBT_CD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.PON_SBT_CD, (String)childMap.get("pon_sbt_cd"));
		}
		// 回線提供会社コード
		if(childMap.get("kaisen_tk_comp_cd") == null || "".equals(childMap.get("kaisen_tk_comp_cd")))
		{
			template.setNull(EKK0251C030CBSMsg.KAISEN_TK_COMP_CD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.KAISEN_TK_COMP_CD, (String)childMap.get("kaisen_tk_comp_cd"));
		}
		// VDSL利用電話回線種別コード
		if(childMap.get("vdsl_use_tel_kisn_sbt_cd") == null || "".equals(childMap.get("vdsl_use_tel_kisn_sbt_cd")))
		{
			template.setNull(EKK0251C030CBSMsg.VDSL_USE_TEL_KISN_SBT_CD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.VDSL_USE_TEL_KISN_SBT_CD, (String)childMap.get("vdsl_use_tel_kisn_sbt_cd"));
		}
		// VDSL利用電話回線切替予定年月日
		if(childMap.get("vdsl_use_dksn_swch_rsv_ymd") == null || "".equals(childMap.get("vdsl_use_dksn_swch_rsv_ymd")))
		{
			template.setNull(EKK0251C030CBSMsg.VDSL_USE_DKSN_SWCH_RSV_YMD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.VDSL_USE_DKSN_SWCH_RSV_YMD, (String)childMap.get("vdsl_use_dksn_swch_rsv_ymd"));
		}
		// VDSL利用対象電話番号回線種別コード
		if(childMap.get("vdsl_use_tg_dbksn_sbt_cd") == null || "".equals(childMap.get("vdsl_use_tg_dbksn_sbt_cd")))
		{
			template.setNull(EKK0251C030CBSMsg.VDSL_USE_TG_DBKSN_SBT_CD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.VDSL_USE_TG_DBKSN_SBT_CD, (String)childMap.get("vdsl_use_tg_dbksn_sbt_cd"));
		}
		// VDSL利用対象電話番号
		if(childMap.get("vdsl_use_tg_telno") == null || "".equals(childMap.get("vdsl_use_tg_telno")))
		{
			template.setNull(EKK0251C030CBSMsg.VDSL_USE_TG_TELNO);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.VDSL_USE_TG_TELNO, (String)childMap.get("vdsl_use_tg_telno"));
		}
		// 引越し年月日
		if(childMap.get("hikkoshi_ymd") == null || "".equals(childMap.get("hikkoshi_ymd")))
		{
			template.setNull(EKK0251C030CBSMsg.HIKKOSHI_YMD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.HIKKOSHI_YMD, (String)childMap.get("hikkoshi_ymd"));
		}
		// 該当エリアサービス開始年月日
		if(childMap.get("gaito_area_svc_staymd") == null || "".equals(childMap.get("gaito_area_svc_staymd")))
		{
			template.setNull(EKK0251C030CBSMsg.GAITO_AREA_SVC_STAYMD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.GAITO_AREA_SVC_STAYMD, (String)childMap.get("gaito_area_svc_staymd"));
		}
		// 撤去工事希望年月日
		if(childMap.get("tekkyo_koji_kibo_ymd") == null || "".equals(childMap.get("tekkyo_koji_kibo_ymd")))
		{
			template.setNull(EKK0251C030CBSMsg.TEKKYO_KOJI_KIBO_YMD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.TEKKYO_KOJI_KIBO_YMD, (String)childMap.get("tekkyo_koji_kibo_ymd"));
		}
		// 起点変電所コード
		if(childMap.get("kiten_hdsho_cd") == null || "".equals(childMap.get("kiten_hdsho_cd")))
		{
			template.setNull(EKK0251C030CBSMsg.KITEN_HDSHO_CD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.KITEN_HDSHO_CD, (String)childMap.get("kiten_hdsho_cd"));
		}
		// 集約局コード
		if(childMap.get("shyakk_cd") == null || "".equals(childMap.get("shyakk_cd")))
		{
			template.setNull(EKK0251C030CBSMsg.SHYAKK_CD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.SHYAKK_CD, (String)childMap.get("shyakk_cd"));
		}
		// 関電営業所コード
		if(childMap.get("kepco_busioffice_cd") == null || "".equals(childMap.get("kepco_busioffice_cd")))
		{
			template.setNull(EKK0251C030CBSMsg.KEPCO_BUSIOFFICE_CD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.KEPCO_BUSIOFFICE_CD, (String)childMap.get("kepco_busioffice_cd"));
		}
		// 請求書用回線場所住所部屋番号
		if(childMap.get("sks_yo_kisn_place_ad_rm_no") == null || "".equals(childMap.get("sks_yo_kisn_place_ad_rm_no")))
		{
			template.setNull(EKK0251C030CBSMsg.SKS_YO_KISN_PLACE_AD_RM_NO);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.SKS_YO_KISN_PLACE_AD_RM_NO, (String)childMap.get("svc_kei_kaisen_ucwk_no"));
		}
		// 電話BASホストID
		if(childMap.get("tel_bas_host_id") == null || "".equals(childMap.get("tel_bas_host_id")))
		{
			template.setNull(EKK0251C030CBSMsg.TEL_BAS_HOST_ID);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.TEL_BAS_HOST_ID, (String)childMap.get("tel_bas_host_id"));
		}
		// 電話VLAN-ID
		if(childMap.get("tel_vlan_id") == null || "".equals(childMap.get("tel_vlan_id")))
		{
			template.setNull(EKK0251C030CBSMsg.TEL_VLAN_ID);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.TEL_VLAN_ID, (String)childMap.get("tel_vlan_id"));
		}
		// VLAN-ID確定フラグ
		if(childMap.get("vlan_id_fix_flg") == null || "".equals(childMap.get("vlan_id_fix_flg")))
		{
			template.setNull(EKK0251C030CBSMsg.VLAN_ID_FIX_FLG);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.VLAN_ID_FIX_FLG, (String)childMap.get("vlan_id_fix_flg"));
		}
		// 電話VLAN-ID取込年月日
		if(childMap.get("tel_vlan_id_trkm_ymd") == null || "".equals(childMap.get("tel_vlan_id_trkm_ymd")))
		{
			template.setNull(EKK0251C030CBSMsg.TEL_VLAN_ID_TRKM_YMD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.TEL_VLAN_ID_TRKM_YMD, (String)childMap.get("tel_vlan_id_trkm_ymd"));
		}
		// 請求書送付先住所変更有無
		if(childMap.get("sks_shs_ad_chg_um") == null || "".equals(childMap.get("sks_shs_ad_chg_um")))
		{
			template.setNull(EKK0251C030CBSMsg.SKS_SHS_AD_CHG_UM);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.SKS_SHS_AD_CHG_UM, (String)childMap.get("sks_shs_ad_chg_um"));
		}
		// 請求書送付先住所変更希望年月日
		if(childMap.get("sks_shs_ad_chg_kibo_ymd") == null || "".equals(childMap.get("sks_shs_ad_chg_kibo_ymd")))
		{
			template.setNull(EKK0251C030CBSMsg.SKS_SHS_AD_CHG_KIBO_YMD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.SKS_SHS_AD_CHG_KIBO_YMD, (String)childMap.get("sks_shs_ad_chg_kibo_ymd"));
		}
		// 契約者住所変更有無
		if(childMap.get("kshad_chg_um") == null || "".equals(childMap.get("kshad_chg_um")))
		{
			template.setNull(EKK0251C030CBSMsg.KSHAD_CHG_UM);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.KSHAD_CHG_UM, (String)childMap.get("kshad_chg_um"));
		}
		// 契約者住所変更希望年月日
		if(childMap.get("kshad_chg_kibo_ymd") == null || "".equals(childMap.get("kshad_chg_kibo_ymd")))
		{
			template.setNull(EKK0251C030CBSMsg.KSHAD_CHG_KIBO_YMD);
		}
		else
		{
			template.set(EKK0251C030CBSMsg.KSHAD_CHG_KIBO_YMD, (String)childMap.get("kshad_chg_kibo_ymd"));
		}
		
		return template;
	}

	/**
	 * サービス契約回線内訳内容変更の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param inMap
	 * @param ccMap
	 * @throws Exception
	 */
	@SuppressWarnings({ "unchecked", "unused" })
	private void editOutMsgEKK0251C030(Map<?, ?> msgList, IRequestParameterReadWrite param, Map<String, Object> inMap, Map<String, Object> ccMap) throws Exception
	{
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		// 更新年月日時分秒を作業領域に設定
		setSvcUpdDtm(param, parentTemplate.getString(EKK0251C030CBSMsg.UPD_DTM), ccMap);
		// リターンコード取得
		int returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);
		// エラー情報の設定
		editErrorInfoEKK0251C030(param, inMap, templates, returnCode);
		
		//エラー情報のマップを取得
		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();
		Integer status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);
		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status.intValue()))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
	}

	/**
	 * サービス契約回線内訳内容変更のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @param templates
	 * @param returnCode
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrorInfoEKK0251C030(IRequestParameterReadWrite param, Map<String, Object> inMap,
																CAANMsg[] templates, int returnCode) throws RequestParameterException
	{
		CAANMsg template = templates[0];
		int templateStatus = template.getInt(EKK0251C030CBSMsg.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(EKK0251C030CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR, template.getString(EKK0251C030CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR));
			}
		}
		// 申込明細番号
		if (!template.isNull(EKK0251C030CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.MSKM_DTL_NO_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.MSKM_DTL_NO_ERR, template.getString(EKK0251C030CBSMsg.MSKM_DTL_NO_ERR));
			}
		}
		// 回線場所住所未確定フラグ
		if (!template.isNull(EKK0251C030CBSMsg.KISN_PLC_AD_MI_FIX_FLG_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KISN_PLC_AD_MI_FIX_FLG_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KISN_PLC_AD_MI_FIX_FLG_ERR, template.getString(EKK0251C030CBSMsg.KISN_PLC_AD_MI_FIX_FLG_ERR));
			}
		}
		// 回線場所住所未確定解除年月日
		if (!template.isNull(EKK0251C030CBSMsg.KISN_PLC_AD_MI_FIX_RLS_YMD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KISN_PLC_AD_MI_FIX_RLS_YMD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KISN_PLC_AD_MI_FIX_RLS_YMD_ERR, template.getString(EKK0251C030CBSMsg.KISN_PLC_AD_MI_FIX_RLS_YMD_ERR));
			}
		}
		// 回線場所_契約者住所差異フラグ
		if (!template.isNull(EKK0251C030CBSMsg.KAISEN_PLC_KSH_AD_SAI_FLG_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KAISEN_PLC_KSH_AD_SAI_FLG_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KAISEN_PLC_KSH_AD_SAI_FLG_ERR, template.getString(EKK0251C030CBSMsg.KAISEN_PLC_KSH_AD_SAI_FLG_ERR));
			}
		}
		// お客様申告住所未確定フラグ
		if (!template.isNull(EKK0251C030CBSMsg.CUST_SKK_AD_MI_FIX_FLG_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.CUST_SKK_AD_MI_FIX_FLG_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.CUST_SKK_AD_MI_FIX_FLG_ERR, template.getString(EKK0251C030CBSMsg.CUST_SKK_AD_MI_FIX_FLG_ERR));
			}
		}
		// お客様SOS利用有無
		if (!template.isNull(EKK0251C030CBSMsg.CUST_SOS_USE_UM_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.CUST_SOS_USE_UM_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.CUST_SOS_USE_UM_ERR, template.getString(EKK0251C030CBSMsg.CUST_SOS_USE_UM_ERR));
			}
		}
		// マンション物件番号
		if (!template.isNull(EKK0251C030CBSMsg.MANSION_BUKKEN_NO_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.MANSION_BUKKEN_NO_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.MANSION_BUKKEN_NO_ERR, template.getString(EKK0251C030CBSMsg.MANSION_BUKKEN_NO_ERR));
			}
		}
		// 回線場所電話番号
		if (!template.isNull(EKK0251C030CBSMsg.KAISEN_PLACE_TELNO_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KAISEN_PLACE_TELNO_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KAISEN_PLACE_TELNO_ERR, template.getString(EKK0251C030CBSMsg.KAISEN_PLACE_TELNO_ERR));
			}
		}
		// 回線場所カナ名
		if (!template.isNull(EKK0251C030CBSMsg.KAISEN_PLC_KANA_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KAISEN_PLC_KANA_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KAISEN_PLC_KANA_ERR, template.getString(EKK0251C030CBSMsg.KAISEN_PLC_KANA_ERR));
			}
		}
		// 回線場所住所コード
		if (!template.isNull(EKK0251C030CBSMsg.KAISEN_PLACE_AD_CD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KAISEN_PLACE_AD_CD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KAISEN_PLACE_AD_CD_ERR, template.getString(EKK0251C030CBSMsg.KAISEN_PLACE_AD_CD_ERR));
			}
		}
		// 回線場所郵便番号
		if (!template.isNull(EKK0251C030CBSMsg.KAISEN_PLACE_PCD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KAISEN_PLACE_PCD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KAISEN_PLACE_PCD_ERR, template.getString(EKK0251C030CBSMsg.KAISEN_PLACE_PCD_ERR));
			}
		}
		// 回線場所都道府県名
		if (!template.isNull(EKK0251C030CBSMsg.KAISEN_PLACE_STATE_NM_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KAISEN_PLACE_STATE_NM_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KAISEN_PLACE_STATE_NM_ERR, template.getString(EKK0251C030CBSMsg.KAISEN_PLACE_STATE_NM_ERR));
			}
		}
		// 回線場所市区町村名
		if (!template.isNull(EKK0251C030CBSMsg.KAISEN_PLACE_CITY_NM_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KAISEN_PLACE_CITY_NM_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KAISEN_PLACE_CITY_NM_ERR, template.getString(EKK0251C030CBSMsg.KAISEN_PLACE_CITY_NM_ERR));
			}
		}
		// 回線場所大字通称名
		if (!template.isNull(EKK0251C030CBSMsg.KAISEN_PLACE_OAZTSU_NM_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KAISEN_PLACE_OAZTSU_NM_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KAISEN_PLACE_OAZTSU_NM_ERR, template.getString(EKK0251C030CBSMsg.KAISEN_PLACE_OAZTSU_NM_ERR));
			}
		}
		// 回線場所字丁目名
		if (!template.isNull(EKK0251C030CBSMsg.KAISEN_PLACE_AZCHO_NM_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KAISEN_PLACE_AZCHO_NM_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KAISEN_PLACE_AZCHO_NM_ERR, template.getString(EKK0251C030CBSMsg.KAISEN_PLACE_AZCHO_NM_ERR));
			}
		}
		// 回線場所番地号
		if (!template.isNull(EKK0251C030CBSMsg.KAISEN_PLACE_BNCHIGO_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KAISEN_PLACE_BNCHIGO_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KAISEN_PLACE_BNCHIGO_ERR, template.getString(EKK0251C030CBSMsg.KAISEN_PLACE_BNCHIGO_ERR));
			}
		}
		// 回線場所住所補記・建物名
		if (!template.isNull(EKK0251C030CBSMsg.KAISEN_PLACE_ADRTTM_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KAISEN_PLACE_ADRTTM_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KAISEN_PLACE_ADRTTM_ERR, template.getString(EKK0251C030CBSMsg.KAISEN_PLACE_ADRTTM_ERR));
			}
		}
		// 回線場所住所補記・部屋番号
		if (!template.isNull(EKK0251C030CBSMsg.KAISEN_PLACE_ADRRM_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KAISEN_PLACE_ADRRM_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KAISEN_PLACE_ADRRM_ERR, template.getString(EKK0251C030CBSMsg.KAISEN_PLACE_ADRRM_ERR));
			}
		}
		// 回線場所番号
		if (!template.isNull(EKK0251C030CBSMsg.KAISEN_PLACE_NO_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KAISEN_PLACE_NO_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KAISEN_PLACE_NO_ERR, template.getString(EKK0251C030CBSMsg.KAISEN_PLACE_NO_ERR));
			}
		}
		// 回線場所区画整理中フラグ
		if (!template.isNull(EKK0251C030CBSMsg.KISN_PLC_KKK_SEIRI_CHU_FLG_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KISN_PLC_KKK_SEIRI_CHU_FLG_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KISN_PLC_KKK_SEIRI_CHU_FLG_ERR, template.getString(EKK0251C030CBSMsg.KISN_PLC_KKK_SEIRI_CHU_FLG_ERR));
			}
		}
		// 回線場所補足コード1
		if (!template.isNull(EKK0251C030CBSMsg.KISN_PLC_HSK_CD_1_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KISN_PLC_HSK_CD_1_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KISN_PLC_HSK_CD_1_ERR, template.getString(EKK0251C030CBSMsg.KISN_PLC_HSK_CD_1_ERR));
			}
		}
		// 回線場所補足コード2
		if (!template.isNull(EKK0251C030CBSMsg.KISN_PLC_HSK_CD_2_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KISN_PLC_HSK_CD_2_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KISN_PLC_HSK_CD_2_ERR, template.getString(EKK0251C030CBSMsg.KISN_PLC_HSK_CD_2_ERR));
			}
		}
		// 回線場所補足メモ
		if (!template.isNull(EKK0251C030CBSMsg.KISN_PLC_HSK_MEMO_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KISN_PLC_HSK_MEMO_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KISN_PLC_HSK_MEMO_ERR, template.getString(EKK0251C030CBSMsg.KISN_PLC_HSK_MEMO_ERR));
			}
		}
		// 住所形態コード
		if (!template.isNull(EKK0251C030CBSMsg.AD_FORM_CD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.AD_FORM_CD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.AD_FORM_CD_ERR, template.getString(EKK0251C030CBSMsg.AD_FORM_CD_ERR));
			}
		}
		// 竣工予定年月日
		if (!template.isNull(EKK0251C030CBSMsg.SHUNKO_RSV_YMD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.SHUNKO_RSV_YMD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.SHUNKO_RSV_YMD_ERR, template.getString(EKK0251C030CBSMsg.SHUNKO_RSV_YMD_ERR));
			}
		}
		// 電力送電予定年月日
		if (!template.isNull(EKK0251C030CBSMsg.EPOWER_SODEN_RSV_YMD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.EPOWER_SODEN_RSV_YMD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.EPOWER_SODEN_RSV_YMD_ERR, template.getString(EKK0251C030CBSMsg.EPOWER_SODEN_RSV_YMD_ERR));
			}
		}
		// 入居予定年月日
		if (!template.isNull(EKK0251C030CBSMsg.NYUKYO_RSV_YMD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.NYUKYO_RSV_YMD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.NYUKYO_RSV_YMD_ERR, template.getString(EKK0251C030CBSMsg.NYUKYO_RSV_YMD_ERR));
			}
		}
		// 引渡し予定年月日
		if (!template.isNull(EKK0251C030CBSMsg.HIKIWATASHI_RSV_YMD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.HIKIWATASHI_RSV_YMD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.HIKIWATASHI_RSV_YMD_ERR, template.getString(EKK0251C030CBSMsg.HIKIWATASHI_RSV_YMD_ERR));
			}
		}
		// 引越し予定年月日
		if (!template.isNull(EKK0251C030CBSMsg.HIKKOSHI_RSV_YMD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.HIKKOSHI_RSV_YMD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.HIKKOSHI_RSV_YMD_ERR, template.getString(EKK0251C030CBSMsg.HIKKOSHI_RSV_YMD_ERR));
			}
		}
		// X座標
		if (!template.isNull(EKK0251C030CBSMsg.XZAHYO_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.XZAHYO_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.XZAHYO_ERR, template.getString(EKK0251C030CBSMsg.XZAHYO_ERR));
			}
		}
		// Y座標
		if (!template.isNull(EKK0251C030CBSMsg.YZAHYO_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.YZAHYO_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.YZAHYO_ERR, template.getString(EKK0251C030CBSMsg.YZAHYO_ERR));
			}
		}
		// 経度
		if (!template.isNull(EKK0251C030CBSMsg.LGTD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.LGTD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.LGTD_ERR, template.getString(EKK0251C030CBSMsg.LGTD_ERR));
			}
		}
		// 緯度
		if (!template.isNull(EKK0251C030CBSMsg.LTTD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.LTTD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.LTTD_ERR, template.getString(EKK0251C030CBSMsg.LTTD_ERR));
			}
		}
		// 座標補正有無
		if (!template.isNull(EKK0251C030CBSMsg.ZAHYO_HOSEI_UM_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.ZAHYO_HOSEI_UM_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.ZAHYO_HOSEI_UM_ERR, template.getString(EKK0251C030CBSMsg.ZAHYO_HOSEI_UM_ERR));
			}
		}
		// テレビ個別対応コード
		if (!template.isNull(EKK0251C030CBSMsg.TV_KOBET_TAIO_CD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.TV_KOBET_TAIO_CD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.TV_KOBET_TAIO_CD_ERR, template.getString(EKK0251C030CBSMsg.TV_KOBET_TAIO_CD_ERR));
			}
		}
		// TVアンテナ有無
		if (!template.isNull(EKK0251C030CBSMsg.TV_ANTENNA_UM_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.TV_ANTENNA_UM_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.TV_ANTENNA_UM_ERR, template.getString(EKK0251C030CBSMsg.TV_ANTENNA_UM_ERR));
			}
		}
		// 方角コード1
		if (!template.isNull(EKK0251C030CBSMsg.DIRECTION_CD_1_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.DIRECTION_CD_1_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.DIRECTION_CD_1_ERR, template.getString(EKK0251C030CBSMsg.DIRECTION_CD_1_ERR));
			}
		}
		// 方角コード2
		if (!template.isNull(EKK0251C030CBSMsg.DIRECTION_CD_2_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.DIRECTION_CD_2_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.DIRECTION_CD_2_ERR, template.getString(EKK0251C030CBSMsg.DIRECTION_CD_2_ERR));
			}
		}
		// 戸建建築階数コード
		if (!template.isNull(EKK0251C030CBSMsg.KODATE_KCKU_FLR_CNT_CD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KODATE_KCKU_FLR_CNT_CD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KODATE_KCKU_FLR_CNT_CD_ERR, template.getString(EKK0251C030CBSMsg.KODATE_KCKU_FLR_CNT_CD_ERR));
			}
		}
		// 集合住宅入居階数コード
		if (!template.isNull(EKK0251C030CBSMsg.SHUGJ_NYUKYO_FLR_CNT_CD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.SHUGJ_NYUKYO_FLR_CNT_CD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.SHUGJ_NYUKYO_FLR_CNT_CD_ERR, template.getString(EKK0251C030CBSMsg.SHUGJ_NYUKYO_FLR_CNT_CD_ERR));
			}
		}
		// PON種別コード
		if (!template.isNull(EKK0251C030CBSMsg.PON_SBT_CD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.PON_SBT_CD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.PON_SBT_CD_ERR, template.getString(EKK0251C030CBSMsg.PON_SBT_CD_ERR));
			}
		}
		// 回線提供会社コード
		if (!template.isNull(EKK0251C030CBSMsg.KAISEN_TK_COMP_CD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KAISEN_TK_COMP_CD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KAISEN_TK_COMP_CD_ERR, template.getString(EKK0251C030CBSMsg.KAISEN_TK_COMP_CD_ERR));
			}
		}
		// VDSL利用電話回線種別コード
		if (!template.isNull(EKK0251C030CBSMsg.VDSL_USE_TEL_KISN_SBT_CD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.VDSL_USE_TEL_KISN_SBT_CD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.VDSL_USE_TEL_KISN_SBT_CD_ERR, template.getString(EKK0251C030CBSMsg.VDSL_USE_TEL_KISN_SBT_CD_ERR));
			}
		}
		// VDSL利用電話回線切替予定年月日
		if (!template.isNull(EKK0251C030CBSMsg.VDSL_USE_DKSN_SWCH_RSV_YMD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.VDSL_USE_DKSN_SWCH_RSV_YMD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.VDSL_USE_DKSN_SWCH_RSV_YMD_ERR, template.getString(EKK0251C030CBSMsg.VDSL_USE_DKSN_SWCH_RSV_YMD_ERR));
			}
		}
		// VDSL利用対象電話番号回線種別コード
		if (!template.isNull(EKK0251C030CBSMsg.VDSL_USE_TG_DBKSN_SBT_CD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.VDSL_USE_TG_DBKSN_SBT_CD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.VDSL_USE_TG_DBKSN_SBT_CD_ERR, template.getString(EKK0251C030CBSMsg.VDSL_USE_TG_DBKSN_SBT_CD_ERR));
			}
		}
		// VDSL利用対象電話番号
		if (!template.isNull(EKK0251C030CBSMsg.VDSL_USE_TG_TELNO_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.VDSL_USE_TG_TELNO_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.VDSL_USE_TG_TELNO_ERR, template.getString(EKK0251C030CBSMsg.VDSL_USE_TG_TELNO_ERR));
			}
		}
		// 引越し年月日
		if (!template.isNull(EKK0251C030CBSMsg.HIKKOSHI_YMD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.HIKKOSHI_YMD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.HIKKOSHI_YMD_ERR, template.getString(EKK0251C030CBSMsg.HIKKOSHI_YMD_ERR));
			}
		}
		// 該当エリアサービス開始年月日
		if (!template.isNull(EKK0251C030CBSMsg.GAITO_AREA_SVC_STAYMD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.GAITO_AREA_SVC_STAYMD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.GAITO_AREA_SVC_STAYMD_ERR, template.getString(EKK0251C030CBSMsg.GAITO_AREA_SVC_STAYMD_ERR));
			}
		}
		// 撤去工事希望年月日
		if (!template.isNull(EKK0251C030CBSMsg.TEKKYO_KOJI_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.TEKKYO_KOJI_KIBO_YMD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.TEKKYO_KOJI_KIBO_YMD_ERR, template.getString(EKK0251C030CBSMsg.TEKKYO_KOJI_KIBO_YMD_ERR));
			}
		}
		// 起点変電所コード
		if (!template.isNull(EKK0251C030CBSMsg.KITEN_HDSHO_CD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KITEN_HDSHO_CD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KITEN_HDSHO_CD_ERR, template.getString(EKK0251C030CBSMsg.KITEN_HDSHO_CD_ERR));
			}
		}
		// 集約局コード
		if (!template.isNull(EKK0251C030CBSMsg.SHYAKK_CD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.SHYAKK_CD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.SHYAKK_CD_ERR, template.getString(EKK0251C030CBSMsg.SHYAKK_CD_ERR));
			}
		}
		// 関電営業所コード
		if (!template.isNull(EKK0251C030CBSMsg.KEPCO_BUSIOFFICE_CD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KEPCO_BUSIOFFICE_CD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KEPCO_BUSIOFFICE_CD_ERR, template.getString(EKK0251C030CBSMsg.KEPCO_BUSIOFFICE_CD_ERR));
			}
		}
		// 更新年月日時分秒(更新前)
		if (!template.isNull(EKK0251C030CBSMsg.UPD_DTM_BF_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.UPD_DTM_BF_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.UPD_DTM_BF_ERR, template.getString(EKK0251C030CBSMsg.UPD_DTM_BF_ERR));
			}
		}
		// 請求書用回線場所住所部屋番号
		if (!template.isNull(EKK0251C030CBSMsg.SKS_YO_KISN_PLACE_AD_RM_NO_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.SKS_YO_KISN_PLACE_AD_RM_NO_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.SKS_YO_KISN_PLACE_AD_RM_NO_ERR, template.getString(EKK0251C030CBSMsg.SKS_YO_KISN_PLACE_AD_RM_NO_ERR));
			}
		}
		// 電話BASホストID
		if (!template.isNull(EKK0251C030CBSMsg.TEL_BAS_HOST_ID_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.TEL_BAS_HOST_ID_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.TEL_BAS_HOST_ID_ERR, template.getString(EKK0251C030CBSMsg.TEL_BAS_HOST_ID_ERR));
			}
		}
		// 電話VLAN-ID
		if (!template.isNull(EKK0251C030CBSMsg.TEL_VLAN_ID_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.TEL_VLAN_ID_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.TEL_VLAN_ID_ERR, template.getString(EKK0251C030CBSMsg.TEL_VLAN_ID_ERR));
			}
		}
		// VLAN-ID確定フラグ
		if (!template.isNull(EKK0251C030CBSMsg.VLAN_ID_FIX_FLG_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.VLAN_ID_FIX_FLG_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.VLAN_ID_FIX_FLG_ERR, template.getString(EKK0251C030CBSMsg.VLAN_ID_FIX_FLG_ERR));
			}
		}
		// 電話VLAN-ID取込年月日
		if (!template.isNull(EKK0251C030CBSMsg.TEL_VLAN_ID_TRKM_YMD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.TEL_VLAN_ID_TRKM_YMD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.TEL_VLAN_ID_TRKM_YMD_ERR, template.getString(EKK0251C030CBSMsg.TEL_VLAN_ID_TRKM_YMD_ERR));
			}
		}
		// 請求書送付先住所変更有無
		if (!template.isNull(EKK0251C030CBSMsg.SKS_SHS_AD_CHG_UM_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.SKS_SHS_AD_CHG_UM_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.SKS_SHS_AD_CHG_UM_ERR, template.getString(EKK0251C030CBSMsg.SKS_SHS_AD_CHG_UM_ERR));
			}
		}
		// 請求書送付先住所変更希望年月日
		if (!template.isNull(EKK0251C030CBSMsg.SKS_SHS_AD_CHG_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.SKS_SHS_AD_CHG_KIBO_YMD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.SKS_SHS_AD_CHG_KIBO_YMD_ERR, template.getString(EKK0251C030CBSMsg.SKS_SHS_AD_CHG_KIBO_YMD_ERR));
			}
		}
		// 契約者住所変更有無
		if (!template.isNull(EKK0251C030CBSMsg.KSHAD_CHG_UM_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KSHAD_CHG_UM_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KSHAD_CHG_UM_ERR, template.getString(EKK0251C030CBSMsg.KSHAD_CHG_UM_ERR));
			}
		}
		// 契約者住所変更希望年月日
		if (!template.isNull(EKK0251C030CBSMsg.KSHAD_CHG_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KSHAD_CHG_KIBO_YMD_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KSHAD_CHG_KIBO_YMD_ERR, template.getString(EKK0251C030CBSMsg.KSHAD_CHG_KIBO_YMD_ERR));
			}
		}
		// 回線場所住所チェックレベル
		if (!template.isNull(EKK0251C030CBSMsg.KISN_AD_CHK_LV_ERR))
		{
			if (!inMap.containsKey(EKK0251C030CBSMsg.KISN_AD_CHK_LV_ERR))
			{
				inMap.put(EKK0251C030CBSMsg.KISN_AD_CHK_LV_ERR, template.getString(EKK0251C030CBSMsg.KISN_AD_CHK_LV_ERR));
			}
		}
		return param;
	}
	
	/**
	 * SCインプット共通データ設定処理を行います。
	 * <br>
	 * @param param
	 * @param templates
	 * @return HashMap<String, Object>
	 * @throws RequestParameterException
	 */
	private HashMap<String, Object> getParamMsg(IRequestParameterReadWrite param, CAANMsg[] templates) throws RequestParameterException
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		/* 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));
		
		// テンプレートリスト
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);
		
		return paramMap;
	}
	
	/**
	 * サービス契約の更新タイムスタンプを取得します。
	 * @param param リクエストパラメータ
	 * @param updDtm 更新時間
	 * @throws Exception 
	 */
	private void setSvcUpdDtm(IRequestParameterReadWrite param, String updDtm, Map<String, Object> ccMap) throws Exception
	{
		// 作業領域の取得
		Map<Object, Object> workMap = param.getMappingWorkArea();
		if (updDtm != null && !"".equals(updDtm))
		{
			workMap.put(KK_COM_SVC_UP_DTM, updDtm);
			ccMap.put(KK_COM_SVC_UP_DTM, updDtm);
		}
	}
	/**
	 * サービス契約の更新タイムスタンプを取得します。
	 * @param param リクエストパラメータ
	 * @param updDtm 更新時間
	 * @throws Exception 
	 */
	private void setAdchgUpdDtm(String updDtm, Map<String, Object> ccMap) throws Exception
	{
		// 作業領域の取得
		if (updDtm != null && !"".equals(updDtm))
		{
			ccMap.put("adchg_upd_dtm", updDtm);
		}
	}
	/**
	 * 住所変更明細更新のマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	private CAANMsg editInMsgEKK2101C010(IRequestParameterReadWrite param, Map<String, Object> childAdrMap, Map<String, Object> childKikiMap, Map<String, Object> ccMap, String adchgDtlCd) throws RequestParameterException
	{
		// 住所変更明細更新サービスインターフェイスを作成
		CAANMsg template = new CAANMsg(EKK2101C010CBSMsg.class.getName());
		// テンプレートID
		template.set(EKK2101C010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK2101C010);
		// 機能コード
		template.set(EKK2101C010CBSMsg.FUNC_CODE, "1");
		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);
		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);
		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);
		
		// ◇ 業務データの設定
		// 住所変更番号
		if(childAdrMap.get("adchg_no") == null || "".equals(childAdrMap.get("adchg_no")))
		{
			template.setNull(EKK2101C010CBSMsg.ADCHG_NO);
		}
		else
		{
			template.set(EKK2101C010CBSMsg.ADCHG_NO, (String)childAdrMap.get("adchg_no"));
		}
		// 住所変更明細番号
		if(childAdrMap.get("adchg_dtl_no") == null || "".equals(childAdrMap.get("adchg_dtl_no")))
		{
			template.setNull(EKK2101C010CBSMsg.ADCHG_DTL_NO);
		}
		else
		{
			template.set(EKK2101C010CBSMsg.ADCHG_DTL_NO, (String)childAdrMap.get("adchg_dtl_no"));
		}
		// 住所変更明細種別コード
		if(childAdrMap.get("adchg_dtl_sbt_cd") == null || "".equals(childAdrMap.get("adchg_dtl_sbt_cd")))
		{
			template.setNull(EKK2101C010CBSMsg.ADCHG_DTL_SBT_CD);
		}
		else
		{
			template.set(EKK2101C010CBSMsg.ADCHG_DTL_SBT_CD, (String)childAdrMap.get("adchg_dtl_sbt_cd"));
		}

		// 変更対象契約番号
		if(childAdrMap.get("chg_tg_kei_no") == null || "".equals(childAdrMap.get("chg_tg_kei_no")))
		{
			template.setNull(EKK2101C010CBSMsg.CHG_TG_KEI_NO);
		}
		else
		{
			template.set(EKK2101C010CBSMsg.CHG_TG_KEI_NO, (String)childAdrMap.get("chg_tg_kei_no"));
		}
		/* ++++++++++ v5.00.02 変更開始 ++++++++++ */
		if(ADCHG_DTL_SBT_CD_03.equals(adchgDtlCd))
		{
			if(TAKNKIKI_IDO_CD_03.equals((String) childKikiMap.get("taknkiki_ido_cd_j")))
			{
				// 変更前識別番号(空なら論理削除なので絶対ある)
				template.set(EKK2101C010CBSMsg.CHBF_SKBT_NO, (String)childAdrMap.get("chbf_skbt_no"));
				// 変更後識別番号（空）
				template.setNull(EKK2101C010CBSMsg.CHAF_SKBT_NO);
			}
			else if(TAKNKIKI_IDO_CD_04.equals((String) childKikiMap.get("taknkiki_ido_cd_j")))
			{
				/* ++++++++++ v7.00.00 修正開始 ++++++++++ */
				// 変更前識別番号(変更前=>変更前)
				if(childKikiMap.get("kiki_chg_no") != null && !"".equals(childKikiMap.get("kiki_chg_no")) && !ADCHG_DTL_SBT_CD_09.equals(childAdrMap.get("adchg_dtl_sbt_cd")))
				{
					template.set(EKK2101C010CBSMsg.CHBF_SKBT_NO, (String)childKikiMap.get("kiki_chg_no"));
				}
				else if(childAdrMap.get("chbf_skbt_no") != null && !"".equals(childAdrMap.get("chbf_skbt_no")))
				{
					template.set(EKK2101C010CBSMsg.CHBF_SKBT_NO,  (String)childAdrMap.get("chbf_skbt_no"));
				}
				else
				{
					template.setNull(EKK2101C010CBSMsg.CHBF_SKBT_NO);
				}
				
				// 変更後識別番号（機器変更番号）
				if( ADCHG_DTL_SBT_CD_09.equals(childAdrMap.get("adchg_dtl_sbt_cd")))
				{
					template.set(EKK2101C010CBSMsg.CHAF_SKBT_NO, (String)childAdrMap.get("chbf_skbt_no"));
				}
				 else if(childKikiMap.get("kiki_chg_no") == null || "".equals(childKikiMap.get("kiki_chg_no")))
				{
					/* ++++++++++ v7.00.03 修正開始 ++++++++++ */
					if(childAdrMap.get("chaf_skbt_no") != null && !"".equals(childAdrMap.get("chaf_skbt_no")))
					{
						template.set(EKK2101C010CBSMsg.CHAF_SKBT_NO,  (String)childAdrMap.get("chbf_skbt_no"));
					}
					else if(childAdrMap.get("chbf_skbt_no") != null && !"".equals(childAdrMap.get("chbf_skbt_no")))
					{
						template.set(EKK2101C010CBSMsg.CHAF_SKBT_NO,  (String)childAdrMap.get("chbf_skbt_no"));
					}
					else
					{
						template.setNull(EKK2101C010CBSMsg.CHAF_SKBT_NO);
					}
					/* ++++++++++ v7.00.03 修正終了 ++++++++++ */
				}
				else
				{
					template.set(EKK2101C010CBSMsg.CHAF_SKBT_NO, (String)childKikiMap.get("kiki_chg_no"));
				}
				/* ++++++++++ v7.00.00 修正終了 ++++++++++ */
			}
			else
			{
				// 変更前識別番号(変更後=>変更前)
				if(childAdrMap.get("chaf_skbt_no") != null && !"".equals(childAdrMap.get("chaf_skbt_no")))
				{
					template.set(EKK2101C010CBSMsg.CHBF_SKBT_NO, (String)childAdrMap.get("chaf_skbt_no"));
				}
				/* ++++++++++ v7.00.02 修正開始 ++++++++++ */
				else if(childAdrMap.get("chbf_skbt_no") != null && !"".equals(childAdrMap.get("chbf_skbt_no")))
				{
					template.set(EKK2101C010CBSMsg.CHBF_SKBT_NO,  (String)childAdrMap.get("chbf_skbt_no"));
				}
				/* ++++++++++ v7.00.02 修正終了 ++++++++++ */
				else if(childKikiMap.get("kiki_chg_no") != null && !"".equals(childKikiMap.get("kiki_chg_no")))
				{
					template.set(EKK2101C010CBSMsg.CHBF_SKBT_NO,  (String)childKikiMap.get("kiki_chg_no"));
				}
				else
				{
					template.setNull(EKK2101C010CBSMsg.CHBF_SKBT_NO);
				}
				
				// 変更後識別番号（機器変更番号）
				if(childKikiMap.get("kiki_chg_no") == null || "".equals(childKikiMap.get("kiki_chg_no")))
				{
					template.setNull(EKK2101C010CBSMsg.CHAF_SKBT_NO);
				}
				else
				{
					template.set(EKK2101C010CBSMsg.CHAF_SKBT_NO, (String)childKikiMap.get("kiki_chg_no"));
				}
			}
		}
		else
		{
			// 変更後識別番号（サービス契約内訳番号）
			if(TAKNKIKI_IDO_CD_03.equals((String) childKikiMap.get("taknkiki_ido_cd_ucwk")))
			{
				// 変更前識別番号(空なら論理削除なので絶対ある)
				template.set(EKK2101C010CBSMsg.CHBF_SKBT_NO, (String)childAdrMap.get("chbf_skbt_no"));
				// 変更後識別番号（空）
				template.setNull(EKK2101C010CBSMsg.CHAF_SKBT_NO);
			}
			else if(TAKNKIKI_IDO_CD_04.equals((String) childKikiMap.get("taknkiki_ido_cd_j")))
			{
				// 変更前識別番号(変更前=>変更前)
				if(childKikiMap.get("svc_kei_ucwk_no") != null && !"".equals(childKikiMap.get("svc_kei_ucwk_no")))
				{
					template.set(EKK2101C010CBSMsg.CHBF_SKBT_NO, (String)childKikiMap.get("svc_kei_ucwk_no"));
				}
				else if(childAdrMap.get("chbf_skbt_no") != null && !"".equals(childAdrMap.get("chbf_skbt_no")))
				{
					template.set(EKK2101C010CBSMsg.CHBF_SKBT_NO,  (String)childAdrMap.get("chbf_skbt_no"));
				}
				else
				{
					template.setNull(EKK2101C010CBSMsg.CHBF_SKBT_NO);
				}
				// 変更後識別番号（サービス契約内訳番号：絶対ある）
				template.set(EKK2101C010CBSMsg.CHAF_SKBT_NO, (String)childKikiMap.get("svc_kei_ucwk_no"));
			}
			else
			{
				// 変更前識別番号(変更後=>変更前)
				if(childAdrMap.get("chaf_skbt_no") != null && !"".equals(childAdrMap.get("chaf_skbt_no")))
				{
					template.set(EKK2101C010CBSMsg.CHBF_SKBT_NO, (String)childAdrMap.get("chaf_skbt_no"));
				}
				else if(childKikiMap.get("svc_kei_ucwk_no") != null && !"".equals(childKikiMap.get("svc_kei_ucwk_no")))
				{
					template.set(EKK2101C010CBSMsg.CHBF_SKBT_NO,  (String)childKikiMap.get("svc_kei_ucwk_no"));
				}
				else
				{
					template.setNull(EKK2101C010CBSMsg.CHBF_SKBT_NO);
				}
				// 変更後識別番号（サービス契約内訳番号：絶対ある）
				template.set(EKK2101C010CBSMsg.CHAF_SKBT_NO, (String)childKikiMap.get("svc_kei_ucwk_no"));
			}
			
		}
		/* ++++++++++ v5.00.02 変更終了 ++++++++++ */
		// サービス契約異動種別コード
		if(childAdrMap.get("svc_kei_ido_sbt_cd") == null || "".equals(childAdrMap.get("svc_kei_ido_sbt_cd")))
		{
			template.setNull(EKK2101C010CBSMsg.SVC_KEI_IDO_SBT_CD);
		}
		else
		{
			template.set(EKK2101C010CBSMsg.SVC_KEI_IDO_SBT_CD, (String)childAdrMap.get("svc_kei_ido_sbt_cd"));
		}
		// 請求書送付先変更有無
		if(childAdrMap.get("sks_shs_chg_um") == null || "".equals(childAdrMap.get("sks_shs_chg_um")))
		{
			template.setNull(EKK2101C010CBSMsg.SKS_SHS_CHG_UM);
		}
		else
		{
			template.set(EKK2101C010CBSMsg.SKS_SHS_CHG_UM, (String)childAdrMap.get("sks_shs_chg_um"));
		}
		// 住所変更業務連絡備考
		if(childAdrMap.get("adchg_work_rrk_biko") == null || "".equals(childAdrMap.get("adchg_work_rrk_biko")))
		{
			template.setNull(EKK2101C010CBSMsg.ADCHG_WORK_RRK_BIKO);
		}
		else
		{
			template.set(EKK2101C010CBSMsg.ADCHG_WORK_RRK_BIKO, (String)childAdrMap.get("adchg_work_rrk_biko"));
		}
		// 更新年月日時分秒(更新前)
		if(ccMap.get("adchg_upd_dtm") == null || "".equals(ccMap.get("adchg_upd_dtm")))
		{
			template.setNull(EKK2101C010CBSMsg.UPD_DTM_BF);
		}
		else
		{
			template.set(EKK2101C010CBSMsg.UPD_DTM_BF, (String)ccMap.get("adchg_upd_dtm"));
		}
		
		return template;
	}

	/**
	 * 住所変更明細更新の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param inMap
	 * @param ccMap
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void editOutMsgEKK2101C010(Map<?, ?> msgList, IRequestParameterReadWrite param, Map<String, Object> inMap, Map<String, Object> ccMap) throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		// 更新年月日時分秒を作業領域に設定
		setAdchgUpdDtm(parentTemplate.getString(EKK2101D010CBSMsg.UPD_DTM), ccMap);
				
		// リターンコード取得
		int returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);
		// エラー情報の設定
		editErrorInfoEKK2101C010(param, inMap, templates, returnCode);
		
		//エラー情報のマップを取得
		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();
		Integer status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);
		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status.intValue()))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
	}

	/**
	 * 住所変更明細更新のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @param templates
	 * @param returnCode
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrorInfoEKK2101C010(IRequestParameterReadWrite param, Map<String, Object> inMap,
																CAANMsg[] templates, int returnCode) throws RequestParameterException
	{
		CAANMsg template = templates[0];
		int templateStatus = template.getInt(EKK2101C010CBSMsg.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(EKK2101C010CBSMsg.ADCHG_NO_ERR))
		{
			if (!inMap.containsKey(EKK2101C010CBSMsg.ADCHG_NO_ERR))
			{
				inMap.put(EKK2101C010CBSMsg.ADCHG_NO_ERR, template.getString(EKK2101C010CBSMsg.ADCHG_NO_ERR));
			}
		}
		if (!template.isNull(EKK2101C010CBSMsg.ADCHG_DTL_SBT_CD_ERR))
		{
			if (!inMap.containsKey(EKK2101C010CBSMsg.ADCHG_DTL_SBT_CD_ERR))
			{
				inMap.put(EKK2101C010CBSMsg.ADCHG_DTL_SBT_CD_ERR, template.getString(EKK2101C010CBSMsg.ADCHG_DTL_SBT_CD_ERR));
			}
		}
		if (!template.isNull(EKK2101C010CBSMsg.CHG_TG_KEI_NO_ERR))
		{
			if (!inMap.containsKey(EKK2101C010CBSMsg.CHG_TG_KEI_NO_ERR))
			{
				inMap.put(EKK2101C010CBSMsg.CHG_TG_KEI_NO_ERR, template.getString(EKK2101C010CBSMsg.CHG_TG_KEI_NO_ERR));
			}
		}
		if (!template.isNull(EKK2101C010CBSMsg.CHBF_SKBT_NO_ERR))
		{
			if (!inMap.containsKey(EKK2101C010CBSMsg.CHBF_SKBT_NO_ERR))
			{
				inMap.put(EKK2101C010CBSMsg.CHBF_SKBT_NO_ERR, template.getString(EKK2101C010CBSMsg.CHBF_SKBT_NO_ERR));
			}
		}
		if (!template.isNull(EKK2101C010CBSMsg.CHAF_SKBT_NO_ERR))
		{
			if (!inMap.containsKey(EKK2101C010CBSMsg.CHAF_SKBT_NO_ERR))
			{
				inMap.put(EKK2101C010CBSMsg.CHAF_SKBT_NO_ERR, template.getString(EKK2101C010CBSMsg.CHAF_SKBT_NO_ERR));
			}
		}
		if (!template.isNull(EKK2101C010CBSMsg.SVC_KEI_IDO_SBT_CD_ERR))
		{
			if (!inMap.containsKey(EKK2101C010CBSMsg.SVC_KEI_IDO_SBT_CD_ERR))
			{
				inMap.put(EKK2101C010CBSMsg.SVC_KEI_IDO_SBT_CD_ERR, template.getString(EKK2101C010CBSMsg.SVC_KEI_IDO_SBT_CD_ERR));
			}
		}
		if (!template.isNull(EKK2101C010CBSMsg.SKS_SHS_CHG_UM_ERR))
		{
			if (!inMap.containsKey(EKK2101C010CBSMsg.SKS_SHS_CHG_UM_ERR))
			{
				inMap.put(EKK2101C010CBSMsg.SKS_SHS_CHG_UM_ERR, template.getString(EKK2101C010CBSMsg.SKS_SHS_CHG_UM_ERR));
			}
		}
		if (!template.isNull(EKK2101C010CBSMsg.ADCHG_WORK_RRK_BIKO_ERR))
		{
			if (!inMap.containsKey(EKK2101C010CBSMsg.ADCHG_WORK_RRK_BIKO_ERR))
			{
				inMap.put(EKK2101C010CBSMsg.ADCHG_WORK_RRK_BIKO_ERR, template.getString(EKK2101C010CBSMsg.ADCHG_WORK_RRK_BIKO_ERR));
			}
		}
		return param;
	}
	/**
	 * 住所変更明細登録のマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	private CAANMsg editInMsgEKK2101D010(IRequestParameterReadWrite param, Map<String, Object> inMap, Map<String, Object> ccMap, String adchgDtlCd) throws RequestParameterException
	{
		// 住所変更明細登録サービスインターフェイスを作成
		CAANMsg template = new CAANMsg(EKK2101D010CBSMsg.class.getName());
		// テンプレートID
		template.set(EKK2101D010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK2101D010);
		// 機能コード
		template.set(EKK2101D010CBSMsg.FUNC_CODE, "1");
		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);
		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);
		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);
		
		// ◇ 業務データの設定
		// 住所変更番号
		if(ccMap.get("adchg_no") == null || "".equals(ccMap.get("adchg_no")))
		{
			template.setNull(EKK2101D010CBSMsg.ADCHG_NO);
		}
		else
		{
			template.set(EKK2101D010CBSMsg.ADCHG_NO, (String)ccMap.get("adchg_no"));
		}
		// 住所変更明細種別コード
		template.set(EKK2101D010CBSMsg.ADCHG_DTL_SBT_CD, adchgDtlCd);

		if(ADCHG_DTL_SBT_CD_03.equals(adchgDtlCd))
		{
			// 変更対象契約番号
			if(inMap.get("kktk_svc_kei_no") == null || "".equals(inMap.get("kktk_svc_kei_no")))
			{
				template.setNull(EKK2101D010CBSMsg.CHG_TG_KEI_NO);
			}
			else
			{
				template.set(EKK2101D010CBSMsg.CHG_TG_KEI_NO, (String)inMap.get("kktk_svc_kei_no"));
			}
			// 変更後識別番号
			if(inMap.get("kiki_chg_no") == null || "".equals(inMap.get("kiki_chg_no")))
			{
				template.setNull(EKK2101D010CBSMsg.CHAF_SKBT_NO);
			}
			else
			{
				template.set(EKK2101D010CBSMsg.CHAF_SKBT_NO, (String)inMap.get("kiki_chg_no"));
			}
		}
		else
		{
			// 変更後識別番号
			if(inMap.get("svc_kei_ucwk_no") == null || "".equals(inMap.get("svc_kei_ucwk_no")))
			{
				template.setNull(EKK2101D010CBSMsg.CHAF_SKBT_NO);
			}
			else
			{
				template.set(EKK2101D010CBSMsg.CHAF_SKBT_NO, (String)inMap.get("svc_kei_ucwk_no"));
			}
		}
		// 更新年月日時分秒(更新前)
		if(ccMap.get("adchg_upd_dtm") == null || "".equals(ccMap.get("adchg_upd_dtm")))
		{
			template.setNull(EKK2101D010CBSMsg.UPD_DTM_BF);
		}
		else
		{
			template.set(EKK2101D010CBSMsg.UPD_DTM_BF, (String)ccMap.get("adchg_upd_dtm"));
		}
		
		return template;
	}

	/**
	 * 住所変更明細登録の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param inMap
	 * @param ccMap
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void editOutMsgEKK2101D010(Map<?, ?> msgList, IRequestParameterReadWrite param, Map<String, Object> inMap, Map<String, Object> ccMap) throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		// 更新年月日時分秒を作業領域に設定
		setAdchgUpdDtm(parentTemplate.getString(EKK2101D010CBSMsg.UPD_DTM), ccMap);
		
		// リターンコード取得
		int returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);
		// エラー情報の設定
		editErrorInfoEKK2101D010(param, inMap, templates, returnCode);
		
		//エラー情報のマップを取得
		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();
		Integer status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);
		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status.intValue()))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
	}

	/**
	 * 住所変更明細登録のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @param templates
	 * @param returnCode
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrorInfoEKK2101D010(IRequestParameterReadWrite param, Map<String, Object> inMap,
																CAANMsg[] templates, int returnCode) throws RequestParameterException
	{
		CAANMsg template = templates[0];
		int templateStatus = template.getInt(EKK2101D010CBSMsg.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(EKK2101D010CBSMsg.ADCHG_NO_ERR))
		{
			if (!inMap.containsKey(EKK2101D010CBSMsg.ADCHG_NO_ERR))
			{
				inMap.put(EKK2101D010CBSMsg.ADCHG_NO_ERR, template.getString(EKK2101D010CBSMsg.ADCHG_NO_ERR));
			}
		}
		if (!template.isNull(EKK2101D010CBSMsg.CHG_TG_KEI_NO_ERR))
		{
			if (!inMap.containsKey(EKK2101D010CBSMsg.CHG_TG_KEI_NO_ERR))
			{
				inMap.put(EKK2101D010CBSMsg.CHG_TG_KEI_NO_ERR, template.getString(EKK2101D010CBSMsg.CHG_TG_KEI_NO_ERR));
			}
		}
		if (!template.isNull(EKK2101D010CBSMsg.CHAF_SKBT_NO_ERR))
		{
			if (!inMap.containsKey(EKK2101D010CBSMsg.CHAF_SKBT_NO_ERR))
			{
				inMap.put(EKK2101D010CBSMsg.CHAF_SKBT_NO_ERR, template.getString(EKK2101D010CBSMsg.CHAF_SKBT_NO_ERR));
			}
		}
		return param;
	}
	/**
	 * 住所変更明細論理削除のマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	private CAANMsg editInMsgEKK2101E010(IRequestParameterReadWrite param, Map<String, Object> childAdrMap, Map<String, Object> childKikiMap, Map<String, Object> ccMap) throws RequestParameterException
	{
		// 住所変更明細論理削除サービスインターフェイスを作成
		CAANMsg template = new CAANMsg(EKK2101E010CBSMsg.class.getName());
		// テンプレートID
		template.set(EKK2101E010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK2101E010);
		// 機能コード
		template.set(EKK2101E010CBSMsg.FUNC_CODE, "1");
		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);
		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);
		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);
		
		// ◇ 業務データの設定
		// 住所変更番号
		if(ccMap.get("adchg_no") == null || "".equals(ccMap.get("adchg_no")))
		{
			template.setNull(EKK2101E010CBSMsg.ADCHG_NO);
		}
		else
		{
			template.set(EKK2101E010CBSMsg.ADCHG_NO, (String)ccMap.get("adchg_no"));
		}
		// 住所変更明細番号
		if(childAdrMap.get("adchg_dtl_no") == null || "".equals(childAdrMap.get("adchg_dtl_no")))
		{
			template.setNull(EKK2101E010CBSMsg.ADCHG_DTL_NO);
		}
		else
		{
			template.set(EKK2101E010CBSMsg.ADCHG_DTL_NO, (String)childAdrMap.get("adchg_dtl_no"));
		}
		// 更新年月日時分秒(更新前)
		if(childAdrMap.get("adchg_dtl_upd_dtm") == null || "".equals(childAdrMap.get("adchg_dtl_upd_dtm")))
		{
			template.setNull(EKK2101E010CBSMsg.UPD_DTM_BF);
		}
		else
		{
			template.set(EKK2101E010CBSMsg.UPD_DTM_BF, (String)childAdrMap.get("adchg_dtl_upd_dtm"));
		}
		
		return template;
	}

	/**
	 * 住所変更明細論理削除の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param inMap
	 * @param ccMap
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void editOutMsgEKK2101E010(Map<?, ?> msgList, IRequestParameterReadWrite param, Map<String, Object> inMap, Map<String, Object> ccMap) throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		// 更新年月日時分秒を作業領域に設定　EKK2101E010は住所変更に更新に行かないので不要
//		setAdchgUpdDtm(parentTemplate.getString(EKK2101E010CBSMsg.UPD_DTM), ccMap);
		
		// リターンコード取得
		int returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);
		// エラー情報の設定
		editErrorInfoEKK2101E010(param, inMap, templates, returnCode);
		
		//エラー情報のマップを取得
		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();
		Integer status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);
		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status.intValue()))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
	}

	/**
	 * 住所変更明細論理削除のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @param templates
	 * @param returnCode
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrorInfoEKK2101E010(IRequestParameterReadWrite param, Map<String, Object> inMap,
																CAANMsg[] templates, int returnCode) throws RequestParameterException
	{
		CAANMsg template = templates[0];
		int templateStatus = template.getInt(EKK2101E010CBSMsg.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(EKK2101E010CBSMsg.ADCHG_NO_ERR))
		{
			if (!inMap.containsKey(EKK2101E010CBSMsg.ADCHG_NO_ERR))
			{
				inMap.put(EKK2101E010CBSMsg.ADCHG_NO_ERR, template.getString(EKK2101E010CBSMsg.ADCHG_NO_ERR));
			}
		}
		if (!template.isNull(EKK2101E010CBSMsg.ADCHG_DTL_NO_ERR))
		{
			if (!inMap.containsKey(EKK2101E010CBSMsg.ADCHG_DTL_NO_ERR))
			{
				inMap.put(EKK2101E010CBSMsg.ADCHG_DTL_NO_ERR, template.getString(EKK2101E010CBSMsg.ADCHG_DTL_NO_ERR));
			}
		}
		return param;
	}

}
