/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKAddSvcKeiTelCC
*   ソースファイル名：JKKAddSvcKeiTelCC.java
*   作成者          ：富士通
*   日付            ：2011年06月03日
*＜機能概要＞
*   eo光電話登録コモンコンポーネント部品
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/06/03   FJ）土屋    新規作成
*   v4.00.00    2012/07/09   FJ) 三浦    【ANK-0397-00-00】申込書番号の発番検討における対応
*   v4.00.00    2012/07/31   FJ）角森    【ANK-0400-00-00】同時番ポ希望日のICS自動反映
*   v4.00.00    2012/07/31   FJ）角森    【ANK-0079-00-00】同時番ポ希望日のICS自動反映
*   V4.00.00    2012/08/28   FJ) 角森    【ANK-0522-00-00】番ポ申込時における法人のNTT電話番号の確認対応
*   V4.00.00    2012/09/13   FJ) 山本    【ANK-0382-00-00】機械送付先住所の登録管理
*   v4.00.00    2012/10/25   FJ) 村松    【ANK-1254-00-00】マンション親・子の一時金対応、及びマンション親・基本料金への対応 
*   v4.01.00    2012/10/31   FJ）多田    【IT1-2012-0001640】住所手動入力対応  
*   v4.02.00    2012/11/13   FJ）中山    【ST1-2012-0000805】緊急通報利用者名カナ対応  
*   v4.03.00    2013/01/24   FJ）薄出    【IT1-2013-0000067】同番移転連絡先電話番号対応
*   v5.00.00	2013/01/25   FJ) 谷口	 【ANK-1270-02-00】１G値下げに伴う200M申込受付停止及びファミパ・無線ルータ値下げ対応
*   v5.01.00	2013/03/18   FJ) 松田	 【OT-2013-0000464】法人の場合にも個人NRN番号を登録する対応
*   v5.02.00    2013/03/25   FJ）薄出    【IT1-2013-0000527】名義、住所変更時の同番移転調査中エラーメッセージ対応
*   v5.03.00    2013/03/21   FJ) 中山    【ST1-2013-0000487】緊急通報用契約者カナ名の申込新規登録時の形式エラー対応
*   v5.04.00    2013/04/02   FJ) 川島    【ST2-2013-0001613】マンションの標準工事費が請求されない
*   v5.05.00    2013/10/18   FJ) 北浦    【OM-2013-0003278】移転元通信事業者拠点コード対応
*   v5.06.00    2013/11/18   FJ）中山    【ANK-1670-00-00】番ポにおけるエイジング処理の削除
*   v7.00.00    2013/11/08   FJ) 竹中    【ANK-1578-00-00】多機能ルーター(機器追加)
*   v9.00.00    2014/04/16   FJ) 中山    【ANK-2056-00-00】光電話セレクトオプションパック
*   v11.00.00   2014/10/15   FJ）中山    【ANK-2309-00-00】全販売チャンネル同番移転対応
*	v19.00.00   2015/10/01   FJ) 森脇    【OM-2015-0002295】2重発番チェックの仕様再確認
*   v31.00.00   2017/11/30   FJ) 麻生    【ANK-3136-00-00】OPMSハードウエア保守切れ対応(STEP2-2)
*   v54.00.00	2021/08/20	 FJ) 平野	 【ANK-4096-00-00】宅調宅工同時実施のための聞取り強化対応
*   v56.00.00   2021/12/10   FJ) 杉本    【ANK-4174-00-00】開通前マイページ関連業務改善（2022年1月下旬リリース）
*   v57.00.00	2021/02/04	 FJ) 吉村	 【ANK-4088-00-00】宅内調査の日程調整業務における省人化施策(Step2)
*   v72.00.00	2024/05/27	 FJ) 寺田	 【ANK-4494-00-00】【eo定期】 双方向番ポ対応
*   v72.00.01	2024/08/20	 FJ) 寺田	 【ANK-4494-00-00】【eo定期】 双方向番ポ対応 STEP2
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import com.ctc.wstx.util.StringUtil;
import com.fujitsu.futurity.bp.custom.constant.JKKSvcConst;
import com.fujitsu.futurity.bp.custom.constant.JKKTelnoStatJudgeConstCC;
import com.fujitsu.futurity.bp.custom.constant.JZMEnumSwitchConstCC;
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.IRequestParameterReadOnly;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.CCException;
import com.fujitsu.futurity.bp.x21.cc.exception.SCCallException;
import com.fujitsu.futurity.common.JCCWebAddTrnId;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.common.x01.sc.ErrorInfoMapKeys;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.mapping.bp.common.TemplateErrorUtil;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;
import com.fujitsu.futurity.model.common.check.MixCharCheck;
import com.sun.enterprise.tools.common.util.StringUtils;

import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JTUStrConst;
import eo.common.util.JKKStringUtil;
import eo.common.util.JPCConvertString;
import eo.common.util.JPCDateUtil;
import eo.common.util.JPCUtilCommon;
import eo.ejb.cbm.entity.KK0161ETMsg;
import eo.ejb.cbm.entity.KK0781ETMsg;
import eo.ejb.cbs.cbsmsg.EKK0021D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B033CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0111D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0161A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0161B004CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0161B013CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0191A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0191A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0191B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0191B040CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0191C130CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0191D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0241D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0371D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0431D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0781A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0091B020CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0091B020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0121A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0121A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0121C010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0121D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0301A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0301A010CBSMsg1List;
import eo.ejb.common.JKKModelCommon;

/**
 * eo光電話登録コモンコンポーネント部品.
 * <br>
 * @author 富士通
 */
public class JKKAddSvcKeiTelCC extends AbstractCommonComponent
{
	/**
	 * テンプレートID
	 */

	/** リターンメッセージ */
	private static final String RETURN_MESSAGE_STRING = "RETURN_MESSAGE_";
	/** リターンメッセージ */
	private static final String RETURN_MESSAGE_FORMAT = "%1$04d";
	/** 電話登録用CCワーク */
	private static final String CC_WORK_AREA_NAME_TEL = "JKKAddSvcKeiTelCCWork";
	/** 契約者登録用CCワーク  */
	private static final String CC_WORK_AREA_NAME_KEISHA = "JKKAddKeishaServiceCCWork";
	/** 申込登録用CCワーク */
	private static final String CC_WORK_AREA_NAME_MSKM = "JKKAddMskmServiceCCWork";
	/** 申込明細登録用CCワーク */
	private static final String CC_WORK_AREA_NAME_MSKM_LIST = "JKKAddMskmServiceCCWorkList";
	/** 請求支払登録用CCワーク */
	private static final String CC_WORK_AREA_NAME_PAYWAY = "JKKAddSvcPaywayCCWork";
	
	/** オプションサービスコード */
	private static final String OPT_SVC_LIST = "OPT_SVC_LIST";
	/** サブオプションサービスコード */
	private static final String SBOP_SVC_LIST = "kk0431_add_sbop_svc_kei_list";
	/** eo光電話パック登録リスト */
	private static final String ADD_EOHTL_PACK_LIST = "add_eohtl_pack_list";
	
	/** エラー用 */
	private static final String SC_ERROR_STRING = "サービスコンポーネントエラー";
	
	/** 処理対象 電話番号(１番号目) */
	private static final String KMK_DIV_ONE = "1";
	/** 追加申し込み可否フラグ */
	private static final String ADD_MSKM_ON = "1";
	/** 料金コース(B76:通話料上限通知) */
	public static final String PCRS_CD_TWRYO_JGN_TCHI = "B76";
	/** 料金プラン(PB7601:通話料上限通知) */
	public static final String PPLAN_CD_TWRYO_JGN_TCHI = "PB7601";
	/** 業務パラメータID(通話料上限) */
	public static final String KK_TWRYO_UPPL_SHKV = "KK_TWRYO_UPPL_SHKV";
	
	/** 親契約識別コード(03:サービス契約内訳) */
	public static final String OYA_KEI_SKBT_CD_SVCKEIDTL = "03";

// ANK-4494-00-00 STEP2 ADD START
	/** 電話番号取得通信事業者_自社他社区分_1:自社 */
	private static final String TLNSTKUTSJGS_JISHATASHADIV_JISHA = "1";
	/** 電話番号取得通信事業者_自社他社区分_0:他社 */
	private static final String TLNSTKUTSJGS_JISHATASHADIV_TASHA = "0";
// ANK-4494-00-00 STEP2 ADD END
// ANK-4494-00-00 DEL START
//	/** 同番移転登録 */
//	private static final String ADD_DOBANITEN = "ADD_DOBANITEN";
// ANK-4494-00-00 DEL END
	
	/** 作業マップ */
	private static final String CC_WORK_AREA_NAME = "JKKGetTsjgsKtnCdUtilWork";
	
	/** CCワーク領域リスト要素名称 */
	private static final String[] CC_WORK_AREA_NAME_LIST = new String[] {"EZM0091A010CBSMsg1List", "EZM0321A010CBSMsg1List", "ETU0131B010CBSMsg1List"};

	/**
	 * 契約者情報の取得処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param key
	 * @return getKeishaWorkMapValue
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private String getKeishaWorkMapValue(IRequestParameterReadWrite param, String key) throws RequestParameterException
	{
		// 作業領域の取得
		Map workMap = (Map)param.getMappingWorkArea();

		HashMap inMap = null;
		/* 契約者作業項目情報 */
		if (workMap != null)
		{
			inMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_KEISHA);
		}
		else
		{
			inMap = null;
		}

		String result = null;
		if (inMap != null)
		{
			result = (String)inMap.get(key);
		}

		if ("".equals(result))
		{
			result = null;
		}

		return result;
	}

	/**
	 * 申込情報の取得処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param key
	 * @return getMskmWorkMapValue
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private String getMskmWorkMapValue(IRequestParameterReadWrite param, String key) throws RequestParameterException
	{
		// 作業領域の取得
		Map workMap = (Map)param.getMappingWorkArea();

		HashMap inMap = null;
		/* 申込作業項目情報 */
		if (workMap != null)
		{
			inMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_MSKM);
		}
		else
		{
			inMap = null;
		}

		String result = null;
		if (inMap != null)
		{
			result = (String)inMap.get(key);
		}

		if ("".equals(result))
		{
			result = null;
		}

		return result;
	}

	/**
	 * 請求支払情報の取得処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param key
	 * @return getPayWayWorkMapValue
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private String getPayWayWorkMapValue(IRequestParameterReadWrite param, String key) throws RequestParameterException
	{
		// 作業領域の取得
		Map workMap = (Map)param.getMappingWorkArea();

		HashMap inMap = null;
		/* 請求支払作業項目情報 */
		if (workMap != null)
		{
			inMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_PAYWAY);
		}
		else
		{
			inMap = null;
		}

		String result = null;
		if (inMap != null)
		{
			result = (String)inMap.get(key);
		}

		if ("".equals(result))
		{
			result = null;
		}

		return result;
	}

	/**
	 * CAANMsgに必要なデータのマッピング処理を行います。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return パラメータマップ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
			throws RequestParameterException
	{

		ArrayList<CAANMsg> msgList = new ArrayList<CAANMsg>();
		ArrayList<HashMap> schemaList = new ArrayList<HashMap>();

		// ユーザデータ情報取得
		HashMap inMap = (HashMap)(param.getData(fixedText));
		
		// サービス契約＜eo光電話＞登録判定
		if (inMap == null)
		{
			return null;
		}

		// 電話（番号）サービスの取得
		String telMode = (String)inMap.get("tel_svc");

		// 追加申し込みの取得
		String addMode = (String)inMap.get("add_mode");

		// 法人個人コード設定フラグ
		inMap.put("is_set_hojin_kojin_cd", "0");

		if (KMK_DIV_ONE.equals(telMode))
		{
			/**************************************
			/* １番号サービスの場合のみ設定する
			****************************************/

			// 申込明細登録判定（追加申し込みの場合）
			if (ADD_MSKM_ON.equals(addMode))
			{
				
				// 申込明細登録チェック
				msgList.add(editInEKK0021D010(param, fixedText));
			}

			// サービス契約<eo光電話>登録チェック
			msgList.add(editInEKK0111D010(param, fixedText));

		}
		
		String bmpUm = (String)inMap.get("kk0191_bmp_um");
		
		if (bmpUm != null && "1".equals(bmpUm))
		{
			String keyTelno = (String)inMap.get("zm0121_telno");
			if  (keyTelno != null && !"".equals(keyTelno))
			{
				// ■電話番号登録チェック
				msgList.add(editInEZM0121D010(param, fixedText));
			}
		}

		//  サービス契約内訳<eo光電話>登録チェック
		msgList.add(editInEKK0191D010(param, fixedText));

		// オプションサービス登録処理
		ArrayList<HashMap> opSvcKeiList = (ArrayList<HashMap>)inMap.get(OPT_SVC_LIST);
		if (null != opSvcKeiList)
		{
			for (HashMap opSvcKeiMap : opSvcKeiList)
			{
				// オプションサービス契約＜電話＞登録チェック
				msgList.add(editInEKK0371D010(param, fixedText, opSvcKeiMap));
			}
		}

		// サブオプションサービスの取得
		ArrayList<HashMap> sbopSvcKeiList = (ArrayList<HashMap>)inMap.get(SBOP_SVC_LIST);
		if (null != sbopSvcKeiList)
		{
			for (HashMap sbopSvcKeiMap : sbopSvcKeiList)
			{
				// サブオプションサービス契約＜電話＞登録チェック
				msgList.add(editInEKK0431D010(param, fixedText, sbopSvcKeiMap, null));
			}
		}

		// サービス契約回線内訳番号がわたされていれば回線対象サービス契約登録の登録を行う
		if (inMap != null && inMap.get("kk0241_svc_kei_kaisen_ucwk_no") != null && !"".equals(inMap.get("kk0241_svc_kei_kaisen_ucwk_no")))
		{
			// 回線対象サービス契約登録チェック
			msgList.add(editInEKK0241D010(param, fixedText));
		}

// ANK-4494-00-00 DEL START
//		if (inMap.containsKey(ADD_DOBANITEN))
//		{
//			schemaList = (ArrayList<HashMap>)inMap.get(ADD_DOBANITEN);
//			for (HashMap tmpMap : schemaList)
//			{
//				// 住所対象番号番号区画申込事業所番号一覧照会
//				msgList.add(editInEZM0091B020(param, fixedText, tmpMap));
//				
//				// 入力チェックの際はInvokeCBSでのチェックを行う(申込事業所番号はチェック対象外)
//				// 登録の際は申込事業所の照会後にチェックする必要があるためInvokeCBSではチェックしない。
//				if(!"1".equals(inMap.get("func_code")))
//				{
//					// 同番移転登録チェック
//					msgList.add(editInETU0021D010(param, fixedText, tmpMap));
//				}
//			}
//		}
// ANK-4494-00-00 DEL END

		int msgCnt = msgList.size();
		CAANMsg[] templates = new CAANMsg[msgCnt];
		for (int i = 0; i < msgCnt; i++)
		{
			templates[i] = msgList.get(i);
		}

		HashMap<String, Object> paramMap = setSCInputCommonData(param, new HashMap<String, Object>());
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}

	/**
	 * eo光電話登録処理.<br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite addSvcKeiTel(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		HashMap<String, Object> paramMap = setSCInputCommonData(param, new HashMap<String, Object>());
		ArrayList<HashMap> schemaList = new ArrayList<HashMap>();
		Map<?, ?> result = null;
		CAANMsg template = null;

		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)(param.getData(fixedText));

		if (inMap == null)
		{
			return param;
		}

		// 電話（番号）サービスの取得
		String telMode = (String)inMap.get("tel_svc");
		// 追加申し込みの取得
		String addMode = (String)inMap.get("add_mode");
		// 法人個人コード設定フラグ
		inMap.put("is_set_hojin_kojin_cd", "1");
		
		if (KMK_DIV_ONE.equals(telMode))
		{
			/**************************************
			/* １番号サービスの場合のみ設定する
			****************************************/
			// 追加申し込みの場合
			if (ADD_MSKM_ON.equals(addMode))
			{
				// 申込明細登録
				template = editInEKK0021D010(param, fixedText); // 上りマッピング
				result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
				editRetEKK0021D010(result, param, fixedText); // 下りマッピング
				if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
				{ // ステータスが単項目エラー以上であれば例外をスロー
					throw new CCException(SC_ERROR_STRING, new Exception());
				}
			}

			// サービス契約<eo光電話>登録
			template = editInEKK0111D010(param, fixedText); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editRetEKK0111D010(result, param, fixedText); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{ // ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}
		
		String bmpUm = (String)inMap.get("kk0191_bmp_um");
		
		if (bmpUm != null && "1".equals(bmpUm))
		{
			String keyTelno = (String)inMap.get("zm0121_telno");
			if  (keyTelno != null && !"".equals(keyTelno))
			{
				// ■ＮＲＮ番号取得
				template = editInEZM0301A010(param, fixedText); // 上りマッピング
				result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
				editRetEZM0301A010(result, param, fixedText); // 下りマッピング
				if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
				{ // ステータスが単項目エラー以上であれば例外をスロー
					throw new CCException(SC_ERROR_STRING, new Exception());
				}
				
// ANK-4494-00-00 ADD START

				HashMap<String, Object> inMapEZM0121A010 = editInMsgEZM0121A010(param, keyTelno);
				CAANMsg outMapEZM0121A010 = callSvcInter(handle, param, inMapEZM0121A010, fixedText);

				CAANMsg[] rsltEZM0121A010List = outMapEZM0121A010.getCAANMsgList(EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST);
				if (rsltEZM0121A010List != null && rsltEZM0121A010List.length > 0) {
					// すでに電話番号がある場合、電話番号の状態を判定して更新を行う。

// ANK-4494-00-00 STEP2 MOD START
//					// 電話番号状態判定処理を行う。
//					HashMap telnoStatJudgeMap = telnoStatJudge(handle, param, keyTelno);
//
//					if (!(JKKTelnoStatJudgeConstCC.TLNSTKUTSJGS_JISHATASHADIV_JISHA.equals((String) telnoStatJudgeMap.get(JKKTelnoStatJudgeConstCC.TLNSTKUTSJGS_JISHATASHADIV)) 
//							&& JKKTelnoStatJudgeConstCC.PORTOUTSTATUM_ARI.equals((String) telnoStatJudgeMap.get(JKKTelnoStatJudgeConstCC.PORTOUTSTATUM)))) {
//						// 番号取得通信事業者＿自社他社区分が1:自社 かつ ポートアウト状態有無が1:有
//						// (番ポなしポートアウト状態)ではない場合、他社のポートインと判定し
//						// 回復期間中か否かを判定する。
//						// (番ポなしポートアウト状態)の場合は、更新を行わない。

					// 電話番号．電話番号取得事業者コードの自社他社フラグを取得
					String tln_stku_tsjgs_jisha_tasha_flg = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.TLN_STKU_TSJGS_JISHA_TASHA_FLG);

					if (JKKStringUtil.isNullBlank(tln_stku_tsjgs_jisha_tasha_flg) || TLNSTKUTSJGS_JISHATASHADIV_TASHA.equals(tln_stku_tsjgs_jisha_tasha_flg))
					{
						// 自社他社フラグがNULL or 空 または、0:他社フラグの場合、
						// 他事業者発番の電話番号として、下記処理を行う。
// ANK-4494-00-00 STEP2 MOD END
						
						if (chkKaifk(handle, param, fixedText, keyTelno)) {
							// 電話番号に紐づくサービス契約内訳が回復可能期間外の場合、
							// 電話番号を更新する。

							String func_cd = "1";
							String ezm0121C010_updFlg = "1";
							// 電話番号マスタ 更新
							callEZM0121C010(handle, param, fixedText, func_cd, outMapEZM0121A010, ezm0121C010_updFlg);
						}
					}
				}
				else {
					// 電話番号マスタに対象電話番号が無い場合は、登録を行う。
					// 補足：FuncCD_2の場合、keyTelnoは設定されないためチェックされない(そもそもZM0121D010のFuncCD_2を行わない)。
					//   本件改修前は、電話番号マスタに該当する電話番号があった場合、ZM0121D010を実行するが、
					//     エラー数値が4であるためそのまま通していた。(申込新規時、確認)
					//   契約ステータスが、910,920以外で作成されている電話番号であれば後続の2重登録チェックに引っかかる。
					
// ANK-4494-00-00 ADD END
					
				// ■電話番号登録
				template = editInEZM0121D010(param, fixedText); // 上りマッピング
				result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
				editRetEZM0121D010(result, param, fixedText); // 下りマッピング
				if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
				{ // ステータスが単項目エラー以上であれば例外をスロー
					throw new CCException(SC_ERROR_STRING, new Exception());
				}
// ANK-4494-00-00 ADD START
				}
// ANK-4494-00-00 ADD END
			}
		}
		
		//通信事業者拠点コード取得処理部品
		JKKBpCommon.getTsjgsKtnCd(handle, param, fixedText, inMap);
		editOutgetTsjgsKtnCd(param, fixedText, inMap);
		
		
		// OM-2015-0002295 ADD START
		// 機能コードが2の場合以外は、処理しない
		if("2".equals(inMap.get("func_code")))
		{
			// サービス契約内訳<eo光電話>登録
			template = editInEKK0191C130(param, fixedText); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editRetEKK0191C130(result, param, fixedText); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{ // ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
			// 番ポの場合、機能コード：2（チェックのみ）のタイミングではIN項目の電話番号が
			// 電話番号マスタに存在せず、後続のEKK0191D010の関連制約でエラーとなるため、
			// サービス契約内訳＜ｅｏ光電話＞登録マップ.電話番号を空マッピングし初期化。
			if (bmpUm != null && "1".equals(bmpUm))
			{
				inMap.put("kk0191_telno", "");
			}
		}
		// OM-2015-0002295 ADD END

		// サービス契約内訳<eo光電話>登録
		template = editInEKK0191D010(param, fixedText); // 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
		editRetEKK0191D010(result, param, fixedText); // 下りマッピング
		if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
		{ // ステータスが単項目エラー以上であれば例外をスロー
			throw new CCException(SC_ERROR_STRING, new Exception());
		}

		// 電話オプションサービス登録処理
		// 機能コードが1の場合以外は、処理しない
		if("1".equals(inMap.get("func_code")))
		{
			// 自動で付加されるオプションの登録処理
			editInAddOpSvcKei(param, fixedText);
			JKKBpCommon.addTelOpSvcKei(handle, param, fixedText);
		}
		
		ArrayList<HashMap> opSvcKeiList = (ArrayList<HashMap>)inMap.get(OPT_SVC_LIST);
		if (null != opSvcKeiList)
		{
			for (HashMap opSvcKeiMap : opSvcKeiList)
			{
				template = editInEKK0371D010(param, fixedText, opSvcKeiMap); // 上りマッピング
				result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
				editRetEKK0371D010(result, param, fixedText, opSvcKeiMap); // 下りマッピング
				if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
				{ // ステータスが単項目エラー以上であれば例外をスロー
					throw new CCException(SC_ERROR_STRING, new Exception());
				}
			}
		}

		// サブオプションサービスの取得
		ArrayList<HashMap> sbopSvcKeiList = (ArrayList<HashMap>)inMap.get(SBOP_SVC_LIST);
		if (null != sbopSvcKeiList)
		{
			for (HashMap sbopSvcKeiMap : sbopSvcKeiList)
			{
				// オプションサービス契約＜電話＞リストから登録するサブオプションの親となるオプションサービス契約番号を取得する。
				String opSvcKeiNo = getOpSvcKeiNoFromList((String)sbopSvcKeiMap.get("kk0431_op_svc_cd"), opSvcKeiList);
				
				template = editInEKK0431D010(param, fixedText, sbopSvcKeiMap, opSvcKeiNo); // 上りマッピング
				result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
				editRetEKK0431D010(result, param, fixedText, sbopSvcKeiMap); // 下りマッピング
				if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
				{ // ステータスが単項目エラー以上であれば例外をスロー
					throw new CCException(SC_ERROR_STRING, new Exception());
				}
			}
		}

		// サービス契約回線内訳番号がわたされていれば回線対象サービス契約登録の登録を行う
		if (inMap != null && inMap.get("kk0241_svc_kei_kaisen_ucwk_no") != null && !"".equals(inMap.get("kk0241_svc_kei_kaisen_ucwk_no")))
		{
			// 回線対象サービス契約登録
			template = editInEKK0241D010(param, fixedText); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editRetEKK0241D010(result, param, fixedText); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{ // ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}
		
// ANK-4494-00-00 DEL START
//		if (inMap.containsKey(ADD_DOBANITEN))
//		{
//			// 同番移転登録
//			schemaList = (ArrayList<HashMap>)inMap.get(ADD_DOBANITEN);
//			for (HashMap tmpMap : schemaList)
//			{
//				// 住所対象番号番号区画申込事業所番号一覧照会
//				template = editInEZM0091B020(param, fixedText, tmpMap); // 上りマッピング
//				result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
//				editRetEZM0091B020(result, param, fixedText, tmpMap); // 下りマッピング
//				
//				if("1".equals(inMap.get("func_code")))
//				{
//					// 同番移転登録
//					template = editInETU0021D010(param, fixedText, tmpMap); // 上りマッピング
//					result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
//					editRetETU0021D010(result, param, fixedText, tmpMap); // 下りマッピング
//				}
//			}
//			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
//			{ // ステータスが単項目エラー以上であれば例外をスロー
//				throw new CCException(SC_ERROR_STRING, new Exception());
//			}
//		}
// ANK-4494-00-00 DEL END

		// eo光電話パック登録
		ArrayList<HashMap<String, Object>> addEohtlPackList = (ArrayList<HashMap<String, Object>>)inMap.get(ADD_EOHTL_PACK_LIST);
		if (null != addEohtlPackList)
		{
			for (HashMap<String, Object> addEohtlPackMap : addEohtlPackList)
			{
				addEohtlPack(handle, param, fixedText, addEohtlPackMap);
			}
		}
		
		return param;
	}

	/**
	 * オプションサービス契約＜電話＞リストから指定のオプションサービスコードに対応するオプションサービス契約番号を取得します。
	 * <br/>
	 * @param opSvcCd 検索対象のオプションサービスコード
	 * @param opSvcKeiList オプションサービス契約＜電話＞リスト
	 * @return オプションサービス契約番号
	 */
	@SuppressWarnings("unchecked")
	private String getOpSvcKeiNoFromList(String opSvcCd, ArrayList<HashMap> opSvcKeiList)
	{
		if (JKKBpCommon.isNull(opSvcCd) || null == opSvcKeiList)
		{
			return null;
		}
		
		for (HashMap<String, Object> opSvcKeiMap : opSvcKeiList)
		{
			if (opSvcCd.equals((String)opSvcKeiMap.get("kk0371_op_svc_cd")))
			{
				return (String)opSvcKeiMap.get("op_svc_kei_no");
			}
		}
		return null;
	}

	/**
	 * 単一CAANMsgのマッピング処理
	 * <br>
	 * @param paramMap
	 * @param template CAANMsg
	 * @return putParamMap
	 * @throws RequestParameterException
	 */
	private HashMap<String, Object> putParamMap(HashMap<String, Object> paramMap, CAANMsg template) throws RequestParameterException
	{
		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}

	/**
	 * SCの実行ステータスの取得処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @return SCの実行ステータス
	 * @throws Exception
	 */
	private int getReturnCode(IRequestParameterReadWrite param) throws Exception
	{
		return Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
	}

	/**
	 * SCインプット共通データ設定処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param paramMap
	 * @return パラメータマップ
	 * @throws RequestParameterException
	 */
	private HashMap<String, Object> setSCInputCommonData(IRequestParameterReadWrite param, HashMap<String, Object> paramMap)
			throws RequestParameterException
	{
		/* SCインプット共通データ */
		// **********************************************
		// 【取得元：電文ヘッダ(ヘッダ)】
		// **********************************************
		// 電文ID
		paramMap.put(JCMConstants.TRANZACTION_ID_KEY, param.getTelegramID());
		// ユースケースID
		paramMap.put(JCMConstants.USECASE_ID_KEY, param.getUsecaseID());
		// オペレーションID
		paramMap.put(JCMConstants.OPERATION_ID_KEY, param.getOperationID());
		// サービス呼び出し区分
		paramMap.put(JCMConstants.CALL_TYPE_KEY, param.getCallType());

		// **********************************************
		// 【取得元：ユーザエリア(コントロールマップ)】
		// **********************************************
		// 依頼先ホスト名
		paramMap.put(JCMConstants.CLIENT_HOST_NAME_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTNAME));
		// 依頼元IPアドレス
		paramMap.put(JCMConstants.CLIENT_IP_ADDRESS_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTIP));
		// 依頼元画面ID
		paramMap.put(JCMConstants.INVOKE_GAMEN_ID_KEY, param.getControlMapData(SCControlMapKeys.REQ_VIEWID));
		// オペレータID
		paramMap.put(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));

		return paramMap;
	}

	/**
	 * 電話番号登録の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEZM0121D010(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EZM0121D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EZM0121D010CBSMsg.TEMPLATEID, "EZM0121D010");

		// 機能コード（デフォルト：１）
		template.set(EZM0121D010CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード
		if (inMap != null)
		{
			template.set(EZM0121D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));
		}

		// 電話番号登録マップ.電話番号 → 電話番号
		if (inMap == null || inMap.get("zm0121_telno") == null || "".equals(inMap.get("zm0121_telno")))
		{
			template.setNull(EZM0121D010CBSMsg.TELNO);
		}
		else
		{
			template.set(EZM0121D010CBSMsg.TELNO, (String)inMap.get("zm0121_telno"));
		}
		
		// [IT1-2012-0000632] ADD START マスタに登録するデータの局番がNullとなっている問題の対応 2012.6.6 FJ)薄出
		// 電話番号登録マップ.局番 → 局番
		if (inMap == null || inMap.get("zm0121_kyoku_no") == null || "".equals(inMap.get("zm0121_kyoku_no")))
		{
			template.setNull(EZM0121D010CBSMsg.KYOKU_NO);
		}
		else
		{
			template.set(EZM0121D010CBSMsg.KYOKU_NO, (String)inMap.get("zm0121_kyoku_no"));
		}
		// [IT1-2012-0000632] ADD END   マスタに登録するデータの局番がNullとなっている問題の対応 2012.6.6 FJ)薄出
		
		// NRN番号
		if (inMap == null || inMap.get("zm0121_kojin_nrn_no") == null || "".equals(inMap.get("zm0121_kojin_nrn_no")))
		{
			template.setNull(EZM0121D010CBSMsg.NRN_NO);
		}
		else
		{
			template.set(EZM0121D010CBSMsg.NRN_NO, (String)inMap.get("zm0121_kojin_nrn_no"));
		}
		
		// 個人法人電話番号帯コード
		template.set(EZM0121D010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, JKKStrConst.CD00410_KOJIN);
		// 番号コード
		template.set(EZM0121D010CBSMsg.NO_CD, JKKStrConst.NO_CD_OABJ);
		// 割当通信事業者コード
		template.set(EZM0121D010CBSMsg.WARIATE_TSJGS_CD, JTUStrConst.TSJGS_CD_NTT);
		// 使用通信事業者コード
		if (inMap == null || inMap.get("zm0121_use_tsjgs_cd") == null || "".equals(inMap.get("zm0121_use_tsjgs_cd")))
		{
			template.setNull(EZM0121D010CBSMsg.USE_TSJGS_CD);
		}
		else
		{
			template.set(EZM0121D010CBSMsg.USE_TSJGS_CD, (String)inMap.get("zm0121_use_tsjgs_cd"));
		}
		// サービス区分
		template.set(EZM0121D010CBSMsg.SVC_DIV, JKKStrConst.SVC_DIV_OPT_PHONE);
		// 電話番号適用開始年月日
		if (inMap == null || inMap.get("zm0121_telno_tstaymd") == null || "".equals(inMap.get("zm0121_telno_tstaymd")))
		{
			template.setNull(EZM0121D010CBSMsg.TELNO_TSTAYMD);
		}
		else
		{
			template.set(EZM0121D010CBSMsg.TELNO_TSTAYMD, (String)inMap.get("zm0121_telno_tstaymd"));
		}
//		template.set(EZM0121D010CBSMsg.TELNO_TENDYMD, "20991231");
		
// ANK-4494-00-00 ADD STRAT
		// 初期個人法人電話番号帯コード
		if (inMap == null || inMap.get("zm0121_shk_kojin_hojin_tln_tai_cd") == null || "".equals(inMap.get("zm0121_shk_kojin_hojin_tln_tai_cd"))) {
			template.setNull(EZM0121D010CBSMsg.SHK_KOJIN_HOJIN_TLN_TAI_CD);
		}
		else {
			template.set(EZM0121D010CBSMsg.SHK_KOJIN_HOJIN_TLN_TAI_CD, (String) inMap.get("zm0121_shk_kojin_hojin_tln_tai_cd"));
		}

		// 電話番号取得通信事業者コード
		if (inMap == null || inMap.get("zm0121_tln_stku_tsjgs_cd") == null || "".equals(inMap.get("zm0121_tln_stku_tsjgs_cd"))) {
			template.setNull(EZM0121D010CBSMsg.TLN_STKU_TSJGS_CD);
		}
		else {
			template.set(EZM0121D010CBSMsg.TLN_STKU_TSJGS_CD, (String) inMap.get("zm0121_tln_stku_tsjgs_cd"));
		}

		// 移転元通信事業者コード
		if (inMap == null || inMap.get("zm0121_itnm_tsjgs_cd") == null || "".equals(inMap.get("zm0121_itnm_tsjgs_cd"))) {
			template.setNull(EZM0121D010CBSMsg.ITNM_TSJGS_CD);
		}
		else {
			template.set(EZM0121D010CBSMsg.ITNM_TSJGS_CD, (String) inMap.get("zm0121_itnm_tsjgs_cd"));
		}

		// 移転先通信事業者コード
		if (inMap == null || inMap.get("zm0121_itns_tsjgs_cd") == null || "".equals(inMap.get("zm0121_itns_tsjgs_cd"))) {
			template.setNull(EZM0121D010CBSMsg.ITNS_TSJGS_CD);
		}
		else {
			template.set(EZM0121D010CBSMsg.ITNS_TSJGS_CD, (String) inMap.get("zm0121_itns_tsjgs_cd"));
		}
// ANK-4494-00-00 ADD END
		
		return template;
	}

	/**
	 * 電話番号登録の下りマッピング処理
	 * <br>
	 * @param msgList メッセージリスト
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param prefix
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editRetEZM0121D010(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		HashMap workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TEL);
		if (workDataMap == null)
		{
			workDataMap = new HashMap();
			workMap.put(CC_WORK_AREA_NAME_TEL, workDataMap);
		}

		/* 業務データ設定 */
		HashMap dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

		// エラー情報の設定
		editErrInfoEZM0121D010(param, template, (Integer)returnCode, fixedText);

		// エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}

		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * 電話番号登録のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param template CAANMsg
	 * @param returnCode リターンコード
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEZM0121D010(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EZM0121D010CBSMsg.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);
		}

		HashMap inMap = null;

		// 作業項目領域
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* ユーザデータ情報 */
		inMap = (HashMap)param.getData(fixedText);

		// 電話番号登録マップ.電話番号 → 電話番号 のエラー情報返却
		if (!template.isNull(EZM0121D010CBSMsg.TELNO_ERR))
		{
			if (!inMap.containsKey("telno_err"))
			{
				inMap.put("telno_err", template.getString(EZM0121D010CBSMsg.TELNO_ERR));
			}
		}
		
		// [IT1-2012-0000632] ADD START マスタに登録するデータの局番がNullとなっている問題の対応 2012.6.6 FJ)薄出
		// 電話番号登録マップ.局番 → 局番 のエラー情報返却
		if (!template.isNull(EZM0121D010CBSMsg.KYOKU_NO_ERR))
		{
			if (!inMap.containsKey("kyoku_no_err"))
			{
				inMap.put("kyoku_no_err", template.getString(EZM0121D010CBSMsg.KYOKU_NO_ERR));
			}
		}
		// [IT1-2012-0000632] ADD END   マスタに登録するデータの局番がNullとなっている問題の対応 2012.6.6 FJ)薄出
		
		// 電話番号登録マップ.番号コード → 番号コード のエラー情報返却
		if (!template.isNull(EZM0121D010CBSMsg.NO_CD_ERR))
		{
			if (!inMap.containsKey("no_cd_err"))
			{
				inMap.put("no_cd_err", template.getString(EZM0121D010CBSMsg.NO_CD_ERR));
			}
		}
		// 電話番号登録マップ.割当通信事業者コード → 割当通信事業者コード のエラー情報返却
		if (!template.isNull(EZM0121D010CBSMsg.WARIATE_TSJGS_CD_ERR))
		{
			if (!inMap.containsKey("wariate_tsjgs_cd_err"))
			{
				inMap.put("wariate_tsjgs_cd_err", template.getString(EZM0121D010CBSMsg.WARIATE_TSJGS_CD_ERR));
			}
		}
		// 電話番号登録マップ.使用通信事業者コード → 使用通信事業者コード のエラー情報返却
		if (!template.isNull(EZM0121D010CBSMsg.USE_TSJGS_CD_ERR))
		{
			if (!inMap.containsKey("use_tsjgs_cd_err"))
			{
				inMap.put("use_tsjgs_cd_err", template.getString(EZM0121D010CBSMsg.USE_TSJGS_CD_ERR));
			}
		}
		// 電話番号登録マップ.サービス区分 → サービス区分 のエラー情報返却
		if (!template.isNull(EZM0121D010CBSMsg.SVC_DIV_ERR))
		{
			if (!inMap.containsKey("svc_div_err"))
			{
				inMap.put("svc_div_err", template.getString(EZM0121D010CBSMsg.SVC_DIV_ERR));
			}
		}
		// 電話番号登録マップ.電話番号適用開始年月日 → 電話番号適用開始年月日 のエラー情報返却
		if (!template.isNull(EZM0121D010CBSMsg.TELNO_TSTAYMD_ERR))
		{
			if (!inMap.containsKey("telno_tstaymd_err"))
			{
				inMap.put("telno_tstaymd_err", template.getString(EZM0121D010CBSMsg.TELNO_TSTAYMD_ERR));
			}
		}

// ANK-4494-00-00 ADD START
		// 電話番号登録マップ.初期個人法人電話番号帯コード → 初期個人法人電話番号帯コード のエラー情報返却
		if (!template.isNull(EZM0121D010CBSMsg.SHK_KOJIN_HOJIN_TLN_TAI_CD_ERR)) {
			if (!inMap.containsKey("shk_kojin_hojin_tln_tai_cd_err")) {
				inMap.put("shk_kojin_hojin_tln_tai_cd_err", template.getString(EZM0121D010CBSMsg.SHK_KOJIN_HOJIN_TLN_TAI_CD_ERR));
			}
		}
		// 電話番号登録マップ.電話番号取得通信事業者コード → 電話番号取得通信事業者コード のエラー情報返却
		if (!template.isNull(EZM0121D010CBSMsg.TLN_STKU_TSJGS_CD_ERR)) {
			if (!inMap.containsKey("tln_stku_tsjgs_cd_err")) {
				inMap.put("tln_stku_tsjgs_cd_err", template.getString(EZM0121D010CBSMsg.TLN_STKU_TSJGS_CD_ERR));
			}
		}
		// 電話番号登録マップ.移転元通信事業者コード → 移転元通信事業者コード のエラー情報返却
		if (!template.isNull(EZM0121D010CBSMsg.ITNM_TSJGS_CD_ERR)) {
			if (!inMap.containsKey("itnm_tsjgs_cd_err")) {
				inMap.put("itnm_tsjgs_cd_err", template.getString(EZM0121D010CBSMsg.ITNM_TSJGS_CD_ERR));
			}
		}
		// 電話番号登録マップ.移転先通信事業者コード → 移転先通信事業者コード のエラー情報返却
		if (!template.isNull(EZM0121D010CBSMsg.ITNS_TSJGS_CD_ERR)) {
			if (!inMap.containsKey("itns_tsjgs_cd_err")) {
				inMap.put("itns_tsjgs_cd_err", template.getString(EZM0121D010CBSMsg.ITNS_TSJGS_CD_ERR));
			}
		}
// ANK-4494-00-00 ADD END

		return param;
	}

	/**
	 * 局番一意照会の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEZM0301A010(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EZM0301A010CBSMsg.class.getName());

		// テンプレートID
		template.set(EZM0301A010CBSMsg.TEMPLATEID, "EZM0301A010");

		// 機能コード（デフォルト：１）
		template.set(EZM0301A010CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード
		if (inMap != null)
		{
			template.set(EZM0301A010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));
		}

		// 電話番号登録マップ.局番 → 局番
		if (inMap == null || inMap.get("zm0121_kyoku_no") == null || "".equals(inMap.get("zm0121_kyoku_no")))
		{
			template.setNull(EZM0301A010CBSMsg.KEY_KYOKU_NO);
		}
		else
		{
			template.set(EZM0301A010CBSMsg.KEY_KYOKU_NO, (String)inMap.get("zm0121_kyoku_no"));
		}
		
		return template;
	}

	/**
	 * 局番一意照会の下りマッピング処理
	 * <br>
	 * @param msgList メッセージリスト
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param prefix
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editRetEZM0301A010(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		HashMap workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TEL);
		if (workDataMap == null)
		{
			workDataMap = new HashMap();
			workMap.put(CC_WORK_AREA_NAME_TEL, workDataMap);
		}

		/* 業務データ設定 */
		HashMap dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}
		
		CAANMsg[] templateArray = template.getCAANMsgList(EZM0301A010CBSMsg.EZM0301A010CBSMSG1LIST);

		if (templateArray != null)
		{
			CAANMsg childTemplate = templateArray[0];
			
			// 個人NRN番号
			if (childTemplate.isNull(EZM0301A010CBSMsg1List.KOJIN_NRN_NO))
			{
				dataMap.put("zm0121_kojin_nrn_no", "");
			}
			else
			{
				dataMap.put("zm0121_kojin_nrn_no", childTemplate.getString(EZM0301A010CBSMsg1List.KOJIN_NRN_NO));
			}
		}

		// エラー情報の設定
		editErrInfoEZM0301A010(param, template, (Integer)returnCode, fixedText);

		// エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}

		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * 局番一意照会のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param template CAANMsg
	 * @param returnCode リターンコード
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEZM0301A010(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EZM0301A010CBSMsg.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);
		}

		HashMap inMap = null;

		// 作業項目領域
		Map workMap = (Map)param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* ユーザデータ情報 */
		inMap = (HashMap)param.getData(fixedText);

		// 局番一意照会マップ.ＫＥＹ＿局番 → ＫＥＹ＿局番 のエラー情報返却
		if (!template.isNull(EZM0301A010CBSMsg.KEY_KYOKU_NO_ERR))
		{
			if (!inMap.containsKey("key_kyoku_no_err"))
			{
				inMap.put("key_kyoku_no_err", template.getString(EZM0301A010CBSMsg.KEY_KYOKU_NO_ERR));
			}
		}
		return param;
	}

	/**
	 * サービス契約＜電話＞登録の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0111D010(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0111D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0111D010CBSMsg.TEMPLATEID, "EKK0111D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0111D010CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード
		template.set(EKK0111D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域のマップを取得
		HashMap workDataMap = null;
		Map workMap = param.getMappingWorkArea();
		if (workMap != null)
		{
			workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TEL);
		}

		// 作業領域のマップを取得
		HashMap workDataMap_Mskm = null;
		HashMap workDataMap_MskmList = null;
		String mskmDtlNo = null;
		Map workMapMskm = param.getMappingWorkArea();
		if (workMapMskm != null)
		{
			workDataMap_Mskm = (HashMap)workMapMskm.get(CC_WORK_AREA_NAME_MSKM);
			if (workDataMap_Mskm != null)
			{
				ArrayList inList1 = ((ArrayList)workDataMap_Mskm.get(CC_WORK_AREA_NAME_MSKM_LIST));
				int devCnt = inList1 != null ? inList1.size() : 0;
				for (int i = 0; i < devCnt; i++)
				{
					workDataMap_MskmList = (HashMap)(inList1).get(i);

					if (workDataMap_MskmList == null || workDataMap_MskmList.get("mskm_dtl_no_tel") == null
							|| "".equals(workDataMap_MskmList.get("mskm_dtl_no_tel")))
					{
						mskmDtlNo = null;
					}
					else
					{
						mskmDtlNo = (String)workDataMap_MskmList.get("mskm_dtl_no_tel");
						break;
					}

				}
			}
		}

		String prefix = "kk0111_";
		
		// サービス契約＜ｅｏ光電話＞登録マップ.ＳＹＳＩＤ → SYSID
		if (inMap == null || inMap.get("kk0111_sysid") == null || "".equals(inMap.get("kk0111_sysid")))
		{
			if (getKeishaWorkMapValue(param, "sysid") == null)
			{
				template.setNull(EKK0111D010CBSMsg.SYSID);
			}
			else
			{
				template.set(EKK0111D010CBSMsg.SYSID, getKeishaWorkMapValue(param, "sysid"));
			}
		}
		else
		{
			template.set(EKK0111D010CBSMsg.SYSID, (String)inMap.get("kk0111_sysid"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.サービスコード → サービスコード
		if (inMap == null || inMap.get("kk0111_svc_cd") == null || "".equals(inMap.get("kk0111_svc_cd")))
		{
			template.setNull(EKK0111D010CBSMsg.SVC_CD);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.SVC_CD, (String)inMap.get("kk0111_svc_cd"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.申込明細番号 → 申込明細番号
		if (inMap == null || inMap.get("kk0111_mskm_dtl_no") == null || "".equals(inMap.get("kk0111_mskm_dtl_no")))
		{
			if (mskmDtlNo == null)
			{
				if (workDataMap == null || workDataMap.get("mskm_dtl_no") == null || "".equals(workDataMap.get("mskm_dtl_no")))
				{
					template.setNull(EKK0111D010CBSMsg.MSKM_DTL_NO);
				}
				else
				{
					template.set(EKK0111D010CBSMsg.MSKM_DTL_NO, (String)workDataMap.get("mskm_dtl_no"));
				}
			}
			else
			{
				template.set(EKK0111D010CBSMsg.MSKM_DTL_NO, mskmDtlNo);
			}
		}
		else
		{
			template.set(EKK0111D010CBSMsg.MSKM_DTL_NO, (String)inMap.get("kk0111_mskm_dtl_no"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.面開発案件番号 → 面開発案件番号
		if (inMap == null || inMap.get("kk0111_menkaihat_anken_no") == null || "".equals(inMap.get("kk0111_menkaihat_anken_no")))
		{
			template.setNull(EKK0111D010CBSMsg.MENKAIHAT_ANKEN_NO);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.MENKAIHAT_ANKEN_NO, (String)inMap.get("kk0111_menkaihat_anken_no"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.料金グループコード → 料金グループコード
		if (inMap == null || inMap.get("kk0111_prc_grp_cd") == null || "".equals(inMap.get("kk0111_prc_grp_cd")))
		{
			template.setNull(EKK0111D010CBSMsg.PRC_GRP_CD);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.PRC_GRP_CD, (String)inMap.get("kk0111_prc_grp_cd"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.料金コースコード → 料金コースコード
		if (inMap == null || inMap.get("kk0111_pcrs_cd") == null || "".equals(inMap.get("kk0111_pcrs_cd")))
		{
			template.setNull(EKK0111D010CBSMsg.PCRS_CD);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.PCRS_CD, (String)inMap.get("kk0111_pcrs_cd"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.料金プランコード → 料金プランコード
		if (inMap == null || inMap.get("kk0111_pplan_cd") == null || "".equals(inMap.get("kk0111_pplan_cd")))
		{
			template.setNull(EKK0111D010CBSMsg.PPLAN_CD);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.PPLAN_CD, (String)inMap.get("kk0111_pplan_cd"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.提供方式契約番号 → 提供方式契約番号
		if (inMap == null || inMap.get("kk0111_tk_hoshiki_kei_no") == null || "".equals(inMap.get("kk0111_tk_hoshiki_kei_no")))
		{
			template.setNull(EKK0111D010CBSMsg.TK_HOSHIKI_KEI_NO);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.TK_HOSHIKI_KEI_NO, (String)inMap.get("kk0111_tk_hoshiki_kei_no"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.サービス利用開始希望年月日 → サービス利用開始希望年月日
		if (inMap == null || inMap.get("kk0111_svc_use_sta_kibo_ymd") == null || "".equals(inMap.get("kk0111_svc_use_sta_kibo_ymd")))
		{
			template.setNull(EKK0111D010CBSMsg.SVC_USE_STA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.SVC_USE_STA_KIBO_YMD, (String)inMap.get("kk0111_svc_use_sta_kibo_ymd"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.予約適用開始希望年月日 → 予約適用開始希望年月日
		if (inMap == null || inMap.get("kk0111_rsv_tsta_kibo_ymd") == null || "".equals(inMap.get("kk0111_rsv_tsta_kibo_ymd")))
		{
			template.setNull(EKK0111D010CBSMsg.RSV_TSTA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.RSV_TSTA_KIBO_YMD, (String)inMap.get("kk0111_rsv_tsta_kibo_ymd"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.ＩＤ速報書出力要否 → ID速報書出力要否
		if (inMap == null || inMap.get("kk0111_id_sokhosho_output_yh") == null || "".equals(inMap.get("kk0111_id_sokhosho_output_yh")))
		{
			template.setNull(EKK0111D010CBSMsg.ID_SOKHOSHO_OUTPUT_YH);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.ID_SOKHOSHO_OUTPUT_YH, (String)inMap.get("kk0111_id_sokhosho_output_yh"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.支払方法継続フラグ → 支払方法継続フラグ
		if (inMap == null || inMap.get("kk0111_payway_keizoku_flg") == null || "".equals(inMap.get("kk0111_payway_keizoku_flg")))
		{
			template.setNull(EKK0111D010CBSMsg.PAYWAY_KEIZOKU_FLG);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.PAYWAY_KEIZOKU_FLG, (String)inMap.get("kk0111_payway_keizoku_flg"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.試用加入年月日 → 試用加入年月日
		if (inMap == null || inMap.get("kk0111_ftrial_kanyu_ymd") == null || "".equals(inMap.get("kk0111_ftrial_kanyu_ymd")))
		{
			template.setNull(EKK0111D010CBSMsg.FTRIAL_KANYU_YMD);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.FTRIAL_KANYU_YMD, (String)inMap.get("kk0111_ftrial_kanyu_ymd"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.試用期間終了年月日 → 試用期間終了年月日
		if (inMap == null || inMap.get("kk0111_ftrial_prd_endymd") == null || "".equals(inMap.get("kk0111_ftrial_prd_endymd")))
		{
			template.setNull(EKK0111D010CBSMsg.FTRIAL_PRD_ENDYMD);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.FTRIAL_PRD_ENDYMD, (String)inMap.get("kk0111_ftrial_kanyu_ymd"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.本加入年月日 → 本加入年月日
		if (inMap == null || inMap.get("kk0111_honkanyu_ymd") == null || "".equals(inMap.get("kk0111_honkanyu_ymd")))
		{
			template.setNull(EKK0111D010CBSMsg.HONKANYU_YMD);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.HONKANYU_YMD, (String)inMap.get("kk0111_honkanyu_ymd"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.本加入移行期限年月日 → 本加入移行期限年月日
		if (inMap == null || inMap.get("kk0111_honkanyu_iko_kigen_ymd") == null || "".equals(inMap.get("kk0111_honkanyu_iko_kigen_ymd")))
		{
			template.setNull(EKK0111D010CBSMsg.HONKANYU_IKO_KIGEN_YMD);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.HONKANYU_IKO_KIGEN_YMD, (String)inMap.get("kk0111_honkanyu_iko_kigen_ymd"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.レター発送仕分区分 → レター発送仕分区分
		if (inMap == null || inMap.get("kk0111_letter_hasso_shiwake_div") == null || "".equals(inMap.get("kk0111_letter_hasso_shiwake_div")))
		{
			template.setNull(EKK0111D010CBSMsg.LETTER_HASSO_SHIWAKE_DIV);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.LETTER_HASSO_SHIWAKE_DIV, (String)inMap.get("kk0111_letter_hasso_shiwake_div"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.サンキューレター送付先コード → サンキューレター送付先コード
		if (inMap == null || inMap.get("kk0111_thnx_letter_shs_cd") == null || "".equals(inMap.get("kk0111_thnx_letter_shs_cd")))
		{
			template.setNull(EKK0111D010CBSMsg.THNX_LETTER_SHS_CD);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.THNX_LETTER_SHS_CD, (String)inMap.get("kk0111_thnx_letter_shs_cd"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.ＷＥＢオプション追加不可フラグ → WEBオプション追加不可フラグ
		if (inMap == null || inMap.get("kk0111_web_op_add_fail_flg") == null || "".equals(inMap.get("kk0111_web_op_add_fail_flg")))
		{
			template.setNull(EKK0111D010CBSMsg.WEB_OP_ADD_FAIL_FLG);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.WEB_OP_ADD_FAIL_FLG, (String)inMap.get("kk0111_web_op_add_fail_flg"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.変更元法人サービス契約受付番号 → 変更元法人サービス契約受付番号
		if (inMap == null || inMap.get("kk0111_chge_mt_hojinsvkei_uk_no") == null || "".equals(inMap.get("kk0111_chge_mt_hojinsvkei_uk_no")))
		{
			template.setNull(EKK0111D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NO);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NO, (String)inMap.get("kk0111_chge_mt_hojinsvkei_uk_no"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.変更元法人サービス契約受付番号子 → 変更元法人サービス契約受付番号子
		if (inMap == null || inMap.get("kk0111_chge_mt_hojinsvkei_uk_nopt") == null || "".equals(inMap.get("kk0111_chge_mt_hojinsvkei_uk_nopt")))
		{
			template.setNull(EKK0111D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NOPT);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NOPT, (String)inMap.get("kk0111_chge_mt_hojinsvkei_uk_nopt"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.違約金発生コード → 違約金発生コード
		if (inMap == null || inMap.get("kk0111_pnlty_hassei_cd") == null || "".equals(inMap.get("kk0111_pnlty_hassei_cd")))
		{
			template.setNull(EKK0111D010CBSMsg.PNLTY_HASSEI_CD);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.PNLTY_HASSEI_CD, (String)inMap.get("kk0111_pnlty_hassei_cd"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.異動区分 → 異動区分
		if (inMap == null || inMap.get("kk0111_ido_div") == null || "".equals(inMap.get("kk0111_ido_div")))
		{
			template.setNull(EKK0111D010CBSMsg.IDO_DIV);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.IDO_DIV, (String)inMap.get("kk0111_ido_div"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.初期デフォルトパスワード → 初期デフォルトパスワード
		if (inMap == null || inMap.get("kk0111_shk_dflt_pwd") == null || "".equals(inMap.get("kk0111_shk_dflt_pwd")))
		{
			template.setNull(EKK0111D010CBSMsg.SHK_DFLT_PWD);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.SHK_DFLT_PWD, (String)inMap.get("kk0111_shk_dflt_pwd"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.紹介コード → 紹介コード
		if (inMap == null || inMap.get("kk0111_intr_cd") == null || "".equals(inMap.get("kk0111_intr_cd")))
		{
			template.setNull(EKK0111D010CBSMsg.INTR_CD);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.INTR_CD, (String)inMap.get("kk0111_intr_cd"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.業務連絡備考 → 業務連絡備考
		if (inMap == null || inMap.get("kk0111_work_rrk_biko") == null || "".equals(inMap.get("kk0111_work_rrk_biko")))
		{
			template.setNull(EKK0111D010CBSMsg.WORK_RRK_BIKO);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.WORK_RRK_BIKO, (String)inMap.get("kk0111_work_rrk_biko"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.自動照査処理状態コード → 自動照査処理状態コード
		if (inMap == null || inMap.get("kk0111_auto_shosa_tran_stat_cd") == null || "".equals(inMap.get("kk0111_auto_shosa_tran_stat_cd")))
		{
			template.setNull(EKK0111D010CBSMsg.AUTO_SHOSA_TRAN_STAT_CD);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.AUTO_SHOSA_TRAN_STAT_CD, (String)inMap.get("kk0111_auto_shosa_tran_stat_cd"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.請求契約番号 → 請求契約番号
		if (getPayWayWorkMapValue(param, "seiky_kei_no") == null)
		{
			if (inMap == null || inMap.get("kk0111_seiky_kei_no") == null || "".equals(inMap.get("kk0111_seiky_kei_no")))
			{
				template.setNull(EKK0111D010CBSMsg.SEIKY_KEI_NO);
			}
			else
			{
				template.set(EKK0111D010CBSMsg.SEIKY_KEI_NO, (String)inMap.get("kk0111_seiky_kei_no"));
			}
		}
		else
		{
			template.set(EKK0111D010CBSMsg.SEIKY_KEI_NO, (String)getPayWayWorkMapValue(param, "seiky_kei_no"));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.料金項目コード → 料金項目コード
		if (inMap == null || inMap.get("kk0111_prc_kmk_cd") == null || "".equals(inMap.get("kk0111_prc_kmk_cd")))
		{
			template.setNull(EKK0111D010CBSMsg.PRC_KMK_CD);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.PRC_KMK_CD, (String)inMap.get("kk0111_prc_kmk_cd"));
		}

		// 事務手数料自動適用要否
		if (inMap == null || inMap.get("kk0111_rule0059_auto_aply") == null || "".equals(inMap.get("kk0111_rule0059_auto_aply")))
		{
			template.setNull(EKK0111D010CBSMsg.RULE0059_AUTO_APLY);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.RULE0059_AUTO_APLY, (String)inMap.get("kk0111_rule0059_auto_aply"));
		}

		// 工事費自動適用要否
		if (inMap == null || inMap.get("kk0111_rule0079_auto_aply") == null || "".equals(inMap.get("kk0111_rule0079_auto_aply")))
		{
			template.setNull(EKK0111D010CBSMsg.RULE0079_AUTO_APLY);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.RULE0079_AUTO_APLY, (String)inMap.get("kk0111_rule0079_auto_aply"));
		}

		// ANK-1254 ADD START 村松
		// サービス契約＜ｅｏ光電話＞登録マップ.マンション識別コード → マンション識別コード
		if (inMap == null || inMap.get("kk0111_mans_skbt_cd") == null || "".equals(inMap.get("kk0111_mans_skbt_cd")))
		{
			template.setNull(EKK0111D010CBSMsg.MANS_SKBT_CD);
		}
		else
		{
			template.set(EKK0111D010CBSMsg.MANS_SKBT_CD, (String)inMap.get("kk0111_mans_skbt_cd"));
		}
		// ANK-1254 ADD END   村松
		
		// 機器提供種別コード
		setTemplate(template, EKK0111D010CBSMsg.KKTK_SBT_CD, inMap, prefix);

		return template;
	}

	/**
	 * サービス契約＜電話＞登録の下りマッピング処理を行います。
	 * <br>
	 * @param msgList メッセージリスト
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editRetEKK0111D010(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 結果を詰めるマップを取得。
		HashMap dataMap = null;

		HashMap workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TEL);
		if (workDataMap == null)
		{
			workDataMap = new HashMap();
			workMap.put(CC_WORK_AREA_NAME_TEL, workDataMap);
		}

		dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.サービス契約番号 ← サービス契約番号
		if (template.isNull(EKK0111D010CBSMsg.SVC_KEI_NO))
		{
			dataMap.put("svc_kei_no", "");
			dataMap.put("kk0111_svc_kei_no", "");
		}
		else
		{
			dataMap.put("svc_kei_no", template.getString(EKK0111D010CBSMsg.SVC_KEI_NO));
			dataMap.put("kk0111_svc_kei_no", template.getString(EKK0111D010CBSMsg.SVC_KEI_NO));
			workDataMap.put("svc_kei_no", template.getString(EKK0111D010CBSMsg.SVC_KEI_NO));
			workDataMap.put("kk0111_svc_kei_no", template.getString(EKK0111D010CBSMsg.SVC_KEI_NO));
			// 契約新規申込ワークエリアへ登録
			JKKBpCommon.setWkSvcKeiNoTel(param, template.getString(EKK0111D010CBSMsg.SVC_KEI_NO));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.世代登録年月日時分秒 ← 世代登録年月日時分秒
		if (template.isNull(EKK0111D010CBSMsg.GENE_ADD_DTM))
		{
			dataMap.put("gene_add_dtm", "");
		}
		else
		{
			dataMap.put("gene_add_dtm", template.getString(EKK0111D010CBSMsg.GENE_ADD_DTM));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.サービス契約ステータス ← サービス契約ステータス
		if (template.isNull(EKK0111D010CBSMsg.SVC_KEI_STAT))
		{
			dataMap.put("svc_kei_stat", "");
		}
		else
		{
			dataMap.put("svc_kei_stat", template.getString(EKK0111D010CBSMsg.SVC_KEI_STAT));
		}
		
		// サービス契約＜ｅｏ光電話＞登録マップ.審査結果送信コード ← 審査結果送信コード
		if (template.isNull(EKK0111D010CBSMsg.SKEKKA_SEND_CD))
		{
			dataMap.put("skekka_send_cd", "");
		}
		else
		{
			dataMap.put("skekka_send_cd", template.getString(EKK0111D010CBSMsg.SKEKKA_SEND_CD));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.予約適用年月日 ← 予約適用年月日
		if (template.isNull(EKK0111D010CBSMsg.RSV_APLY_YMD))
		{
			dataMap.put("rsv_aply_ymd", "");
		}
		else
		{
			dataMap.put("rsv_aply_ymd", template.getString(EKK0111D010CBSMsg.RSV_APLY_YMD));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.予約適用コード ← 予約適用コード
		if (template.isNull(EKK0111D010CBSMsg.RSV_APLY_CD))
		{
			dataMap.put("rsv_aply_cd", "");
		}
		else
		{
			dataMap.put("rsv_aply_cd", template.getString(EKK0111D010CBSMsg.RSV_APLY_CD));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.世代登録年月日時分秒（サービス契約＜ｅｏ光電話＞） ← 世代登録年月日時分秒(サービス契約<eo光電話>)
		if (template.isNull(EKK0111D010CBSMsg.KK0111_GENE_ADD_DTM))
		{
			dataMap.put("kk0111_gene_add_dtm", "");
		}
		else
		{
			dataMap.put("kk0111_gene_add_dtm", template.getString(EKK0111D010CBSMsg.KK0111_GENE_ADD_DTM));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.ＰＰＰ認証ＩＤ ← PPP認証ID
		if (template.isNull(EKK0111D010CBSMsg.PPP_NINSHO_ID))
		{
			dataMap.put("ppp_ninsho_id", "");
		}
		else
		{
			dataMap.put("ppp_ninsho_id", template.getString(EKK0111D010CBSMsg.PPP_NINSHO_ID));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.ＰＰＰ認証ＩＤパスワード ← PPP認証IDパスワード
		if (template.isNull(EKK0111D010CBSMsg.PPP_NINSHO_ID_PWD))
		{
			dataMap.put("ppp_ninsho_id_pwd", "");
		}
		else
		{
			dataMap.put("ppp_ninsho_id_pwd", template.getString(EKK0111D010CBSMsg.PPP_NINSHO_ID_PWD));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.課金先番号 ← 課金先番号
		if (template.isNull(EKK0111D010CBSMsg.KAKINS_NO))
		{
			dataMap.put("kakins_no", "");
		}
		else
		{
			dataMap.put("kakins_no", template.getString(EKK0111D010CBSMsg.KAKINS_NO));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.課金先適用開始年月日 ← 課金先適用開始年月日
		if (template.isNull(EKK0111D010CBSMsg.KAKINS_TSTAYMD))
		{
			dataMap.put("kakins_tstaymd", "");
		}
		else
		{
			dataMap.put("kakins_tstaymd", template.getString(EKK0111D010CBSMsg.KAKINS_TSTAYMD));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.課金先適用終了年月日 ← 課金先適用終了年月日
		if (template.isNull(EKK0111D010CBSMsg.KAKINS_TENDYMD))
		{
			dataMap.put("kakins_tendymd", "");
		}
		else
		{
			dataMap.put("kakins_tendymd", template.getString(EKK0111D010CBSMsg.KAKINS_TENDYMD));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.登録年月日時分秒 ← 登録年月日時分秒
		if (template.isNull(EKK0111D010CBSMsg.ADD_DTM))
		{
			dataMap.put("add_dtm", "");
		}
		else
		{
			dataMap.put("add_dtm", template.getString(EKK0111D010CBSMsg.ADD_DTM));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.登録オペレータアカウント ← 登録オペレータアカウント
		if (template.isNull(EKK0111D010CBSMsg.ADD_OPEACNT))
		{
			dataMap.put("add_opeacnt", "");
		}
		else
		{
			dataMap.put("add_opeacnt", template.getString(EKK0111D010CBSMsg.ADD_OPEACNT));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.更新年月日時分秒 ← 更新年月日時分秒
		if (template.isNull(EKK0111D010CBSMsg.UPD_DTM))
		{
			dataMap.put("upd_dtm", "");
		}
		else
		{
			dataMap.put("upd_dtm", template.getString(EKK0111D010CBSMsg.UPD_DTM));
			workDataMap.put("kk0111_upd_dtm", template.getString(EKK0111D010CBSMsg.UPD_DTM));
			
			HashMap inMap = (HashMap)param.getData(fixedText);
			JKKBpCommon.setLastDtmBySvcKeiNo(param, (String)inMap.get("svc_kei_no"), 
					template.getString(EKK0111D010CBSMsg.UPD_DTM));

		}

		// サービス契約＜ｅｏ光電話＞登録マップ.更新オペレータアカウント ← 更新オペレータアカウント
		if (template.isNull(EKK0111D010CBSMsg.UPD_OPEACNT))
		{
			dataMap.put("upd_opeacnt", "");
		}
		else
		{
			dataMap.put("upd_opeacnt", template.getString(EKK0111D010CBSMsg.UPD_OPEACNT));
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.無効フラグ ← 無効フラグ
		if (template.isNull(EKK0111D010CBSMsg.MK_FLG))
		{
			dataMap.put("mk_flg", "");
		}
		else
		{
			dataMap.put("mk_flg", template.getString(EKK0111D010CBSMsg.MK_FLG));
		}

		// エラー情報の設定
		editErrInfoEKK0111D010(param, template, (Integer)returnCode, fixedText);

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * サービス契約＜電話＞登録のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param template CAANMsg
	 * @param returnCode リターンコード
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0111D010(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0111D010CBSMsg.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);
		}

		HashMap inMap = null;

		// 作業項目領域
		Map workMap = (Map)param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* ユーザデータ情報 */
		inMap = (HashMap)param.getData(fixedText);
		
		String prefix = "";

		// サービス契約＜ｅｏ光電話＞登録マップ.ＳＹＳＩＤ → SYSID のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.SYSID_ERR))
		{
			if (!inMap.containsKey("sysid_err"))
			{
				inMap.put("sysid_err", template.getString(EKK0111D010CBSMsg.SYSID_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.サービスコード → サービスコード のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.SVC_CD_ERR))
		{
			if (!inMap.containsKey("svc_cd_err"))
			{
				inMap.put("svc_cd_err", template.getString(EKK0111D010CBSMsg.SVC_CD_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.申込明細番号 → 申込明細番号 のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey("mskm_dtl_no_err"))
			{
				inMap.put("mskm_dtl_no_err", template.getString(EKK0111D010CBSMsg.MSKM_DTL_NO_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.面開発案件番号 → 面開発案件番号 のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.MENKAIHAT_ANKEN_NO_ERR))
		{
			if (!inMap.containsKey("menkaihat_anken_no_err"))
			{
				inMap.put("menkaihat_anken_no_err", template.getString(EKK0111D010CBSMsg.MENKAIHAT_ANKEN_NO_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.料金グループコード → 料金グループコード のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.PRC_GRP_CD_ERR))
		{
			if (!inMap.containsKey("prc_grp_cd_err"))
			{
				inMap.put("prc_grp_cd_err", template.getString(EKK0111D010CBSMsg.PRC_GRP_CD_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.料金コースコード → 料金コースコード のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.PCRS_CD_ERR))
		{
			if (!inMap.containsKey("pcrs_cd_err"))
			{
				inMap.put("pcrs_cd_err", template.getString(EKK0111D010CBSMsg.PCRS_CD_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.料金プランコード → 料金プランコード のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.PPLAN_CD_ERR))
		{
			if (!inMap.containsKey("pplan_cd_err"))
			{
				inMap.put("pplan_cd_err", template.getString(EKK0111D010CBSMsg.PPLAN_CD_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.提供方式契約番号 → 提供方式契約番号 のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.TK_HOSHIKI_KEI_NO_ERR))
		{
			if (!inMap.containsKey("tk_hoshiki_kei_no_err"))
			{
				inMap.put("tk_hoshiki_kei_no_err", template.getString(EKK0111D010CBSMsg.TK_HOSHIKI_KEI_NO_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.サービス利用開始希望年月日 → サービス利用開始希望年月日 のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey("svc_use_sta_kibo_ymd_err"))
			{
				inMap.put("svc_use_sta_kibo_ymd_err", template.getString(EKK0111D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.予約適用開始希望年月日 → 予約適用開始希望年月日 のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey("rsv_tsta_kibo_ymd_err"))
			{
				inMap.put("rsv_tsta_kibo_ymd_err", template.getString(EKK0111D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.ＩＤ速報書出力要否 → ID速報書出力要否 のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.ID_SOKHOSHO_OUTPUT_YH_ERR))
		{
			if (!inMap.containsKey("id_sokhosho_output_yh_err"))
			{
				inMap.put("id_sokhosho_output_yh_err", template.getString(EKK0111D010CBSMsg.ID_SOKHOSHO_OUTPUT_YH_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.支払方法継続フラグ → 支払方法継続フラグ のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.PAYWAY_KEIZOKU_FLG_ERR))
		{
			if (!inMap.containsKey("payway_keizoku_flg_err"))
			{
				inMap.put("payway_keizoku_flg_err", template.getString(EKK0111D010CBSMsg.PAYWAY_KEIZOKU_FLG_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.試用加入年月日 → 試用加入年月日 のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.FTRIAL_KANYU_YMD_ERR))
		{
			if (!inMap.containsKey("ftrial_kanyu_ymd_err"))
			{
				inMap.put("ftrial_kanyu_ymd_err", template.getString(EKK0111D010CBSMsg.FTRIAL_KANYU_YMD_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.本加入年月日 → 本加入年月日 のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.HONKANYU_YMD_ERR))
		{
			if (!inMap.containsKey("honkanyu_ymd_err"))
			{
				inMap.put("honkanyu_ymd_err", template.getString(EKK0111D010CBSMsg.HONKANYU_YMD_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.本加入移行期限年月日 → 本加入移行期限年月日 のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR))
		{
			if (!inMap.containsKey("honkanyu_iko_kigen_ymd_err"))
			{
				inMap.put("honkanyu_iko_kigen_ymd_err", template.getString(EKK0111D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.レター発送仕分区分 → レター発送仕分区分 のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.LETTER_HASSO_SHIWAKE_DIV_ERR))
		{
			if (!inMap.containsKey("letter_hasso_shiwake_div_err"))
			{
				inMap.put("letter_hasso_shiwake_div_err", template.getString(EKK0111D010CBSMsg.LETTER_HASSO_SHIWAKE_DIV_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.サンキューレター送付先コード → サンキューレター送付先コード のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.THNX_LETTER_SHS_CD_ERR))
		{
			if (!inMap.containsKey("thnx_letter_shs_cd_err"))
			{
				inMap.put("thnx_letter_shs_cd_err", template.getString(EKK0111D010CBSMsg.THNX_LETTER_SHS_CD_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.ＷＥＢオプション追加不可フラグ → WEBオプション追加不可フラグ のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.WEB_OP_ADD_FAIL_FLG_ERR))
		{
			if (!inMap.containsKey("web_op_add_fail_flg_err"))
			{
				inMap.put("web_op_add_fail_flg_err", template.getString(EKK0111D010CBSMsg.WEB_OP_ADD_FAIL_FLG_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.変更元法人サービス契約受付番号 → 変更元法人サービス契約受付番号 のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NO_ERR))
		{
			if (!inMap.containsKey("chge_mt_hojinsvkei_uk_no_err"))
			{
				inMap.put("chge_mt_hojinsvkei_uk_no_err", template.getString(EKK0111D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NO_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.変更元法人サービス契約受付番号子 → 変更元法人サービス契約受付番号子 のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NOPT_ERR))
		{
			if (!inMap.containsKey("chge_mt_hojinsvkei_uk_nopt_err"))
			{
				inMap.put("chge_mt_hojinsvkei_uk_nopt_err", template.getString(EKK0111D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NOPT_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.違約金発生コード → 違約金発生コード のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.PNLTY_HASSEI_CD_ERR))
		{
			if (!inMap.containsKey("pnlty_hassei_cd_err"))
			{
				inMap.put("pnlty_hassei_cd_err", template.getString(EKK0111D010CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.異動区分 → 異動区分 のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey("ido_div_err"))
			{
				inMap.put("ido_div_err", template.getString(EKK0111D010CBSMsg.IDO_DIV_ERR));
			}
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.紹介コード → 紹介コード のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.INTR_CD_ERR))
		{
			if (!inMap.containsKey("intr_cd_err"))
			{
				inMap.put("intr_cd_err", template.getString(EKK0111D010CBSMsg.INTR_CD_ERR));
			}
		}

		// サービス契約＜ｅｏ光電話＞登録マップ.業務連絡備考 → 業務連絡備考 のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.WORK_RRK_BIKO_ERR))
		{
			if (!inMap.containsKey("work_rrk_biko_err"))
			{
				inMap.put("work_rrk_biko_err", template.getString(EKK0111D010CBSMsg.WORK_RRK_BIKO_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.自動照査処理状態コード → 自動照査処理状態コード のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.AUTO_SHOSA_TRAN_STAT_CD_ERR))
		{
			if (!inMap.containsKey("auto_shosa_tran_stat_cd_err"))
			{
				inMap.put("auto_shosa_tran_stat_cd_err", template.getString(EKK0111D010CBSMsg.AUTO_SHOSA_TRAN_STAT_CD_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.請求契約番号 → 請求契約番号 のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.SEIKY_KEI_NO_ERR))
		{
			if (!inMap.containsKey("seiky_kei_no_err"))
			{
				inMap.put("seiky_kei_no_err", template.getString(EKK0111D010CBSMsg.SEIKY_KEI_NO_ERR));
			}
		}
		// サービス契約＜ｅｏ光電話＞登録マップ.料金項目コード → 料金項目コード のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.PRC_KMK_CD_ERR))
		{
			if (!inMap.containsKey("prc_kmk_cd_err"))
			{
				inMap.put("prc_kmk_cd_err", template.getString(EKK0111D010CBSMsg.PRC_KMK_CD_ERR));
			}
		}
		// 事務手数料自動適用要否 のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.RULE0059_AUTO_APLY_ERR))
		{
			if (!inMap.containsKey("rule0059_auto_aply_err"))
			{
				inMap.put("rule0059_auto_aply_err", template.getString(EKK0111D010CBSMsg.RULE0059_AUTO_APLY_ERR));
			}
		}
		// 工事費自動適用要否 のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.RULE0079_AUTO_APLY_ERR))
		{
			if (!inMap.containsKey("rule0079_auto_aply_err"))
			{
				inMap.put("rule0079_auto_aply_err", template.getString(EKK0111D010CBSMsg.RULE0079_AUTO_APLY_ERR));
			}
		}

		// マンション識別コード のエラー情報返却
		if (!template.isNull(EKK0111D010CBSMsg.MANS_SKBT_CD_ERR))
		{
			if (!inMap.containsKey("mans_skbt_cd_err"))
			{
				inMap.put("mans_skbt_cd_err", template.getString(EKK0111D010CBSMsg.MANS_SKBT_CD_ERR));
			}
		}
		
		setErrInfo(inMap, prefix, EKK0111D010CBSMsg.KKTK_SBT_CD_ERR, template);

		return param;
	}

	/**
	 * サービス契約内訳＜電話＞登録の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0191D010(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0191D010CBSMsg.class.getName());
		
		String prefix = "kk0191_";

		// テンプレートID
		template.set(EKK0191D010CBSMsg.TEMPLATEID, "EKK0191D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0191D010CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード
		template.set(EKK0191D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域のマップを取得
		HashMap workDataMap = null;
		HashMap workDataMap_MskmList = null;
		HashMap workDataMap_Mskm = null;
		String mskmDtlNo = null;
		Map workMap = param.getMappingWorkArea();
		if (workMap != null)
		{
			workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TEL);
			workDataMap_Mskm = (HashMap)workMap.get(CC_WORK_AREA_NAME_MSKM);
			if (workDataMap_Mskm != null)
			{
				ArrayList inList1 = ((ArrayList)workDataMap_Mskm.get(CC_WORK_AREA_NAME_MSKM_LIST));
				int devCnt = inList1 != null ? inList1.size() : 0;
				for (int i = 0; i < devCnt; i++)
				{
					workDataMap_MskmList = (HashMap)(inList1).get(i);

					if (workDataMap_MskmList == null || workDataMap_MskmList.get("mskm_dtl_no_tel") == null
							|| "".equals(workDataMap_MskmList.get("mskm_dtl_no_tel")))
					{
						mskmDtlNo = null;
					}
					else
					{
						mskmDtlNo = (String)workDataMap_MskmList.get("mskm_dtl_no_tel");
						break;
					}

				}
			}

		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.サービス契約番号 → サービス契約番号
		if (workDataMap == null || workDataMap.get("svc_kei_no") == null || "".equals(workDataMap.get("svc_kei_no")))
		{
			if (inMap == null || inMap.get("kk0191_svc_kei_no") == null || "".equals(inMap.get("kk0191_svc_kei_no")))
			{
				template.setNull(EKK0191D010CBSMsg.SVC_KEI_NO);
			}
			else
			{
				template.set(EKK0191D010CBSMsg.SVC_KEI_NO, (String)inMap.get("kk0191_svc_kei_no"));
			}
		}
		else
		{
			template.set(EKK0191D010CBSMsg.SVC_KEI_NO, (String)workDataMap.get("svc_kei_no"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.申込明細番号 → 申込明細番号
		if (inMap == null || inMap.get("kk0191_mskm_dtl_no") == null || "".equals(inMap.get("kk0191_mskm_dtl_no")))
		{
			if (mskmDtlNo == null)
			{
				if (workDataMap == null || workDataMap.get("mskm_dtl_no") == null || "".equals(workDataMap.get("mskm_dtl_no")))
				{
					template.setNull(EKK0191D010CBSMsg.MSKM_DTL_NO);
				}
				else
				{
					template.set(EKK0191D010CBSMsg.MSKM_DTL_NO, (String)workDataMap.get("mskm_dtl_no"));
				}
			}
			else
			{
				template.set(EKK0191D010CBSMsg.MSKM_DTL_NO, mskmDtlNo);
			}
		}
		else
		{
			template.set(EKK0191D010CBSMsg.MSKM_DTL_NO, (String)inMap.get("kk0191_mskm_dtl_no"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.提供方式契約番号 → 提供方式契約番号
		if (inMap == null || inMap.get("kk0191_tk_hoshiki_kei_no") == null || "".equals(inMap.get("kk0191_tk_hoshiki_kei_no")))
		{
			template.setNull(EKK0191D010CBSMsg.TK_HOSHIKI_KEI_NO);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.TK_HOSHIKI_KEI_NO, (String)inMap.get("kk0191_tk_hoshiki_kei_no"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.支払方法継続フラグ → 支払方法継続フラグ
		if (inMap == null || inMap.get("kk0191_payway_keizoku_flg") == null || "".equals(inMap.get("kk0191_payway_keizoku_flg")))
		{
			template.setNull(EKK0191D010CBSMsg.PAYWAY_KEIZOKU_FLG);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.PAYWAY_KEIZOKU_FLG, (String)inMap.get("kk0191_payway_keizoku_flg"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＷＥＢオプション追加不可フラグ → WEBオプション追加不可フラグ
		if (inMap == null || inMap.get("kk0191_web_op_add_fail_flg") == null || "".equals(inMap.get("kk0191_web_op_add_fail_flg")))
		{
			template.setNull(EKK0191D010CBSMsg.WEB_OP_ADD_FAIL_FLG);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.WEB_OP_ADD_FAIL_FLG, (String)inMap.get("kk0191_web_op_add_fail_flg"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.業務連絡備考 → 業務連絡備考
		if (inMap == null || inMap.get("kk0191_work_rrk_biko") == null || "".equals(inMap.get("kk0191_work_rrk_biko")))
		{
			template.setNull(EKK0191D010CBSMsg.WORK_RRK_BIKO);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.WORK_RRK_BIKO, (String)inMap.get("kk0191_work_rrk_biko"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.サービス利用開始希望年月日 → サービス利用開始希望年月日
		if (inMap == null || inMap.get("kk0191_svc_use_sta_kibo_ymd") == null || "".equals(inMap.get("kk0191_svc_use_sta_kibo_ymd")))
		{
			template.setNull(EKK0191D010CBSMsg.SVC_USE_STA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.SVC_USE_STA_KIBO_YMD, (String)inMap.get("kk0191_svc_use_sta_kibo_ymd"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.サービス利用開始希望時間帯コード → サービス利用開始希望時間帯コード
		if (inMap == null || inMap.get("kk0191_svc_uest_kbtmz_cd") == null || "".equals(inMap.get("kk0191_svc_uest_kbtmz_cd")))
		{
			template.setNull(EKK0191D010CBSMsg.SVC_UEST_KBTMZ_CD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.SVC_UEST_KBTMZ_CD, (String)inMap.get("kk0191_svc_uest_kbtmz_cd"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.サービス利用開始希望時間コード → サービス利用開始希望時間コード
		if (inMap == null || inMap.get("kk0191_svc_uest_kbtm_cd") == null || "".equals(inMap.get("kk0191_svc_uest_kbtm_cd")))
		{
			template.setNull(EKK0191D010CBSMsg.SVC_UEST_KBTM_CD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.SVC_UEST_KBTM_CD, (String)inMap.get("kk0191_svc_uest_kbtm_cd"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.予約適用開始希望年月日 → 予約適用開始希望年月日
		if (inMap == null || inMap.get("kk0191_rsv_tsta_kibo_ymd") == null || "".equals(inMap.get("kk0191_rsv_tsta_kibo_ymd")))
		{
			template.setNull(EKK0191D010CBSMsg.RSV_TSTA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.RSV_TSTA_KIBO_YMD, (String)inMap.get("kk0191_rsv_tsta_kibo_ymd"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.試用加入年月日 → 試用加入年月日
		if (inMap == null || inMap.get("kk0191_ftrial_kanyu_ymd") == null || "".equals(inMap.get("kk0191_ftrial_kanyu_ymd")))
		{
			template.setNull(EKK0191D010CBSMsg.FTRIAL_KANYU_YMD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.FTRIAL_KANYU_YMD, (String)inMap.get("kk0191_ftrial_kanyu_ymd"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.試用期間終了年月日 → 試用期間終了年月日
		if (inMap == null || inMap.get("kk0191_ftrial_prd_endymd") == null || "".equals(inMap.get("kk0191_ftrial_prd_endymd")))
		{
			template.setNull(EKK0191D010CBSMsg.FTRIAL_PRD_ENDYMD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.FTRIAL_PRD_ENDYMD, (String)inMap.get("kk0191_ftrial_kanyu_ymd"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.本加入年月日 → 本加入年月日
		if (inMap == null || inMap.get("kk0191_honkanyu_ymd") == null || "".equals(inMap.get("kk0191_honkanyu_ymd")))
		{
			template.setNull(EKK0191D010CBSMsg.HONKANYU_YMD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.HONKANYU_YMD, (String)inMap.get("kk0191_honkanyu_ymd"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.本加入移行期限年月日 → 本加入移行期限年月日
		if (inMap == null || inMap.get("kk0191_honkanyu_iko_kigen_ymd") == null || "".equals(inMap.get("kk0191_honkanyu_iko_kigen_ymd")))
		{
			template.setNull(EKK0191D010CBSMsg.HONKANYU_IKO_KIGEN_YMD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.HONKANYU_IKO_KIGEN_YMD, (String)inMap.get("kk0191_honkanyu_iko_kigen_ymd"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.違約金発生コード → 違約金発生コード
		if (inMap == null || inMap.get("kk0191_pnlty_hassei_cd") == null || "".equals(inMap.get("kk0191_pnlty_hassei_cd")))
		{
			template.setNull(EKK0191D010CBSMsg.PNLTY_HASSEI_CD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.PNLTY_HASSEI_CD, (String)inMap.get("kk0191_pnlty_hassei_cd"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.異動区分 → 異動区分
		if (inMap == null || inMap.get("kk0191_ido_div") == null || "".equals(inMap.get("kk0191_ido_div")))
		{
			template.setNull(EKK0191D010CBSMsg.IDO_DIV);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.IDO_DIV, (String)inMap.get("kk0191_ido_div"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.電話番号 → 電話番号
		if (inMap == null || inMap.get("kk0191_telno") == null || "".equals(inMap.get("kk0191_telno")))
		{
			template.setNull(EKK0191D010CBSMsg.TELNO);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.TELNO, (String)inMap.get("kk0191_telno"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.電話番号使用場所番号 → 電話番号使用場所番号
		if (inMap == null || inMap.get("kk0191_telno_use_place_no") == null || "".equals(inMap.get("kk0191_telno_use_place_no")))
		{
			template.setNull(EKK0191D010CBSMsg.TELNO_USE_PLACE_NO);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.TELNO_USE_PLACE_NO, (String)inMap.get("kk0191_telno_use_place_no"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用住所コード → 緊急通報用住所コード
		if (inMap == null || inMap.get("kk0191_emg_ad_cd") == null || "".equals(inMap.get("kk0191_emg_ad_cd")))
		{
			template.setNull(EKK0191D010CBSMsg.EMG_AD_CD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.EMG_AD_CD, (String)inMap.get("kk0191_emg_ad_cd"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.電話番号順番 → 電話番号順番
		if (inMap == null || inMap.get("kk0191_telno_jun") == null || "".equals(inMap.get("kk0191_telno_jun")))
		{
			template.setNull(EKK0191D010CBSMsg.TELNO_JUN);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.TELNO_JUN, (String)inMap.get("kk0191_telno_jun"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ番号案内有無 → NTT番号案内有無
		if (inMap == null || inMap.get("kk0191_ntt_no_guide_um") == null || "".equals(inMap.get("kk0191_ntt_no_guide_um")))
		{
			template.setNull(EKK0191D010CBSMsg.NTT_NO_GUIDE_UM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.NTT_NO_GUIDE_UM, (String)inMap.get("kk0191_ntt_no_guide_um"));
		}

 		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ハローページ掲載有無 → ハローページ掲載有無
		if (inMap == null || inMap.get("kk0191_hellopage_keisai_um") == null || "".equals(inMap.get("kk0191_hellopage_keisai_um")))
		{
			template.setNull(EKK0191D010CBSMsg.HELLOPAGE_KEISAI_UM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.HELLOPAGE_KEISAI_UM, (String)inMap.get("kk0191_hellopage_keisai_um"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.通話明細公開要否 → 通話明細公開要否
		if (inMap == null || inMap.get("kk0191_tuwa_dtl_kokai_yh") == null || "".equals(inMap.get("kk0191_tuwa_dtl_kokai_yh")))
		{
			template.setNull(EKK0191D010CBSMsg.TUWA_DTL_KOKAI_YH);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.TUWA_DTL_KOKAI_YH, (String)inMap.get("kk0191_tuwa_dtl_kokai_yh"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.電番事前通知コード → 電番事前通知コード 
		if (inMap == null || inMap.get("kk0191_tel_no_pre_tchi_cd") == null || "".equals(inMap.get("kk0191_tel_no_pre_tchi_cd")))
		{
			template.setNull(EKK0191D010CBSMsg.TEL_NO_PRE_TCHI_CD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.TEL_NO_PRE_TCHI_CD, (String)inMap.get("kk0191_tel_no_pre_tchi_cd"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.通信事業者コード → 通信事業者コード
		if (inMap == null || inMap.get("kk0191_tsjgs_cd") == null || "".equals(inMap.get("kk0191_tsjgs_cd")))
		{
			template.setNull(EKK0191D010CBSMsg.TSJGS_CD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.TSJGS_CD, (String)inMap.get("kk0191_tsjgs_cd"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.手動切替予定年月日時分秒 → 手動切替予定年月日時分秒
		if (inMap == null || inMap.get("kk0191_man_switch_rsv_dtm") == null || "".equals(inMap.get("kk0191_man_switch_rsv_dtm")))
		{
			template.setNull(EKK0191D010CBSMsg.MAN_SWITCH_RSV_DTM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.MAN_SWITCH_RSV_DTM, (String)inMap.get("kk0191_man_switch_rsv_dtm"));
		}
		// サービス契約内訳<eo光電話>登録.解約・休止トーキ希望有無 → 解約・休止トーキ希望有無
		setTemplate(template, EKK0191D010CBSMsg.DSL_PAUSE_TOKI_KIBO_UM, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.解約・休止トーキ種別コード → 解約・休止トーキ種別コード
		setTemplate(template, EKK0191D010CBSMsg.DSL_PAUSE_TOKI_SBT_CD, inMap, prefix);
		
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.タウンページ掲載カナ名 → タウンページ掲載カナ名
		if (inMap == null || inMap.get("kk0191_townpage_keisai_kana") == null || "".equals(inMap.get("kk0191_townpage_keisai_kana")))
		{
			template.setNull(EKK0191D010CBSMsg.TOWNPAGE_KEISAI_KANA);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.TOWNPAGE_KEISAI_KANA, (String)inMap.get("kk0191_townpage_keisai_kana"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.タウンページ掲載名 → タウンページ掲載名
		if (inMap == null || inMap.get("kk0191_townpage_keisai_nm") == null || "".equals(inMap.get("kk0191_townpage_keisai_nm")))
		{
			template.setNull(EKK0191D010CBSMsg.TOWNPAGE_KEISAI_NM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.TOWNPAGE_KEISAI_NM, (String)inMap.get("kk0191_townpage_keisai_nm"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.番ポ有無 → 番ポ有無
		if (inMap == null || inMap.get("kk0191_bmp_um") == null || "".equals(inMap.get("kk0191_bmp_um")))
		{
			template.setNull(EKK0191D010CBSMsg.BMP_UM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.BMP_UM, (String)inMap.get("kk0191_bmp_um"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.番ポ同時工事希望有無 → 番ポ同時工事希望有無
		if (inMap == null || inMap.get("kk0191_bmp_doji_koji_kibo_um") == null || "".equals(inMap.get("kk0191_bmp_doji_koji_kibo_um")))
		{
			template.setNull(EKK0191D010CBSMsg.BMP_DOJI_KOJI_KIBO_UM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.BMP_DOJI_KOJI_KIBO_UM, (String)inMap.get("kk0191_bmp_doji_koji_kibo_um"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.番ポ同時開通年月日 → 番ポ同時開通年月日
		if (inMap == null || inMap.get("kk0191_bmp_doji_open_ymd") == null || "".equals(inMap.get("kk0191_bmp_doji_open_ymd")))
		{
			template.setNull(EKK0191D010CBSMsg.BMP_DOJI_OPEN_YMD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.BMP_DOJI_OPEN_YMD, (String)inMap.get("kk0191_bmp_doji_open_ymd"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用補正郵便番号 → 緊急通報用補正郵便番号
		if (inMap == null || inMap.get("kk0191_emg_hosei_pcd") == null || "".equals(inMap.get("kk0191_emg_hosei_pcd")))
		{
			template.setNull(EKK0191D010CBSMsg.EMG_HOSEI_PCD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.EMG_HOSEI_PCD, (String)inMap.get("kk0191_emg_hosei_pcd"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用都道府県名 → 緊急通報用都道府県名
		if (inMap == null || inMap.get("kk0191_emg_state_nm") == null || "".equals(inMap.get("kk0191_emg_state_nm")))
		{
			template.setNull(EKK0191D010CBSMsg.EMG_STATE_NM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.EMG_STATE_NM, (String)inMap.get("kk0191_emg_state_nm"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用市区町村名 → 緊急通報用市区町村名
		if (inMap == null || inMap.get("kk0191_emg_city_nm") == null || "".equals(inMap.get("kk0191_emg_city_nm")))
		{
			template.setNull(EKK0191D010CBSMsg.EMG_CITY_NM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.EMG_CITY_NM, (String)inMap.get("kk0191_emg_city_nm"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用大字通称名 → 緊急通報用大字通称名
		if (inMap == null || inMap.get("kk0191_emg_oaztsu_nm") == null || "".equals(inMap.get("kk0191_emg_oaztsu_nm")))
		{
			template.setNull(EKK0191D010CBSMsg.EMG_OAZTSU_NM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.EMG_OAZTSU_NM, (String)inMap.get("kk0191_emg_oaztsu_nm"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用字丁目名 → 緊急通報用字丁目名
		if (inMap == null || inMap.get("kk0191_emg_azcho_nm") == null || "".equals(inMap.get("kk0191_emg_azcho_nm")))
		{
			template.setNull(EKK0191D010CBSMsg.EMG_AZCHO_NM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.EMG_AZCHO_NM, (String)inMap.get("kk0191_emg_azcho_nm"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用番地号 → 緊急通報用番地号
		if (inMap == null || inMap.get("kk0191_emg_bnchigo") == null || "".equals(inMap.get("kk0191_emg_bnchigo")))
		{
			template.setNull(EKK0191D010CBSMsg.EMG_BNCHIGO);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.EMG_BNCHIGO, (String)inMap.get("kk0191_emg_bnchigo"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用住所補記・建物名 → 緊急通報用住所補記・建物名
		if (inMap == null || inMap.get("kk0191_emg_adrttm") == null || "".equals(inMap.get("kk0191_emg_adrttm")))
		{
			template.setNull(EKK0191D010CBSMsg.EMG_ADRTTM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.EMG_ADRTTM, (String)inMap.get("kk0191_emg_adrttm"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用住所補記・部屋番号 → 緊急通報用住所補記・部屋番号
		if (inMap == null || inMap.get("kk0191_emg_adrrm") == null || "".equals(inMap.get("kk0191_emg_adrrm")))
		{
			template.setNull(EKK0191D010CBSMsg.EMG_ADRRM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.EMG_ADRRM, (String)inMap.get("kk0191_emg_adrrm"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用契約者個別指定フラグ → 緊急通報用契約者個別指定フラグ
		if (inMap == null || inMap.get("kk0191_emg_ksh_ksitei_flg") == null || "".equals(inMap.get("kk0191_emg_ksh_ksitei_flg")))
		{
			template.setNull(EKK0191D010CBSMsg.EMG_KSH_KSITEI_FLG);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.EMG_KSH_KSITEI_FLG, (String)inMap.get("kk0191_emg_ksh_ksitei_flg"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用契約者名 → 緊急通報用契約者名
		if (inMap == null || inMap.get("kk0191_emg_ksh_nm") == null || "".equals(inMap.get("kk0191_emg_ksh_nm")))
		{
			template.setNull(EKK0191D010CBSMsg.EMG_KSH_NM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.EMG_KSH_NM, (String)inMap.get("kk0191_emg_ksh_nm"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用契約者カナ名 → 緊急通報用契約者カナ名
		if (inMap == null || inMap.get("kk0191_emg_ksh_kana") == null || "".equals(inMap.get("kk0191_emg_ksh_kana")))
		{
			template.setNull(EKK0191D010CBSMsg.EMG_KSH_KANA);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.EMG_KSH_KANA, (String)inMap.get("kk0191_emg_ksh_kana"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者住所コード → NTT契約者住所コード
		if (inMap == null || inMap.get("kk0191_ntt_keisha_ad_cd") == null || "".equals(inMap.get("kk0191_ntt_keisha_ad_cd")))
		{
			template.setNull(EKK0191D010CBSMsg.NTT_KEISHA_AD_CD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.NTT_KEISHA_AD_CD, (String)inMap.get("kk0191_ntt_keisha_ad_cd"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者郵便番号 → NTT契約者郵便番号
		if (inMap == null || inMap.get("kk0191_ntt_keisha_pcd") == null || "".equals(inMap.get("kk0191_ntt_keisha_pcd")))
		{
			template.setNull(EKK0191D010CBSMsg.NTT_KEISHA_PCD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.NTT_KEISHA_PCD, (String)inMap.get("kk0191_ntt_keisha_pcd"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者都道府県名 → NTT契約者都道府県名
		if (inMap == null || inMap.get("kk0191_ntt_keisha_state_nm") == null || "".equals(inMap.get("kk0191_ntt_keisha_state_nm")))
		{
			template.setNull(EKK0191D010CBSMsg.NTT_KEISHA_STATE_NM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.NTT_KEISHA_STATE_NM, (String)inMap.get("kk0191_ntt_keisha_state_nm"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者市区町村名 → NTT契約者市区町村名
		if (inMap == null || inMap.get("kk0191_ntt_keisha_city_nm") == null || "".equals(inMap.get("kk0191_ntt_keisha_city_nm")))
		{
			template.setNull(EKK0191D010CBSMsg.NTT_KEISHA_CITY_NM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.NTT_KEISHA_CITY_NM, (String)inMap.get("kk0191_ntt_keisha_city_nm"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者大字通称名 → NTT契約者大字通称名
		if (inMap == null || inMap.get("kk0191_ntt_keisha_oaztsu_nm") == null || "".equals(inMap.get("kk0191_ntt_keisha_oaztsu_nm")))
		{
			template.setNull(EKK0191D010CBSMsg.NTT_KEISHA_OAZTSU_NM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.NTT_KEISHA_OAZTSU_NM, (String)inMap.get("kk0191_ntt_keisha_oaztsu_nm"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者字丁目名 → NTT契約者字丁目名
		if (inMap == null || inMap.get("kk0191_ntt_keisha_azcho_nm") == null || "".equals(inMap.get("kk0191_ntt_keisha_azcho_nm")))
		{
			template.setNull(EKK0191D010CBSMsg.NTT_KEISHA_AZCHO_NM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.NTT_KEISHA_AZCHO_NM, (String)inMap.get("kk0191_ntt_keisha_azcho_nm"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者番地号 → NTT契約者番地号
		if (inMap == null || inMap.get("kk0191_ntt_keisha_bnchigo") == null || "".equals(inMap.get("kk0191_ntt_keisha_bnchigo")))
		{
			template.setNull(EKK0191D010CBSMsg.NTT_KEISHA_BNCHIGO);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.NTT_KEISHA_BNCHIGO, (String)inMap.get("kk0191_ntt_keisha_bnchigo"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者住所補記・建物名 → NTT契約者住所補記・建物名
		if (inMap == null || inMap.get("kk0191_ntt_keisha_adrttm") == null || "".equals(inMap.get("kk0191_ntt_keisha_adrttm")))
		{
			template.setNull(EKK0191D010CBSMsg.NTT_KEISHA_ADRTTM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.NTT_KEISHA_ADRTTM, (String)inMap.get("kk0191_ntt_keisha_adrttm"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者住所補記・部屋番号 → NTT契約者住所補記・部屋番号
		if (inMap == null || inMap.get("kk0191_ntt_keisha_adrrm") == null || "".equals(inMap.get("kk0191_ntt_keisha_adrrm")))
		{
			template.setNull(EKK0191D010CBSMsg.NTT_KEISHA_ADRRM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.NTT_KEISHA_ADRRM, (String)inMap.get("kk0191_ntt_keisha_adrrm"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者カナ名 → NTT契約者カナ名
		if (inMap == null || inMap.get("kk0191_ntt_ksh_kana") == null || "".equals(inMap.get("kk0191_ntt_ksh_kana")))
		{
			template.setNull(EKK0191D010CBSMsg.NTT_KSH_KANA);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.NTT_KSH_KANA, (String)inMap.get("kk0191_ntt_ksh_kana"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者名 → NTT契約者名
		if (inMap == null || inMap.get("kk0191_ntt_keisha_nm") == null || "".equals(inMap.get("kk0191_ntt_keisha_nm")))
		{
			template.setNull(EKK0191D010CBSMsg.NTT_KEISHA_NM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.NTT_KEISHA_NM, (String)inMap.get("kk0191_ntt_keisha_nm"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者住所＿契約者住所差異フラグ → NTT契約者住所_契約者住所差異フラグ
		if (inMap == null || inMap.get("kk0191_ntt_ksh_ad_ksh_ad_sai_flg") == null || "".equals(inMap.get("kk0191_ntt_ksh_ad_ksh_ad_sai_flg")))
		{
			template.setNull(EKK0191D010CBSMsg.NTT_KSH_AD_KSH_AD_SAI_FLG);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.NTT_KSH_AD_KSH_AD_SAI_FLG, (String)inMap.get("kk0191_ntt_ksh_ad_ksh_ad_sai_flg"));
		}
		// サービス契約内訳<eo光電話>登録.解約・休止トーキ転送先電話番号 → 解約・休止トーキ転送先電話番号
		setTemplate(template, EKK0191D010CBSMsg.DSL_PAUSE_TOKI_TSS_TLN, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.解約・休止トーキ開始年月日 → 解約・休止トーキ開始年月日
		setTemplate(template, EKK0191D010CBSMsg.DSL_PAUSE_TOKI_STA_YMD, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.解約・休止トーキ終了予定年月日 → 解約・休止トーキ終了予定年月日
		setTemplate(template, EKK0191D010CBSMsg.DSL_PAUSE_TOKI_END_RSYMD, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.解約・休止トーキ終了年月日日 → 解約・休止トーキ終了年月日
		setTemplate(template, EKK0191D010CBSMsg.DSL_PAUSE_TOKI_END_YMD, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.解約・休止トーキ登録コード → 解約・休止トーキ登録コード
		setTemplate(template, EKK0191D010CBSMsg.DSL_PAUSE_TOKI_ADD_CD, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.解約・休止トーキ開始予定年月日 → 解約・休止トーキ開始予定年月日
		setTemplate(template, EKK0191D010CBSMsg.DSL_PAUSE_TOKI_STA_RSYMD, inMap, prefix);
		
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.VA宅内機器型式コード → VA宅内機器型式コード
		if (inMap == null || inMap.get("kk0191_va_taknkiki_model_cd") == null || "".equals(inMap.get("kk0191_va_taknkiki_model_cd")))
		{
			template.setNull(EKK0191D010CBSMsg.VA_TAKNKIKI_MODEL_CD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.VA_TAKNKIKI_MODEL_CD, (String)inMap.get("kk0191_va_taknkiki_model_cd"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.VA機器製造番号 → VA機器製造番号
		if (inMap == null || inMap.get("kk0191_va_kiki_seizo_no") == null || "".equals(inMap.get("kk0191_va_kiki_seizo_no")))
		{
			template.setNull(EKK0191D010CBSMsg.VA_KIKI_SEIZO_NO);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.VA_KIKI_SEIZO_NO, (String)inMap.get("kk0191_va_kiki_seizo_no"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.VAポート番号 → VAポート番号
		if (inMap == null || inMap.get("kk0191_va_port_no") == null || "".equals(inMap.get("kk0191_va_port_no")))
		{
			template.setNull(EKK0191D010CBSMsg.VA_PORT_NO);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.VA_PORT_NO, (String)inMap.get("kk0191_va_port_no"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.更新年月日時分秒(更新前) → 更新年月日時分秒(更新前)

		String tmp_svc_kei_no = (workDataMap != null && workDataMap.get("svc_kei_no") != null && !"".equals(workDataMap.get("svc_kei_no")))
			?((String)workDataMap.get("svc_kei_no")):(inMap != null && inMap.get("svc_kei_no") != null && !"".equals(inMap.get("svc_kei_no"))
			?((String)inMap.get("svc_kei_no")):(""));
		
		String lastDtm = JKKBpCommon.getLastDtmBySvcKeiNo(param, tmp_svc_kei_no,
				(String)inMap.get("kk0191_upd_dtm_bf"));
		template.set(EKK0191D010CBSMsg.UPD_DTM_BF, lastDtm);

		// 【PCON課題_No.2012-0000003】ADD START 番ポ申込手数料追加 2012.6.14 FJ)薄出 

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.事務手数料自動適用要否 → 事務手数料自動適用要否
		if (inMap == null || inMap.get("kk0191_rule0059_auto_aply") == null || "".equals(inMap.get("kk0191_rule0059_auto_aply")))
		{
			template.setNull(EKK0191D010CBSMsg.RULE0059_AUTO_APLY);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.RULE0059_AUTO_APLY, (String)inMap.get("kk0191_rule0059_auto_aply"));
		}

		// 【PCON課題_No.2012-0000003】ADD END   番ポ申込手数料追加 2012.6.14 FJ)薄出 
		
		//同番移転申込有無
		if (inMap == null || inMap.get("kk0191_dobaniten_mskm_um") == null || "".equals(inMap.get("kk0191_dobaniten_mskm_um")))
		{
			template.setNull(EKK0191D010CBSMsg.DOBANITEN_MSKM_UM);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.DOBANITEN_MSKM_UM, (String)inMap.get("kk0191_dobaniten_mskm_um"));
		}
		//同番移転依頼制御コード
		if (inMap == null || inMap.get("kk0191_dobaniten_req_ctrl_cd") == null || "".equals(inMap.get("kk0191_dobaniten_req_ctrl_cd")))
		{
			template.setNull(EKK0191D010CBSMsg.DOBANITEN_REQ_CTRL_CD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.DOBANITEN_REQ_CTRL_CD, (String)inMap.get("kk0191_dobaniten_req_ctrl_cd"));
		}
		
		//同番移転判定コード
		if (inMap == null || inMap.get("kk0191_dobaniten_jdg_cd") == null || "".equals(inMap.get("kk0191_dobaniten_jdg_cd")))
		{
			template.setNull(EKK0191D010CBSMsg.DOBANITEN_JDG_CD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.DOBANITEN_JDG_CD, (String)inMap.get("kk0191_dobaniten_jdg_cd"));
		}
		
		//仮登録フラグ
		if (inMap == null || inMap.get("kk0191_kari_touroku_flg") == null || "".equals(inMap.get("kk0191_kari_touroku_flg")))
		{
			template.setNull(EKK0191D010CBSMsg.KARI_TOUROKU_FLG);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.KARI_TOUROKU_FLG, (String)inMap.get("kk0191_kari_touroku_flg"));
		}

		//NTT契約者住所手動入力フラグ
		if (inMap == null || inMap.get("kk0191_nkys_ad_man_input_flg") == null || "".equals(inMap.get("kk0191_nkys_ad_man_input_flg")))
		{
			template.setNull(EKK0191D010CBSMsg.NKYS_AD_MAN_INPUT_FLG);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.NKYS_AD_MAN_INPUT_FLG, (String)inMap.get("kk0191_nkys_ad_man_input_flg"));
		}

		//移転元通信事業者拠点コード
		if (inMap == null || inMap.get("kk0191_itnm_tsjgs_ktn_cd") == null || "".equals(inMap.get("kk0191_itnm_tsjgs_ktn_cd")))
		{
			template.setNull(EKK0191D010CBSMsg.ITNM_TSJGS_KTN_CD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.ITNM_TSJGS_KTN_CD, (String)inMap.get("kk0191_itnm_tsjgs_ktn_cd"));
		}

		//番ポ工事希望年月日
		if (inMap == null || inMap.get("kk0191_bmp_koji_kibo_ymd") == null || "".equals(inMap.get("kk0191_bmp_koji_kibo_ymd")))
		{
			template.setNull(EKK0191D010CBSMsg.BMP_KOJI_KIBO_YMD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.BMP_KOJI_KIBO_YMD, (String)inMap.get("kk0191_bmp_koji_kibo_ymd"));
		}

		//番ポ工事希望時間コード
		if (inMap == null || inMap.get("kk0191_bmpkj_kibo_time_cd") == null || "".equals(inMap.get("kk0191_bmpkj_kibo_time_cd")))
		{
			template.setNull(EKK0191D010CBSMsg.BMPKJ_KIBO_TIME_CD);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.BMPKJ_KIBO_TIME_CD, (String)inMap.get("kk0191_bmpkj_kibo_time_cd"));
		}

		//同番移転申込事業者記事欄1
		if (inMap == null || inMap.get("kk0191_dbaniten_mskmjig_kijiran_1") == null || "".equals(inMap.get("kk0191_dbaniten_mskmjig_kijiran_1")))
		{
			template.setNull(EKK0191D010CBSMsg.DBANITEN_MSKMJIG_KIJIRAN_1);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.DBANITEN_MSKMJIG_KIJIRAN_1, (String)inMap.get("kk0191_dbaniten_mskmjig_kijiran_1"));
		}

		//同番移転申込事業者記事欄2
		if (inMap == null || inMap.get("kk0191_dbaniten_mskmjig_kijiran_2") == null || "".equals(inMap.get("kk0191_dbaniten_mskmjig_kijiran_2")))
		{
			template.setNull(EKK0191D010CBSMsg.DBANITEN_MSKMJIG_KIJIRAN_2);
		}
		else
		{
			template.set(EKK0191D010CBSMsg.DBANITEN_MSKMJIG_KIJIRAN_2, (String)inMap.get("kk0191_dbaniten_mskmjig_kijiran_2"));
		}
		
		// サービス契約内訳<eo光電話>登録.緊急通報用住所チェックレベル → 緊急通報用住所チェックレベル
		setTemplate(template, EKK0191D010CBSMsg.EMG_AD_CHK_LV, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.NTT契約者住所チェックレベル → NTT契約者住所チェックレベル
		setTemplate(template, EKK0191D010CBSMsg.NTT_AD_CHK_LV, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.移転先開通後トーキ登録コード→移転先開通後トーキ登録コード
		setTemplate(template, EKK0191D010CBSMsg.ITENS_OPAF_TOKI_ADD_CD, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.移転先開通後トーキ種別コード→移転先開通後トーキ種別コード
		setTemplate(template, EKK0191D010CBSMsg.ITENS_OPAF_TOKI_SBT_CD, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.移転先開通後トーキ希望有無→移転先開通後トーキ希望有無
		setTemplate(template, EKK0191D010CBSMsg.ITENS_OPAF_TOKI_KIBO_UM, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.移転先開通後トーキ開始予定年月日→移転先開通後トーキ開始予定年月日
		setTemplate(template, EKK0191D010CBSMsg.ITENS_OPAF_TOKI_STA_RSYMD, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.移転先開通後トーキ開始年月日→移転先開通後トーキ開始年月日
		setTemplate(template, EKK0191D010CBSMsg.ITENS_OPAF_TOKI_STA_YMD, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.移転先開通後トーキ終了予定年月日→移転先開通後トーキ終了予定年月日
		setTemplate(template, EKK0191D010CBSMsg.ITENS_OPAF_TOKI_END_RSYMD, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.移転先開通後トーキ終了年月日→移転先開通後トーキ終了年月日
		setTemplate(template, EKK0191D010CBSMsg.ITENS_OPAF_TOKI_END_YMD, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.移転先開通後トーキ転送先サービス契約内訳番号→移転先開通後トーキ転送先サービス契約内訳番号
		setTemplate(template, EKK0191D010CBSMsg.ITNS_OPAF_TOKI_TSS_SVKUWNO, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.休止トーキ終了種別コード→休止トーキ終了種別コード
		setTemplate(template, EKK0191D010CBSMsg.PAUSE_TOKI_END_SBT_CD, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.解約・休止トーキ転送先サービス契約内訳番号→解約・休止トーキ転送先サービス契約内訳番号
		setTemplate(template, EKK0191D010CBSMsg.DSL_PAUSE_TOKI_TSS_SVKUWNO, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.同番移転ＮＴＴ契約者名→同番移転ＮＴＴ契約者名
		setTemplate(template, EKK0191D010CBSMsg.DOBANITEN_NTT_KEISHA_NM, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.同番移転ＮＴＴ契約者カナ名→同番移転ＮＴＴ契約者カナ名
		setTemplate(template, EKK0191D010CBSMsg.DOBANITEN_NTT_KSH_KANA, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.同番移転手続実施者識別コード→同番移転手続実施者識別コード
		setTemplate(template, EKK0191D010CBSMsg.DOBANITEN_TTDK_JSSIS_SKCD, inMap, prefix);
		// サービス契約内訳<eo光電話>登録.同番移転KOPT内審査結果コード→同番移転KOPT内審査結果コード
		setTemplate(template, EKK0191D010CBSMsg.DBNITN_KOPT_NAI_SKEKKA_CD, inMap, prefix);
		
		return template;
	}

	/**
	 * サービス契約内訳＜電話＞登録の下りマッピング処理を行います。
	 * <br>
	 * @param msgList メッセージリスト
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editRetEKK0191D010(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 結果を詰めるマップを取得。
		HashMap dataMap = null;

		HashMap workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TEL);
		if (workDataMap == null)
		{
			workDataMap = new HashMap();
			workMap.put(CC_WORK_AREA_NAME_TEL, workDataMap);
		}

		dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.サービス契約内訳番号 ← サービス契約内訳番号
		if (template.isNull(EKK0191D010CBSMsg.SVC_KEI_UCWK_NO))
		{
			dataMap.put("svc_kei_ucwk_no", "");
		}
		else
		{
			dataMap.put("svc_kei_ucwk_no", template.getString(EKK0191D010CBSMsg.SVC_KEI_UCWK_NO));
			workDataMap.put("svc_kei_ucwk_no", template.getString(EKK0191D010CBSMsg.SVC_KEI_UCWK_NO));
		}

		String dogTag = "_" + template.getString(EKK0191D010CBSMsg.TELNO_JUN);
		if (template.isNull(EKK0191D010CBSMsg.SVC_KEI_UCWK_NO))
		{
			workDataMap.put("svc_kei_ucwk_no" + dogTag, "");
		}
		else
		{
			workDataMap.put("svc_kei_ucwk_no" + dogTag, template.getString(EKK0191D010CBSMsg.SVC_KEI_UCWK_NO));
		}

		if (KMK_DIV_ONE.equals((String)dataMap.get("tel_svc")))
		{
			// 1番号の場合
			JKKBpCommon.setSvcKeiUcwkNoTel1(param, template.getString(EKK0191D010CBSMsg.SVC_KEI_UCWK_NO));
		}
		else
		{
			// 2番号の場合
			JKKBpCommon.setSvcKeiUcwkNoTel2(param, template.getString(EKK0191D010CBSMsg.SVC_KEI_UCWK_NO));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.世代登録年月日時分秒（サービス契約内訳） ← 世代登録年月日時分秒(サービス契約内訳)
		if (template.isNull(EKK0191D010CBSMsg.KK0161_GENE_ADD_DTM))
		{
			dataMap.put("kk0161_gene_add_dtm", "");
		}
		else
		{
			dataMap.put("kk0161_gene_add_dtm", template.getString(EKK0191D010CBSMsg.KK0161_GENE_ADD_DTM));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.サービス契約内訳ステータス ← サービス契約内訳ステータス
		if (template.isNull(EKK0191D010CBSMsg.SVC_KEI_UCWK_STAT))
		{
			dataMap.put("svc_kei_ucwk_stat", "");
		}
		else
		{
			dataMap.put("svc_kei_ucwk_stat", template.getString(EKK0191D010CBSMsg.SVC_KEI_UCWK_STAT));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.WEBオプション追加不可フラグ（出力） ← WEBオプション追加不可フラグ（出力）
		if (template.isNull(EKK0191D010CBSMsg.WEB_OP_ADD_FAIL_FLG_O))
		{
			dataMap.put("web_op_add_fail_flg_o", "");
		}
		else
		{
			dataMap.put("web_op_add_fail_flg_o", template.getString(EKK0191D010CBSMsg.WEB_OP_ADD_FAIL_FLG_O));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.予約適用年月日 ← 予約適用年月日
		if (template.isNull(EKK0191D010CBSMsg.RSV_APLY_YMD))
		{
			dataMap.put("rsv_aply_ymd", "");
		}
		else
		{
			dataMap.put("rsv_aply_ymd", template.getString(EKK0191D010CBSMsg.RSV_APLY_YMD));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.予約適用コード ← 予約適用コード
		if (template.isNull(EKK0191D010CBSMsg.RSV_APLY_CD))
		{
			dataMap.put("rsv_aply_cd", "");
		}
		else
		{
			dataMap.put("rsv_aply_cd", template.getString(EKK0191D010CBSMsg.RSV_APLY_CD));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.世代登録年月日時分秒(サービス契約内訳<eo光電話>) ← 世代登録年月日時分秒(サービス契約内訳<eo光電話>)
		if (template.isNull(EKK0191D010CBSMsg.KK0191_GENE_ADD_DTM))
		{
			dataMap.put("kk0191_gene_add_dtm", "");
		}
		else
		{
			dataMap.put("kk0191_gene_add_dtm", template.getString(EKK0191D010CBSMsg.KK0191_GENE_ADD_DTM));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.登録年月日時分秒 ← 登録年月日時分秒
		if (template.isNull(EKK0191D010CBSMsg.ADD_DTM))
		{
			dataMap.put("add_dtm", "");
		}
		else
		{
			dataMap.put("add_dtm", template.getString(EKK0191D010CBSMsg.ADD_DTM));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録オペレータアカウント ← 登録オペレータアカウント
		if (template.isNull(EKK0191D010CBSMsg.ADD_OPEACNT))
		{
			dataMap.put("add_opeacnt", "");
		}
		else
		{
			dataMap.put("add_opeacnt", template.getString(EKK0191D010CBSMsg.ADD_OPEACNT));
		}

		// サービス契約内訳＜ｅｏ光電話＞更新年月日時分秒 ← 更新年月日時分秒
		if (template.isNull(EKK0191D010CBSMsg.UPD_DTM))
		{
			dataMap.put("upd_dtm", "");
		}
		else
		{
			dataMap.put("upd_dtm", template.getString(EKK0191D010CBSMsg.UPD_DTM));
			
			JKKBpCommon.setLastDtmBySvcKeiNo(param,
					(String)((HashMap)param.getData(fixedText)).get("svc_kei_no"), 
					template.getString(EKK0191D010CBSMsg.UPD_DTM));
		}

		// サービス契約内訳＜ｅｏ光電話＞更新オペレータアカウント ← 更新オペレータアカウント
		if (template.isNull(EKK0191D010CBSMsg.UPD_OPEACNT))
		{
			dataMap.put("upd_opeacnt", "");
		}
		else
		{
			dataMap.put("upd_opeacnt", template.getString(EKK0191D010CBSMsg.UPD_OPEACNT));
		}

		// サービス契約内訳＜ｅｏ光電話＞無効フラグ ← 無効フラグ
		if (template.isNull(EKK0191D010CBSMsg.MK_FLG))
		{
			dataMap.put("mk_flg", "");
		}
		else
		{
			dataMap.put("mk_flg", template.getString(EKK0191D010CBSMsg.MK_FLG));
		}

		// サービス契約内訳＜ｅｏ光電話＞通話明細公開要否（出力） ← 通話明細公開要否（出力）
		if (template.isNull(EKK0191D010CBSMsg.TUWA_DTL_KOKAI_YH_O))
		{
			dataMap.put("tuwa_dtl_kokai_yh_o", "");
		}
		else
		{
			dataMap.put("tuwa_dtl_kokai_yh_o", template.getString(EKK0191D010CBSMsg.TUWA_DTL_KOKAI_YH_O));
		}

		// エラー情報の設定
		editErrInfoEKK0191D010(param, template, (Integer)returnCode, fixedText);

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * サービス契約内訳＜電話＞登録のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param template CAANMsg
	 * @param returnCode リターンコード
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0191D010(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0191D010CBSMsg.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);
		}

		HashMap inMap = null;

		// 作業項目領域
		Map workMap = (Map)param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* ユーザデータ情報 */
		inMap = (HashMap)param.getData(fixedText);

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.サービス契約番号 → サービス契約番号 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey("svc_kei_no_err"))
			{
				inMap.put("svc_kei_no_err", template.getString(EKK0191D010CBSMsg.SVC_KEI_NO_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.申込明細番号 → 申込明細番号 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey("mskm_dtl_no_err"))
			{
				inMap.put("mskm_dtl_no_err", template.getString(EKK0191D010CBSMsg.MSKM_DTL_NO_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.提供方式契約番号 → 提供方式契約番号 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.TK_HOSHIKI_KEI_NO_ERR))
		{
			if (!inMap.containsKey("tk_hoshiki_kei_no_err"))
			{
				inMap.put("tk_hoshiki_kei_no_err", template.getString(EKK0191D010CBSMsg.TK_HOSHIKI_KEI_NO_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.支払方法継続フラグ → 支払方法継続フラグ のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.PAYWAY_KEIZOKU_FLG_ERR))
		{
			if (!inMap.containsKey("payway_keizoku_flg_err"))
			{
				inMap.put("payway_keizoku_flg_err", template.getString(EKK0191D010CBSMsg.PAYWAY_KEIZOKU_FLG_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＷＥＢオプション追加不可フラグ → WEBオプション追加不可フラグ のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.WEB_OP_ADD_FAIL_FLG_ERR))
		{
			if (!inMap.containsKey("web_op_add_fail_flg_err"))
			{
				inMap.put("web_op_add_fail_flg_err", template.getString(EKK0191D010CBSMsg.WEB_OP_ADD_FAIL_FLG_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.業務連絡備考 → 業務連絡備考 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.WORK_RRK_BIKO_ERR))
		{
			if (!inMap.containsKey("biko_err"))
			{
				inMap.put("biko_err", template.getString(EKK0191D010CBSMsg.WORK_RRK_BIKO_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.サービス利用開始希望年月日 → サービス利用開始希望年月日 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey("svc_use_sta_kibo_ymd_err"))
			{
				inMap.put("svc_use_sta_kibo_ymd_err", template.getString(EKK0191D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.サービス利用開始希望時間帯コード → サービス利用開始希望時間帯コード のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.SVC_UEST_KBTMZ_CD_ERR))
		{
			if (!inMap.containsKey("svc_uest_kbtmz_cd_err"))
			{
				inMap.put("svc_uest_kbtmz_cd_err", template.getString(EKK0191D010CBSMsg.SVC_UEST_KBTMZ_CD_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.サービス利用開始希望時間コード → サービス利用開始希望時間コード のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.SVC_UEST_KBTM_CD_ERR))
		{
			if (!inMap.containsKey("svc_uest_kbtm_cd_err"))
			{
				inMap.put("svc_uest_kbtm_cd_err", template.getString(EKK0191D010CBSMsg.SVC_UEST_KBTM_CD_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.予約適用開始希望年月日 → 予約適用開始希望年月日 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey("rsv_tsta_kibo_ymd_err"))
			{
				inMap.put("rsv_tsta_kibo_ymd_err", template.getString(EKK0191D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.試用加入年月日 → 試用加入年月日 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.FTRIAL_KANYU_YMD_ERR))
		{
			if (!inMap.containsKey("ftrial_kanyu_ymd_err"))
			{
				inMap.put("ftrial_kanyu_ymd_err", template.getString(EKK0191D010CBSMsg.FTRIAL_KANYU_YMD_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.試用期間終了年月日 → 試用期間終了年月日 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR))
		{
			if (!inMap.containsKey("ftrial_prd_endymd_err"))
			{
				inMap.put("ftrial_prd_endymd_err", template.getString(EKK0191D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.本加入年月日 → 本加入年月日 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.HONKANYU_YMD_ERR))
		{
			if (!inMap.containsKey("honkanyu_ymd_err"))
			{
				inMap.put("honkanyu_ymd_err", template.getString(EKK0191D010CBSMsg.HONKANYU_YMD_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.本加入移行期限年月日 → 本加入移行期限年月日 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR))
		{
			if (!inMap.containsKey("honkanyu_iko_kigen_ymd_err"))
			{
				inMap.put("honkanyu_iko_kigen_ymd_err", template.getString(EKK0191D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.違約金発生コード → 違約金発生コード のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.PNLTY_HASSEI_CD_ERR))
		{
			if (!inMap.containsKey("pnlty_hassei_cd_err"))
			{
				inMap.put("pnlty_hassei_cd_err", template.getString(EKK0191D010CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.異動区分 → 異動区分 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey("ido_div_err"))
			{
				inMap.put("ido_div_err", template.getString(EKK0191D010CBSMsg.IDO_DIV_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.電話番号 → 電話番号 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.TELNO_ERR))
		{
			if (!inMap.containsKey("telno_err"))
			{
				inMap.put("telno_err", template.getString(EKK0191D010CBSMsg.TELNO_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.電話番号使用場所番号 → 電話番号使用場所番号 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.TELNO_USE_PLACE_NO_ERR))
		{
			if (!inMap.containsKey("telno_use_place_no_err"))
			{
				inMap.put("telno_use_place_no_err", template.getString(EKK0191D010CBSMsg.TELNO_USE_PLACE_NO_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用住所コード → 緊急通報用住所コード のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.EMG_AD_CD_ERR))
		{
			if (!inMap.containsKey("emg_ad_cd_err"))
			{
				inMap.put("emg_ad_cd_err", template.getString(EKK0191D010CBSMsg.EMG_AD_CD_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.電話番号順番 → 電話番号順番 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.TELNO_JUN_ERR))
		{
			if (!inMap.containsKey("telno_jun_err"))
			{
				inMap.put("telno_jun_err", template.getString(EKK0191D010CBSMsg.TELNO_JUN_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ番号案内有無 → NTT番号案内有無 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.NTT_NO_GUIDE_UM_ERR))
		{
			if (!inMap.containsKey("ntt_no_guide_um_err"))
			{
				inMap.put("ntt_no_guide_um_err", template.getString(EKK0191D010CBSMsg.NTT_NO_GUIDE_UM_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ハローページ掲載有無 → ハローページ掲載有無 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.HELLOPAGE_KEISAI_UM_ERR))
		{
			if (!inMap.containsKey("hellopage_keisai_um_err"))
			{
				inMap.put("hellopage_keisai_um_err", template.getString(EKK0191D010CBSMsg.HELLOPAGE_KEISAI_UM_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.通話明細公開要否エラー → 通話明細公開要否 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.TUWA_DTL_KOKAI_YH_ERR))
		{
			if (!inMap.containsKey("tuwa_dtl_kokai_yh_err"))
			{
				inMap.put("tuwa_dtl_kokai_yh_err", template.getString(EKK0191D010CBSMsg.TUWA_DTL_KOKAI_YH_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.電番事前通知コード → 電番事前通知コード のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.TEL_NO_PRE_TCHI_CD_ERR))
		{
			if (!inMap.containsKey("tel_no_pre_tchi_cd_err"))
			{
				inMap.put("tel_no_pre_tchi_cd_err", template.getString(EKK0191D010CBSMsg.TEL_NO_PRE_TCHI_CD_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.通信事業者コード → 通信事業者コード のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.TSJGS_CD_ERR))
		{
			if (!inMap.containsKey("tsjgs_cd_err"))
			{
				inMap.put("tsjgs_cd_err", template.getString(EKK0191D010CBSMsg.TSJGS_CD_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.手動切替予定年月日時分秒 → 手動切替予定年月日時分秒 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.MAN_SWITCH_RSV_DTM_ERR))
		{
			if (!inMap.containsKey("man_switch_rsv_dtm_err"))
			{
				inMap.put("man_switch_rsv_dtm_err", template.getString(EKK0191D010CBSMsg.MAN_SWITCH_RSV_DTM_ERR));
			}
		}
		// サービス契約内訳<eo光電話>登録.解約・休止トーキ希望有無 → 解約・休止トーキ希望有無のエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.DSL_PAUSE_TOKI_KIBO_UM_ERR, template);
		// サービス契約内訳<eo光電話>登録..解約・休止トーキ種別コード → 解約・休止トーキ種別コードのエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.DSL_PAUSE_TOKI_SBT_CD_ERR, template);
		
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.タウンページ掲載カナ名 → タウンページ掲載カナ名 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.TOWNPAGE_KEISAI_KANA_ERR))
		{
			if (!inMap.containsKey("townpage_keisai_kana_err"))
			{
				inMap.put("townpage_keisai_kana_err", template.getString(EKK0191D010CBSMsg.TOWNPAGE_KEISAI_KANA_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.タウンページ掲載名 → タウンページ掲載名 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.TOWNPAGE_KEISAI_NM_ERR))
		{
			if (!inMap.containsKey("townpage_keisai_nm_err"))
			{
				inMap.put("townpage_keisai_nm_err", template.getString(EKK0191D010CBSMsg.TOWNPAGE_KEISAI_NM_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.番ポ有無 → 番ポ有無 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.BMP_UM_ERR))
		{
			if (!inMap.containsKey("bmp_um_err"))
			{
				inMap.put("bmp_um_err", template.getString(EKK0191D010CBSMsg.BMP_UM_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.番ポ同時工事希望有無 → 番ポ同時工事希望有無 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.BMP_DOJI_KOJI_KIBO_UM_ERR))
		{
			if (!inMap.containsKey("bmp_doji_koji_kibo_um_err"))
			{
				inMap.put("bmp_doji_koji_kibo_um_err", template.getString(EKK0191D010CBSMsg.BMP_DOJI_KOJI_KIBO_UM_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.番ポ同時開通年月日 → 番ポ同時開通年月日 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.BMP_DOJI_OPEN_YMD_ERR))
		{
			if (!inMap.containsKey("bmp_doji_open_ymd_err"))
			{
				inMap.put("bmp_doji_open_ymd_err", template.getString(EKK0191D010CBSMsg.BMP_DOJI_OPEN_YMD_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用補正郵便番号 → 緊急通報用補正郵便番号 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.EMG_HOSEI_PCD_ERR))
		{
			if (!inMap.containsKey("emg_hosei_pcd_err"))
			{
				inMap.put("emg_hosei_pcd_err", template.getString(EKK0191D010CBSMsg.EMG_HOSEI_PCD_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用都道府県名 → 緊急通報用都道府県名 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.EMG_STATE_NM_ERR))
		{
			if (!inMap.containsKey("emg_state_nm_err"))
			{
				inMap.put("emg_state_nm_err", template.getString(EKK0191D010CBSMsg.EMG_STATE_NM_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用市区町村名 → 緊急通報用市区町村名 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.EMG_CITY_NM_ERR))
		{
			if (!inMap.containsKey("emg_city_nm_err"))
			{
				inMap.put("emg_city_nm_err", template.getString(EKK0191D010CBSMsg.EMG_CITY_NM_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用大字通称名 → 緊急通報用大字通称名 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.EMG_OAZTSU_NM_ERR))
		{
			if (!inMap.containsKey("emg_oaztsu_nm_err"))
			{
				inMap.put("emg_oaztsu_nm_err", template.getString(EKK0191D010CBSMsg.EMG_OAZTSU_NM_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用字丁目名 → 緊急通報用字丁目名 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.EMG_AZCHO_NM_ERR))
		{
			if (!inMap.containsKey("emg_azcho_nm_err"))
			{
				inMap.put("emg_azcho_nm_err", template.getString(EKK0191D010CBSMsg.EMG_AZCHO_NM_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用番地号 → 緊急通報用番地号 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.EMG_BNCHIGO_ERR))
		{
			if (!inMap.containsKey("emg_bnchigo_err"))
			{
				inMap.put("emg_bnchigo_err", template.getString(EKK0191D010CBSMsg.EMG_BNCHIGO_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用住所補記・建物名 → 緊急通報用住所補記・建物名 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.EMG_ADRTTM_ERR))
		{
			if (!inMap.containsKey("emg_adrttm_err"))
			{
				inMap.put("emg_adrttm_err", template.getString(EKK0191D010CBSMsg.EMG_ADRTTM_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用住所補記・部屋番号 → 緊急通報用住所補記・部屋番号 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.EMG_ADRRM_ERR))
		{
			if (!inMap.containsKey("emg_adrrm_err"))
			{
				inMap.put("emg_adrrm_err", template.getString(EKK0191D010CBSMsg.EMG_ADRRM_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用契約者個別指定フラグ → 緊急通報用契約者個別指定フラグ のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.EMG_KSH_KSITEI_FLG_ERR))
		{
			if (!inMap.containsKey("emg_ksh_ksitei_flg_err"))
			{
				inMap.put("emg_ksh_ksitei_flg_err", template.getString(EKK0191D010CBSMsg.EMG_KSH_KSITEI_FLG_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用契約者名 → 緊急通報用契約者名 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.EMG_KSH_NM_ERR))
		{
			if (!inMap.containsKey("emg_ksh_nm_err"))
			{
				inMap.put("emg_ksh_nm_err", template.getString(EKK0191D010CBSMsg.EMG_KSH_NM_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.緊急通報用契約者カナ名 → 緊急通報用契約者カナ名 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.EMG_KSH_KANA_ERR))
		{
			if (!inMap.containsKey("emg_ksh_kana_err"))
			{
				inMap.put("emg_ksh_kana_err", template.getString(EKK0191D010CBSMsg.EMG_KSH_KANA_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者住所コード → NTT契約者住所コード のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.NTT_KEISHA_AD_CD_ERR))
		{
			if (!inMap.containsKey("ntt_keisha_ad_cd_err"))
			{
				inMap.put("ntt_keisha_ad_cd_err", template.getString(EKK0191D010CBSMsg.NTT_KEISHA_AD_CD_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者郵便番号 → NTT契約者郵便番号 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.NTT_KEISHA_PCD_ERR))
		{
			if (!inMap.containsKey("ntt_keisha_pcd_err"))
			{
				inMap.put("ntt_keisha_pcd_err", template.getString(EKK0191D010CBSMsg.NTT_KEISHA_PCD_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者都道府県名 → NTT契約者都道府県名 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.NTT_KEISHA_STATE_NM_ERR))
		{
			if (!inMap.containsKey("ntt_keisha_state_nm_err"))
			{
				inMap.put("ntt_keisha_state_nm_err", template.getString(EKK0191D010CBSMsg.NTT_KEISHA_STATE_NM_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者市区町村名 → NTT契約者市区町村名 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.NTT_KEISHA_CITY_NM_ERR))
		{
			if (!inMap.containsKey("ntt_keisha_city_nm_err"))
			{
				inMap.put("ntt_keisha_city_nm_err", template.getString(EKK0191D010CBSMsg.NTT_KEISHA_CITY_NM_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者大字通称名 → NTT契約者大字通称名 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.NTT_KEISHA_OAZTSU_NM_ERR))
		{
			if (!inMap.containsKey("ntt_keisha_oaztsu_nm_err"))
			{
				inMap.put("ntt_keisha_oaztsu_nm_err", template.getString(EKK0191D010CBSMsg.NTT_KEISHA_OAZTSU_NM_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者字丁目名 → NTT契約者字丁目名 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.NTT_KEISHA_AZCHO_NM_ERR))
		{
			if (!inMap.containsKey("ntt_keisha_azcho_nm_err"))
			{
				inMap.put("ntt_keisha_azcho_nm_err", template.getString(EKK0191D010CBSMsg.NTT_KEISHA_AZCHO_NM_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者番地号 → NTT契約者番地号 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.NTT_KEISHA_BNCHIGO_ERR))
		{
			if (!inMap.containsKey("ntt_keisha_bnchigo_err"))
			{
				inMap.put("ntt_keisha_bnchigo_err", template.getString(EKK0191D010CBSMsg.NTT_KEISHA_BNCHIGO_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者住所補記・建物名 → NTT契約者住所補記・建物名 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.NTT_KEISHA_ADRTTM_ERR))
		{
			if (!inMap.containsKey("ntt_keisha_adrttm_err"))
			{
				inMap.put("ntt_keisha_adrttm_err", template.getString(EKK0191D010CBSMsg.NTT_KEISHA_ADRTTM_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者住所補記・部屋番号 → NTT契約者住所補記・部屋番号 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.NTT_KEISHA_ADRRM_ERR))
		{
			if (!inMap.containsKey("ntt_keisha_adrrm_err"))
			{
				inMap.put("ntt_keisha_adrrm_err", template.getString(EKK0191D010CBSMsg.NTT_KEISHA_ADRRM_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者カナ名 → NTT契約者カナ名 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.NTT_KSH_KANA_ERR))
		{
			if (!inMap.containsKey("ntt_ksh_kana_err"))
			{
				inMap.put("ntt_ksh_kana_err", template.getString(EKK0191D010CBSMsg.NTT_KSH_KANA_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者名 → NTT契約者名 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.NTT_KEISHA_NM_ERR))
		{
			if (!inMap.containsKey("ntt_keisha_nm_err"))
			{
				inMap.put("ntt_keisha_nm_err", template.getString(EKK0191D010CBSMsg.NTT_KEISHA_NM_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者住所＿契約者住所差異フラグ → NTT契約者住所_契約者住所差異フラグ のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.NTT_KSH_AD_KSH_AD_SAI_FLG_ERR))
		{
			if (!inMap.containsKey("ntt_ksh_ad_ksh_ad_sai_flg_err"))
			{
				inMap.put("ntt_ksh_ad_ksh_ad_sai_flg_err", template.getString(EKK0191D010CBSMsg.NTT_KSH_AD_KSH_AD_SAI_FLG_ERR));
			}
		}
		// サービス契約内訳<eo光電話>登録.解約・休止トーキ転送先電話番号 → 解約・休止トーキ転送先電話番号のエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.DSL_PAUSE_TOKI_TSS_TLN_ERR, template);
		// サービス契約内訳<eo光電話>登録.解約・休止トーキ開始年月日 → 解約・休止トーキ開始年月日のエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.DSL_PAUSE_TOKI_STA_YMD_ERR, template);
		// サービス契約内訳<eo光電話>登録.解約・休止トーキ終了予定年月日 → 解約・休止トーキ終了予定年月日のエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.DSL_PAUSE_TOKI_END_RSYMD_ERR, template);
		// サービス契約内訳<eo光電話>登録.解約・休止トーキ終了年月日 → 解約・休止トーキ終了年月日のエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.DSL_PAUSE_TOKI_END_YMD_ERR, template);
		// サービス契約内訳<eo光電話>登録.解約・休止トーキ登録コード → 解約・休止トーキ登録コードのエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.DSL_PAUSE_TOKI_ADD_CD_ERR, template);
		// サービス契約内訳<eo光電話>登録.解約・休止トーキ開始予定年月日 → 解約・休止トーキ開始予定年月日のエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.DSL_PAUSE_TOKI_STA_RSYMD_ERR, template);

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.VA宅内機器型式コード → VA宅内機器型式コード のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.VA_TAKNKIKI_MODEL_CD_ERR))
		{
			if (!inMap.containsKey("va_taknkiki_model_cd_err"))
			{
				inMap.put("va_taknkiki_model_cd_err", template.getString(EKK0191D010CBSMsg.VA_TAKNKIKI_MODEL_CD_ERR));
			}
		}
		// サービス契約内訳＜ｅｏ光電話＞登録マップ.VA機器製造番号 → VA機器製造番号 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.VA_KIKI_SEIZO_NO_ERR))
		{
			if (!inMap.containsKey("va_kiki_seizo_no_err"))
			{
				inMap.put("va_kiki_seizo_no_err", template.getString(EKK0191D010CBSMsg.VA_KIKI_SEIZO_NO_ERR));
			}
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.VAポート番号 → VAポート番号 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.VA_PORT_NO_ERR))
		{
			if (!inMap.containsKey("va_port_no_err"))
			{
				inMap.put("va_port_no_err", template.getString(EKK0191D010CBSMsg.VA_PORT_NO_ERR));
			}
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.更新年月日時分秒(更新前) → 更新年月日時分秒(更新前) のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.UPD_DTM_BF_ERR))
		{
			if (!inMap.containsKey("upd_dtm_bf_err"))
			{
				inMap.put("upd_dtm_bf_err", template.getString(EKK0191D010CBSMsg.UPD_DTM_BF_ERR));
			}
		}

		// 【PCON課題_No.2012-0000003】ADD START 番ポ申込手数料追加 2012.6.14 FJ)薄出 

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.事務手数料自動適用要否 → 事務手数料自動適用要否 のエラー情報返却
		if (!template.isNull(EKK0191D010CBSMsg.RULE0059_AUTO_APLY_ERR))
		{
			if (!inMap.containsKey("rule0059_auto_aply_err"))
			{
				inMap.put("rule0059_auto_aply_err", template.getString(EKK0191D010CBSMsg.RULE0059_AUTO_APLY_ERR));
			}
		}

		// 【PCON課題_No.2012-0000003】ADD END   番ポ申込手数料追加 2012.6.14 FJ)薄出 
		
		//同番移転申込有無
		if (!template.isNull(EKK0191D010CBSMsg.DOBANITEN_MSKM_UM_ERR))
		{
			if (!inMap.containsKey("dobaniten_mskm_um_err"))
			{
				inMap.put("dobaniten_mskm_um_err", template.getString(EKK0191D010CBSMsg.DOBANITEN_MSKM_UM_ERR));
			}
		}
		
		//同番移転依頼制御コード
		if (!template.isNull(EKK0191D010CBSMsg.DOBANITEN_REQ_CTRL_CD_ERR))
		{
			if (!inMap.containsKey("dobaniten_req_ctrl_cd_err"))
			{
				inMap.put("dobaniten_req_ctrl_cd_err", template.getString(EKK0191D010CBSMsg.DOBANITEN_REQ_CTRL_CD_ERR));
			}
		}
		
		//同番移転判定コード
		if (!template.isNull(EKK0191D010CBSMsg.DOBANITEN_JDG_CD_ERR))
		{
			if (!inMap.containsKey("dobaniten_jdg_cd_err"))
			{
				inMap.put("dobaniten_jdg_cd_err", template.getString(EKK0191D010CBSMsg.DOBANITEN_JDG_CD_ERR));
			}
		}
		
		//仮登録フラグ
		if (!template.isNull(EKK0191D010CBSMsg.KARI_TOUROKU_FLG_ERR))
		{
			if (!inMap.containsKey("kari_touroku_flg_err"))
			{
				inMap.put("kari_touroku_flg_err", template.getString(EKK0191D010CBSMsg.KARI_TOUROKU_FLG_ERR));
			}
		}

		//NTT契約者住所手動入力フラグ
		if (!template.isNull(EKK0191D010CBSMsg.NKYS_AD_MAN_INPUT_FLG_ERR))
		{
			if (!inMap.containsKey("nkys_ad_man_input_flg_err"))
			{
				inMap.put("nkys_ad_man_input_flg_err", template.getString(EKK0191D010CBSMsg.NKYS_AD_MAN_INPUT_FLG_ERR));
			}
		}

		//移転元通信事業者拠点コード
		if (!template.isNull(EKK0191D010CBSMsg.ITNM_TSJGS_KTN_CD_ERR))
		{
			if (!inMap.containsKey("itnm_tsjgs_ktn_cd_err"))
			{
				inMap.put("itnm_tsjgs_ktn_cd_err", template.getString(EKK0191D010CBSMsg.ITNM_TSJGS_KTN_CD_ERR));
			}
		}

		//番ポ工事希望年月日
		if (!template.isNull(EKK0191D010CBSMsg.BMP_KOJI_KIBO_YMD_ERR))
		{
			if (!inMap.containsKey("bmp_koji_kibo_ymd_err"))
			{
				inMap.put("bmp_koji_kibo_ymd_err", template.getString(EKK0191D010CBSMsg.BMP_KOJI_KIBO_YMD_ERR));
			}
		}

		//番ポ工事希望時間コード
		if (!template.isNull(EKK0191D010CBSMsg.BMPKJ_KIBO_TIME_CD_ERR))
		{
			if (!inMap.containsKey("bmpkj_kibo_time_cd_err"))
			{
				inMap.put("bmpkj_kibo_time_cd_err", template.getString(EKK0191D010CBSMsg.BMPKJ_KIBO_TIME_CD_ERR));
			}
		}

		//同番移転申込事業者記事欄1
		if (!template.isNull(EKK0191D010CBSMsg.BMPKJ_KIBO_TIME_CD_ERR))
		{
			if (!inMap.containsKey("dbaniten_mskmjig_kijiran_1_err"))
			{
				inMap.put("dbaniten_mskmjig_kijiran_1_err", template.getString(EKK0191D010CBSMsg.BMPKJ_KIBO_TIME_CD_ERR));
			}
		}
		//同番移転申込事業者記事欄2
		if (!template.isNull(EKK0191D010CBSMsg.DBANITEN_MSKMJIG_KIJIRAN_2_ERR))
		{
			if (!inMap.containsKey("dbaniten_mskmjig_kijiran_2_err"))
			{
				inMap.put("dbaniten_mskmjig_kijiran_2_err", template.getString(EKK0191D010CBSMsg.DBANITEN_MSKMJIG_KIJIRAN_2_ERR));
			}
		}
		
		// サービス契約内訳<eo光電話>登録.緊急通報用住所チェックレベル→緊急通報用住所チェックレベルコードのエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.EMG_AD_CHK_LV_ERR, template);
		// サービス契約内訳<eo光電話>登録.NTT契約者住所チェックレベル→NTT契約者住所チェックレベルのエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.NTT_AD_CHK_LV_ERR, template);
		// サービス契約内訳<eo光電話>登録.移転先開通後トーキ登録コード→移転先開通後トーキ登録コードのエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.ITENS_OPAF_TOKI_ADD_CD_ERR, template);
		// サービス契約内訳<eo光電話>登録.移転先開通後トーキ種別コード→移転先開通後トーキ種別コードのエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.ITENS_OPAF_TOKI_SBT_CD_ERR, template);
		// サービス契約内訳<eo光電話>登録.移転先開通後トーキ希望有無→移転先開通後トーキ希望有無のエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.ITENS_OPAF_TOKI_KIBO_UM_ERR, template);
		// サービス契約内訳<eo光電話>登録.移転先開通後トーキ開始予定年月日→移転先開通後トーキ開始予定年月日のエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.ITENS_OPAF_TOKI_STA_RSYMD_ERR, template);
		// サービス契約内訳<eo光電話>登録.移転先開通後トーキ開始年月日→移転先開通後トーキ開始年月日のエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.ITENS_OPAF_TOKI_STA_YMD_ERR, template);
		// サービス契約内訳<eo光電話>登録.移転先開通後トーキ終了予定年月日→移転先開通後トーキ終了予定年月日のエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.ITENS_OPAF_TOKI_END_RSYMD_ERR, template);
		// サービス契約内訳<eo光電話>登録.移転先開通後トーキ終了年月日→移転先開通後トーキ終了年月日のエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.ITENS_OPAF_TOKI_END_YMD_ERR, template);
		// サービス契約内訳<eo光電話>登録.移転先開通後トーキ転送先サービス契約内訳番号→移転先開通後トーキ転送先サービス契約内訳番号のエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.ITNS_OPAF_TOKI_TSS_SVKUWNO_ERR, template);
		// サービス契約内訳<eo光電話>登録.休止トーキ終了種別コード→休止トーキ終了種別コードのエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.PAUSE_TOKI_END_SBT_CD_ERR, template);
		// サービス契約内訳<eo光電話>登録.解約・休止トーキ転送先サービス契約内訳番号→解約・休止トーキ転送先サービス契約内訳番号のエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.DSL_PAUSE_TOKI_TSS_SVKUWNO_ERR, template);
		// サービス契約内訳<eo光電話>登録.同番移転ＮＴＴ契約者名→同番移転ＮＴＴ契約者名のエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.DOBANITEN_NTT_KEISHA_NM_ERR, template);
		// サービス契約内訳<eo光電話>登録.同番移転ＮＴＴ契約者カナ名→同番移転ＮＴＴ契約者カナ名のエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.DOBANITEN_NTT_KSH_KANA_ERR, template);
		// サービス契約内訳<eo光電話>登録.同番移転手続実施者識別コード→同番移転手続実施者識別コードのエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.DOBANITEN_TTDK_JSSIS_SKCD_ERR, template);
		// サービス契約内訳<eo光電話>登録.同番移転KOPT内審査結果コード→同番移転KOPT内審査結果コードのエラー情報返却
		setErrInfo(inMap, "", EKK0191D010CBSMsg.DBNITN_KOPT_NAI_SKEKKA_CD_ERR, template);

		// 機能コード：２（チェックのみ）でEKK0191D010で緊急通報用契約者カナ名にエラーがでていない場合は桁数チェックを行う。
		if ("2".equals(inMap.get(JCMConstants.FUNC_CODE_KEY))
				&& template.isNull(EKK0191D010CBSMsg.EMG_KSH_KANA_ERR))
		{
			checkEmgKshKanaLength(param, fixedText);
		}
		
		return param;
	}

	/**
	 * 緊急通報用契約者カナ名の桁数チェックを行います。
	 * <br/>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite checkEmgKshKanaLength(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		HashMap inMap = (HashMap)param.getData(fixedText);
		
		if (inMap == null || inMap.get("kk0191_emg_ksh_kana") == null || "".equals(inMap.get("kk0191_emg_ksh_kana")))
		{
			return param;
		}
		
		// 半角に変換した緊急通報用契約者カナ名の桁数が36より大きい場合はエラー
		if (JPCConvertString.convFullToHalfByKata((String)inMap.get("kk0191_emg_ksh_kana")).length() > 36)
		{
			int templateStatus = JPCModelConstant.SINGLEDATA_ERR;
			
			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 (!inMap.containsKey("emg_ksh_kana_err"))
			{
				inMap.put("emg_ksh_kana_err", "E3");
			}
			
			// エラー情報のリストを取得
			ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
			if (errList == null)
			{
				errList = new ArrayList<Object>();
			}

			// コントロールマップに設定
			HashMap<String, Object> errorMap = new HashMap<String, Object>();
			HashMap<String, String> errorMapChild = new HashMap<String, String>();

			errorMap.put(ErrorInfoMapKeys.RETURN_CODE, JPCModelConstant.NORMAL_END);
			errorMap.put(ErrorInfoMapKeys.TEMPLATE_ID, "EKK0191D010");
			errorMap.put(ErrorInfoMapKeys.STATUS, JPCModelConstant.SINGLEDATA_ERR);

			errorMapChild.put("emg_ksh_kana_err", "E3");
			errorMap.put(ErrorInfoMapKeys.ITEM_CHECK_ERRORS, errorMapChild);

			errList.add(errorMap);

			param.setControlMapData(SCControlMapKeys.ERROR_INFO, errList);
		}
		
		return param;
	}

	// OM-2015-0002295 ADD START
	/**
	 * サービス契約内訳＜電話＞二重発番チェックの上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0191C130(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0191C130CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0191C130CBSMsg.TEMPLATEID, "EKK0191C130");

		// 機能コード（デフォルト：１）
		template.set(EKK0191C130CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// マッピング情報
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 作業領域のマップを取得
		HashMap workDataMap = null;
		HashMap workDataMap_MskmList = null;
		HashMap workDataMap_Mskm = null;
		String mskmDtlNo = null;
		Map workMap = param.getMappingWorkArea();
		if (workMap != null)
		{
			workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TEL);
			workDataMap_Mskm = (HashMap)workMap.get(CC_WORK_AREA_NAME_MSKM);
			if (workDataMap_Mskm != null)
			{
				ArrayList inList1 = ((ArrayList)workDataMap_Mskm.get(CC_WORK_AREA_NAME_MSKM_LIST));
				int devCnt = inList1 != null ? inList1.size() : 0;
				for (int i = 0; i < devCnt; i++)
				{
					workDataMap_MskmList = (HashMap)(inList1).get(i);

					if (workDataMap_MskmList == null || workDataMap_MskmList.get("mskm_dtl_no_tel") == null
							|| "".equals(workDataMap_MskmList.get("mskm_dtl_no_tel")))
					{
						mskmDtlNo = null;
					}
					else
					{
						mskmDtlNo = (String)workDataMap_MskmList.get("mskm_dtl_no_tel");
						break;
					}

				}
			}

		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.サービス契約番号 → サービス契約番号
		if (workDataMap == null || workDataMap.get("svc_kei_no") == null || "".equals(workDataMap.get("svc_kei_no")))
		{
			if (inMap == null || inMap.get("kk0191_svc_kei_no") == null || "".equals(inMap.get("kk0191_svc_kei_no")))
			{
				template.setNull(EKK0191D010CBSMsg.SVC_KEI_NO);
			}
			else
			{
				template.set(EKK0191D010CBSMsg.SVC_KEI_NO, (String)inMap.get("kk0191_svc_kei_no"));
			}
		}
		else
		{
			template.set(EKK0191D010CBSMsg.SVC_KEI_NO, (String)workDataMap.get("svc_kei_no"));
		}

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.電話番号 → 電話番号
		if (inMap == null || inMap.get("kk0191_telno") == null || "".equals(inMap.get("kk0191_telno")))
		{
			template.setNull(EKK0191C130CBSMsg.TELNO);
		}
		else
		{
			template.set(EKK0191C130CBSMsg.TELNO, (String)inMap.get("kk0191_telno"));
		}

		return template;
	}

	/**
	 * サービス契約内訳＜電話＞二重発番チェックの下りマッピング処理を行います。
	 * <br>
	 * @param msgList メッセージリスト
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editRetEKK0191C130(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 結果を詰めるマップを取得。
		HashMap dataMap = null;

		HashMap workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TEL);
		if (workDataMap == null)
		{
			workDataMap = new HashMap();
			workMap.put(CC_WORK_AREA_NAME_TEL, workDataMap);
		}

		dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

		// エラー情報の設定
		editErrInfoEKK0191C130(param, template, (Integer)returnCode, fixedText);

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * サービス契約内訳＜電話＞二重発番チェックのエラー情報マッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param template CAANMsg
	 * @param returnCode リターンコード
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0191C130(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0191C130CBSMsg.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);
		}

		HashMap inMap = null;

		// 作業項目領域
		Map workMap = (Map)param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		/* ユーザデータ情報 */
		inMap = (HashMap)param.getData(fixedText);

		// サービス契約内訳＜ｅｏ光電話＞登録マップ.電話番号 → 電話番号 のエラー情報返却
		if (!template.isNull(EKK0191C130CBSMsg.TELNO_ERR))
		{
			if (!inMap.containsKey("telno_err"))
			{
				inMap.put("telno_err", template.getString(EKK0191C130CBSMsg.TELNO_ERR));
			}
		}

		return param;
	}
	// OM-2015-0002295 ADD END

	/**
	 * オプションサービス契約＜電話＞登録の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param opSvcKeiMap オプションサービス契約＜電話＞マップ
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0371D010(IRequestParameterReadWrite param, String fixedText, HashMap opSvcKeiMap) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0371D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0371D010CBSMsg.TEMPLATEID, "EKK0371D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0371D010CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード
		if (inMap != null)
		{
			template.set(EKK0371D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));
		}

		// 申込明細番号を取得
		HashMap workDataMap_MskmList = null;
		HashMap workDataMap_Mskm = null;
		String mskmDtlNo = null;

		// 作業領域のマップを取得
		HashMap workDataMap = null;
		Map workMap = param.getMappingWorkArea();
		if (workMap != null)
		{
			workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TEL);
			workDataMap_Mskm = (HashMap)workMap.get(CC_WORK_AREA_NAME_MSKM);
			if (workDataMap_Mskm != null)
			{
				ArrayList inList1 = ((ArrayList)workDataMap_Mskm.get(CC_WORK_AREA_NAME_MSKM_LIST));
				int devCnt = inList1 != null ? inList1.size() : 0;
				for (int i = 0; i < devCnt; i++)
				{
					workDataMap_MskmList = (HashMap)(inList1).get(i);

					if (workDataMap_MskmList == null || workDataMap_MskmList.get("mskm_dtl_no_tel") == null
							|| "".equals(workDataMap_MskmList.get("mskm_dtl_no_tel")))
					{
						mskmDtlNo = null;
					}
					else
					{
						mskmDtlNo = (String)workDataMap_MskmList.get("mskm_dtl_no_tel");
						break;
					}

				}
			}
		}

		// オプションサービス契約＜電話＞登録マップ.オプションサービスコード → オプションサービスコード
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_op_svc_cd") == null || "".equals(opSvcKeiMap.get("kk0371_op_svc_cd")))
		{
			template.setNull(EKK0371D010CBSMsg.OP_SVC_CD);
		}
		else
		{
			template.set(EKK0371D010CBSMsg.OP_SVC_CD, (String)opSvcKeiMap.get("kk0371_op_svc_cd"));
		}

		// オプションサービス契約＜電話＞登録マップ.料金コースコード → 料金コースコード
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_pcrs_cd") == null || "".equals(opSvcKeiMap.get("kk0371_pcrs_cd")))
		{
			template.setNull(EKK0371D010CBSMsg.PCRS_CD);
		}
		else
		{
			template.set(EKK0371D010CBSMsg.PCRS_CD, (String)opSvcKeiMap.get("kk0371_pcrs_cd"));
		}

		// オプションサービス契約＜電話＞登録マップ.料金プランコード → 料金プランコード
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_pplan_cd") == null || "".equals(opSvcKeiMap.get("kk0371_pplan_cd")))
		{
			template.setNull(EKK0371D010CBSMsg.PPLAN_CD);
		}
		else
		{
			template.set(EKK0371D010CBSMsg.PPLAN_CD, (String)opSvcKeiMap.get("kk0371_pplan_cd"));
		}

		// オプションサービス契約＜電話＞登録マップ.親契約識別コード → 親契約識別コード
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_oya_kei_skbt_cd") == null || "".equals(opSvcKeiMap.get("kk0371_oya_kei_skbt_cd")))
		{
			template.setNull(EKK0371D010CBSMsg.OYA_KEI_SKBT_CD);
		}
		else
		{
			template.set(EKK0371D010CBSMsg.OYA_KEI_SKBT_CD, (String)opSvcKeiMap.get("kk0371_oya_kei_skbt_cd"));
		}

		// オプションサービス契約＜電話＞登録マップ.サービス契約番号 → サービス契約番号
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_svc_kei_no") == null || "".equals(opSvcKeiMap.get("kk0371_svc_kei_no")))
		{
			template.setNull(EKK0371D010CBSMsg.SVC_KEI_NO);
		}
		else
		{
			template.set(EKK0371D010CBSMsg.SVC_KEI_NO, (String)opSvcKeiMap.get("kk0371_svc_kei_no"));
		}

		// オプションサービス契約＜電話＞登録マップ.サービス契約内訳番号 → サービス契約内訳番号
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_svc_kei_ucwk_no") == null || "".equals(opSvcKeiMap.get("kk0371_svc_kei_ucwk_no")))
		{
			if (workDataMap == null || workDataMap.get("svc_kei_ucwk_no") == null || "".equals(workDataMap.get("svc_kei_ucwk_no")))
			{
				template.setNull(EKK0371D010CBSMsg.SVC_KEI_UCWK_NO);
			}
			else
			{
				template.set(EKK0371D010CBSMsg.SVC_KEI_UCWK_NO, (String)workDataMap.get("svc_kei_ucwk_no"));
			}
		}
		else
		{
			template.set(EKK0371D010CBSMsg.SVC_KEI_UCWK_NO, (String)opSvcKeiMap.get("kk0371_svc_kei_ucwk_no"));
		}

		// オプションサービス契約＜電話＞登録マップ.ＳＹＳＩＤ → SYSID
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_sysid") == null || "".equals(opSvcKeiMap.get("kk0371_sysid")))
		{
			if (getKeishaWorkMapValue(param, "sysid") == null)
			{
				template.setNull(EKK0371D010CBSMsg.SYSID);
			}
			else
			{
				template.set(EKK0371D010CBSMsg.SYSID, getKeishaWorkMapValue(param, "sysid"));
			}
		}
		else
		{
			template.set(EKK0371D010CBSMsg.SYSID, (String)opSvcKeiMap.get("kk0371_sysid"));
		}

		// オプションサービス契約＜電話＞登録マップ.申込明細番号 → 申込明細番号
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_mskm_dtl_no") == null || "".equals(opSvcKeiMap.get("kk0371_mskm_dtl_no")))
		{
			if (mskmDtlNo == null)
			{
				if (workDataMap == null || workDataMap.get("mskm_dtl_no") == null || "".equals(workDataMap.get("mskm_dtl_no")))
				{
					template.setNull(EKK0371D010CBSMsg.MSKM_DTL_NO);
				}
				else
				{
					template.set(EKK0371D010CBSMsg.MSKM_DTL_NO, (String)workDataMap.get("mskm_dtl_no"));
				}
			}
			else
			{
				template.set(EKK0371D010CBSMsg.MSKM_DTL_NO, mskmDtlNo);
			}
		}
		else
		{
			template.set(EKK0371D010CBSMsg.MSKM_DTL_NO, (String)opSvcKeiMap.get("kk0371_mskm_dtl_no"));
		}

		// オプションサービス契約＜電話＞登録マップ.試用加入年月日 → 試用加入年月日
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_ftrial_kanyu_ymd") == null || "".equals(opSvcKeiMap.get("kk0371_ftrial_kanyu_ymd")))
		{
			template.setNull(EKK0371D010CBSMsg.FTRIAL_KANYU_YMD);
		}
		else
		{
			template.set(EKK0371D010CBSMsg.FTRIAL_KANYU_YMD, (String)opSvcKeiMap.get("kk0371_ftrial_kanyu_ymd"));
		}

		// オプションサービス契約＜電話＞登録マップ.試用期間終了年月日 → 試用期間終了年月日
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_ftrial_prd_endymd") == null || "".equals(opSvcKeiMap.get("kk0371_ftrial_prd_endymd")))
		{
			template.setNull(EKK0371D010CBSMsg.FTRIAL_PRD_ENDYMD);
		}
		else
		{
			template.set(EKK0371D010CBSMsg.FTRIAL_PRD_ENDYMD, (String)opSvcKeiMap.get("kk0371_ftrial_prd_endymd"));
		}

		// オプションサービス契約＜電話＞登録マップ.本加入年月日 → 本加入年月日
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_honkanyu_ymd") == null || "".equals(opSvcKeiMap.get("kk0371_honkanyu_ymd")))
		{
			template.setNull(EKK0371D010CBSMsg.HONKANYU_YMD);
		}
		else
		{
			template.set(EKK0371D010CBSMsg.HONKANYU_YMD, (String)opSvcKeiMap.get("kk0371_honkanyu_ymd"));
		}

		// オプションサービス契約＜電話＞登録マップ.本加入移行期限年月日 → 本加入移行期限年月日
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_honkanyu_iko_kigen_ymd") == null || "".equals(opSvcKeiMap.get("kk0371_honkanyu_iko_kigen_ymd")))
		{
			template.setNull(EKK0371D010CBSMsg.HONKANYU_IKO_KIGEN_YMD);
		}
		else
		{
			template.set(EKK0371D010CBSMsg.HONKANYU_IKO_KIGEN_YMD, (String)opSvcKeiMap.get("kk0371_honkanyu_iko_kigen_ymd"));
		}

		// オプションサービス契約＜電話＞登録マップ.サービス利用開始希望年月日 → サービス利用開始希望年月日
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_svc_use_sta_kibo_ymd") == null || "".equals(opSvcKeiMap.get("kk0371_svc_use_sta_kibo_ymd")))
		{
			template.setNull(EKK0371D010CBSMsg.SVC_USE_STA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0371D010CBSMsg.SVC_USE_STA_KIBO_YMD, (String)opSvcKeiMap.get("kk0371_svc_use_sta_kibo_ymd"));
		}

		// オプションサービス契約＜電話＞登録マップ.予約適用開始希望年月日 → 予約適用開始希望年月日
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_rsv_tsta_kibo_ymd") == null || "".equals(opSvcKeiMap.get("kk0371_rsv_tsta_kibo_ymd")))
		{
			template.setNull(EKK0371D010CBSMsg.RSV_TSTA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0371D010CBSMsg.RSV_TSTA_KIBO_YMD, (String)opSvcKeiMap.get("kk0371_rsv_tsta_kibo_ymd"));
		}

		// オプションサービス契約＜電話＞登録マップ.違約金発生コード → 違約金発生コード
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_pnlty_hassei_cd") == null || "".equals(opSvcKeiMap.get("kk0371_pnlty_hassei_cd")))
		{
			template.setNull(EKK0371D010CBSMsg.PNLTY_HASSEI_CD);
		}
		else
		{
			template.set(EKK0371D010CBSMsg.PNLTY_HASSEI_CD, (String)opSvcKeiMap.get("kk0371_pnlty_hassei_cd"));
		}

		// オプションサービス契約＜電話＞登録マップ.異動区分 → 異動区分
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_ido_div") == null || "".equals(opSvcKeiMap.get("kk0371_ido_div")))
		{
			template.setNull(EKK0371D010CBSMsg.IDO_DIV);
		}
		else
		{
			template.set(EKK0371D010CBSMsg.IDO_DIV, (String)opSvcKeiMap.get("kk0371_ido_div"));
		}

		// オプションサービス契約＜電話＞登録マップ.０５０オプション電話番号 → 050オプション電話番号
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_op_050_telno") == null || "".equals(opSvcKeiMap.get("kk0371_op_050_telno")))
		{
			template.setNull(EKK0371D010CBSMsg.N_050_OP_TELNO);
		}
		else
		{
			template.set(EKK0371D010CBSMsg.N_050_OP_TELNO, (String)opSvcKeiMap.get("kk0371_op_050_telno"));
		}

		// オプションサービス契約＜電話＞登録マップ.通話料指定額到達通知指定金額 → 通話料指定額到達通知指定金額
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_twryo_stiam_ttu_tchi_stiam") == null
				|| "".equals(opSvcKeiMap.get("kk0371_twryo_stiam_ttu_tchi_stiam")))
		{
			template.setNull(EKK0371D010CBSMsg.TWRYO_STIAM_TTU_TCHI_STIAM);
		}
		else
		{
			template.set(EKK0371D010CBSMsg.TWRYO_STIAM_TTU_TCHI_STIAM, (String)opSvcKeiMap.get("kk0371_twryo_stiam_ttu_tchi_stiam"));
		}

		// オプションサービス契約＜電話＞登録マップ.請求契約番号 → 請求契約番号
		if (getPayWayWorkMapValue(param, "seiky_kei_no") == null)
		{
			if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_seiky_kei_no") == null || "".equals(opSvcKeiMap.get("kk0371_seiky_kei_no")))
			{
				template.setNull(EKK0371D010CBSMsg.SEIKY_KEI_NO);
			}
			else
			{
				template.set(EKK0371D010CBSMsg.SEIKY_KEI_NO, (String)opSvcKeiMap.get("kk0371_seiky_kei_no"));
			}
		}
		else
		{
			template.set(EKK0371D010CBSMsg.SEIKY_KEI_NO, (String)getPayWayWorkMapValue(param, "seiky_kei_no"));
		}

		// オプションサービス契約＜電話＞登録マップ.料金項目コード → 料金項目コード
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_prc_kmk_cd") == null || "".equals(opSvcKeiMap.get("kk0371_prc_kmk_cd")))
		{
			template.setNull(EKK0371D010CBSMsg.PRC_KMK_CD);
		}
		else
		{
			template.set(EKK0371D010CBSMsg.PRC_KMK_CD, (String)opSvcKeiMap.get("kk0371_prc_kmk_cd"));
		}
		
		// オプションサービス契約＜電話＞登録マップ.親契約識別コード → 親契約識別コード
		if (opSvcKeiMap == null || opSvcKeiMap.get("kk0371_oya_kei_skbt_cd") == null || "".equals(opSvcKeiMap.get("kk0371_oya_kei_skbt_cd"))) 
		{
			template.setNull(EKK0371D010CBSMsg.OYA_KEI_SKBT_CD);
		}
		else 
		{
			template.set(EKK0371D010CBSMsg.OYA_KEI_SKBT_CD, (String)opSvcKeiMap.get("kk0371_oya_kei_skbt_cd"));
		}

		// オプションサービス契約＜電話＞登録マップ.更新年月日時分秒(更新前) → 更新年月日時分秒(更新前)
		String tmp_svc_kei_no = (workDataMap != null && workDataMap.get("svc_kei_no") != null && !"".equals(workDataMap.get("svc_kei_no")))
			?((String)workDataMap.get("svc_kei_no")):(opSvcKeiMap != null && opSvcKeiMap.get("svc_kei_no") != null && !"".equals(opSvcKeiMap.get("svc_kei_no"))
			?((String)opSvcKeiMap.get("svc_kei_no")):(""));
	
		String lastDtm = JKKBpCommon.getLastDtmBySvcKeiNo(param, tmp_svc_kei_no,
				(String)opSvcKeiMap.get("kk0371_upd_dtm_bf"));
		template.set(EKK0371D010CBSMsg.UPD_DTM_BF, lastDtm);

		return template;
	}

	/**
	 * オプションサービス契約＜電話＞登録の下りマッピング処理
	 * <br>
	 * @param msgList メッセージリスト
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param opSvcKeiMap オプションサービス契約＜電話＞マップ
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editRetEKK0371D010(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText,
			HashMap opSvcKeiMap) throws Exception
	{
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 結果を詰めるマップを取得。
		HashMap dataMap = opSvcKeiMap;

		HashMap workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TEL);
		if (workDataMap == null)
		{
			workDataMap = new HashMap();
			workMap.put(CC_WORK_AREA_NAME_TEL, workDataMap);
		}
		
		// オプションサービス契約＜電話＞登録マップ.オプションサービス契約番号 ← オプションサービス契約番号
		if (template.isNull(EKK0371D010CBSMsg.OP_SVC_KEI_NO))
		{
			dataMap.put("op_svc_kei_no", "");
		}
		else
		{
			dataMap.put("op_svc_kei_no", template.getString(EKK0371D010CBSMsg.OP_SVC_KEI_NO));
		}

		// オプションサービス契約＜電話＞登録マップ.世代登録年月日時分秒（オプションサービス契約） ← 世代登録年月日時分秒(オプションサービス契約)
		if (template.isNull(EKK0371D010CBSMsg.KK0351_GENE_ADD_DTM))
		{
			dataMap.put("kk0351_gene_add_dtm", "");
		}
		else
		{
			dataMap.put("kk0351_gene_add_dtm", template.getString(EKK0371D010CBSMsg.KK0351_GENE_ADD_DTM));
		}

		// オプションサービス契約＜電話＞登録マップ.オプションサービス契約ステータス ← オプションサービス契約ステータス
		if (template.isNull(EKK0371D010CBSMsg.OP_SVC_KEI_STAT))
		{
			dataMap.put("op_svc_kei_stat", "");
		}
		else
		{
			dataMap.put("op_svc_kei_stat", template.getString(EKK0371D010CBSMsg.OP_SVC_KEI_STAT));
		}

		// オプションサービス契約＜電話＞登録マップ.予約適用年月日 ← 予約適用年月日
		if (template.isNull(EKK0371D010CBSMsg.RSV_APLY_YMD))
		{
			dataMap.put("rsv_aply_ymd", "");
		}
		else
		{
			dataMap.put("rsv_aply_ymd", template.getString(EKK0371D010CBSMsg.RSV_APLY_YMD));
		}

		// オプションサービス契約＜電話＞登録マップ.予約適用コード ← 予約適用コード
		if (template.isNull(EKK0371D010CBSMsg.RSV_APLY_CD))
		{
			dataMap.put("rsv_aply_cd", "");
		}
		else
		{
			dataMap.put("rsv_aply_cd", template.getString(EKK0371D010CBSMsg.RSV_APLY_CD));
		}

		// オプションサービス契約＜電話＞登録マップ.世代登録年月日時分秒（オプションサービス契約＜電話＞）
		// ← 世代登録年月日時分秒(オプションサービス契約<電話>)
		if (template.isNull(EKK0371D010CBSMsg.KK0371_GENE_ADD_DTM))
		{
			dataMap.put("kk0371_gene_add_dtm", "");
		}
		else
		{
			dataMap.put("kk0371_gene_add_dtm", template.getString(EKK0371D010CBSMsg.KK0371_GENE_ADD_DTM));
		}

		// オプションサービス契約＜電話＞登録マップ.更新年月日時分秒 ← 更新年月日時分秒
		if (template.isNull(EKK0371D010CBSMsg.UPD_DTM))
		{
			dataMap.put("kk0371_upd_dtm", "");
		}
		else
		{
			dataMap.put("kk0371_upd_dtm", template.getString(EKK0371D010CBSMsg.UPD_DTM));
			
			JKKBpCommon.setLastDtmBySvcKeiNo(param,
					(String)((HashMap)param.getData(fixedText)).get("svc_kei_no"), 
					template.getString(EKK0371D010CBSMsg.UPD_DTM));
		}
		
		// オプションサービス契約＜電話＞登録マップ.表示用サービス提供開始年月日 ← 表示用サービス提供開始年月日
		if (template.isNull(EKK0371D010CBSMsg.DSP_SVCTK_STAYMD))
		{
			dataMap.put("kk0371_dsp_svctk_staymd", "");
		}
		else
		{
			dataMap.put("kk0371_dsp_svctk_staymd", template.getString(EKK0371D010CBSMsg.DSP_SVCTK_STAYMD));
		}

		// エラー情報の設定
		editErrInfoEKK0371D010(param, template, (Integer)returnCode, opSvcKeiMap, fixedText);

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * オプションサービス契約＜電話＞登録のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param template CAANMsg
	 * @param returnCode リターンコード
	 * @param opSvcKeiMap オプションサービス契約＜電話＞マップ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0371D010(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			HashMap opSvcKeiMap, String fixedText) throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0371D010CBSMsg.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);
		}

		// 作業項目領域
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// オプションサービス契約＜電話＞登録マップ.オプションサービスコード → オプションサービスコード のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.OP_SVC_CD_ERR))
		{
			if (!opSvcKeiMap.containsKey("op_svc_cd_err"))
			{
				opSvcKeiMap.put("op_svc_cd_err", template.getString(EKK0371D010CBSMsg.OP_SVC_CD_ERR));
			}
		}
		// オプションサービス契約＜電話＞登録マップ.料金コースコード → 料金コースコード のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.PCRS_CD_ERR))
		{
			if (!opSvcKeiMap.containsKey("pcrs_cd_err"))
			{
				opSvcKeiMap.put("pcrs_cd_err", template.getString(EKK0371D010CBSMsg.PCRS_CD_ERR));
			}
		}
		// オプションサービス契約＜電話＞登録マップ.料金プランコード → 料金プランコード のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.PPLAN_CD_ERR))
		{
			if (!opSvcKeiMap.containsKey("pplan_cd_err"))
			{
				opSvcKeiMap.put("pplan_cd_err", template.getString(EKK0371D010CBSMsg.PPLAN_CD_ERR));
			}
		}

		// オプションサービス契約＜電話＞登録マップ.親契約識別コード → 親契約識別コード のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.OYA_KEI_SKBT_CD_ERR))
		{
			if (!opSvcKeiMap.containsKey("oya_kei_skbt_cd_err"))
			{
				opSvcKeiMap.put("oya_kei_skbt_cd_err", template.getString(EKK0371D010CBSMsg.OYA_KEI_SKBT_CD_ERR));
			}
		}

		// オプションサービス契約＜電話＞登録マップ.サービス契約番号 → サービス契約番号 のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.SVC_KEI_NO_ERR))
		{
			if (!opSvcKeiMap.containsKey("svc_kei_no_err"))
			{
				opSvcKeiMap.put("svc_kei_no_err", template.getString(EKK0371D010CBSMsg.SVC_KEI_NO_ERR));
			}
		}
		// オプションサービス契約＜電話＞登録マップ.サービス契約内訳番号 → サービス契約内訳番号 のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.SVC_KEI_UCWK_NO_ERR))
		{
			if (!opSvcKeiMap.containsKey("svc_kei_ucwk_no_err"))
			{
				opSvcKeiMap.put("svc_kei_ucwk_no_err", template.getString(EKK0371D010CBSMsg.SVC_KEI_UCWK_NO_ERR));
			}
		}
		// オプションサービス契約＜電話＞登録マップ.ＳＹＳＩＤ → SYSID のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.SYSID_ERR))
		{
			if (!opSvcKeiMap.containsKey("sysid_err"))
			{
				opSvcKeiMap.put("sysid_err", template.getString(EKK0371D010CBSMsg.SYSID_ERR));
			}
		}
		// オプションサービス契約＜電話＞登録マップ.申込明細番号 → 申込明細番号 のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!opSvcKeiMap.containsKey("mskm_dtl_no_err"))
			{
				opSvcKeiMap.put("mskm_dtl_no_err", template.getString(EKK0371D010CBSMsg.MSKM_DTL_NO_ERR));
			}
		}
		// オプションサービス契約＜電話＞登録マップ.試用加入年月日 → 試用加入年月日 のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.FTRIAL_KANYU_YMD_ERR))
		{
			if (!opSvcKeiMap.containsKey("ftrial_kanyu_ymd_err"))
			{
				opSvcKeiMap.put("ftrial_kanyu_ymd_err", template.getString(EKK0371D010CBSMsg.FTRIAL_KANYU_YMD_ERR));
			}
		}
		// オプションサービス契約＜電話＞登録マップ.試用期間終了年月日 → 試用期間終了年月日 のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR))
		{
			if (!opSvcKeiMap.containsKey("ftrial_prd_endymd_err"))
			{
				opSvcKeiMap.put("ftrial_prd_endymd_err", template.getString(EKK0371D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR));
			}
		}
		// オプションサービス契約＜電話＞登録マップ.本加入年月日 → 本加入年月日 のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.HONKANYU_YMD_ERR))
		{
			if (!opSvcKeiMap.containsKey("honkanyu_ymd_err"))
			{
				opSvcKeiMap.put("honkanyu_ymd_err", template.getString(EKK0371D010CBSMsg.HONKANYU_YMD_ERR));
			}
		}
		// オプションサービス契約＜電話＞登録マップ.本加入移行期限年月日 → 本加入移行期限年月日 のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR))
		{
			if (!opSvcKeiMap.containsKey("honkanyu_iko_kigen_ymd_err"))
			{
				opSvcKeiMap.put("honkanyu_iko_kigen_ymd_err", template.getString(EKK0371D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR));
			}
		}
		// オプションサービス契約＜電話＞登録マップ.サービス利用開始希望年月日 → サービス利用開始希望年月日 のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR))
		{
			if (!opSvcKeiMap.containsKey("svc_use_sta_kibo_ymd_err"))
			{
				opSvcKeiMap.put("svc_use_sta_kibo_ymd_err", template.getString(EKK0371D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR));
			}
		}
		// オプションサービス契約＜電話＞登録マップ.予約適用開始希望年月日 → 予約適用開始希望年月日 のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR))
		{
			if (!opSvcKeiMap.containsKey("rsv_tsta_kibo_ymd_err"))
			{
				opSvcKeiMap.put("rsv_tsta_kibo_ymd_err", template.getString(EKK0371D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR));
			}
		}
		// オプションサービス契約＜電話＞登録マップ.違約金発生コード → 違約金発生コード のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.PNLTY_HASSEI_CD_ERR))
		{
			if (!opSvcKeiMap.containsKey("pnlty_hassei_cd_err"))
			{
				opSvcKeiMap.put("pnlty_hassei_cd_err", template.getString(EKK0371D010CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}
		// オプションサービス契約＜電話＞登録マップ.異動区分 → 異動区分 のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.IDO_DIV_ERR))
		{
			if (!opSvcKeiMap.containsKey("ido_div_err"))
			{
				opSvcKeiMap.put("ido_div_err", template.getString(EKK0371D010CBSMsg.IDO_DIV_ERR));
			}
		}
		// オプションサービス契約＜電話＞登録マップ.０５０オプション電話番号 → 050オプション電話番号 のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.N_050_OP_TELNO_ERR))
		{
			if (!opSvcKeiMap.containsKey("op_050_telno_err"))
			{
				opSvcKeiMap.put("op_050_telno_err", template.getString(EKK0371D010CBSMsg.N_050_OP_TELNO_ERR));
			}
		}

		// オプションサービス契約＜電話＞登録マップ.通話料指定額到達通知指定金額 → 通話料指定額到達通知指定金額 のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.TWRYO_STIAM_TTU_TCHI_STIAM_ERR))
		{
			if (!opSvcKeiMap.containsKey("twryo_stiam_ttu_tchi_stiam_err"))
			{
				opSvcKeiMap.put("twryo_stiam_ttu_tchi_stiam_err", template.getString(EKK0371D010CBSMsg.TWRYO_STIAM_TTU_TCHI_STIAM_ERR));
			}
		}

		// オプションサービス契約＜電話＞登録マップ.請求契約番号 → 請求契約番号 のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.SEIKY_KEI_NO_ERR))
		{
			if (!opSvcKeiMap.containsKey("seiky_kei_no_err"))
			{
				opSvcKeiMap.put("seiky_kei_no_err", template.getString(EKK0371D010CBSMsg.SEIKY_KEI_NO_ERR));
			}
		}

		// オプションサービス契約＜電話＞登録マップ.料金項目コード → 料金項目コード のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.PRC_KMK_CD_ERR))
		{
			if (!opSvcKeiMap.containsKey("prc_kmk_cd_err"))
			{
				opSvcKeiMap.put("prc_kmk_cd_err", template.getString(EKK0371D010CBSMsg.PRC_KMK_CD_ERR));
			}
		}

		// オプションサービス契約＜電話＞登録マップ.更新年月日時分秒(更新前) → 更新年月日時分秒(更新前) のエラー情報返却
		if (!template.isNull(EKK0371D010CBSMsg.UPD_DTM_BF_ERR))
		{
			if (!opSvcKeiMap.containsKey("upd_dtm_bf_err"))
			{
				opSvcKeiMap.put("upd_dtm_err", template.getString(EKK0371D010CBSMsg.UPD_DTM_BF_ERR));
			}
		}

		return param;
	}

	/**
	 * サブオプションサービス契約＜電話＞登録の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param sbopSvcKeiMap サブオプションサービス契約＜電話＞登録マップ
	 * @param opSvcKeiNo オプションサービス契約番号
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0431D010(IRequestParameterReadWrite param, String fixedText, HashMap sbopSvcKeiMap,
			String opSvcKeiNo) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0431D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0431D010CBSMsg.TEMPLATEID, "EKK0431D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0431D010CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード
		template.set(EKK0431D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域のマップを取得
		HashMap workDataMap = null;
		Map workMap = param.getMappingWorkArea();
		
		// 申込明細番号を取得
		HashMap workDataMap_MskmList = null;
		HashMap workDataMap_Mskm = null;
		String mskmDtlNo = null;

		if (workMap != null)
		{
			workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TEL);
			workDataMap_Mskm = (HashMap)workMap.get(CC_WORK_AREA_NAME_MSKM);
			if (workDataMap_Mskm != null)
			{
				ArrayList inList1 = ((ArrayList)workDataMap_Mskm.get(CC_WORK_AREA_NAME_MSKM_LIST));
				int devCnt = inList1 != null ? inList1.size() : 0;
				for (int i = 0; i < devCnt; i++)
				{
					workDataMap_MskmList = (HashMap)(inList1).get(i);

					if (workDataMap_MskmList == null || workDataMap_MskmList.get("mskm_dtl_no_tel") == null
							|| "".equals(workDataMap_MskmList.get("mskm_dtl_no_tel")))
					{
						mskmDtlNo = null;
					}
					else
					{
						mskmDtlNo = (String)workDataMap_MskmList.get("mskm_dtl_no_tel");
						break;
					}

				}
			}
		}

		// サブオプションサービス契約＜電話＞登録マップ.オプションサービス契約番号 → オプションサービス契約番号
		if (null == opSvcKeiNo || "".equals(opSvcKeiNo))
		{
			template.setNull(EKK0431D010CBSMsg.OP_SVC_KEI_NO);
		}
		else
		{
			template.set(EKK0431D010CBSMsg.OP_SVC_KEI_NO, opSvcKeiNo);
		}

		// サブオプションサービス契約＜電話＞登録マップ.サブオプションサービスコード → サブオプションサービスコード
		if (sbopSvcKeiMap == null || sbopSvcKeiMap.get("kk0431_sbop_svc_cd") == null || "".equals(sbopSvcKeiMap.get("kk0431_sbop_svc_cd")))
		{
			template.setNull(EKK0431D010CBSMsg.SBOP_SVC_CD);
		}
		else
		{
			template.set(EKK0431D010CBSMsg.SBOP_SVC_CD, (String)sbopSvcKeiMap.get("kk0431_sbop_svc_cd"));
		}

		// サブオプションサービス契約＜電話＞登録マップ.料金コースコード → 料金コースコード
		if (sbopSvcKeiMap == null || sbopSvcKeiMap.get("kk0431_pcrs_cd") == null || "".equals(sbopSvcKeiMap.get("kk0431_pcrs_cd")))
		{
			template.setNull(EKK0431D010CBSMsg.PCRS_CD);
		}
		else
		{
			template.set(EKK0431D010CBSMsg.PCRS_CD, (String)sbopSvcKeiMap.get("kk0431_pcrs_cd"));
		}

		// サブオプションサービス契約＜電話＞登録マップ.料金プランコード → 料金プランコード
		if (sbopSvcKeiMap == null || sbopSvcKeiMap.get("kk0431_pplan_cd") == null || "".equals(sbopSvcKeiMap.get("kk0431_pplan_cd")))
		{
			template.setNull(EKK0431D010CBSMsg.PPLAN_CD);
		}
		else
		{
			template.set(EKK0431D010CBSMsg.PPLAN_CD, (String)sbopSvcKeiMap.get("kk0431_pplan_cd"));
		}

		// サブオプションサービス契約＜電話＞登録マップ.申込明細番号 → 申込明細番号
		if (sbopSvcKeiMap == null || sbopSvcKeiMap.get("kk0431_mskm_dtl_no") == null || "".equals(sbopSvcKeiMap.get("kk0431_mskm_dtl_no")))
		{
			if (mskmDtlNo == null)
			{
				if (workDataMap == null || workDataMap.get("mskm_dtl_no") == null || "".equals(workDataMap.get("mskm_dtl_no")))
				{
					template.setNull(EKK0431D010CBSMsg.MSKM_DTL_NO);
				}
				else
				{
					template.set(EKK0431D010CBSMsg.MSKM_DTL_NO, (String)workDataMap.get("mskm_dtl_no"));
				}
			}
			else
			{
				template.set(EKK0431D010CBSMsg.MSKM_DTL_NO, mskmDtlNo);
			}
		}
		else
		{
			template.set(EKK0431D010CBSMsg.MSKM_DTL_NO, (String)sbopSvcKeiMap.get("kk0431_mskm_dtl_no"));
		}

		// サブオプションサービス契約＜電話＞登録マップ.試用加入年月日 → 試用加入年月日
		if (sbopSvcKeiMap == null || sbopSvcKeiMap.get("kk0431_ftrial_kanyu_ymd") == null || "".equals(sbopSvcKeiMap.get("kk0431_ftrial_kanyu_ymd")))
		{
			template.setNull(EKK0431D010CBSMsg.FTRIAL_KANYU_YMD);
		}
		else
		{
			template.set(EKK0431D010CBSMsg.FTRIAL_KANYU_YMD, (String)sbopSvcKeiMap.get("kk0431_ftrial_kanyu_ymd"));
		}

		// サブオプションサービス契約＜電話＞登録マップ.試用期間終了年月日 → 試用期間終了年月日
		if (sbopSvcKeiMap == null || sbopSvcKeiMap.get("kk0431_ftrial_prd_endymd") == null || "".equals(sbopSvcKeiMap.get("kk0431_ftrial_prd_endymd")))
		{
			template.setNull(EKK0431D010CBSMsg.FTRIAL_PRD_ENDYMD);
		}
		else
		{
			template.set(EKK0431D010CBSMsg.FTRIAL_PRD_ENDYMD, (String)sbopSvcKeiMap.get("kk0431_ftrial_prd_endymd"));
		}

		// サブオプションサービス契約＜電話＞登録マップ.本加入年月日 → 本加入年月日
		if (sbopSvcKeiMap == null || sbopSvcKeiMap.get("kk0431_honkanyu_ymd") == null || "".equals(sbopSvcKeiMap.get("kk0431_honkanyu_ymd")))
		{
			template.setNull(EKK0431D010CBSMsg.HONKANYU_YMD);
		}
		else
		{
			template.set(EKK0431D010CBSMsg.HONKANYU_YMD, (String)sbopSvcKeiMap.get("kk0431_honkanyu_ymd"));
		}

		// サブオプションサービス契約＜電話＞登録マップ.本加入移行期限年月日 → 本加入移行期限年月日
		if (sbopSvcKeiMap == null || sbopSvcKeiMap.get("kk0431_honkanyu_iko_kigen_ymd") == null
				|| "".equals(sbopSvcKeiMap.get("kk0431_honkanyu_iko_kigen_ymd")))
		{
			template.setNull(EKK0431D010CBSMsg.HONKANYU_IKO_KIGEN_YMD);
		}
		else
		{
			template.set(EKK0431D010CBSMsg.HONKANYU_IKO_KIGEN_YMD, (String)sbopSvcKeiMap.get("kk0431_honkanyu_iko_kigen_ymd"));
		}

		// サブオプションサービス契約＜電話＞登録マップ.サービス利用開始希望年月日 → サービス利用開始希望年月日
		if (sbopSvcKeiMap == null || sbopSvcKeiMap.get("kk0431_svc_use_sta_kibo_ymd") == null
				|| "".equals(sbopSvcKeiMap.get("kk0431_svc_use_sta_kibo_ymd")))
		{
			template.setNull(EKK0431D010CBSMsg.SVC_USE_STA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0431D010CBSMsg.SVC_USE_STA_KIBO_YMD, (String)sbopSvcKeiMap.get("kk0431_svc_use_sta_kibo_ymd"));
		}

		// サブオプションサービス契約＜電話＞登録マップ.予約適用開始希望年月日 → 予約適用開始希望年月日
		if (sbopSvcKeiMap == null || sbopSvcKeiMap.get("kk0431_rsv_tsta_kibo_ymd") == null || "".equals(sbopSvcKeiMap.get("kk0431_rsv_tsta_kibo_ymd")))
		{
			template.setNull(EKK0431D010CBSMsg.RSV_TSTA_KIBO_YMD);
		}
		else
		{
			template.set(EKK0431D010CBSMsg.RSV_TSTA_KIBO_YMD, (String)sbopSvcKeiMap.get("kk0431_rsv_tsta_kibo_ymd"));
		}

		// サブオプションサービス契約＜電話＞登録マップ.違約金発生コード → 違約金発生コード
		if (sbopSvcKeiMap == null || sbopSvcKeiMap.get("kk0431_pnlty_hassei_cd") == null || "".equals(sbopSvcKeiMap.get("kk0431_pnlty_hassei_cd")))
		{
			template.setNull(EKK0431D010CBSMsg.PNLTY_HASSEI_CD);
		}
		else
		{
			template.set(EKK0431D010CBSMsg.PNLTY_HASSEI_CD, (String)sbopSvcKeiMap.get("kk0431_pnlty_hassei_cd"));
		}

		// サブオプションサービス契約＜電話＞登録マップ.異動区分 → 異動区分
		if (sbopSvcKeiMap == null || sbopSvcKeiMap.get("kk0431_ido_div") == null || "".equals(sbopSvcKeiMap.get("kk0431_ido_div")))
		{
			template.setNull(EKK0431D010CBSMsg.IDO_DIV);
		}
		else
		{
			template.set(EKK0431D010CBSMsg.IDO_DIV, (String)sbopSvcKeiMap.get("kk0431_ido_div"));
		}

		// サブオプションサービス契約＜電話＞登録マップ.請求契約番号 → 請求契約番号
		if (getPayWayWorkMapValue(param, "seiky_kei_no") == null)
		{
			if (sbopSvcKeiMap == null || sbopSvcKeiMap.get("kk0431_seiky_kei_no") == null || "".equals(sbopSvcKeiMap.get("kk0431_seiky_kei_no")))
			{
				template.setNull(EKK0431D010CBSMsg.SEIKY_KEI_NO);
			}
			else
			{
				template.set(EKK0431D010CBSMsg.SEIKY_KEI_NO, (String)sbopSvcKeiMap.get("kk0431_seiky_kei_no"));
			}
		}
		else
		{
			template.set(EKK0431D010CBSMsg.SEIKY_KEI_NO, (String)getPayWayWorkMapValue(param, "seiky_kei_no"));
		}

		// サブオプションサービス契約＜電話＞登録マップ.料金項目コード → 料金項目コード
		if (sbopSvcKeiMap == null || sbopSvcKeiMap.get("kk0431_prc_kmk_cd") == null || "".equals(sbopSvcKeiMap.get("kk0431_prc_kmk_cd")))
		{
			template.setNull(EKK0431D010CBSMsg.PRC_KMK_CD);
		}
		else
		{
			template.set(EKK0431D010CBSMsg.PRC_KMK_CD, (String)sbopSvcKeiMap.get("kk0431_prc_kmk_cd"));
		}
		
		// サブオプションサービス契約＜電話＞登録マップ.更新年月日時分秒(更新前) → 更新年月日時分秒(更新前)
		String tmp_svc_kei_no = (workDataMap != null && workDataMap.get("svc_kei_no") != null && !"".equals(workDataMap.get("svc_kei_no")))
			?((String)workDataMap.get("svc_kei_no")):(sbopSvcKeiMap != null && sbopSvcKeiMap.get("svc_kei_no") != null
					&& !"".equals(sbopSvcKeiMap.get("svc_kei_no")) ? ((String)sbopSvcKeiMap.get("svc_kei_no")):(""));

		String lastDtm = JKKBpCommon.getLastDtmBySvcKeiNo(param, tmp_svc_kei_no,
				(String)sbopSvcKeiMap.get("kk0431_upd_dtm_bf"));
		template.set(EKK0431D010CBSMsg.UPD_DTM_BF, lastDtm);

		return template;
	}

	/**
	 * オプションサービス契約＜電話＞登録の下りマッピング処理
	 * <br>
	 * @param msgList メッセージリスト
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param sbOpSvcKeiMap サブオプションサービス契約＜電話＞登録マップ
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editRetEKK0431D010(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText,
			HashMap sbOpSvcKeiMap) throws Exception
	{
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// 結果を詰めるマップを取得。
		HashMap dataMap = sbOpSvcKeiMap;

		HashMap workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TEL);
		if (workDataMap == null)
		{
			workDataMap = new HashMap();
			workMap.put(CC_WORK_AREA_NAME_TEL, workDataMap);
		}

		// サブオプションサービス契約＜電話＞登録マップ.サブオプションサービス契約番号 ← サブオプションサービス契約番号
		if (template.isNull(EKK0431D010CBSMsg.SBOP_SVC_KEI_NO))
		{
			dataMap.put("sbop_svc_kei_no", "");
		}
		else
		{
			dataMap.put("sbop_svc_kei_no", template.getString(EKK0431D010CBSMsg.SBOP_SVC_KEI_NO));
		}

		// サブオプションサービス契約＜電話＞登録マップ.世代登録年月日時分秒（サブオプションサービス契約）
		// ← 世代登録年月日時分秒(サブオプションサービス契約)
		if (template.isNull(EKK0431D010CBSMsg.KK0401_GENE_ADD_DTM))
		{
			dataMap.put("kk0401_gene_add_dtm", "");
		}
		else
		{
			dataMap.put("kk0401_gene_add_dtm", template.getString(EKK0431D010CBSMsg.KK0401_GENE_ADD_DTM));
		}

		// サブオプションサービス契約＜電話＞登録マップ.サブオプションサービス契約ステータス ← サブオプションサービス契約ステータス
		if (template.isNull(EKK0431D010CBSMsg.SBOP_SVC_KEI_STAT))
		{
			dataMap.put("sbop_svc_kei_stat", "");
		}
		else
		{
			dataMap.put("sbop_svc_kei_stat", template.getString(EKK0431D010CBSMsg.SBOP_SVC_KEI_STAT));
		}

		// サブオプションサービス契約＜電話＞登録マップ.予約適用年月日 ← 予約適用年月日
		if (template.isNull(EKK0431D010CBSMsg.RSV_APLY_YMD))
		{
			dataMap.put("rsv_aply_ymd", "");
		}
		else
		{
			dataMap.put("rsv_aply_ymd", template.getString(EKK0431D010CBSMsg.RSV_APLY_YMD));
		}

		// サブオプションサービス契約＜電話＞登録マップ.予約適用コード ← 予約適用コード
		if (template.isNull(EKK0431D010CBSMsg.RSV_APLY_CD))
		{
			dataMap.put("rsv_aply_cd", "");
		}
		else
		{
			dataMap.put("rsv_aply_cd", template.getString(EKK0431D010CBSMsg.RSV_APLY_CD));
		}

		// サブオプションサービス契約＜電話＞登録マップ.世代登録年月日時分秒（サブオプションサービス契約＜電話＞）
		// ← 世代登録年月日時分秒(サブオプションサービス契約<電話>)
		if (template.isNull(EKK0431D010CBSMsg.KK0431_GENE_ADD_DTM))
		{
			dataMap.put("kk0431_gene_add_dtm", "");
		}
		else
		{
			dataMap.put("kk0431_gene_add_dtm", template.getString(EKK0431D010CBSMsg.KK0431_GENE_ADD_DTM));
		}

		// サブオプションサービス契約＜電話＞登録マップ.更新年月日時分秒 ← 更新年月日時分秒
		if (template.isNull(EKK0431D010CBSMsg.UPD_DTM))
		{
			dataMap.put("kk0431_upd_dtm", "");
		}
		else
		{
			dataMap.put("kk0431_upd_dtm", template.getString(EKK0431D010CBSMsg.UPD_DTM));
			
			JKKBpCommon.setLastDtmBySvcKeiNo(param,
					(String)((HashMap)param.getData(fixedText)).get("svc_kei_no"), 
					template.getString(EKK0431D010CBSMsg.UPD_DTM));
		}

		// サブオプションサービス契約＜電話＞登録マップ.更新オペレータアカウント（サブオプションサービス契約＜電話＞）
		// ← 更新オペレータアカウント(サブオプションサービス契約<電話>)
		if (template.isNull(EKK0431D010CBSMsg.UPD_OPEACNT))
		{
			dataMap.put("kk0431_upd_opeacnt", "");
		}
		else
		{
			dataMap.put("kk0431_upd_opeacnt", template.getString(EKK0431D010CBSMsg.UPD_OPEACNT));
		}

		// サブオプションサービス契約＜電話＞登録マップ.無効フラグ（サブオプションサービス契約＜電話＞）
		// ← 無効フラグ(サブオプションサービス契約<電話>)
		if (template.isNull(EKK0431D010CBSMsg.MK_FLG))
		{
			dataMap.put("kk0431_mk_flg", "");
		}
		else
		{
			dataMap.put("kk0431_mk_flg", template.getString(EKK0431D010CBSMsg.MK_FLG));
		}

		// サブオプションサービス契約＜電話＞登録マップ.課金先番号（サブオプションサービス契約＜電話＞）
		// ← 課金先番号(サブオプションサービス契約<電話>)
		if (template.isNull(EKK0431D010CBSMsg.KAKINS_NO))
		{
			dataMap.put("kk0431_kakins_no", "");
		}
		else
		{
			dataMap.put("kk0431_kakins_no", template.getString(EKK0431D010CBSMsg.KAKINS_NO));
		}

		// サブオプションサービス契約＜電話＞登録マップ.課金先適用開始年月日（サブオプションサービス契約＜電話＞）
		// ← 課金先適用開始年月日(サブオプションサービス契約<電話>)
		if (template.isNull(EKK0431D010CBSMsg.KAKINS_TSTAYMD))
		{
			dataMap.put("kk0431_kakins_tstaymd", "");
		}
		else
		{
			dataMap.put("kk0431_kakins_tstaymd", template.getString(EKK0431D010CBSMsg.KAKINS_TSTAYMD));
		}

		// サブオプションサービス契約＜電話＞登録マップ.課金先適用終了年月日（サブオプションサービス契約＜電話＞）
		// ← 課金先適用終了年月日(サブオプションサービス契約<電話>)
		if (template.isNull(EKK0431D010CBSMsg.KAKINS_TENDYMD))
		{
			dataMap.put("kk0431_kakins_tendymd", "");
		}
		else
		{
			dataMap.put("kk0431_kakins_tendymd", template.getString(EKK0431D010CBSMsg.KAKINS_TENDYMD));
		}

		// サブオプションサービス契約＜電話＞登録マップ.表示用サービス提供開始年月日（サブオプションサービス契約＜電話＞）
		// ← 表示用サービス提供開始年月日(サブオプションサービス契約<電話>)
		if (template.isNull(EKK0431D010CBSMsg.DSP_SVCTK_STAYMD))
		{
			dataMap.put("kk0431_dsp_svctk_staymd", "");
		}
		else
		{
			dataMap.put("kk0431_dsp_svctk_staymd", template.getString(EKK0431D010CBSMsg.DSP_SVCTK_STAYMD));
		}

		// エラー情報の設定
		editErrInfoEKK0431D010(param, template, (Integer)returnCode, fixedText, sbOpSvcKeiMap);

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * オプションサービス契約＜電話＞登録のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param template CAANMsg
	 * @param returnCode リターンコード
	 * @param fixedText ユーザ定義文字列
	 * @param sbopSvcKeiMap サブオプションサービス契約＜電話＞登録マップ
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0431D010(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			String fixedText, HashMap sbopSvcKeiMap) throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0431D010CBSMsg.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);
		}

		// 作業項目領域
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// サブオプションサービス契約＜電話＞登録マップ.オプションサービス契約番号 → オプションサービス契約番号 のエラー情報返却
		if (!template.isNull(EKK0431D010CBSMsg.OP_SVC_KEI_NO_ERR))
		{
			if (!sbopSvcKeiMap.containsKey("op_svc_kei_no_err"))
			{
				sbopSvcKeiMap.put("op_svc_kei_no_err", template.getString(EKK0431D010CBSMsg.OP_SVC_KEI_NO_ERR));
			}
		}
		// サブオプションサービス契約＜電話＞登録マップ.サブオプションサービスコード → サブオプションサービスコード のエラー情報返却
		if (!template.isNull(EKK0431D010CBSMsg.SBOP_SVC_CD_ERR))
		{
			if (!sbopSvcKeiMap.containsKey("sbop_svc_cd_err"))
			{
				sbopSvcKeiMap.put("sbop_svc_cd_err", template.getString(EKK0431D010CBSMsg.SBOP_SVC_CD_ERR));
			}
		}
		// サブオプションサービス契約＜電話＞登録マップ.料金コースコード → 料金コースコード のエラー情報返却
		if (!template.isNull(EKK0431D010CBSMsg.PCRS_CD_ERR))
		{
			if (!sbopSvcKeiMap.containsKey("pcrs_cd_err"))
			{
				sbopSvcKeiMap.put("pcrs_cd_err", template.getString(EKK0431D010CBSMsg.PCRS_CD_ERR));
			}
		}
		// サブオプションサービス契約＜電話＞登録マップ.料金プランコード → 料金プランコード のエラー情報返却
		if (!template.isNull(EKK0431D010CBSMsg.PPLAN_CD_ERR))
		{
			if (!sbopSvcKeiMap.containsKey("pplan_cd_err"))
			{
				sbopSvcKeiMap.put("pplan_cd_err", template.getString(EKK0431D010CBSMsg.PPLAN_CD_ERR));
			}
		}
		// サブオプションサービス契約＜電話＞登録マップ.申込明細番号 → 申込明細番号 のエラー情報返却
		if (!template.isNull(EKK0431D010CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!sbopSvcKeiMap.containsKey("mskm_dtl_no_err"))
			{
				sbopSvcKeiMap.put("mskm_dtl_no_err", template.getString(EKK0431D010CBSMsg.MSKM_DTL_NO_ERR));
			}
		}
		// サブオプションサービス契約＜電話＞登録マップ.試用加入年月日 → 試用加入年月日 のエラー情報返却
		if (!template.isNull(EKK0431D010CBSMsg.FTRIAL_KANYU_YMD_ERR))
		{
			if (!sbopSvcKeiMap.containsKey("ftrial_kanyu_ymd_err"))
			{
				sbopSvcKeiMap.put("ftrial_kanyu_ymd_err", template.getString(EKK0431D010CBSMsg.FTRIAL_KANYU_YMD_ERR));
			}
		}
		// サブオプションサービス契約＜電話＞登録マップ.試用期間終了年月日 → 試用期間終了年月日 のエラー情報返却
		if (!template.isNull(EKK0431D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR))
		{
			if (!sbopSvcKeiMap.containsKey("ftrial_prd_endymd_err"))
			{
				sbopSvcKeiMap.put("ftrial_prd_endymd_err", template.getString(EKK0431D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR));
			}
		}
		// サブオプションサービス契約＜電話＞登録マップ.本加入年月日 → 本加入年月日 のエラー情報返却
		if (!template.isNull(EKK0431D010CBSMsg.HONKANYU_YMD_ERR))
		{
			if (!sbopSvcKeiMap.containsKey("honkanyu_ymd_err"))
			{
				sbopSvcKeiMap.put("honkanyu_ymd_err", template.getString(EKK0431D010CBSMsg.HONKANYU_YMD_ERR));
			}
		}
		// サブオプションサービス契約＜電話＞登録マップ.本加入移行期限年月日 → 本加入移行期限年月日 のエラー情報返却
		if (!template.isNull(EKK0431D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR))
		{
			if (!sbopSvcKeiMap.containsKey("honkanyu_iko_kigen_ymd_err"))
			{
				sbopSvcKeiMap.put("honkanyu_iko_kigen_ymd_err", template.getString(EKK0431D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR));
			}
		}
		// サブオプションサービス契約＜電話＞登録マップ.サービス利用開始希望年月日 → サービス利用開始希望年月日 のエラー情報返却
		if (!template.isNull(EKK0431D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR))
		{
			if (!sbopSvcKeiMap.containsKey("svc_use_sta_kibo_ymd_err"))
			{
				sbopSvcKeiMap.put("svc_use_sta_kibo_ymd_err", template.getString(EKK0431D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR));
			}
		}
		// サブオプションサービス契約＜電話＞登録マップ.予約適用開始希望年月日 → 予約適用開始希望年月日 のエラー情報返却
		if (!template.isNull(EKK0431D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR))
		{
			if (!sbopSvcKeiMap.containsKey("rsv_tsta_kibo_ymd_err"))
			{
				sbopSvcKeiMap.put("rsv_tsta_kibo_ymd_err", template.getString(EKK0431D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR));
			}
		}
		// サブオプションサービス契約＜電話＞登録マップ.違約金発生コード → 違約金発生コード のエラー情報返却
		if (!template.isNull(EKK0431D010CBSMsg.PNLTY_HASSEI_CD_ERR))
		{
			if (!sbopSvcKeiMap.containsKey("pnlty_hassei_cd_err"))
			{
				sbopSvcKeiMap.put("pnlty_hassei_cd_err", template.getString(EKK0431D010CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}
		// サブオプションサービス契約＜電話＞登録マップ.異動区分 → 異動区分 のエラー情報返却
		if (!template.isNull(EKK0431D010CBSMsg.IDO_DIV_ERR))
		{
			if (!sbopSvcKeiMap.containsKey("ido_div_err"))
			{
				sbopSvcKeiMap.put("ido_div_err", template.getString(EKK0431D010CBSMsg.IDO_DIV_ERR));
			}
		}

		// サブオプションサービス契約＜電話＞登録マップ.請求契約番号 → 請求契約番号 のエラー情報返却
		if (!template.isNull(EKK0431D010CBSMsg.SEIKY_KEI_NO_ERR))
		{
			if (!sbopSvcKeiMap.containsKey("seiky_kei_no_err"))
			{
				sbopSvcKeiMap.put("seiky_kei_no_err", template.getString(EKK0431D010CBSMsg.SEIKY_KEI_NO_ERR));
			}
		}

		// サブオプションサービス契約＜電話＞登録マップ.料金項目コード → 料金項目コード のエラー情報返却
		if (!template.isNull(EKK0431D010CBSMsg.PRC_KMK_CD_ERR))
		{
			if (!sbopSvcKeiMap.containsKey("prc_kmk_cd_err"))
			{
				sbopSvcKeiMap.put("prc_kmk_cd_err", template.getString(EKK0431D010CBSMsg.PRC_KMK_CD_ERR));
			}
		}

		// サブオプションサービス契約＜電話＞登録マップ.更新年月日時分秒(更新前) → 更新年月日時分秒(更新前) のエラー情報返却
		if (!template.isNull(EKK0431D010CBSMsg.UPD_DTM_BF_ERR))
		{
			if (!sbopSvcKeiMap.containsKey("upd_dtm_bf_err"))
			{
				sbopSvcKeiMap.put("upd_dtm_err", template.getString(EKK0431D010CBSMsg.UPD_DTM_BF_ERR));
			}
		}

		return param;
	}

	/**
	 * エラー情報のマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param templates CAANMsg配列
	 * @param returnCode リターンコード
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, String fixedText)
			throws RequestParameterException
	{
		ArrayList<HashMap> schemaList = new ArrayList<HashMap>();

		HashMap inMap = (HashMap)(param.getData(fixedText));
		// マップに値が設定されていない場合は処理を行わない。
		if (inMap == null)
		{
			return param;
		}

		int templateCount = 0;
		
		// 電話（番号）サービスの取得
		String telMode = (String)inMap.get("tel_svc");
		// 追加申し込みの取得
		String addMode = (String)inMap.get("add_mode");

		if (KMK_DIV_ONE.equals(telMode))
		{
			/**************************************
			/* １番号サービスの場合のみ設定する
			****************************************/
			
			// 追加申し込みの場合
			if (ADD_MSKM_ON.equals(addMode))
			{
				editErrInfoEKK0021D010(param, templates[templateCount++], (Integer)returnCode, fixedText); // 申込明細登録
			}
			
			editErrInfoEKK0111D010(param, templates[templateCount++], (Integer)returnCode, fixedText); // サービス契約<eo光電話>登録
			
		}
		
		String bmpUm = (String)inMap.get("kk0191_bmp_um");
		
		if (bmpUm != null && "1".equals(bmpUm))
		{
			String keyTelno = (String)inMap.get("zm0121_telno");
			if  (keyTelno != null && !"".equals(keyTelno))
			{
				// ■★電話番号登録
				editErrInfoEZM0121D010(param, templates[templateCount++], (Integer)returnCode, fixedText); // サービス契約<eo光電話>登録
			}
		}

		// サービス契約内訳<eo光電話>登録
		editErrInfoEKK0191D010(param, templates[templateCount++], (Integer)returnCode, fixedText);
		
		// オプションサービス契約<電話>登録
		ArrayList<HashMap> opSvcKeiList = (ArrayList<HashMap>)inMap.get(OPT_SVC_LIST);
		if (null != opSvcKeiList)
		{
			for (HashMap opSvcKeiMap : opSvcKeiList)
			{
				editErrInfoEKK0371D010(param, templates[templateCount++], (Integer)returnCode, opSvcKeiMap, fixedText);
			}
		}

		// サブオプションサービス契約<電話>登録
		ArrayList<HashMap> sbopSvcKeiList = (ArrayList<HashMap>)inMap.get(SBOP_SVC_LIST);
		if (null != sbopSvcKeiList)
		{
			for (HashMap sbOpSvcKeiMap : sbopSvcKeiList)
			{
				editErrInfoEKK0431D010(param, templates[templateCount++], (Integer)returnCode, fixedText, sbOpSvcKeiMap);
			}
		}

		// サービス契約回線内訳番号がわたされていれば回線対象サービス契約登録の登録を行う
		if (inMap != null && inMap.get("kk0241_svc_kei_kaisen_ucwk_no") != null && !"".equals(inMap.get("kk0241_svc_kei_kaisen_ucwk_no")))
		{
			// 回線対象サービス契約登録
			editErrInfoEKK0241D010(param, templates[templateCount++], (Integer)returnCode, fixedText);
		}

// ANK-4494-00-00 DEL START
//		if (inMap.containsKey(ADD_DOBANITEN))
//		{
//			// ADD_DOBANITEN  x1   同番移転登録
//			schemaList = (ArrayList<HashMap>)inMap.get(ADD_DOBANITEN);
//			for (HashMap tmpMap : schemaList)
//			{
//				// 住所対象番号番号区画申込事業所番号一覧照会
//				editErrInfoEZM0091B020(param, templates[templateCount++], (Integer)returnCode, fixedText, tmpMap);
//
//				if(!"1".equals(inMap.get("func_code")))
//				{
//					// 同番移転登録
//					editErrInfoETU0021D010(param, templates[templateCount++], (Integer)returnCode, fixedText, tmpMap);
//				}
//			}
//		}
// ANK-4494-00-00 DEL END

		return param;
	}

	/**
	 * 申込明細登録のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param template CAANMsg
	 * @param returnCode リターンコード
	 * @param fixedText ユーザ定義文字列
	 * @param prefix
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0021D010(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0111D010CBSMsg.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);
		}

		HashMap inMap = null;
		inMap = (HashMap)param.getData(fixedText);

		// 申込番号
		if (!template.isNull(EKK0021D010CBSMsg.MSKM_NO_ERR))
		{
			if (!inMap.containsKey("kk0021_mskm_no_err"))
			{
				inMap.put("kk0021_mskm_no_err", template.getString(EKK0021D010CBSMsg.MSKM_NO_ERR));
			}
		}

		// 申込書番号
		if (!template.isNull(EKK0021D010CBSMsg.MSKMSHO_NO_ERR))
		{
			if (!inMap.containsKey("kk0021_mskmsho_no_err"))
			{
				inMap.put("kk0021_mskmsho_no_err", template.getString(EKK0021D010CBSMsg.MSKMSHO_NO_ERR));
			}
		}

		// 申込年月日
		if (!template.isNull(EKK0021D010CBSMsg.MSKM_YMD_ERR))
		{
			if (!inMap.containsKey("kk0021_mskm_ymd_err"))
			{
				inMap.put("kk0021_mskm_ymd_err", template.getString(EKK0021D010CBSMsg.MSKM_YMD_ERR));
			}
		}

		// SYSID
		if (!template.isNull(EKK0021D010CBSMsg.SYSID_ERR))
		{
			if (!inMap.containsKey("kk0021_sysid_err"))
			{
				inMap.put("kk0021_sysid_err", template.getString(EKK0021D010CBSMsg.SYSID_ERR));
			}
		}

		// WEB受付番号
		if (!template.isNull(EKK0021D010CBSMsg.WEB_UK_NO_ERR))
		{
			if (!inMap.containsKey("kk0021_web_uk_no_err"))
			{
				inMap.put("kk0021_web_uk_no_err", template.getString(EKK0021D010CBSMsg.WEB_UK_NO_ERR));
			}
		}

		// 申込形態コード
		if (!template.isNull(EKK0021D010CBSMsg.MSKM_FORM_CD_ERR))
		{
			if (!inMap.containsKey("kk0021_mskm_form_cd_err"))
			{
				inMap.put("kk0021_mskm_form_cd_err", template.getString(EKK0021D010CBSMsg.MSKM_FORM_CD_ERR));
			}
		}

		// 申込明細種別コード
		if (!template.isNull(EKK0021D010CBSMsg.MSKM_DTL_SBT_CD_ERR))
		{
			if (!inMap.containsKey("kk0021_mskm_dtl_sbt_cd_err"))
			{
				inMap.put("kk0021_mskm_dtl_sbt_cd_err", template.getString(EKK0021D010CBSMsg.MSKM_DTL_SBT_CD_ERR));
			}
		}

		// 連絡先携帯電話番号
		if (!template.isNull(EKK0021D010CBSMsg.RRKS_KTAI_TELNO_ERR))
		{
			if (!inMap.containsKey("kk0021_rrks_ktai_telno_err"))
			{
				inMap.put("kk0021_rrks_ktai_telno_err", template.getString(EKK0021D010CBSMsg.RRKS_KTAI_TELNO_ERR));
			}
		}

		// 連絡先勤務先名
		if (!template.isNull(EKK0021D010CBSMsg.RRKS_OFFC_NM_ERR))
		{
			if (!inMap.containsKey("kk0021_rrks_offc_nm_err"))
			{
				inMap.put("kk0021_rrks_offc_nm_err", template.getString(EKK0021D010CBSMsg.RRKS_OFFC_NM_ERR));
			}
		}

		// 昼間連絡先電話番号
		if (!template.isNull(EKK0021D010CBSMsg.DT_RRKS_TELNO_ERR))
		{
			if (!inMap.containsKey("kk0021_dt_rrks_telno_err"))
			{
				inMap.put("kk0021_dt_rrks_telno_err", template.getString(EKK0021D010CBSMsg.DT_RRKS_TELNO_ERR));
			}
		}

		// 新規申込種別コード
		if (!template.isNull(EKK0021D010CBSMsg.NEW_MSKM_SBT_CD_ERR))
		{
			if (!inMap.containsKey("kk0021_new_mskm_sbt_cd_err"))
			{
				inMap.put("kk0021_new_mskm_sbt_cd_err", template.getString(EKK0021D010CBSMsg.NEW_MSKM_SBT_CD_ERR));
			}
		}

		// 申込契機コード
		if (!template.isNull(EKK0021D010CBSMsg.MSKM_OPTNTY_CD_ERR))
		{
			if (!inMap.containsKey("kk0021_mskm_optnty_cd_err"))
			{
				inMap.put("kk0021_mskm_optnty_cd_err", template.getString(EKK0021D010CBSMsg.MSKM_OPTNTY_CD_ERR));
			}
		}

		// 宅内調査希望アポ期限年月日
		if (!template.isNull(EKK0021D010CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD_ERR))
		{
			if (!inMap.containsKey("kk0021_takcho_kibo_apo_kigen_ymd_err"))
			{
				inMap.put("kk0021_takcho_kibo_apo_kigen_ymd_err", template.getString(EKK0021D010CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD_ERR));
			}
		}

		// 工事アポ連絡先指定コード
		if (!template.isNull(EKK0021D010CBSMsg.KOJI_APO_RRKS_SHITEI_CD_ERR))
		{
			if (!inMap.containsKey("kk0021_koji_apo_rrks_shitei_cd_err"))
			{
				inMap.put("kk0021_koji_apo_rrks_shitei_cd_err", template.getString(EKK0021D010CBSMsg.KOJI_APO_RRKS_SHITEI_CD_ERR));
			}
		}

		// 工事アポ連絡先電話番号
		if (!template.isNull(EKK0021D010CBSMsg.KOJI_APO_RRKS_TELNO_ERR))
		{
			if (!inMap.containsKey("kk0021_koji_apo_rrks_telno_err"))
			{
				inMap.put("kk0021_koji_apo_rrks_telno_err", template.getString(EKK0021D010CBSMsg.KOJI_APO_RRKS_TELNO_ERR));
			}
		}

		// 連絡事項登録年月日時分秒
		if (!template.isNull(EKK0021D010CBSMsg.RRK_JIKO_ADD_DTM_ERR))
		{
			if (!inMap.containsKey("kk0021_rrk_jiko_add_dtm_err"))
			{
				inMap.put("kk0021_rrk_jiko_add_dtm_err", template.getString(EKK0021D010CBSMsg.RRK_JIKO_ADD_DTM_ERR));
			}
		}

		// 申込連絡先メールアドレス
		if (!template.isNull(EKK0021D010CBSMsg.MSKM_RRKS_MLAD_ERR))
		{
			if (!inMap.containsKey("kk0021_mskm_rrks_mlad_err"))
			{
				inMap.put("kk0021_mskm_rrks_mlad_err", template.getString(EKK0021D010CBSMsg.MSKM_RRKS_MLAD_ERR));
			}
		}

		// 工事進捗通知メールアドレス
		if (!template.isNull(EKK0021D010CBSMsg.KOJI_PRG_TCHI_MLAD_ERR))
		{
			if (!inMap.containsKey("kk0021_koji_prg_tchi_mlad_err"))
			{
				inMap.put("kk0021_koji_prg_tchi_mlad_err", template.getString(EKK0021D010CBSMsg.KOJI_PRG_TCHI_MLAD_ERR));
			}
		}

		// 連絡事項
		if (!template.isNull(EKK0021D010CBSMsg.RRK_JIKO_ERR))
		{
			if (!inMap.containsKey("kk0021_rrk_jiko_err"))
			{
				inMap.put("kk0021_rrk_jiko_err", template.getString(EKK0021D010CBSMsg.RRK_JIKO_ERR));
			}
		}

		// 工事進捗通知携帯メールアドレス
		if (!template.isNull(EKK0021D010CBSMsg.KJSC_TCH_KTAI_MLAD_ERR))
		{
			if (!inMap.containsKey("kk0021_kjsc_tch_ktai_mlad_err"))
			{
				inMap.put("kk0021_kjsc_tch_ktai_mlad_err", template.getString(EKK0021D010CBSMsg.KJSC_TCH_KTAI_MLAD_ERR));
			}
		}

		// メール送信除外フラグ
		if (!template.isNull(EKK0021D010CBSMsg.ML_SEND_JGI_FLG_ERR))
		{
			if (!inMap.containsKey("kk0021_ml_send_jgi_flg_err"))
			{
				inMap.put("kk0021_ml_send_jgi_flg_err", template.getString(EKK0021D010CBSMsg.ML_SEND_JGI_FLG_ERR));
			}
		}

		// メール送信除外理由メモ
		if (!template.isNull(EKK0021D010CBSMsg.ML_SEND_JGI_RSN_MEMO_ERR))
		{
			if (!inMap.containsKey("kk0021_ml_send_jgi_rsn_memo_err"))
			{
				inMap.put("kk0021_ml_send_jgi_rsn_memo_err", template.getString(EKK0021D010CBSMsg.ML_SEND_JGI_RSN_MEMO_ERR));
			}
		}

		// 番ポ申込連絡先電話番号
		if (!template.isNull(EKK0021D010CBSMsg.BMP_MSKM_RRKS_TLN_ERR))
		{
			if (!inMap.containsKey("kk0021_bmp_mskm_rrks_tln_err"))
			{
				inMap.put("kk0021_bmp_mskm_rrks_tln_err", template.getString(EKK0021D010CBSMsg.BMP_MSKM_RRKS_TLN_ERR));
			}
		}

		// オプションサービス引継有無
		if (!template.isNull(EKK0021D010CBSMsg.OP_SVC_HKTGI_UM_ERR))
		{
			if (!inMap.containsKey("kk0021_op_svc_hktgi_um_err"))
			{
				inMap.put("kk0021_op_svc_hktgi_um_err", template.getString(EKK0021D010CBSMsg.OP_SVC_HKTGI_UM_ERR));
			}
		}

		// 解約書類送付希望有無
		if (!template.isNull(EKK0021D010CBSMsg.DSL_ATICLE_SOHU_KIBO_UM_ERR))
		{
			if (!inMap.containsKey("kk0021_dsl_aticle_sohu_kibo_um_err"))
			{
				inMap.put("kk0021_dsl_aticle_sohu_kibo_um_err", template.getString(EKK0021D010CBSMsg.DSL_ATICLE_SOHU_KIBO_UM_ERR));
			}
		}

		// 連絡手段補記
		if (!template.isNull(EKK0021D010CBSMsg.RRK_WAY_HOKI_ERR))
		{
			if (!inMap.containsKey("kk0021_rrk_way_hoki_err"))
			{
				inMap.put("kk0021_rrk_way_hoki_err", template.getString(EKK0021D010CBSMsg.RRK_WAY_HOKI_ERR));
			}
		}

		// 新築物件コード
		if (!template.isNull(EKK0021D010CBSMsg.NEWCONST_BUKKEN_CD_ERR))
		{
			if (!inMap.containsKey("kk0021_newconst_bukken_cd_err"))
			{
				inMap.put("kk0021_newconst_bukken_cd_err", template.getString(EKK0021D010CBSMsg.NEWCONST_BUKKEN_CD_ERR));
			}
		}

		// 復活案件フラグ
		if (!template.isNull(EKK0021D010CBSMsg.HUKKAT_ANKEN_FLG_ERR))
		{
			if (!inMap.containsKey("kk0021_hukkat_anken_flg_err"))
			{
				inMap.put("kk0021_hukkat_anken_flg_err", template.getString(EKK0021D010CBSMsg.HUKKAT_ANKEN_FLG_ERR));
			}
		}

		// 同一設備再申込コード
		if (!template.isNull(EKK0021D010CBSMsg.SAME_EQUIP_RE_MSKM_CD_ERR))
		{
			if (!inMap.containsKey("kk0021_same_equip_re_mskm_cd_err"))
			{
				inMap.put("kk0021_same_equip_re_mskm_cd_err", template.getString(EKK0021D010CBSMsg.SAME_EQUIP_RE_MSKM_CD_ERR));
			}
		}
		
		// 本人確認書類種別コード
		if (!template.isNull(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_SBT_CD_ERR))
		{
			if (!inMap.containsKey("kk0021_hnin_cfm_aticle_sbt_cd_err"))
			{
				inMap.put("kk0021_hnin_cfm_aticle_sbt_cd_err", template.getString(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_SBT_CD_ERR));
			}
		}

		// 申込書種別コード
		if (!template.isNull(EKK0021D010CBSMsg.MSKMSHO_SBT_CD_ERR))
		{
			if (!inMap.containsKey("kk0021_mskmsho_sbt_cd_err"))
			{
				inMap.put("kk0021_mskmsho_sbt_cd_err", template.getString(EKK0021D010CBSMsg.MSKMSHO_SBT_CD_ERR));
			}
		}

		// 契約付加コード
		if (!template.isNull(EKK0021D010CBSMsg.KEI_HUKA_CD_ERR))
		{
			if (!inMap.containsKey("kk0021_kei_huka_cd_err"))
			{
				inMap.put("kk0021_kei_huka_cd_err", template.getString(EKK0021D010CBSMsg.KEI_HUKA_CD_ERR));
			}
		}

		// 地図添付有無
		if (!template.isNull(EKK0021D010CBSMsg.MAP_TEMP_UM_ERR))
		{
			if (!inMap.containsKey("kk0021_map_temp_um_err"))
			{
				inMap.put("kk0021_map_temp_um_err", template.getString(EKK0021D010CBSMsg.MAP_TEMP_UM_ERR));
			}
		}

		// KCNSTB申込台数
		if (!template.isNull(EKK0021D010CBSMsg.KCN_STB_MSKM_CNT_ERR))
		{
			if (!inMap.containsKey("kk0021_kcn_stb_mskm_cnt_err"))
			{
				inMap.put("kk0021_kcn_stb_mskm_cnt_err", template.getString(EKK0021D010CBSMsg.KCN_STB_MSKM_CNT_ERR));
			}
		}

		// KCNSTB種類コード
		if (!template.isNull(EKK0021D010CBSMsg.KCN_STB_KIND_CD_ERR))
		{
			if (!inMap.containsKey("kk0021_kcn_stb_kind_cd_err"))
			{
				inMap.put("kk0021_kcn_stb_kind_cd_err", template.getString(EKK0021D010CBSMsg.KCN_STB_KIND_CD_ERR));
			}
		}

		// マンション設備システム連携用記事欄
		if (!template.isNull(EKK0021D010CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN_ERR))
		{
			if (!inMap.containsKey("kk0021_manssbsys_rnki_yo_kijiran_err"))
			{
				inMap.put("kk0021_manssbsys_rnki_yo_kijiran_err", template.getString(EKK0021D010CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN_ERR));
			}
		}

		// マンションID
		if (!template.isNull(EKK0021D010CBSMsg.MANSION_ID_ERR))
		{
			if (!inMap.containsKey("kk0021_mansion_id_err"))
			{
				inMap.put("kk0021_mansion_id_err", template.getString(EKK0021D010CBSMsg.MANSION_ID_ERR));
			}
		}

		// CAT-ID
		if (!template.isNull(EKK0021D010CBSMsg.CATID_ERR))
		{
			if (!inMap.containsKey("kk0021_catid_err"))
			{
				inMap.put("kk0021_catid_err", template.getString(EKK0021D010CBSMsg.CATID_ERR));
			}
		}

		// 申込受付種別コード
		if (!template.isNull(EKK0021D010CBSMsg.MKM_UK_SBT_CD_ERR))
		{
			if (!inMap.containsKey("kk0021_mkm_uk_sbt_cd_err"))
			{
				inMap.put("kk0021_mkm_uk_sbt_cd_err", template.getString(EKK0021D010CBSMsg.MKM_UK_SBT_CD_ERR));
			}
		}

		// 申込書取扱情報担当者名
		if (!template.isNull(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM_ERR))
		{
			if (!inMap.containsKey("kk0021_mskmsho_trat_if_tntsha_nm_err"))
			{
				inMap.put("kk0021_mskmsho_trat_if_tntsha_nm_err", template.getString(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM_ERR));
			}
		}

		// 申込書取扱情報電話番号
		if (!template.isNull(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TELNO_ERR))
		{
			if (!inMap.containsKey("kk0021_mskmsho_trat_if_telno_err"))
			{
				inMap.put("kk0021_mskmsho_trat_if_telno_err", template.getString(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TELNO_ERR));
			}
		}

		// 割引自動適用対象外フラグ
		if (!template.isNull(EKK0021D010CBSMsg.WRIB_AUTO_APLY_TG_GAI_FLG_ERR))
		{
			if (!inMap.containsKey("kk0021_wrib_auto_aply_tg_gai_flg_err"))
			{
				inMap.put("kk0021_wrib_auto_aply_tg_gai_flg_err", template.getString(EKK0021D010CBSMsg.WRIB_AUTO_APLY_TG_GAI_FLG_ERR));
			}
		}

		// 更新年月日時分秒(更新前)
		if (!template.isNull(EKK0021D010CBSMsg.UPD_DTM_BF_ERR))
		{
			if (!inMap.containsKey("kk0021_upd_dtm_bf_err"))
			{
				inMap.put("kk0021_upd_dtm_bf_err", template.getString(EKK0021D010CBSMsg.UPD_DTM_BF_ERR));
			}
		}
		
		// 申込書明細番号
		if (!template.isNull(EKK0021D010CBSMsg.MSKMSHO_DTL_NO_ERR))
		{
			if (!inMap.containsKey("kk0021_mskmsho_dtl_no_err"))
			{
				inMap.put("kk0021_mskmsho_dtl_no_err", template.getString(EKK0021D010CBSMsg.MSKMSHO_DTL_NO_ERR));
			}
		}

		// 本人確認書類名
		if (!template.isNull(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_NM_ERR))
		{
			if (!inMap.containsKey("kk0021_hnin_cfm_aticle_nm_err"))
			{
				inMap.put("kk0021_hnin_cfm_aticle_nm_err", template.getString(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_NM_ERR));
			}
		}

		return param;
	}

	/**
	 * 申込明細登録の上りマッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param prefix
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0021D010(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0021D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0021D010CBSMsg.TEMPLATEID, "EKK0021D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0021D010CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)(param.getData(fixedText));

		// 機能コード
		template.set(EKK0021D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 申込番号
		if (inMap == null || inMap.get("kk0021_mskm_no") == null || "".equals(inMap.get("kk0021_mskm_no")))
		{
			if (getMskmWorkMapValue(param, "mskm_no") == null)
			{
				template.setNull(EKK0021D010CBSMsg.MSKM_NO);
			}
			else
			{
				template.set(EKK0021D010CBSMsg.MSKM_NO, getMskmWorkMapValue(param, "mskm_no"));
			}
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKM_NO, (String)inMap.get("kk0021_mskm_no"));
		}

		// 申込書番号
		if (inMap == null || inMap.get("kk0021_mskmsho_no") == null || "".equals(inMap.get("kk0021_mskmsho_no")))
		{
			template.setNull(EKK0021D010CBSMsg.MSKMSHO_NO);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKMSHO_NO, (String)inMap.get("kk0021_mskmsho_no"));
		}

		// 申込年月日
		if (inMap == null || inMap.get("kk0021_mskm_ymd") == null || "".equals(inMap.get("kk0021_mskm_ymd")))
		{
			template.setNull(EKK0021D010CBSMsg.MSKM_YMD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKM_YMD, (String)inMap.get("kk0021_mskm_ymd"));
		}

		// SYSID
		if (inMap == null || inMap.get("kk0021_sysid") == null || "".equals(inMap.get("kk0021_sysid")))
		{
			if (getKeishaWorkMapValue(param, "sysid") == null)
			{
				template.setNull(EKK0021D010CBSMsg.SYSID);
			}
			else
			{
				template.set(EKK0021D010CBSMsg.SYSID, getKeishaWorkMapValue(param, "sysid"));
			}
		}
		else
		{
			template.set(EKK0021D010CBSMsg.SYSID, (String)inMap.get("kk0021_sysid"));
		}

		// WEB受付番号
		if (inMap == null || inMap.get("kk0021_web_uk_no") == null || "".equals(inMap.get("kk0021_web_uk_no")))
		{
			template.setNull(EKK0021D010CBSMsg.WEB_UK_NO);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.WEB_UK_NO, (String)inMap.get("kk0021_web_uk_no"));
		}

		// 申込形態コード
		if (inMap == null || inMap.get("kk0021_mskm_form_cd") == null || "".equals(inMap.get("kk0021_mskm_form_cd")))
		{
			template.setNull(EKK0021D010CBSMsg.MSKM_FORM_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKM_FORM_CD, (String)inMap.get("kk0021_mskm_form_cd"));
		}

		// 申込明細種別コード
		if (inMap == null || inMap.get("kk0021_mskm_dtl_sbt_cd") == null || "".equals(inMap.get("kk0021_mskm_dtl_sbt_cd")))
		{
			template.setNull(EKK0021D010CBSMsg.MSKM_DTL_SBT_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKM_DTL_SBT_CD, (String)inMap.get("kk0021_mskm_dtl_sbt_cd"));
		}

		// 連絡先携帯電話番号
		if (inMap == null || inMap.get("kk0021_rrks_ktai_telno") == null || "".equals(inMap.get("kk0021_rrks_ktai_telno")))
		{
			template.setNull(EKK0021D010CBSMsg.RRKS_KTAI_TELNO);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.RRKS_KTAI_TELNO, (String)inMap.get("kk0021_rrks_ktai_telno"));
		}

		// 連絡先勤務先名
		if (inMap == null || inMap.get("kk0021_rrks_offc_nm") == null || "".equals(inMap.get("kk0021_rrks_offc_nm")))
		{
			template.setNull(EKK0021D010CBSMsg.RRKS_OFFC_NM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.RRKS_OFFC_NM, (String)inMap.get("kk0021_rrks_offc_nm"));
		}

		// 昼間連絡先電話番号
		if (inMap == null || inMap.get("kk0021_dt_rrks_telno") == null || "".equals(inMap.get("kk0021_dt_rrks_telno")))
		{
			template.setNull(EKK0021D010CBSMsg.DT_RRKS_TELNO);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.DT_RRKS_TELNO, (String)inMap.get("kk0021_dt_rrks_telno"));
		}

		// 新規申込種別コード
		if (inMap == null || inMap.get("kk0021_new_mskm_sbt_cd") == null || "".equals(inMap.get("kk0021_new_mskm_sbt_cd")))
		{
			template.setNull(EKK0021D010CBSMsg.NEW_MSKM_SBT_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.NEW_MSKM_SBT_CD, (String)inMap.get("kk0021_new_mskm_sbt_cd"));
		}

		// 申込契機コード
		if (inMap == null || inMap.get("kk0021_mskm_optnty_cd") == null || "".equals(inMap.get("kk0021_mskm_optnty_cd")))
		{
			template.setNull(EKK0021D010CBSMsg.MSKM_OPTNTY_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKM_OPTNTY_CD, (String)inMap.get("kk0021_mskm_optnty_cd"));
		}

		// 宅内調査希望アポ期限年月日
		if (inMap == null || inMap.get("kk0021_takcho_kibo_apo_kigen_ymd") == null || "".equals(inMap.get("kk0021_takcho_kibo_apo_kigen_ymd")))
		{
			template.setNull(EKK0021D010CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD, (String)inMap.get("kk0021_takcho_kibo_apo_kigen_ymd"));
		}

		// 工事アポ連絡先指定コード
		if (inMap == null || inMap.get("kk0021_koji_apo_rrks_shitei_cd") == null || "".equals(inMap.get("kk0021_koji_apo_rrks_shitei_cd")))
		{
			template.setNull(EKK0021D010CBSMsg.KOJI_APO_RRKS_SHITEI_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.KOJI_APO_RRKS_SHITEI_CD, (String)inMap.get("kk0021_koji_apo_rrks_shitei_cd"));
		}

		// 工事アポ連絡先電話番号
		if (inMap == null || inMap.get("kk0021_koji_apo_rrks_telno") == null || "".equals(inMap.get("kk0021_koji_apo_rrks_telno")))
		{
			template.setNull(EKK0021D010CBSMsg.KOJI_APO_RRKS_TELNO);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.KOJI_APO_RRKS_TELNO, (String)inMap.get("kk0021_koji_apo_rrks_telno"));
		}

		// 連絡事項登録年月日時分秒
		if (inMap == null || inMap.get("kk0021_rrk_jiko_add_dtm") == null || "".equals(inMap.get("kk0021_rrk_jiko_add_dtm")))
		{
			template.setNull(EKK0021D010CBSMsg.RRK_JIKO_ADD_DTM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.RRK_JIKO_ADD_DTM, (String)inMap.get("kk0021_rrk_jiko_add_dtm"));
		}

		// 申込連絡先メールアドレス
		if (inMap == null || inMap.get("kk0021_mskm_rrks_mlad") == null || "".equals(inMap.get("kk0021_mskm_rrks_mlad")))
		{
			template.setNull(EKK0021D010CBSMsg.MSKM_RRKS_MLAD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKM_RRKS_MLAD, (String)inMap.get("kk0021_mskm_rrks_mlad"));
		}

		// 工事進捗通知メールアドレス
		if (inMap == null || inMap.get("kk0021_koji_prg_tchi_mlad") == null || "".equals(inMap.get("kk0021_koji_prg_tchi_mlad")))
		{
			template.setNull(EKK0021D010CBSMsg.KOJI_PRG_TCHI_MLAD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.KOJI_PRG_TCHI_MLAD, (String)inMap.get("kk0021_koji_prg_tchi_mlad"));
		}

		// 連絡事項
		if (inMap == null || inMap.get("kk0021_rrk_jiko") == null || "".equals(inMap.get("kk0021_rrk_jiko")))
		{
			template.setNull(EKK0021D010CBSMsg.RRK_JIKO);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.RRK_JIKO, (String)inMap.get("kk0021_rrk_jiko"));
		}

		// 工事進捗通知携帯メールアドレス
		if (inMap == null || inMap.get("kk0021_kjsc_tch_ktai_mlad") == null || "".equals(inMap.get("kk0021_kjsc_tch_ktai_mlad")))
		{
			template.setNull(EKK0021D010CBSMsg.KJSC_TCH_KTAI_MLAD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.KJSC_TCH_KTAI_MLAD, (String)inMap.get("kk0021_kjsc_tch_ktai_mlad"));
		}

		// メール送信除外フラグ
		if (inMap == null || inMap.get("kk0021_ml_send_jgi_flg") == null || "".equals(inMap.get("kk0021_ml_send_jgi_flg")))
		{
			template.setNull(EKK0021D010CBSMsg.ML_SEND_JGI_FLG);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.ML_SEND_JGI_FLG, (String)inMap.get("kk0021_ml_send_jgi_flg"));
		}

		// メール送信除外理由メモ
		if (inMap == null || inMap.get("kk0021_ml_send_jgi_rsn_memo") == null || "".equals(inMap.get("kk0021_ml_send_jgi_rsn_memo")))
		{
			template.setNull(EKK0021D010CBSMsg.ML_SEND_JGI_RSN_MEMO);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.ML_SEND_JGI_RSN_MEMO, (String)inMap.get("kk0021_ml_send_jgi_rsn_memo"));
		}

		// 番ポ申込連絡先電話番号
		if (inMap == null || inMap.get("kk0021_bmp_mskm_rrks_tln") == null || "".equals(inMap.get("kk0021_bmp_mskm_rrks_tln")))
		{
			template.setNull(EKK0021D010CBSMsg.BMP_MSKM_RRKS_TLN);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.BMP_MSKM_RRKS_TLN, (String)inMap.get("kk0021_bmp_mskm_rrks_tln"));
		}

		// オプションサービス引継有無
		if (inMap == null || inMap.get("kk0021_op_svc_hktgi_um") == null || "".equals(inMap.get("kk0021_op_svc_hktgi_um")))
		{
			//**********↓障害対応(IT1-2012-0000024)**********/
//			template.setNull(EKK0021D010CBSMsg.OP_SVC_HKTGI_UM);
			template.set(EKK0021D010CBSMsg.OP_SVC_HKTGI_UM, JKKStrConst.CD_DIV_UM_NASHI);
			//**********↑障害対応(IT1-2012-0000024)**********/
		}
		else
		{
			template.set(EKK0021D010CBSMsg.OP_SVC_HKTGI_UM, (String)inMap.get("kk0021_op_svc_hktgi_um"));
		}

		// 解約書類送付希望有無
		if (inMap == null || inMap.get("kk0021_dsl_aticle_sohu_kibo_um") == null || "".equals(inMap.get("kk0021_dsl_aticle_sohu_kibo_um")))
		{
			template.setNull(EKK0021D010CBSMsg.DSL_ATICLE_SOHU_KIBO_UM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.DSL_ATICLE_SOHU_KIBO_UM, (String)inMap.get("kk0021_dsl_aticle_sohu_kibo_um"));
		}

		// 連絡手段補記
		if (inMap == null || inMap.get("kk0021_rrk_way_hoki") == null || "".equals(inMap.get("kk0021_rrk_way_hoki")))
		{
			template.setNull(EKK0021D010CBSMsg.RRK_WAY_HOKI);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.RRK_WAY_HOKI, (String)inMap.get("kk0021_rrk_way_hoki"));
		}

		// 新築物件コード
		if (inMap == null || inMap.get("kk0021_newconst_bukken_cd") == null || "".equals(inMap.get("kk0021_newconst_bukken_cd")))
		{
			template.setNull(EKK0021D010CBSMsg.NEWCONST_BUKKEN_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.NEWCONST_BUKKEN_CD, (String)inMap.get("kk0021_newconst_bukken_cd"));
		}

		// 復活案件フラグ
		if (inMap == null || inMap.get("kk0021_hukkat_anken_flg") == null || "".equals(inMap.get("kk0021_hukkat_anken_flg")))
		{
			template.setNull(EKK0021D010CBSMsg.HUKKAT_ANKEN_FLG);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.HUKKAT_ANKEN_FLG, (String)inMap.get("kk0021_hukkat_anken_flg"));
		}

		// 同一設備再申込コード
		if (inMap == null || inMap.get("kk0021_same_equip_re_mskm_cd") == null || "".equals(inMap.get("kk0021_same_equip_re_mskm_cd")))
		{
			template.setNull(EKK0021D010CBSMsg.SAME_EQUIP_RE_MSKM_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.SAME_EQUIP_RE_MSKM_CD, (String)inMap.get("kk0021_same_equip_re_mskm_cd"));
		}
		
		// 本人確認書類種別コード
		if (inMap == null || inMap.get("kk0021_hnin_cfm_aticle_sbt_cd") == null || "".equals(inMap.get("kk0021_hnin_cfm_aticle_sbt_cd")))
		{
			template.setNull(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_SBT_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_SBT_CD, (String)inMap.get("kk0021_hnin_cfm_aticle_sbt_cd"));
		}

		// 申込書種別コード
		if (inMap == null || inMap.get("kk0021_mskmsho_sbt_cd") == null || "".equals(inMap.get("kk0021_mskmsho_sbt_cd")))
		{
			template.setNull(EKK0021D010CBSMsg.MSKMSHO_SBT_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKMSHO_SBT_CD, (String)inMap.get("kk0021_mskmsho_sbt_cd"));
		}

		// 契約付加コード
		if (inMap == null || inMap.get("kk0021_kei_huka_cd") == null || "".equals(inMap.get("kk0021_kei_huka_cd")))
		{
			template.setNull(EKK0021D010CBSMsg.KEI_HUKA_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.KEI_HUKA_CD, (String)inMap.get("kk0021_kei_huka_cd"));
		}

		// 地図添付有無
		if (inMap == null || inMap.get("kk0021_map_temp_um") == null || "".equals(inMap.get("kk0021_map_temp_um")))
		{
			template.setNull(EKK0021D010CBSMsg.MAP_TEMP_UM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MAP_TEMP_UM, (String)inMap.get("kk0021_map_temp_um"));
		}

		// KCNSTB申込台数
		if (inMap == null || inMap.get("kk0021_kcn_stb_mskm_cnt") == null || "".equals(inMap.get("kk0021_kcn_stb_mskm_cnt")))
		{
			template.setNull(EKK0021D010CBSMsg.KCN_STB_MSKM_CNT);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.KCN_STB_MSKM_CNT, (String)inMap.get("kk0021_kcn_stb_mskm_cnt"));
		}

		// KCNSTB種類コード
		if (inMap == null || inMap.get("kk0021_kcn_stb_kind_cd") == null || "".equals(inMap.get("kk0021_kcn_stb_kind_cd")))
		{
			template.setNull(EKK0021D010CBSMsg.KCN_STB_KIND_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.KCN_STB_KIND_CD, (String)inMap.get("kk0021_kcn_stb_kind_cd"));
		}

		// マンション設備システム連携用記事欄
		if (inMap == null || inMap.get("kk0021_manssbsys_rnki_yo_kijiran") == null || "".equals(inMap.get("kk0021_manssbsys_rnki_yo_kijiran")))
		{
			template.setNull(EKK0021D010CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN, (String)inMap.get("kk0021_manssbsys_rnki_yo_kijiran"));
		}

		// マンションID
		if (inMap == null || inMap.get("kk0021_mansion_id") == null || "".equals(inMap.get("kk0021_mansion_id")))
		{
			template.setNull(EKK0021D010CBSMsg.MANSION_ID);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MANSION_ID, (String)inMap.get("kk0021_mansion_id"));
		}

		// CAT-ID
		if (inMap == null || inMap.get("kk0021_catid") == null || "".equals(inMap.get("kk0021_catid")))
		{
			template.setNull(EKK0021D010CBSMsg.CATID);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.CATID, (String)inMap.get("kk0021_catid"));
		}

		// 申込受付種別コード
		if (inMap == null || inMap.get("kk0021_mkm_uk_sbt_cd") == null || "".equals(inMap.get("kk0021_mkm_uk_sbt_cd")))
		{
			template.setNull(EKK0021D010CBSMsg.MKM_UK_SBT_CD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MKM_UK_SBT_CD, (String)inMap.get("kk0021_mkm_uk_sbt_cd"));
		}

		// 申込書取扱情報担当者名
		if (inMap == null || inMap.get("kk0021_mskmsho_trat_if_tntsha_nm") == null || "".equals(inMap.get("kk0021_mskmsho_trat_if_tntsha_nm")))
		{
			template.setNull(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM, (String)inMap.get("kk0021_mskmsho_trat_if_tntsha_nm"));
		}

		// 申込書取扱情報電話番号
		if (inMap == null || inMap.get("kk0021_mskmsho_trat_if_telno") == null || "".equals(inMap.get("kk0021_mskmsho_trat_if_telno")))
		{
			template.setNull(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TELNO);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TELNO, (String)inMap.get("kk0021_mskmsho_trat_if_telno"));
		}

		// 割引自動適用対象外フラグ
		if (inMap == null || inMap.get("kk0021_wrib_auto_aply_tg_gai_flg") == null || "".equals(inMap.get("kk0021_wrib_auto_aply_tg_gai_flg")))
		{
			template.setNull(EKK0021D010CBSMsg.WRIB_AUTO_APLY_TG_GAI_FLG);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.WRIB_AUTO_APLY_TG_GAI_FLG, (String)inMap.get("kk0021_wrib_auto_aply_tg_gai_flg"));
		}

		// 更新年月日時分秒(更新前)
		String lastDtm = JKKBpCommon.getLastDtmByMskm(param, (String)inMap.get("kk0021_upd_dtm_bf"));
		template.set(EKK0021D010CBSMsg.UPD_DTM_BF, lastDtm);
		
		// 申込書明細番号
		if (inMap == null || inMap.get("kk0021_mskmsho_dtl_no") == null || "".equals(inMap.get("kk0021_mskmsho_dtl_no")))
		{
			if (JKKBpCommon.getWkMskmshoDtlNoNetTel(param) == null || "".equals(JKKBpCommon.getWkMskmshoDtlNoNetTel(param)))
			{
				template.setNull(EKK0021D010CBSMsg.MSKMSHO_DTL_NO);
			}
			else
			{
				template.set(EKK0021D010CBSMsg.MSKMSHO_DTL_NO, JKKBpCommon.getWkMskmshoDtlNoNetTel(param));
			}
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKMSHO_DTL_NO, (String)inMap.get("kk0021_mskmsho_dtl_no"));
		}

		// 本人確認書類名
		if (inMap == null || inMap.get("kk0021_hnin_cfm_aticle_nm") == null || "".equals(inMap.get("kk0021_hnin_cfm_aticle_nm")))
		{
			template.setNull(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_NM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_NM, (String)inMap.get("kk0021_hnin_cfm_aticle_nm"));
		}

		// ANK-3136-00-00 ADD START
		// 他システム連携_宅内調査要否
		if (inMap == null || inMap.get("kk0021_tsyrn_takcho_yh") == null || "".equals(inMap.get("kk0021_tsyrn_takcho_yh")))
		{
			template.setNull(EKK0021D010CBSMsg.TSYRN_TAKCHO_YH);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.TSYRN_TAKCHO_YH, (String)inMap.get("kk0021_tsyrn_takcho_yh"));
		}

		// 他システム連携_工事連絡先氏名
		if (inMap == null || inMap.get("kk0021_tsyrn_kj_rrks_nm") == null || "".equals(inMap.get("kk0021_tsyrn_kj_rrks_nm")))
		{
			template.setNull(EKK0021D010CBSMsg.TSYRN_KJ_RRKS_NM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.TSYRN_KJ_RRKS_NM, (String)inMap.get("kk0021_tsyrn_kj_rrks_nm"));
		}

		// 他システム連携_工事連絡先電話番号
		if (inMap == null || inMap.get("kk0021_tsyrn_kj_rrks_tln") == null || "".equals(inMap.get("kk0021_tsyrn_kj_rrks_tln")))
		{
			template.setNull(EKK0021D010CBSMsg.TSYRN_KJ_RRKS_TLN);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.TSYRN_KJ_RRKS_TLN, (String)inMap.get("kk0021_tsyrn_kj_rrks_tln"));
		}

		// 他システム連携_宅内調査時連絡先氏名
		if (inMap == null || inMap.get("kk0021_tsyrn_takcho_ji_rrks_nm") == null || "".equals(inMap.get("kk0021_tsyrn_takcho_ji_rrks_nm")))
		{
			template.setNull(EKK0021D010CBSMsg.TSYRN_TAKCHO_JI_RRKS_NM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.TSYRN_TAKCHO_JI_RRKS_NM, (String)inMap.get("kk0021_tsyrn_takcho_ji_rrks_nm"));
		}

		// 他システム連携_宅内調査時連絡先電話番号
		if (inMap == null || inMap.get("kk0021_tsyrn_takcho_ji_rrks_tln") == null || "".equals(inMap.get("kk0021_tsyrn_takcho_ji_rrks_tln")))
		{
			template.setNull(EKK0021D010CBSMsg.TSYRN_TAKCHO_JI_RRKS_TLN);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.TSYRN_TAKCHO_JI_RRKS_TLN, (String)inMap.get("kk0021_tsyrn_takcho_ji_rrks_tln"));
		}

		// 他システム連携_連絡希望日時
		if (inMap == null || inMap.get("kk0021_tsyrn_rrk_kibo_date") == null || "".equals(inMap.get("kk0021_tsyrn_rrk_kibo_date")))
		{
			template.setNull(EKK0021D010CBSMsg.TSYRN_RRK_KIBO_DATE);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.TSYRN_RRK_KIBO_DATE, (String)inMap.get("kk0021_tsyrn_rrk_kibo_date"));
		}

		// 他システム連携_地図有無
		if (inMap == null || inMap.get("kk0021_tsyrn_map_um") == null || "".equals(inMap.get("kk0021_tsyrn_map_um")))
		{
			template.setNull(EKK0021D010CBSMsg.TSYRN_MAP_UM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.TSYRN_MAP_UM, (String)inMap.get("kk0021_tsyrn_map_um"));
		}

		// 他システム連携_既存契約情報
		if (inMap == null || inMap.get("kk0021_tsyrn_kzn_kei_inf") == null || "".equals(inMap.get("kk0021_tsyrn_kzn_kei_inf")))
		{
			template.setNull(EKK0021D010CBSMsg.TSYRN_KZN_KEI_INF);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.TSYRN_KZN_KEI_INF, (String)inMap.get("kk0021_tsyrn_kzn_kei_inf"));
		}

		// 他システム連携_不備解消年月日
		if (inMap == null || inMap.get("kk0021_tsyrn_hbi_kaishou_ymd") == null || "".equals(inMap.get("kk0021_tsyrn_hbi_kaishou_ymd")))
		{
			template.setNull(EKK0021D010CBSMsg.TSYRN_HBI_KAISHOU_YMD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.TSYRN_HBI_KAISHOU_YMD, (String)inMap.get("kk0021_tsyrn_hbi_kaishou_ymd"));
		}

		// 設備流用有無
		if (inMap == null || inMap.get("kk0021_equip_ryuyo_um") == null || "".equals(inMap.get("kk0021_equip_ryuyo_um")))
		{
			template.setNull(EKK0021D010CBSMsg.EQUIP_RYUYO_UM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.EQUIP_RYUYO_UM, (String)inMap.get("kk0021_equip_ryuyo_um"));
		}

		// 流用元工事案件番号
		if (inMap == null || inMap.get("kk0021_ryuyo_moto_kjak_no") == null || "".equals(inMap.get("kk0021_ryuyo_moto_kjak_no")))
		{
			template.setNull(EKK0021D010CBSMsg.RYUYO_MOTO_KJAK_NO);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.RYUYO_MOTO_KJAK_NO, (String)inMap.get("kk0021_ryuyo_moto_kjak_no"));
		}

		// 設備流用工事完了希望年月日
		if (inMap == null || inMap.get("kk0021_sbry_kj_fin_kiboymd") == null || "".equals(inMap.get("kk0021_sbry_kj_fin_kiboymd")))
		{
			template.setNull(EKK0021D010CBSMsg.SBRY_KJ_FIN_KIBOYMD);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.SBRY_KJ_FIN_KIBOYMD, (String)inMap.get("kk0021_sbry_kj_fin_kiboymd"));
		}
		// ANK-3136-00-00 ADD END
		// ANK-4096-00-00 ADD START
		// 現在利用先契約回線区分
		if (inMap == null || inMap.get("kk0021_now_use_sk_kei_kisn_div") == null || "".equals(inMap.get("kk0021_now_use_sk_kei_kisn_div")))
		{
			template.setNull(EKK0021D010CBSMsg.NOW_USE_SK_KEI_KISN_DIV);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.NOW_USE_SK_KEI_KISN_DIV, (String)inMap.get("kk0021_now_use_sk_kei_kisn_div"));
		}
		
		// 機器設置場所変更有無
		if (inMap == null || inMap.get("kk0021_kiki_setplc_chgum") == null || "".equals(inMap.get("kk0021_kiki_setplc_chgum")))
		{
			template.setNull(EKK0021D010CBSMsg.KIKI_SETPLC_CHGUM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.KIKI_SETPLC_CHGUM, (String)inMap.get("kk0021_kiki_setplc_chgum"));
		}
		
		// 同日実施希望有無
		if (inMap == null || inMap.get("kk0021_dojitu_jssi_kbum") == null || "".equals(inMap.get("kk0021_dojitu_jssi_kbum")))
		{
			template.setNull(EKK0021D010CBSMsg.DOJITU_JSSI_KBUM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.DOJITU_JSSI_KBUM, (String)inMap.get("kk0021_dojitu_jssi_kbum"));
		}
		
		// 早期開通早期連絡希望有無
		if (inMap == null || inMap.get("kk0021_early_open_early_rrk_kbum") == null || "".equals(inMap.get("kk0021_early_open_early_rrk_kbum")))
		{
			template.setNull(EKK0021D010CBSMsg.EARLY_OPEN_EARLY_RRK_KBUM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.EARLY_OPEN_EARLY_RRK_KBUM, (String)inMap.get("kk0021_early_open_early_rrk_kbum"));
		}
		// ANK-4096-00-00 ADD END
		// ANK-4174-00-00 ADD START
		// 電子交付同意有無
		if (inMap == null || inMap.get("kk0021_dnskh_doi_um") == null || "".equals(inMap.get("kk0021_dnskh_doi_um")))
		{
			template.setNull(EKK0021D010CBSMsg.DNSKH_DOI_UM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.DNSKH_DOI_UM, (String)inMap.get("kk0021_dnskh_doi_um"));
		}
		// ANK-4174-00-00 ADD END
		// ANK-4088-00-00 ADD START
		// 宅内調査のアポ架電希望
		if (inMap == null || inMap.get("kk0021_takcho_apo_kaden_kibo_um") == null || "".equals(inMap.get("kk0021_takcho_apo_kaden_kibo_um")))
		{
			template.setNull(EKK0021D010CBSMsg.TAKCHO_APO_KADEN_KIBO_UM);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.TAKCHO_APO_KADEN_KIBO_UM, (String)inMap.get("kk0021_takcho_apo_kaden_kibo_um"));
		}
		// ANK-4088-00-00 ADD END
		return template;
	}

	/**
	 * 申込明細登録の下りマッピング処理
	 * <br>
	 * @param msgList メッセージリスト
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param prefix
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editRetEKK0021D010(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		HashMap workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TEL);
		if (workDataMap == null)
		{
			workDataMap = new HashMap();
			workMap.put(CC_WORK_AREA_NAME_TEL, workDataMap);
		}

		/* 業務データ設定 */
		HashMap dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

		// 申込明細番号
		if (template.isNull(EKK0021D010CBSMsg.MSKM_DTL_NO))
		{
			dataMap.put("kk0021_mskm_dtl_no", "");
		}
		else
		{
			dataMap.put("kk0021_mskm_dtl_no", template.getString(EKK0021D010CBSMsg.MSKM_DTL_NO));
			workDataMap.put("mskm_dtl_no", template.getString(EKK0021D010CBSMsg.MSKM_DTL_NO));
			// 契約新規申込ワークエリアへ登録
			JKKBpCommon.setWkMskmDtlNoTel(param, template.getString(EKK0021D010CBSMsg.MSKM_DTL_NO));
		}

		// 世代登録年月日時分秒
		if (template.isNull(EKK0021D010CBSMsg.GENE_ADD_DTM))
		{
			dataMap.put("kk0021_gene_add_dtm", "");
		}
		else
		{
			dataMap.put("kk0021_gene_add_dtm", template.getString(EKK0021D010CBSMsg.GENE_ADD_DTM));
		}

		// 申込明細ステータス
		if (template.isNull(EKK0021D010CBSMsg.MSKM_DTL_STAT))
		{
			dataMap.put("kk0021_mskm_dtl_stat", "");
		}
		else
		{
			dataMap.put("kk0021_mskm_dtl_stat", template.getString(EKK0021D010CBSMsg.MSKM_DTL_STAT));
		}

		// 登録年月日時分秒
		if (template.isNull(EKK0021D010CBSMsg.ADD_DTM))
		{
			dataMap.put("kk0021_add_dtm", "");
		}
		else
		{
			dataMap.put("kk0021_add_dtm", template.getString(EKK0021D010CBSMsg.ADD_DTM));
		}

		// 登録オペレータアカウント
		if (template.isNull(EKK0021D010CBSMsg.ADD_OPEACNT))
		{
			dataMap.put("kk0021_add_opeacnt", "");
		}
		else
		{
			dataMap.put("kk0021_add_opeacnt", template.getString(EKK0021D010CBSMsg.ADD_OPEACNT));
		}

		// 更新年月日時分秒
		if (template.isNull(EKK0021D010CBSMsg.UPD_DTM))
		{
			dataMap.put("kk0021_upd_dtm", "");
		}
		else
		{
			dataMap.put("kk0021_upd_dtm", template.getString(EKK0021D010CBSMsg.UPD_DTM));
			
			JKKBpCommon.setLastDtmByMskm(param, template.getString(EKK0021D010CBSMsg.UPD_DTM));
		}

		// 更新オペレータアカウント
		if (template.isNull(EKK0021D010CBSMsg.UPD_OPEACNT))
		{
			dataMap.put("kk0021_upd_opeacnt", "");
		}
		else
		{
			dataMap.put("kk0021_upd_opeacnt", template.getString(EKK0021D010CBSMsg.UPD_OPEACNT));
		}

		// 無効フラグ
		if (template.isNull(EKK0021D010CBSMsg.MK_FLG))
		{
			dataMap.put("kk0021_mk_flg", "");
		}
		else
		{
			dataMap.put("kk0021_mk_flg", template.getString(EKK0021D010CBSMsg.MK_FLG));
		}

		// エラー情報の設定
		editErrInfoEKK0021D010(param, template, (Integer)returnCode, fixedText);

		// エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}

		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}
	
	/**
	 * 回線対象サービス契約登録の上りマッピングを行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEKK0241D010(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0241D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0241D010CBSMsg.TEMPLATEID, "EKK0241D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0241D010CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード
		if (inMap != null)
		{
			template.set(EKK0241D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));
		}

		// 作業領域のマップを取得
		HashMap workDataMap = null;
		Map workMap = param.getMappingWorkArea();
		if (workMap != null)
		{
			workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TEL);
		}

		// サービス契約番号
		if (inMap == null || inMap.get("kk0241_svc_kei_no") == null || "".equals(inMap.get("kk0241_svc_kei_no")))
		{
			if (workDataMap == null || workDataMap.get("svc_kei_no") == null || "".equals(workDataMap.get("svc_kei_no")))
			{
				template.setNull(EKK0241D010CBSMsg.SVC_KEI_NO);
			}
			else
			{
				template.set(EKK0241D010CBSMsg.SVC_KEI_NO, (String)workDataMap.get("svc_kei_no"));
			}
		}
		else
		{
			template.set(EKK0241D010CBSMsg.SVC_KEI_NO, (String)inMap.get("kk0241_svc_kei_no"));
		}

		// サービス契約回線内訳番号
		if (inMap == null || inMap.get("kk0241_svc_kei_kaisen_ucwk_no") == null || "".equals(inMap.get("kk0241_svc_kei_kaisen_ucwk_no")))
		{
			template.setNull(EKK0241D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO);
		}
		else
		{
			template.set(EKK0241D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO, (String)inMap.get("kk0241_svc_kei_kaisen_ucwk_no"));
		}

		return template;
	}
	
	/**
	 * 回線対象サービス契約登録の下りマッピング処理を行います。
	 * <br>
	 * @param msgList メッセージリスト
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editRetEKK0241D010(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		HashMap dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

		// 登録年月日時分秒
		if (template.isNull(EKK0241D010CBSMsg.ADD_DTM))
		{
			dataMap.put("kk0241_add_dtm", "");
		}
		else
		{
			dataMap.put("kk0241_add_dtm", template.getString(EKK0241D010CBSMsg.ADD_DTM));
		}

		// 登録オペレータアカウント
		if (template.isNull(EKK0241D010CBSMsg.ADD_OPEACNT))
		{
			dataMap.put("kk0241_add_opeacnt", "");
		}
		else
		{
			dataMap.put("kk0241_add_opeacnt", template.getString(EKK0241D010CBSMsg.ADD_OPEACNT));
		}

		// 更新年月日時分秒
		if (template.isNull(EKK0241D010CBSMsg.UPD_DTM))
		{
			dataMap.put("kk0241_upd_dtm", "");
		}
		else
		{
			dataMap.put("kk0241_upd_dtm", template.getString(EKK0241D010CBSMsg.UPD_DTM));
		}

		// 更新オペレータアカウント
		if (template.isNull(EKK0241D010CBSMsg.UPD_OPEACNT))
		{
			dataMap.put("kk0241_upd_opeacnt", "");
		}
		else
		{
			dataMap.put("kk0241_upd_opeacnt", template.getString(EKK0241D010CBSMsg.UPD_OPEACNT));
		}

		// 無効フラグ
		if (template.isNull(EKK0241D010CBSMsg.MK_FLG))
		{
			dataMap.put("kk0241_mk_flg", "");
		}
		else
		{
			dataMap.put("kk0241_mk_flg", template.getString(EKK0241D010CBSMsg.MK_FLG));
		}

		// エラー情報の設定
		editErrInfoEKK0241D010(param, template, (Integer)returnCode, fixedText);

		// エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}

		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * 回線対象サービス契約登録のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param template CAANMsg
	 * @param returnCode リターンコード
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEKK0241D010(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0241D010CBSMsg.STATUS);

		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + String.format(RETURN_MESSAGE_FORMAT, templateStatus)) == null)
		{
			templateStatus = 0;
		}

		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}

		if (templateStatus > bpStatus)
		{
			String formatStatus = String.format(RETURN_MESSAGE_FORMAT, templateStatus);
			String message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

		HashMap inMap = (HashMap)param.getData(fixedText);

		// サービス契約番号
		if (!template.isNull(EKK0241D010CBSMsg.SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey("kk0241_svc_kei_no_err"))
			{
				inMap.put("kk0241_svc_kei_no_err", template.getString(EKK0241D010CBSMsg.SVC_KEI_NO_ERR));
			}
		}
		// サービス契約回線内訳番号
		if (!template.isNull(EKK0241D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR))
		{
			if (!inMap.containsKey("kk241_svc_kei_kaisen_ucwk_no_err"))
			{
				inMap.put("kk241_svc_kei_kaisen_ucwk_no_err", template.getString(EKK0241D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR));
			}
		}

		return param;
	}

	/**
	 * 住所対象番号番号区画申込事業所番号一覧照会の上りマッピングを行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param tmpMap 上りマップ
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInEZM0091B020(IRequestParameterReadWrite param, String fixedText, HashMap tmpMap) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EZM0091B020CBSMsg.class.getName());

		// テンプレートID
		template.set(EZM0091B020CBSMsg.TEMPLATEID, "EZM0091B020");

		// 機能コード（デフォルト：１）
		template.set(EZM0091B020CBSMsg.FUNC_CODE, "1");

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

//		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿住所コード
		if (tmpMap == null || tmpMap.get("zm0091_key_ad_cd") == null || "".equals(tmpMap.get("zm0091_key_ad_cd")))
		{
			template.setNull(EZM0091B020CBSMsg.KEY_AD_CD);
		}
		else
		{
			template.set(EZM0091B020CBSMsg.KEY_AD_CD, (String)tmpMap.get("zm0091_key_ad_cd"));
		}

		// ＫＥＹ＿局番
		if (tmpMap == null || tmpMap.get("zm0091_key_kyoku_no") == null || "".equals(tmpMap.get("zm0091_key_kyoku_no")))
		{
			template.setNull(EZM0091B020CBSMsg.KEY_KYOKU_NO);
		}
		else
		{
			template.set(EZM0091B020CBSMsg.KEY_KYOKU_NO, (String)tmpMap.get("zm0091_key_kyoku_no"));
		}

		// ＫＥＹ＿予約適用年月日
		if (tmpMap == null || tmpMap.get("zm0091_key_rsv_aply_ymd") == null || "".equals(tmpMap.get("zm0091_key_rsv_aply_ymd")))
		{
			template.setNull(EZM0091B020CBSMsg.KEY_RSV_APLY_YMD);
		}
		else
		{
			template.set(EZM0091B020CBSMsg.KEY_RSV_APLY_YMD, (String)tmpMap.get("zm0091_key_rsv_aply_ymd"));
		}

		return template;
	}

	/**
	 *住所対象番号番号区画申込事業所番号一覧照会の下りマッピング処理を行います。
	 * <br>
	 * @param msgList メッセージリスト
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param dataMap 下りマップ
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editRetEZM0091B020(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText,
			HashMap dataMap) throws Exception
	{
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 申込事業者番号+ "[0]." + EZM0091B020CBSMsg1List.MSKM_JIGSHO_NO))
		if (template.isNull(EZM0091B020CBSMsg.EZM0091B020CBSMSG1LIST) || (template.getCAANMsgList("EZM0091B020CBSMsg1List").length <= 0))
		{
			dataMap.put("zm0091_mskm_jigsho_no", "");
		}
		else
		{
			dataMap.put("zm0091_mskm_jigsho_no",
					template.getCAANMsgList("EZM0091B020CBSMsg1List")[0].getString(EZM0091B020CBSMsg1List.MSKM_JIGSHO_NO));
		}

		// エラー情報の設定
		editErrInfoEZM0091B020(param, template, (Integer)returnCode, fixedText, dataMap);

		// エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}

		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * 住所対象番号番号区画申込事業所番号一覧照会のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param template CAANMsg
	 * @param returnCode リターンコード
	 * @param fixedText ユーザ定義文字列
	 * @param inMap 上りマップ
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrInfoEZM0091B020(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
			String fixedText, HashMap inMap)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EZM0091B020CBSMsg.STATUS);

		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + String.format(RETURN_MESSAGE_FORMAT, templateStatus)) == null)
		{
			templateStatus = 0;
		}

		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}

		if (templateStatus > bpStatus)
		{
			String formatStatus = String.format(RETURN_MESSAGE_FORMAT, templateStatus);
			String message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

//		HashMap inMap = (HashMap)param.getData(fixedText);

		// 住所コードエラー
		if (!template.isNull(EZM0091B020CBSMsg.KEY_AD_CD_ERR))
		{
			if (!inMap.containsKey("zm0091_key_ad_cd_err"))
			{
				inMap.put("zm0091_key_ad_cd_err", template.getString(EZM0091B020CBSMsg.KEY_AD_CD_ERR));
			}
		}
		// 局番エラー
		if (!template.isNull(EZM0091B020CBSMsg.KEY_KYOKU_NO_ERR))
		{
			if (!inMap.containsKey("zm0091_key_kyoku_no_err"))
			{
				inMap.put("zm0091_key_kyoku_no_err", template.getString(EZM0091B020CBSMsg.KEY_KYOKU_NO_ERR));
			}
		}
		// 予約適用年月日エラー
		if (!template.isNull(EZM0091B020CBSMsg.KEY_RSV_APLY_YMD_ERR))
		{
			if (!inMap.containsKey("zm0091_key_rsv_aply_ymd_err"))
			{
				inMap.put("zm0091_key_rsv_aply_ymd_err", template.getString(EZM0091B020CBSMsg.KEY_RSV_APLY_YMD_ERR));
			}
		}

		return param;
	}
	
// ANK-4494-00-00 DEL START
//	/**
//	 * 同番移転登録の上りマッピングを行います。
//	 * <br>
//	 * @param param リクエストパラメータ
//	 * @param fixedText ユーザ定義文字列
//	 * @param tmpMap
//	 * @return CAANMsg
//	 * @throws RequestParameterException
//	 */
//	@SuppressWarnings("unchecked")
//	private CAANMsg editInETU0021D010(IRequestParameterReadWrite param, String fixedText, HashMap tmpMap) throws RequestParameterException
//	{
//		CAANMsg template = new CAANMsg(ETU0021D010CBSMsg.class.getName());
//
//		// テンプレートID
//		template.set(ETU0021D010CBSMsg.TEMPLATEID, "ETU0021D010");
//
//		// 機能コード（"2":チェックのみ）
//		template.set(ETU0021D010CBSMsg.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);
//
//		// 作業領域のマップを取得
//		Map workMap = param.getMappingWorkArea();
//		if (workMap == null)
//		{
//			workMap = new HashMap();
//			param.setMappingWorkArea(workMap);
//		}
//
//		HashMap workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TEL);
//		if (workDataMap == null)
//		{
//			workDataMap = new HashMap();
//			workMap.put(CC_WORK_AREA_NAME_TEL, workDataMap);
//		}
//
//		HashMap inMap = (HashMap)param.getData(fixedText);
//
//		// 機能コード
//		if (tmpMap != null)
//		{
//			template.set(ETU0021D010CBSMsg.FUNC_CODE, tmpMap.get(JCMConstants.FUNC_CODE_KEY));
//		}
//
//		// 申込事業所番号
//		if (tmpMap == null || tmpMap.get("zm0091_mskm_jigsho_no") == null || "".equals(tmpMap.get("zm0091_mskm_jigsho_no")))
//		{
//			template.setNull(ETU0021D010CBSMsg.MSKM_JIGSHO_NO);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.MSKM_JIGSHO_NO, tmpMap.get("zm0091_mskm_jigsho_no"));
//		}
//		
//		// 法人個人コード(法人個人コードをセットするとサービス契約内訳番号が必須となるため、実登録時のみ設定する)
//		boolean hantei_flg = "2".equals(template.getString(ETU0021D010CBSMsg.FUNC_CODE)) || tmpMap == null ||
//				inMap.get("is_set_hojin_kojin_cd") == null || !"1".equals(inMap.get("is_set_hojin_kojin_cd")) ||
//				tmpMap.get("tu0021_hojin_kojin_cd") == null || "".equals(tmpMap.get("tu0021_hojin_kojin_cd"));
//		if (hantei_flg)
//		{
//			template.setNull(ETU0021D010CBSMsg.HOJIN_KOJIN_CD);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.HOJIN_KOJIN_CD, (String)tmpMap.get("tu0021_hojin_kojin_cd"));
//		}
//
//		// 同番移転申込年月日
//		if (tmpMap == null || tmpMap.get("tu0021_dobaniten_mskm_ymd") == null || "".equals(tmpMap.get("tu0021_dobaniten_mskm_ymd")))
//		{
//			template.setNull(ETU0021D010CBSMsg.DOBANITEN_MSKM_YMD);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.DOBANITEN_MSKM_YMD, (String)tmpMap.get("tu0021_dobaniten_mskm_ymd"));
//		}
//
//		// ＮＴＴ電話番号
//		if (tmpMap == null || tmpMap.get("tu0021_ntt_telno") == null || "".equals(tmpMap.get("tu0021_ntt_telno")))
//		{
//			template.setNull(ETU0021D010CBSMsg.NTT_TELNO);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.NTT_TELNO, (String)tmpMap.get("tu0021_ntt_telno"));
//		}
//
//		// ＮＴＴ契約者名
//		if (tmpMap == null || tmpMap.get("tu0021_ntt_keisha_nm") == null || "".equals(tmpMap.get("tu0021_ntt_keisha_nm")))
//		{
//			template.setNull(ETU0021D010CBSMsg.NTT_KEISHA_NM);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.NTT_KEISHA_NM, (String)tmpMap.get("tu0021_ntt_keisha_nm"));
//		}
//
//		// ＮＴＴ契約者名カナ
//		if (tmpMap == null || tmpMap.get("tu0021_ntt_ksh_kana") == null || "".equals(tmpMap.get("tu0021_ntt_ksh_kana")))
//		{
//			template.setNull(ETU0021D010CBSMsg.NTT_KSH_KANA);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.NTT_KSH_KANA, (String)tmpMap.get("tu0021_ntt_ksh_kana"));
//		}
//
//		// 設置場所住所コード
//		if (tmpMap == null || tmpMap.get("tu0021_setplace_ad_cd") == null || "".equals(tmpMap.get("tu0021_setplace_ad_cd")))
//		{
//			template.setNull(ETU0021D010CBSMsg.SETPLACE_AD_CD);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.SETPLACE_AD_CD, (String)tmpMap.get("tu0021_setplace_ad_cd"));
//		}
//
//		// 設置場所郵便番号
//		if (tmpMap == null || tmpMap.get("tu0021_setplace_pcd") == null || "".equals(tmpMap.get("tu0021_setplace_pcd")))
//		{
//			template.setNull(ETU0021D010CBSMsg.SETPLACE_PCD);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.SETPLACE_PCD, (String)tmpMap.get("tu0021_setplace_pcd"));
//		}
//
//		// 設置場所都道府県
//		if (tmpMap == null || tmpMap.get("tu0021_setplace_state_nm") == null || "".equals(tmpMap.get("tu0021_setplace_state_nm")))
//		{
//			template.setNull(ETU0021D010CBSMsg.SETPLACE_STATE_NM);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.SETPLACE_STATE_NM, (String)tmpMap.get("tu0021_setplace_state_nm"));
//		}
//
//		// 設置場所市区町村名
//		if (tmpMap == null || tmpMap.get("tu0021_setplace_city_nm") == null || "".equals(tmpMap.get("tu0021_setplace_city_nm")))
//		{
//			template.setNull(ETU0021D010CBSMsg.SETPLACE_CITY_NM);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.SETPLACE_CITY_NM, (String)tmpMap.get("tu0021_setplace_city_nm"));
//		}
//
//		// 設置場所大字通称名
//		if (tmpMap == null || tmpMap.get("tu0021_setplace_oaztsu_nm") == null || "".equals(tmpMap.get("tu0021_setplace_oaztsu_nm")))
//		{
//			template.setNull(ETU0021D010CBSMsg.SETPLACE_OAZTSU_NM);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.SETPLACE_OAZTSU_NM, (String)tmpMap.get("tu0021_setplace_oaztsu_nm"));
//		}
//
//		// 設置場所字丁目名
//		if (tmpMap == null || tmpMap.get("tu0021_setplace_azcho_nm") == null || "".equals(tmpMap.get("tu0021_setplace_azcho_nm")))
//		{
//			template.setNull(ETU0021D010CBSMsg.SETPLACE_AZCHO_NM);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.SETPLACE_AZCHO_NM, (String)tmpMap.get("tu0021_setplace_azcho_nm"));
//		}
//
//		// 設置場所番地号
//		if (tmpMap == null || tmpMap.get("tu0021_setplace_bnchigo") == null || "".equals(tmpMap.get("tu0021_setplace_bnchigo")))
//		{
//			template.setNull(ETU0021D010CBSMsg.SETPLACE_BNCHIGO);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.SETPLACE_BNCHIGO, (String)tmpMap.get("tu0021_setplace_bnchigo"));
//		}
//
//		// 設置場所住所補記・建物名
//		if (tmpMap == null || tmpMap.get("tu0021_setplace_adrttm") == null || "".equals(tmpMap.get("tu0021_setplace_adrttm")))
//		{
//			template.setNull(ETU0021D010CBSMsg.SETPLACE_ADRTTM);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.SETPLACE_ADRTTM, (String)tmpMap.get("tu0021_setplace_adrttm"));
//		}
//
//		// 設置場所住所補記・部屋番号
//		if (tmpMap == null || tmpMap.get("tu0021_setplace_adrrm") == null || "".equals(tmpMap.get("tu0021_setplace_adrrm")))
//		{
//			template.setNull(ETU0021D010CBSMsg.SETPLACE_ADRRM);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.SETPLACE_ADRRM, (String)tmpMap.get("tu0021_setplace_adrrm"));
//		}
//
//		// 設置場所住所確認コード
//		if (tmpMap == null || tmpMap.get("tu0021_setplace_ad_cfm_cd") == null || "".equals(tmpMap.get("tu0021_setplace_ad_cfm_cd")))
//		{
//			template.setNull(ETU0021D010CBSMsg.SETPLACE_AD_CFM_CD);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.SETPLACE_AD_CFM_CD, (String)tmpMap.get("tu0021_setplace_ad_cfm_cd"));
//		}
//
//		// 設置場所住所種別コード
//		if (tmpMap == null || tmpMap.get("tu0021_setplace_sbt_cd") == null || "".equals(tmpMap.get("tu0021_setplace_sbt_cd")))
//		{
//			template.setNull(ETU0021D010CBSMsg.SETPLACE_SBT_CD);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.SETPLACE_SBT_CD, (String)tmpMap.get("tu0021_setplace_sbt_cd"));
//		}
//
//		String dogTag = "_" + (String)tmpMap.get("telno_jun");
//		if (null == workDataMap.get("svc_kei_ucwk_no" + dogTag))
//		{
//			if (tmpMap == null || tmpMap.get("tu0021_" + ETU0021D010CBSMsg.SVC_KEI_UCWK_NO) == null
//					|| "".equals(tmpMap.get("tu0021_" + ETU0021D010CBSMsg.SVC_KEI_UCWK_NO)))
//			{
//				template.setNull(ETU0021D010CBSMsg.SVC_KEI_UCWK_NO);
//			}
//			else
//			{
//				// オプションサービス契約<電話>登録.サービス契約内訳番号 → サービス契約内訳番号
//				template.set(ETU0021D010CBSMsg.SVC_KEI_UCWK_NO, tmpMap.get("tu0021_" + ETU0021D010CBSMsg.SVC_KEI_UCWK_NO));
//			}
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.SVC_KEI_UCWK_NO, (String)workDataMap.get("svc_kei_ucwk_no" + dogTag));
//		}
//
//		// 設置場所住所手動入力フラグ
//		if (tmpMap == null || tmpMap.get("tu0021_setplace_ad_man_input_flg") == null || "".equals(tmpMap.get("tu0021_setplace_ad_man_input_flg")))
//		{
//			template.setNull(ETU0021D010CBSMsg.SETPLACE_AD_MAN_INPUT_FLG);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.SETPLACE_AD_MAN_INPUT_FLG, (String)tmpMap.get("tu0021_setplace_ad_man_input_flg"));
//		}
//
//		// 同番移転種別コード
//		if (tmpMap == null || tmpMap.get("tu0021_dobaniten_sbt_cd") == null || "".equals(tmpMap.get("tu0021_dobaniten_sbt_cd")))
//		{
//			template.setNull(ETU0021D010CBSMsg.DOBANITEN_SBT_CD);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.DOBANITEN_SBT_CD, (String)tmpMap.get("tu0021_dobaniten_sbt_cd"));
//		}
//
//		// 設置場所種別コード
//		if (tmpMap == null || tmpMap.get("tu0021_setplace_sbt_cd") == null || "".equals(tmpMap.get("tu0021_setplace_sbt_cd")))
//		{
//			template.setNull(ETU0021D010CBSMsg.SETPLACE_SBT_CD);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.SETPLACE_SBT_CD, (String)tmpMap.get("tu0021_setplace_sbt_cd"));
//		}
//
//		// 申込時番ポ事業者コード
//		if (tmpMap == null || tmpMap.get("tu0021_mskm_ji_bmp_jigyosha_cd") == null || "".equals(tmpMap.get("tu0021_mskm_ji_bmp_jigyosha_cd")))
//		{
//			template.setNull(ETU0021D010CBSMsg.MSKM_JI_BMP_JIGYOSHA_CD);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.MSKM_JI_BMP_JIGYOSHA_CD, (String)tmpMap.get("tu0021_mskm_ji_bmp_jigyosha_cd"));
//		}
//
//		// 法人ｅｏ読替サービス契約番号
//			template.setNull(ETU0021D010CBSMsg.HJIN_EO_YKAE_SVKEI_NO);
//		
//		// 同番移転希望年月日
//			template.setNull(ETU0021D010CBSMsg.DOBANITEN_KIBO_YMD);
//		
//		// 連絡先名
//			template.setNull(ETU0021D010CBSMsg.RRKS_NM);
//		
//		//↓↓↓【IT1-2013-0000067】同番移転連絡先電話番号対応 2013/01/24 FJ)薄出 START↓↓↓
//		// 連絡先電話番号
//		if (tmpMap == null || tmpMap.get("tu0021_rrks_telno") == null || "".equals(tmpMap.get("tu0021_rrks_telno")))
//		{
//			template.setNull(ETU0021D010CBSMsg.RRKS_TELNO);
//		}
//		else
//		{
//			template.set(ETU0021D010CBSMsg.RRKS_TELNO, (String)tmpMap.get("tu0021_rrks_telno"));
//		}
//		//↑↑↑【IT1-2013-0000067】同番移転連絡先電話番号対応 2013/01/24 FJ)薄出  END ↑↑↑
//			
//		// 設置場所種別その他補記
//			template.setNull(ETU0021D010CBSMsg.SETPLACE_SBT_OTR_HOKI);
//		
//		// 申込事業者記事欄１
//			template.setNull(ETU0021D010CBSMsg.MSKMJIG_KIJIRAN_1);
//		
//		// 申込事業者記事欄２
//			template.setNull(ETU0021D010CBSMsg.MSKMJIG_KIJIRAN_2);
//		
//		return template;
//	}
//
//	/**
//	 *同番移転登録の下りマッピング処理を行います。
//	 * <br>
//	 * @param msgList メッセージリスト
//	 * @param param リクエストパラメータ
//	 * @param fixedText ユーザ定義文字列
//	 * @param dataMap 下りマップ
//	 * @return リクエストパラメータ
//	 * @throws Exception
//	 */
//	@SuppressWarnings("unchecked")
//	private IRequestParameterReadWrite editRetETU0021D010(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText,
//			HashMap dataMap) throws Exception
//	{
//		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
//		CAANMsg template = templates[0];
//
//		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);
//
//		// 同番移転番号
//		if (template.isNull(ETU0021D010CBSMsg.DOBANITEN_NO))
//		{
//			dataMap.put("tu0021_dobaniten_no", "");
//		}
//		else
//		{
//			dataMap.put("tu0021_dobaniten_no", template.getString(ETU0021D010CBSMsg.DOBANITEN_NO));
//		}
//
//		// 世代登録年月日時分秒
//		if (template.isNull(ETU0021D010CBSMsg.GENE_ADD_DTM))
//		{
//			dataMap.put("tu0021_gene_add_dtm", "");
//		}
//		else
//		{
//			dataMap.put("tu0021_gene_add_dtm", template.getString(ETU0021D010CBSMsg.GENE_ADD_DTM));
//		}
//
//		// 同番移転ステータス
//		if (template.isNull(ETU0021D010CBSMsg.DOBANITEN_STAT))
//		{
//			dataMap.put("tu0021_dobaniten_stat", "");
//		}
//		else
//		{
//			dataMap.put("tu0021_dobaniten_stat", template.getString(ETU0021D010CBSMsg.DOBANITEN_STAT));
//		}
//
//		// 同番移転受付年月日
//		if (template.isNull(ETU0021D010CBSMsg.DOBANITEN_UK_YMD))
//		{
//			dataMap.put("tu0021_dobaniten_uk_ymd", "");
//		}
//		else
//		{
//			dataMap.put("tu0021_dobaniten_uk_ymd", template.getString(ETU0021D010CBSMsg.DOBANITEN_UK_YMD));
//		}
//
//		// 同番移転担当ユーザＩＤ
//		if (template.isNull(ETU0021D010CBSMsg.DOBANITEN_TNT_USER_ID))
//		{
//			dataMap.put("tu0021_dobaniten_tnt_user_id", "");
//		}
//		else
//		{
//			dataMap.put("tu0021_dobaniten_tnt_user_id", template.getString(ETU0021D010CBSMsg.DOBANITEN_TNT_USER_ID));
//		}
//
//		// 法人結果リスト出力済フラグ
//		if (template.isNull(ETU0021D010CBSMsg.HOJIN_RSLT_OPUT_ZUMI_FLG))
//		{
//			dataMap.put("tu0021_hojin_rslt_oput_zumi_flg", "");
//		}
//		else
//		{
//			dataMap.put("tu0021_hojin_rslt_oput_zumi_flg", template.getString(ETU0021D010CBSMsg.HOJIN_RSLT_OPUT_ZUMI_FLG));
//		}
//
//		// 法人結果出力済フラグ
//		if (template.isNull(ETU0021D010CBSMsg.HOJIN_RSLT_OPUT_ZUMI_FLG))
//		{
//			dataMap.put("tu0021_hojin_rslt_oput_zumi_flg", "");
//		}
//		else
//		{
//			dataMap.put("tu0021_hojin_rslt_oput_zumi_flg", template.getString(ETU0021D010CBSMsg.HOJIN_RSLT_OPUT_ZUMI_FLG));
//		}
//
//		// 結果リスト出力済フラグ
//		if (template.isNull(ETU0021D010CBSMsg.RSLT_LIST_OPUT_ZUMI_FLG))
//		{
//			dataMap.put("tu0021_rslt_list_oput_zumi_flg", "");
//		}
//		else
//		{
//			dataMap.put("tu0021_rslt_list_oput_zumi_flg", template.getString(ETU0021D010CBSMsg.RSLT_LIST_OPUT_ZUMI_FLG));
//		}
//
//		// 登録年月日時分秒
//		if (template.isNull(ETU0021D010CBSMsg.ADD_DTM))
//		{
//			dataMap.put("tu0021_add_dtm", "");
//		}
//		else
//		{
//			dataMap.put("tu0021_add_dtm", template.getString(ETU0021D010CBSMsg.ADD_DTM));
//		}
//
//		// 登録オペレータアカウント
//		if (template.isNull(ETU0021D010CBSMsg.ADD_OPEACNT))
//		{
//			dataMap.put("tu0021_add_opeacnt", "");
//		}
//		else
//		{
//			dataMap.put("tu0021_add_opeacnt", template.getString(ETU0021D010CBSMsg.ADD_OPEACNT));
//		}
//
//		// 更新年月日時分秒
//		if (template.isNull(ETU0021D010CBSMsg.UPD_DTM))
//		{
//			dataMap.put("tu0021_upd_dtm", "");
//		}
//		else
//		{
//			dataMap.put("tu0021_upd_dtm", template.getString(ETU0021D010CBSMsg.UPD_DTM));
//		}
//
//		// 更新オペレータアカウント
//		if (template.isNull(ETU0021D010CBSMsg.UPD_OPEACNT))
//		{
//			dataMap.put("tu0021_upd_opeacnt", "");
//		}
//		else
//		{
//			dataMap.put("tu0021_upd_opeacnt", template.getString(ETU0021D010CBSMsg.UPD_OPEACNT));
//		}
//
//		// 無効フラグ
//		if (template.isNull(ETU0021D010CBSMsg.MK_FLG))
//		{
//			dataMap.put("tu0021_mk_flg", "");
//		}
//		else
//		{
//			dataMap.put("tu0021_mk_flg", template.getString(ETU0021D010CBSMsg.MK_FLG));
//		}
//
//		// エラー情報の設定
//		editErrInfoETU0021D010(param, template, (Integer)returnCode, fixedText, dataMap);
//
//		// エラー情報のマップを取得
//		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
//		if (errList == null)
//		{
//			errList = new ArrayList<Object>();
//		}
//
//		// コントロールマップに設定
//		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));
//
//		return param;
//	}
//
//	/**
//	 * 同番移転登録のエラー情報マッピング処理を行います。
//	 * <br>
//	 * @param param リクエストパラメータ
//	 * @param template CAANMsg
//	 * @param returnCode リターンコード
//	 * @param fixedText ユーザ定義文字列
//	 * @param inMap 上りマップ
//	 * @return リクエストパラメータ
//	 * @throws RequestParameterException
//	 */
//	@SuppressWarnings("unchecked")
//	private IRequestParameterReadWrite editErrInfoETU0021D010(IRequestParameterReadWrite param, CAANMsg template, int returnCode,
//			String fixedText, HashMap inMap)
//			throws RequestParameterException
//	{
//		int templateStatus = template.getInt(ETU0021D010CBSMsg.STATUS);
//
//		if (returnCode != 0)
//		{
//			templateStatus = 9000;
//		}
//		if (JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + String.format(RETURN_MESSAGE_FORMAT, templateStatus)) == null)
//		{
//			templateStatus = 0;
//		}
//
//		int bpStatus = 0;
//		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
//		if (obj == null)
//		{
//			bpStatus = -1;
//		}
//		else
//		{
//			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
//		}
//
//		if (templateStatus > bpStatus)
//		{
//			String formatStatus = String.format(RETURN_MESSAGE_FORMAT, templateStatus);
//			String message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);
//			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
//			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
//		}
//
////		HashMap inMap = (HashMap)param.getData(fixedText);
//
//		// 法人個人コード
//		if (!template.isNull(ETU0021D010CBSMsg.HOJIN_KOJIN_CD_ERR))
//		{
//			if (!inMap.containsKey("tu0021_hojin_kojin_cd_err"))
//			{
//				inMap.put("tu0021_hojin_kojin_cd_err", template.getString(ETU0021D010CBSMsg.HOJIN_KOJIN_CD_ERR));
//			}
//		}
//		
//		// ＮＴＴ電話番号
//		if (!template.isNull(ETU0021D010CBSMsg.NTT_TELNO_ERR))
//		{
//			if (!inMap.containsKey("tu0021_ntt_telno_err"))
//			{
//				inMap.put("tu0021_ntt_telno_err", template.getString(ETU0021D010CBSMsg.NTT_TELNO_ERR));
//			}
//		}
//		
//		// ＮＴＴ契約者名
//		if (!template.isNull(ETU0021D010CBSMsg.NTT_KEISHA_NM_ERR))
//		{
//			if (!inMap.containsKey("tu0021_ntt_keisha_nm_err"))
//			{
//				inMap.put("tu0021_ntt_keisha_nm_err", template.getString(ETU0021D010CBSMsg.NTT_KEISHA_NM_ERR));
//			}
//		}
//		
//		// ＮＴＴ契約者カナ名
//		if (!template.isNull(ETU0021D010CBSMsg.NTT_KSH_KANA_ERR))
//		{
//			if (!inMap.containsKey("tu0021_ntt_ksh_kana_err"))
//			{
//				inMap.put("tu0021_ntt_ksh_kana_err", template.getString(ETU0021D010CBSMsg.NTT_KSH_KANA_ERR));
//			}
//		}
//		
//		//↓↓↓【IT1-2013-0000067】同番移転連絡先電話番号対応 2013/01/24 FJ)薄出 START↓↓↓
//		// 連絡先電話番号
//		if (!template.isNull(ETU0021D010CBSMsg.RRKS_TELNO_ERR))
//		{
//			if (!inMap.containsKey("tu0021_rrks_telno_err"))
//			{
//				inMap.put("tu0021_rrks_telno_err", template.getString(ETU0021D010CBSMsg.RRKS_TELNO_ERR));
//			}
//		}
//		//↑↑↑【IT1-2013-0000067】同番移転連絡先電話番号対応 2013/01/24 FJ)薄出  END ↑↑↑
//		
//		// 設置場所住所コード
//		if (!template.isNull(ETU0021D010CBSMsg.SETPLACE_AD_CD_ERR))
//		{
//			if (!inMap.containsKey("tu0021_setplace_ad_cd_err"))
//			{
//				inMap.put("tu0021_setplace_ad_cd_err", template.getString(ETU0021D010CBSMsg.SETPLACE_AD_CD_ERR));
//			}
//		}
//		
//		// 設置場所郵便番号
//		if (!template.isNull(ETU0021D010CBSMsg.SETPLACE_PCD_ERR))
//		{
//			if (!inMap.containsKey("tu0021_setplace_pcd_err"))
//			{
//				inMap.put("tu0021_setplace_pcd_err", template.getString(ETU0021D010CBSMsg.SETPLACE_PCD_ERR));
//			}
//		}
//		
//		// 設置場所都道府県名
//		if (!template.isNull(ETU0021D010CBSMsg.SETPLACE_STATE_NM_ERR))
//		{
//			if (!inMap.containsKey("tu0021_setplace_state_nm_err"))
//			{
//				inMap.put("tu0021_setplace_state_nm_err", template.getString(ETU0021D010CBSMsg.SETPLACE_STATE_NM_ERR));
//			}
//		}
//		
//		// 設置場所市区町村名
//		if (!template.isNull(ETU0021D010CBSMsg.SETPLACE_CITY_NM_ERR))
//		{
//			if (!inMap.containsKey("tu0021_setplace_city_nm_err"))
//			{
//				inMap.put("tu0021_setplace_city_nm_err", template.getString(ETU0021D010CBSMsg.SETPLACE_CITY_NM_ERR));
//			}
//		}
//		
//		// 設置場所大字通称名
//		if (!template.isNull(ETU0021D010CBSMsg.SETPLACE_OAZTSU_NM_ERR))
//		{
//			if (!inMap.containsKey("tu0021_setplace_oaztsu_nm_err"))
//			{
//				inMap.put("tu0021_setplace_oaztsu_nm_err", template.getString(ETU0021D010CBSMsg.SETPLACE_OAZTSU_NM_ERR));
//			}
//		}
//		
//		// 設置場所字丁目名
//		if (!template.isNull(ETU0021D010CBSMsg.SETPLACE_AZCHO_NM_ERR))
//		{
//			if (!inMap.containsKey("tu0021_setplace_azcho_nm_err"))
//			{
//				inMap.put("tu0021_setplace_azcho_nm_err", template.getString(ETU0021D010CBSMsg.SETPLACE_AZCHO_NM_ERR));
//			}
//		}
//		
//		// 設置場所番地号
//		if (!template.isNull(ETU0021D010CBSMsg.SETPLACE_BNCHIGO_ERR))
//		{
//			if (!inMap.containsKey("tu0021_setplace_bnchigo_err"))
//			{
//				inMap.put("tu0021_setplace_bnchigo_err", template.getString(ETU0021D010CBSMsg.SETPLACE_BNCHIGO_ERR));
//			}
//		}
//		
//		// 設置場所住所補記・建物名
//		if (!template.isNull(ETU0021D010CBSMsg.SETPLACE_ADRTTM_ERR))
//		{
//			if (!inMap.containsKey("tu0021_setplace_adrttm_err"))
//			{
//				inMap.put("tu0021_setplace_adrttm_err", template.getString(ETU0021D010CBSMsg.SETPLACE_ADRTTM_ERR));
//			}
//		}
//		
//		// 設置場所住所補記・部屋番号
//		if (!template.isNull(ETU0021D010CBSMsg.SETPLACE_ADRRM_ERR))
//		{
//			if (!inMap.containsKey("tu0021_setplace_adrrm_err"))
//			{
//				inMap.put("tu0021_setplace_adrrm_err", template.getString(ETU0021D010CBSMsg.SETPLACE_ADRRM_ERR));
//			}
//		}
//		
//		// 設置場所住所確認コード
//		if (!template.isNull(ETU0021D010CBSMsg.SETPLACE_AD_CFM_CD_ERR))
//		{
//			if (!inMap.containsKey("tu0021_setplace_ad_cfm_cd_err"))
//			{
//				inMap.put("tu0021_setplace_ad_cfm_cd_err", template.getString(ETU0021D010CBSMsg.SETPLACE_AD_CFM_CD_ERR));
//			}
//		}
//		
//		// 設置場所種別コード
//		if (!template.isNull(ETU0021D010CBSMsg.SETPLACE_SBT_CD_ERR))
//		{
//			if (!inMap.containsKey("tu0021_setplace_sbt_cd_err"))
//			{
//				inMap.put("tu0021_setplace_sbt_cd_err", template.getString(ETU0021D010CBSMsg.SETPLACE_SBT_CD_ERR));
//			}
//		}
//		
//		// 設置場所住所手動入力フラグ
//		if (!template.isNull(ETU0021D010CBSMsg.SETPLACE_AD_MAN_INPUT_FLG_ERR))
//		{
//			if (!inMap.containsKey("tu0021_setplace_ad_man_input_flg_err"))
//			{
//				inMap.put("tu0021_setplace_ad_man_input_flg_err", template.getString(ETU0021D010CBSMsg.SETPLACE_AD_MAN_INPUT_FLG_ERR));
//			}
//		}
//		
//		return param;
//	}
// ANK-4494-00-00 DEL END

	/**
	 * 作業マップ（支払方法）の値を取得します。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param key
	 * @return 取得した値
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private String getPaywayWorkMapValue(IRequestParameterReadWrite param, String key) throws RequestParameterException
	{
		// 作業領域の取得
		Map workMap = (Map)param.getMappingWorkArea();

		HashMap inMap = null;
		/* 契約者作業項目情報 */
		if (workMap != null)
		{
			inMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_PAYWAY);
		}
		else
		{
			inMap = null;
		}

		String result = null;
		if (inMap != null)
		{
			result = (String)inMap.get(key);
		}

		if ("".equals(result))
		{
			result = null;
		}

		return result;
	}

	/**
	 * オプションサービス契約登録部品の上りマッピング処理を行います。
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void editInAddOpSvcKei(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		HashMap inMap = (HashMap)param.getData(fixedText);
		HashMap workDataMap = null;
		Map workMap = param.getMappingWorkArea();
		if (workMap != null)
		{
			workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TEL);
		}
		
		// SYSID
		if (inMap.get("kk0371_sysid") == null || "".equals(inMap.get("kk0371_sysid")))
		{
			if (getKeishaWorkMapValue(param, "sysid") != null)
			{
				inMap.put("kk0371_sysid", getKeishaWorkMapValue(param, "sysid"));
			}
			else if (inMap.containsKey("kk0371cmn_sysid"))
			{
				inMap.put("kk0371_sysid", inMap.get("kk0371cmn_sysid"));
				
			}
		}

		// 申込明細番号
		if (inMap.get("kk0371_mskm_dtl_no") == null || "".equals(inMap.get("kk0371_mskm_dtl_no")))
		{
				inMap.put("kk0371_mskm_dtl_no", getMskmDtlNo(param));
		}
		
		// 請求契約番号
		if (inMap.get("kk0371_seiky_kei_no") == null || "".equals(inMap.get("kk0371_seiky_kei_no")))
		{
			if (getPaywayWorkMapValue(param, "seiky_kei_no") != null)
			{
				inMap.put("kk0371_seiky_kei_no", getPaywayWorkMapValue(param, "seiky_kei_no"));
			}
			else if (inMap.containsKey("kk0371cmn_seiky_kei_no"))
			{
				inMap.put("kk0371_seiky_kei_no", inMap.get("kk0371cmn_seiky_kei_no"));
				
			}
		}

		// オプションサービス契約＜電話＞登録マップ.サービス契約内訳番号 → サービス契約内訳番号
		if (inMap.get("kk0371_svc_kei_ucwk_no") == null || "".equals(inMap.get("kk0371_svc_kei_ucwk_no")))
		{
			if (workDataMap != null && workDataMap.get("svc_kei_ucwk_no") != null)
			{
				inMap.put("kk0371_svc_kei_ucwk_no", workDataMap.get("svc_kei_ucwk_no"));
			}
		}
		
		// 親契約識別コード
		if (inMap.get("kk0371_oya_kei_skbt_cd") == null || "".equals(inMap.get("kk0371_oya_kei_skbt_cd")))
		{
			if (inMap.containsKey("kk0371cmn_oya_kei_skbt_cd"))
			{
				inMap.put("kk0371_oya_kei_skbt_cd", inMap.get("kk0371cmn_oya_kei_skbt_cd"));
			}
		}
		
		// 異動区分
		if (inMap.get("kk0371_ido_div") == null || "".equals(inMap.get("kk0371_ido_div")))
		{
			if (inMap.containsKey("kk0371cmn_ido_div"))
			{
				inMap.put("kk0371_ido_div", inMap.get("kk0371cmn_ido_div"));
			}
		}
		
		// 通話料指定額到達通知指定金額
		if (inMap.get("kk0371_twryo_stiam_ttu_tchi_stiam") == null || "".equals(inMap.get("kk0371_twryo_stiam_ttu_tchi_stiam")))
		{
			if (inMap.containsKey("kk0371cmn_twryo_stiam_ttu_tchi_stiam"))
			{
				inMap.put("kk0371_twryo_stiam_ttu_tchi_stiam", inMap.get("kk0371cmn_twryo_stiam_ttu_tchi_stiam"));
			}
		}

	}

	/**
	 * 申込明細番号を取得する
	 * @param param リクエストパラメータ
	 * @return 申込明細番号
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private String getMskmDtlNo(IRequestParameterReadWrite param) throws RequestParameterException
	{
		// 作業領域のマップを取得
		HashMap workDataMap = null;
		HashMap workDataMap_MskmList = null;
		HashMap workDataMap_Mskm = null;
		String mskmDtlNo = null;
		Map workMap = param.getMappingWorkArea();
		if (workMap != null)
		{
			workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TEL);
			workDataMap_Mskm = (HashMap)workMap.get(CC_WORK_AREA_NAME_MSKM);
			if (workDataMap_Mskm != null)
			{
				ArrayList inList1 = ((ArrayList)workDataMap_Mskm.get(CC_WORK_AREA_NAME_MSKM_LIST));
				int devCnt = inList1 != null ? inList1.size() : 0;
				for (int i = 0; i < devCnt; i++)
				{
					workDataMap_MskmList = (HashMap)(inList1).get(i);

					if (workDataMap_MskmList == null || workDataMap_MskmList.get("mskm_dtl_no_tel") == null
							|| "".equals(workDataMap_MskmList.get("mskm_dtl_no_tel")))
					{
						mskmDtlNo = null;
					}
					else
					{
						mskmDtlNo = (String)workDataMap_MskmList.get("mskm_dtl_no_tel");
						break;
					}

				}
			}
			if (workDataMap != null)
			{
				
				if (workDataMap.containsKey("mskm_dtl_no"))
				{
					mskmDtlNo = (String)workDataMap.get("mskm_dtl_no");
				}

			}
			

		}
		
		return mskmDtlNo;
	}
	
	
	/**
	 * CAANMsgに値を設定します。<br>
	 *  @inMap内にデータが存在する場合、inMap内のデータを設定します。<br>
	 *  A上記以外の場合、setNullを呼び出します。<br>
	 * @param template 値を設定するメッセージキャリア
	 * @param setKey 設定先メッセージキャリアのキー名
	 * @param inMap ユーザデータ情報
	 * @param prefix ユーザデータ情報より取得する場合に付加するプレフィックス
	 * @param getKey ユーザデータ情報より取得するキー名
	 */
	private void setTemplate(CAANMsg template, String setKey, HashMap<String, Object> inMap, String prefix, String getKey)
	{
		
		if (null == inMap || null == inMap.get(prefix + getKey) || 0 == ((String)inMap.get(prefix + getKey)).length())
		{
			template.setNull(setKey);
		}
		else
		{
			template.set(setKey, (String)inMap.get(prefix + getKey));
		}
	}

	/**
	 * CAANMsgに値を設定します。<br>
	 *  @inMap内にデータが存在する場合、inMap内のデータを設定します。<br>
	 *  A上記以外の場合、setNullを呼び出します。<br>
	 * @param template 値を設定するメッセージキャリア
	 * @param getSetKey 設定先メッセージキャリアのキー名
	 * @param inMap ユーザデータ情報
	 * @param prefix ユーザデータ情報より取得する場合に付加するプレフィックス
	 */
	private void setTemplate(CAANMsg template, String getSetKey, HashMap<String, Object> inMap, String prefix)
	{
		setTemplate(template, getSetKey, inMap, prefix, getSetKey);
	}
	
	/**
	 * エラー情報を設定します。<br>
	 * @param inMap ユーザデータ情報
	 * @param prefix ユーザデータ情報に設定する際に付加するプレフィックス
	 * @param setKey ユーザデータ情報のキー名
	 * @param template メッセージキャリア
	 * @param getKey メッセージキャリアのキー名
	 */
	private void setErrInfo(HashMap<String, Object> inMap, String prefix, String setKey, CAANMsg template, String getKey)
	{
		if (!template.isNull(getKey))
		{
			if (!inMap.containsKey(prefix + setKey))
			{
				inMap.put(prefix + setKey, template.getString(getKey));
			}
		}
	}
	
	/**
	 * ユーザデータ情報にエラー情報を設定します。<br>
	 * 　※ユーザデータ情報内にすでにキーが存在する場合、値は設定されません。<br>
	 * @param inMap	 ユーザデータ情報
	 * @param prefix ユーザデータ情報より取得する場合に付加するプレフィックス
	 * @param getSetKey ユーザデータ情報に設定するキー名
	 * @param template メッセージキャリア
	 */
	private void setErrInfo(HashMap<String, Object> inMap, String prefix, String getSetKey, CAANMsg template)
	{
		setErrInfo(inMap, prefix, getSetKey, template, getSetKey);
	}

	/**
	 * 緊急通報用契約者カナ名の形式エラーチェック処理を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public void checkAndModifyEmgKshKana(IRequestParameterReadWrite param, String fixedText)
			throws RequestParameterException
	{
		// ユーザデータ情報取得
		HashMap inMap = (HashMap)(param.getData(fixedText));
		if (inMap == null)
		{
			return;
		}
		
		String emgKshKana = (String)inMap.get("kk0191_emg_ksh_kana");
		
		// 緊急通報用契約者カナ名がドメイン形式、文字列長エラーの場合はNULL
		if (emgKshKana != null && !"".equals(emgKshKana))
		{
			if (!MixCharCheck.isEmgEnNumKanaCheck(emgKshKana)
					|| JPCConvertString.convFullToHalfByKata((String)inMap.get("kk0191_emg_ksh_kana")).length() > 36)
			{
				inMap.put("kk0191_emg_ksh_kana", null);
			}
		}
	}
	
	
	/**
	 * 通信事業者拠点コード取得部品の下りマッピング処理を行います。
	 * @param param
	 * @param fixedText
	 * @param inMap
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void editOutgetTsjgsKtnCd(IRequestParameterReadWrite param, String fixedText, HashMap inMap)
	throws RequestParameterException
	{
		// 作業領域のマップを取得
		HashMap workDataMap = null;
		Map workMap = param.getMappingWorkArea();
		if (workMap != null)
		{
			workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME);
		}
		
		if(workDataMap == null)
		{
			return;
		}
		
		for (int i = 0;  i < CC_WORK_AREA_NAME_LIST.length; i++)
		{
			ArrayList dataList = (ArrayList)((HashMap)workDataMap).get(CC_WORK_AREA_NAME_LIST[i]);
			if (dataList == null)
			{
				continue;
			}
			
			if(dataList.size() == 0)
			{
				continue;
			}
			
			/* 業務データ設定 */
			HashMap dataMap = (HashMap)dataList.get(0);
			if (dataMap == null)
			{
				dataMap = new HashMap();
				param.setData(fixedText, dataMap);
			}
			
			// 移転元通信事業者拠点コード
			if (!(dataMap == null || dataMap.get("kk0191_itnm_tsjgs_ktn_cd") == null || "".equals(dataMap.get("kk0191_itnm_tsjgs_ktn_cd"))))
			{
				inMap.put("kk0191_itnm_tsjgs_ktn_cd", (String)dataMap.get("kk0191_itnm_tsjgs_ktn_cd"));
				workDataMap.clear();
			}
		}
		
	}

	/**
	 * eo光電話パックの登録を行います。
	 * <br/>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザー固定文字列
	 * @param addEohtlPackMap eo光電話パック登録マップ
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite addEohtlPack(SessionHandle handle, IRequestParameterReadWrite param, String fixedText,
			HashMap addEohtlPackMap) throws Throwable
	{
		// ユーザデータ情報取得
		HashMap inMap = (HashMap)(param.getData(fixedText));
		
		if (null == inMap)
		{
			return null;
		}
		
		// 電話（番号）サービスの取得
		String telMode = (String)inMap.get("tel_svc");
		
		HashMap dataMap = new HashMap();
		
		// SYSID
		String sysid = (String)addEohtlPackMap.get("sysid");
		if (JKKBpCommon.isNull(sysid))
		{
			sysid = JKKBpCommon.getWkSysid(param);
		}
		dataMap.put("sysid", sysid);
		
		// サービス契約番号
		String svcKeiNo = JKKBpCommon.getWkSvcKeiNoTel(param);
		dataMap.put("svc_kei_no", svcKeiNo);
		
		// サービス契約内訳番号
		String svcKeiUcwkNo = null;
		if (KMK_DIV_ONE.equals(telMode))
		{
			svcKeiUcwkNo = JKKBpCommon.getSvcKeiUcwkNoTel1(param);
		}
		else
		{
			svcKeiUcwkNo = JKKBpCommon.getSvcKeiUcwkNoTel2(param);
		}
		dataMap.put("svc_kei_ucwk_no", svcKeiUcwkNo);
		
		// 申込明細番号
		String mskmDtlNo = getMskmDtlNo(param);
		dataMap.put("mskm_dtl_no", mskmDtlNo);
		
		// 起算日
		dataMap.put("kisan_ymd", addEohtlPackMap.get("kisan_ymd"));
		// 異動区分
		dataMap.put("ido_div", addEohtlPackMap.get("ido_div"));
		// パック割区分
		dataMap.put("pack_div", addEohtlPackMap.get("pack_div"));
		// 更新年月日時分秒（更新前）
		dataMap.put("kk0081_upd_dtm", JKKBpCommon.getLastDtmBySvcKeiNo(param, svcKeiNo, null));
		
		JKKBpCommon.addEohtlPack(handle, param, dataMap);
		
		// 更新年月日時分秒
		String updDtm = (String)dataMap.get("upd_dtm");
		addEohtlPackMap.put("upd_dtm", updDtm);
		JKKBpCommon.setLastDtmBySvcKeiNo(param, svcKeiNo, updDtm);
		
		return param;
	}
	
// ANK-4494-00-00 ADD START
	
	/**
	 * EZM0121A010_電話番号一意照会 サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 * 
	 * @param param リクエストパラメータ
	 * @param telno 電話番号
	 * @return S/I上り情報
	 * @throws RequestParameterException
	 */
	public HashMap<String, Object> editInMsgEZM0121A010(IRequestParameterReadWrite param, String telno) throws RequestParameterException {
		CAANMsg template = new CAANMsg(EZM0121A010CBSMsg.class.getName());

		// nullマッピングを実施
		fillCAANMSGNullMapping(template, new EZM0121A010CBSMsg().getContents());

		// 共通部を設定
		editInMsgBasicCmn(param, template);

		// テンプレートID(SIFのID)
		template.set(EZM0121A010CBSMsg.TEMPLATEID, "EZM0121A010");

		// 機能コード
		template.set(EZM0121A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿電話番号
		template.set(EZM0121A010CBSMsg.KEY_TELNO, convBlankToNull(telno));

		// 上り情報を生成
		return editInMsgCmn(param, template);
	}

	
	/**
	 * 電話番号状態判定CC呼出<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param telno Key_電話番号
	 * @return Boolean
	 * @throws Throwable 
	 * @exception Exceptionがスローされます。
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> telnoStatJudge(SessionHandle handle, IRequestParameterReadWrite param, String telno) throws Throwable {

		HashMap<String, Object> ccMap = new HashMap<String, Object>();
		ccMap.put(JKKTelnoStatJudgeConstCC.TELNO, telno);
		param.setData("TELNOSTATJUDGECC", ccMap);
		JKKTelnoStatJudgeCC jkkTelnoStatJudgeCC = new JKKTelnoStatJudgeCC();
		// ◇ CC呼出実行
		jkkTelnoStatJudgeCC.telnoStatJudge(handle, param, "TELNOSTATJUDGECC");
		ArrayList childList = null;
		HashMap<String, Object> ccOutMap = (HashMap<String, Object>) param.getData("TELNOSTATJUDGECC");
		HashMap<String, Object> childMap = new HashMap<String, Object>();

		if (ccOutMap != null && (ccOutMap.get("TELNOSTATJUDGECC_LIST") != null) 
				&& (((ArrayList) ccOutMap.get("TELNOSTATJUDGECC_LIST")).size() > 0)) {
			childList = (ArrayList) ccOutMap.get("TELNOSTATJUDGECC_LIST");
			childMap = (HashMap) childList.get(0);
			return childMap;

		}
		return childMap;
	}
	
	/**
	 * 回復期間チェック処理<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param telno Key_電話番号
	 * @return Boolean
	 * @throws Throwable 
	 * @exception Exceptionがスローされます。
	 */
	@SuppressWarnings("unchecked")
	private Boolean chkKaifk(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String telno) throws Throwable {

		// 運用日付取得
		// スレッドローカルより運用日付を取得
		HashMap<String, Object> unyoDateMap = JCCWebAddTrnId.get(JCMConstants.ADD_TRN_ID_UNYO_DATE_MAP);
		String inputUnyoYmd = (String) unyoDateMap.get("ODATE");

		/* ◇上りマッピング処理（EKK0161B013_サービス契約内訳一覧照会（電話番号）） */
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		HashMap<String, Object> inMapEKK0161B013 = editInMsgEKK0161B013(param, telno);

		/* ◇ＳＣ呼出実行（EKK0161B013_サービス契約内訳一覧照会（電話番号）） */
		CAANMsg outCAANMsgEKK0161B013 = callSvcInter(handle, param, inMapEKK0161B013, fixedText);
		CAANMsg[] ekk0161B013OutList = outCAANMsgEKK0161B013.getCAANMsgList(EKK0161B013CBSMsg.EKK0161B013CBSMSG1LIST);

		String svc_kei_no = "";
		String kaihk_psb_prd = "";

		if (ekk0161B013OutList != null && ekk0161B013OutList.length > 0) {
			for (int idx = 0; idx < ekk0161B013OutList.length; idx++) {
				HashMap ekk0161B013Map = ekk0161B013OutList[idx].getMsgData();
				// 電話番号に紐づくサービス契約番号・サービス契約内訳を取得する。
				if (idx == 0) {
					// 初回時は、サービス契約番号を設定
					svc_kei_no = (String) ekk0161B013Map.get("svc_kei_no");
				}

				if (idx == 0 || !(svc_kei_no.equals((String) ekk0161B013Map.get("svc_kei_no")))) {
					// 前回ループ自に保持しているサービス契約番号が異なる場合、サービス契約番号を設定
					svc_kei_no = (String) ekk0161B013Map.get("svc_kei_no");

					/* ◇上りマッピング処理（EKK0081A010_サービス契約一意照会） */
					HashMap<String, Object> kk0081a010_paramMap = editInMsgEKK0081A010(param, svc_kei_no, inputUnyoYmd);
					/* ◇ＳＣ呼出実行（EKK0081A010_サービス契約一意照会） */
					CAANMsg outCAANMsgEKK0081A010 = callSvcInter(handle, param, kk0081a010_paramMap, fixedText);
					CAANMsg[] ekk0081A010OutList = outCAANMsgEKK0081A010.getCAANMsgList(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST);

					if (ekk0081A010OutList != null && ekk0081A010OutList.length > 0) {
						for (int idx2 = 0; idx2 < ekk0081A010OutList.length; idx2++) {
							// サービス契約番号に紐づくグループ料金コードを取得する。
							HashMap ekk0081A010Map = ekk0081A010OutList[idx2].getMsgData();

							/* ◇上りマッピング処理（EKK0781A010_料金グループ一意照会） */
							// リクエストパラメータを引数に上りマッピング処理メソッドを実行
							HashMap<String, Object> inMapEKK0781A010 = editInMsgEKK0781A010(param, (String) ekk0081A010Map.get("prc_grp_cd"), inputUnyoYmd);

							/* ◇ＳＣ呼出実行（EKK0781A010_料金グループ一意照会） */
							CAANMsg outCAANMsgEKK0781A010 = callSvcInter(handle, param, inMapEKK0781A010, fixedText);

							CAANMsg[] ekk0781a010OutList = outCAANMsgEKK0781A010.getCAANMsgList(EKK0781A010CBSMsg.EKK0781A010CBSMSG1LIST);

							if (ekk0781a010OutList != null && ekk0781a010OutList.length > 0) {
								for (int idx3 = 0; idx3 < ekk0781a010OutList.length; idx3++) {
									HashMap ekk0781a010Map = ekk0781a010OutList[idx3].getMsgData();

									// 料金グループコードに紐づく回復可能期間を設定
									kaihk_psb_prd = (String) ekk0781a010Map.get("kaihk_psb_prd");
								}
							}
						}
					}
				}
				// 補足：サービス契約番号:サービス契約内訳番号 は、1：多数なので、
				// サービス契約番号が被った際は、料金グループコードまでの取得をスキップし、
				// 毎ループ時に、サービス契約内訳番号をキーにサービス解約年月日を取得する。

				/* ◇上りマッピング処理（EKK0161A010_サービス契約内訳一意照会） */
				// リクエストパラメータを引数に上りマッピング処理メソッドを実行
				HashMap<String, Object> inMapEKK0161A010 = editInMsgEKK0161A010(param, (String) ekk0161B013Map.get("svc_kei_ucwk_no"), inputUnyoYmd);

				/* ◇ＳＣ呼出実行（EKK0161A010_サービス契約内訳一意照会） */
				CAANMsg outCAANMsgEKK0161A010 = callSvcInter(handle, param, inMapEKK0161A010, fixedText);

				CAANMsg[] ekk0161a010OutList = outCAANMsgEKK0161A010.getCAANMsgList(EKK0161A010CBSMsg.EKK0161A010CBSMSG1LIST);

				if (ekk0161a010OutList != null && ekk0161a010OutList.length > 0) {
					for (int idx4 = 0; idx4 < ekk0161a010OutList.length; idx4++) {
						HashMap ekk0161a010Map = ekk0161a010OutList[idx4].getMsgData();

						String svc_dsl_ymd = (String) ekk0161a010Map.get("svc_dsl_ymd");

						// サービス契約内訳.サービス解約年月日または、料金グループ.回復可能期間が未設定の場合、次ループへ
						if (StringUtils.isEmpty(svc_dsl_ymd) || StringUtils.isEmpty(kaihk_psb_prd)) {
							continue;
						}

						// 判定日の算出（サービス契約内訳.サービス解約年月日＋料金グループ.回復可能期間）
						String judgeYmd = JPCDateUtil.addDay(svc_dsl_ymd.toString(), Integer.parseInt(kaihk_psb_prd.toString()));

						if (!(JPCUtilCommon.isPastDate(judgeYmd, inputUnyoYmd, "0"))) {
							// 判定日 ＜ 運用年月日ではない場合、(電話番号に紐づくサービス契約内訳で、1つでも回復可能期間中があれば処理を終了)
							// 回復期間中と判定する
							return false;
						}
					}
				}
				// サービス契約番号を保存
				svc_kei_no = (String) ekk0161B013Map.get("svc_kei_no");
			}
		}
		// 電話番号に紐づく全サービス契約内訳が回復可能期間外の場合、true
		return true;
	}

	/**
	 * EKK0161B013_サービス契約内訳一覧照会（電話番号）
	 * サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 * 
	 * @param param リクエストパラメータ
	 * @return S/I上り情報
	 * @throws RequestParameterException
	 */
	public HashMap<String, Object> editInMsgEKK0161B013(IRequestParameterReadWrite param, String telno) throws RequestParameterException {
		CAANMsg template = new CAANMsg(EKK0161B013CBSMsg.class.getName());

		// nullマッピングを実施
		fillCAANMSGNullMapping(template, new EKK0161B013CBSMsg().getContents());

		// 共通部を設定
		editInMsgBasicCmn(param, template);

		// テンプレートID(SIFのID)
		template.set(EKK0161B013CBSMsg.TEMPLATEID, "EKK0161B013");

		// 機能コード
		template.set(EKK0161B013CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿電話番号
		template.set(EKK0161B013CBSMsg.KEY_TELNO, convBlankToNull(telno));

		// 上り情報を生成
		return editInMsgCmn(param, template);
	}

	/**
	 * EKK0081A010_サービス契約一意照会
	 * サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 * 
	 * @param param リクエストパラメータ
	 * @return S/I上り情報
	 * @throws RequestParameterException
	 */
	public HashMap<String, Object> editInMsgEKK0081A010(IRequestParameterReadWrite param, String svc_kei_no, String unyoYmd) throws RequestParameterException {
		CAANMsg template = new CAANMsg(EKK0081A010CBSMsg.class.getName());

		// nullマッピングを実施
		fillCAANMSGNullMapping(template, new EKK0081A010CBSMsg().getContents());

		// 共通部を設定
		editInMsgBasicCmn(param, template);

		// テンプレートID(SIFのID)
		template.set(EKK0081A010CBSMsg.TEMPLATEID, "EKK0081A010");

		// 機能コード
		template.set(EKK0081A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_2);

		// ＫＥＹ＿サービス契約番号
		template.set(EKK0081A010CBSMsg.KEY_SVC_KEI_NO, convBlankToNull(svc_kei_no));
		// ＫＥＹ＿予約適用年月日
		template.set(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD, convBlankToNull(unyoYmd));

		// 上り情報を生成
		return editInMsgCmn(param, template);
	}

	
	/**
	 * EKK0081A010_サービス契約一意照会
	 * サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 * 
	 * @param param リクエストパラメータ
	 * @return S/I上り情報
	 * @throws RequestParameterException
	 */
	public HashMap<String, Object> editInMsgEKK0781A010(IRequestParameterReadWrite param, String prcGrpCd, String unyoYmd) throws RequestParameterException {
		CAANMsg template = new CAANMsg(EKK0781A010CBSMsg.class.getName());

		// nullマッピングを実施
		fillCAANMSGNullMapping(template, new EKK0781A010CBSMsg().getContents());

		// 共通部を設定
		editInMsgBasicCmn(param, template);

		// テンプレートID(SIFのID)
		template.set(EKK0781A010CBSMsg.TEMPLATEID, "EKK0781A010");

		// 機能コード
		template.set(EKK0781A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_2);

		// ＫＥＹ＿料金グループコード
		template.set(EKK0781A010CBSMsg.KEY_PRC_GRP_CD, convBlankToNull(prcGrpCd));
		// ＫＥＹ＿予約適用年月日
		template.set(EKK0781A010CBSMsg.KEY_RSV_APLY_YMD, convBlankToNull(unyoYmd));

		// 上り情報を生成
		return editInMsgCmn(param, template);
	}

	/**
	 * EKK0161A010_サービス契約内訳一意照会
	 * サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 * 
	 * @param param リクエストパラメータ
	 * @return S/I上り情報
	 * @throws RequestParameterException
	 */
	public HashMap<String, Object> editInMsgEKK0161A010(IRequestParameterReadWrite param, String svc_kei_ucwk_no, String unyoYmd) throws RequestParameterException {
		CAANMsg template = new CAANMsg(EKK0161A010CBSMsg.class.getName());

		// nullマッピングを実施
		fillCAANMSGNullMapping(template, new EKK0161A010CBSMsg().getContents());

		// 共通部を設定
		editInMsgBasicCmn(param, template);

		// テンプレートID(SIFのID)
		template.set(EKK0161A010CBSMsg.TEMPLATEID, "EKK0161A010");

		// 機能コード
		template.set(EKK0161A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_2);

		// ＫＥＹ＿サービス契約内訳番号
		template.set(EKK0161A010CBSMsg.KEY_SVC_KEI_UCWK_NO, convBlankToNull(svc_kei_ucwk_no));
		// ＫＥＹ＿予約適用年月日
		template.set(EKK0161A010CBSMsg.KEY_RSV_APLY_YMD, convBlankToNull(unyoYmd));

		// 上り情報を生成
		return editInMsgCmn(param, template);
	}

	
	/**
	 * EZM0121C010:電話番号変更の呼び出しを行います。 <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws Exception
	 */
	private void callEZM0121C010(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String funcCd, CAANMsg outMapEZM0121A010, String ezm0121C010_updFlg) throws Throwable {

		// SC呼び出し用
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		// パラメータマップ用
		HashMap<String, Object> paramMap = setSCInputCommonData(param, new HashMap<String, Object>());
		// SC結果格納用
		Map<?, ?> result = null;
		// マッピング用
		CAANMsg template = null;

		// 電話番号変更
		template = editInEZM0121C010Msg(param, fixedText, funcCd, outMapEZM0121A010, ezm0121C010_updFlg); // 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
		editOutMsg(result, param, fixedText); // 下りマッピング
		checkReturnCode(param);
	}

	/**
	 * 電話番号変更の上りマッピング処理を行います。 <br>
	 * 
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param funcCd 業務コード
	 * @param outMapEZM0121A010 電話番号一意照会取得値
	 * @param ezm0121C010_updFlg 更新フラグ
	 * @return テンプレート
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public CAANMsg editInEZM0121C010Msg(IRequestParameterReadWrite param, String fixedText, String funcCd, CAANMsg outMapEZM0121A010, String ezm0121C010_updFlg) throws RequestParameterException {
		CAANMsg template = new CAANMsg(EZM0121C010CBSMsg.class.getName());

		// マッピング情報
		HashMap<String, Object> inMap = (HashMap<String, Object>) param.getData(fixedText);
		// テンプレートID
		template.set(EZM0121C010CBSMsg.TEMPLATEID, "EZM0121C010");
		// 機能コード
		template.set(EZM0121C010CBSMsg.FUNC_CODE, funcCd);
		// 上りマッピング共通項目
		editInMsgBasicCmn(param, template);

		// EZM0121A010　一意照会で取得した項目を設定する

		// ＫＥＹ＿電話番号
		String key_telno = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.TELNO);

		// 局番
		String kyoku_no = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.KYOKU_NO);
		// 番号コード
		String no_cd = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.NO_CD);
		// 割当通信事業者コード
		String wariate_tsjgs_cd = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.WARIATE_TSJGS_CD);
		// 使用通信事業者コード
		String use_tsjgs_cd = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.USE_TSJGS_CD);
		// サービス区分
		String svc_div = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.SVC_DIV);
		// 引当制約種別コード
		String hkat_siyk_sbt_cd = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.HKAT_SIYK_SBT_CD);
		// 引当制約設定年月日時分秒
		String hkat_siyk_set_dtm = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.HKAT_SIYK_SET_DTM);
		// 電話番号説明
		String tln_setmei = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.TLN_SETMEI);
		// C5サーバ号機識別コード
		String c5_server_goki_skbt_cd = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.C5_SERVER_GOKI_SKBT_CD);
		// 電話番号適用開始年月日
		String telno_tstaymd = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.TELNO_TSTAYMD);
		// 電話番号適用終了年月日
		String telno_tendymd = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.TELNO_TENDYMD);
		// NRN番号
		String nrn_no = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.NRN_NO);
		// 初回割当年月日
		String first_wariate_ymd = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.FIRST_WARIATE_YMD);
		// 初期個人法人電話番号帯コード
		String shk_kojin_hojin_tln_tai_cd = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.SHK_KOJIN_HOJIN_TLN_TAI_CD);
		// 電話番号取得通信事業者コード
		String tln_stku_tsjgs_cd = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.TLN_STKU_TSJGS_CD);

		// 更新前最終年月日時分秒
		String telno_last_upd_dtm_bf = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.UPD_DTM);

		// 個人法人電話番号帯コード
		String kojin_hojin_tln_tai_cd = "";
		// 移転元通信事業者コード
		String itnm_tsjgs_cd = "";
		// 移転先通信事業者コード
		String itns_tsjgs_cd = "";

		if ("1".equals(ezm0121C010_updFlg)) {
			// 更新フラグが1の場合、個人法人番号帯コードの更新をしない。
			kojin_hojin_tln_tai_cd = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.KOJIN_HOJIN_TLN_TAI_CD);

			// 移転元通信事業者コード 呼出元で設定されている前提 設定されてない場合は、関連チェック(番号コード：0ABJコード時、値なし)にてエラーとなる
			itnm_tsjgs_cd = (String) inMap.get("zm0121_itnm_tsjgs_cd");

			// 移転先通信事業者コード 呼出元で設定されている前提 設定されてない場合は、関連チェック(番号コード：0ABJコード時、値なし)にてエラーとなる
			itns_tsjgs_cd = (String) inMap.get("zm0121_itns_tsjgs_cd");
		}

		// 電話番号
		if (StringUtils.isEmpty(key_telno)) {
			template.setNull(EZM0121C010CBSMsg.TELNO);
		}
		else {
			template.set(EZM0121C010CBSMsg.TELNO, key_telno);
		}

		// 局番
		if (StringUtils.isEmpty(kyoku_no)) {
			template.setNull(EZM0121C010CBSMsg.KYOKU_NO);
		}
		else {
			template.set(EZM0121C010CBSMsg.KYOKU_NO, kyoku_no);
		}

		// 番号コード
		if (StringUtils.isEmpty(no_cd)) {
			template.setNull(EZM0121C010CBSMsg.NO_CD);
		}
		else {
			template.set(EZM0121C010CBSMsg.NO_CD, no_cd);
		}

		// 割当通信事業者コード
		if (StringUtils.isEmpty(wariate_tsjgs_cd)) {
			template.setNull(EZM0121C010CBSMsg.WARIATE_TSJGS_CD);
		}
		else {
			template.set(EZM0121C010CBSMsg.WARIATE_TSJGS_CD, wariate_tsjgs_cd);
		}

		// 使用通信事業者コード
		if (StringUtils.isEmpty(use_tsjgs_cd)) {
			template.setNull(EZM0121C010CBSMsg.USE_TSJGS_CD);
		}
		else {
			template.set(EZM0121C010CBSMsg.USE_TSJGS_CD, use_tsjgs_cd);
		}

		// サービス区分
		if (StringUtils.isEmpty(svc_div)) {
			template.setNull(EZM0121C010CBSMsg.SVC_DIV);
		}
		else {
			template.set(EZM0121C010CBSMsg.SVC_DIV, svc_div);
		}

		// 引当制約種別コード
		if (StringUtils.isEmpty(hkat_siyk_sbt_cd)) {
			template.setNull(EZM0121C010CBSMsg.HKAT_SIYK_SBT_CD);
		}
		else {
			template.set(EZM0121C010CBSMsg.HKAT_SIYK_SBT_CD, hkat_siyk_sbt_cd);
		}

		// 引当制約設定年月日時分秒
		if (StringUtils.isEmpty(hkat_siyk_set_dtm)) {
			template.setNull(EZM0121C010CBSMsg.HKAT_SIYK_SET_DTM);
		}
		else {
			template.set(EZM0121C010CBSMsg.HKAT_SIYK_SET_DTM, hkat_siyk_set_dtm);
		}

		// 電話番号説明
		if (StringUtils.isEmpty(tln_setmei)) {
			template.setNull(EZM0121C010CBSMsg.TLN_SETMEI);
		}
		else {
			template.set(EZM0121C010CBSMsg.TLN_SETMEI, tln_setmei);
		}

		// 個人法人電話番号帯コード
		if (StringUtils.isEmpty(kojin_hojin_tln_tai_cd)) {
			template.setNull(EZM0121C010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD);
		}
		else {
			template.set(EZM0121C010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, kojin_hojin_tln_tai_cd);
		}

		// C5サーバ号機識別コード
		if (StringUtils.isEmpty(c5_server_goki_skbt_cd)) {
			template.setNull(EZM0121C010CBSMsg.C5_SERVER_GOKI_SKBT_CD);
		}
		else {
			template.set(EZM0121C010CBSMsg.C5_SERVER_GOKI_SKBT_CD, c5_server_goki_skbt_cd);
		}

		// 電話番号適用開始年月日
		if (StringUtils.isEmpty(telno_tstaymd)) {
			template.setNull(EZM0121C010CBSMsg.TELNO_TSTAYMD);
		}
		else {
			template.set(EZM0121C010CBSMsg.TELNO_TSTAYMD, telno_tstaymd);
		}

		// 電話番号適用終了年月日
		if (StringUtils.isEmpty(telno_tendymd)) {
			template.setNull(EZM0121C010CBSMsg.TELNO_TENDYMD);
		}
		else {
			template.set(EZM0121C010CBSMsg.TELNO_TENDYMD, telno_tendymd);
		}

		// NRN番号
		if (StringUtils.isEmpty(nrn_no)) {
			template.setNull(EZM0121C010CBSMsg.NRN_NO);
		}
		else {
			template.set(EZM0121C010CBSMsg.NRN_NO, nrn_no);
		}

		// 初回割当年月日
		if (StringUtils.isEmpty(first_wariate_ymd)) {
			template.setNull(EZM0121C010CBSMsg.FIRST_WARIATE_YMD);
		}
		else {
			template.set(EZM0121C010CBSMsg.FIRST_WARIATE_YMD, first_wariate_ymd);
		}

		// 初期個人法人電話番号帯コード
		if (StringUtils.isEmpty(shk_kojin_hojin_tln_tai_cd)) {
			template.setNull(EZM0121C010CBSMsg.SHK_KOJIN_HOJIN_TLN_TAI_CD);
		}
		else {
			template.set(EZM0121C010CBSMsg.SHK_KOJIN_HOJIN_TLN_TAI_CD, shk_kojin_hojin_tln_tai_cd);
		}

		// 電話番号取得通信事業者コード
		if (StringUtils.isEmpty(tln_stku_tsjgs_cd)) {
			template.setNull(EZM0121C010CBSMsg.TLN_STKU_TSJGS_CD);
		}
		else {
			template.set(EZM0121C010CBSMsg.TLN_STKU_TSJGS_CD, tln_stku_tsjgs_cd);
		}

		// 移転元通信事業者コード
		if (StringUtils.isEmpty(itnm_tsjgs_cd)) {
			template.setNull(EZM0121C010CBSMsg.ITNM_TSJGS_CD);
		}
		else {
			template.set(EZM0121C010CBSMsg.ITNM_TSJGS_CD, itnm_tsjgs_cd);
		}

		// 移転先通信事業者コード
		if (StringUtils.isEmpty(itns_tsjgs_cd)) {
			template.setNull(EZM0121C010CBSMsg.ITNS_TSJGS_CD);
		}
		else {
			template.set(EZM0121C010CBSMsg.ITNS_TSJGS_CD, itns_tsjgs_cd);
		}

		// 更新前最終年月日時分秒
		if (StringUtils.isEmpty(telno_last_upd_dtm_bf)) {
			template.setNull(EZM0121C010CBSMsg.LAST_UPD_DTM_BF);
		}
		else {
			template.set(EZM0121C010CBSMsg.LAST_UPD_DTM_BF, telno_last_upd_dtm_bf);
		}

		return template;
	}

	
	/**
	 * 下りマッピング共通処理を行います。 <br>
	 * 
	 * @param result SC結果
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public void editOutMsg(Map<?, ?> result, IRequestParameterReadWrite param, String fixedText) throws Exception {
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) result.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = result.get(JCMConstants.RET_CD_INT_KEY);

		// エラー情報の設定
		editErrInfoCommon(param, template, (Integer) returnCode, fixedText);

		// エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>) param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null) {
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(result, errList));
	}

	/**
	 * エラー情報マッピング処理(共通)を行います。 <br>
	 * 
	 * @param param リクエストパラメータ
	 * @param template テンプレート
	 * @param returnCode SC実行結果コード
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void editErrInfoCommon(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText) throws RequestParameterException {

		int templateStatus = template.getInt(JCMConstants.STATUS_INT_KEY);
		if (returnCode != 0) {
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + String.format(RETURN_MESSAGE_FORMAT, templateStatus)) == null) {
			templateStatus = 0;
		}

		int bpStatus = 0;
		bpStatus = getReturnCode2(param);

		if (templateStatus > bpStatus) {
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format(RETURN_MESSAGE_FORMAT, templateStatus);
			String message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

		HashMap inMap = null;

		// ユーザデータ情報
		inMap = (HashMap) param.getData(fixedText);

		HashMap map = template.getHashMap();
		Iterator it = map.keySet().iterator();
		while (it.hasNext()) {
			String key = (String) it.next();
			if (key.endsWith("_err")) {
				int keyIdx = key.lastIndexOf("_err");
				if (inMap.containsKey(key.substring(0, keyIdx))) {
					inMap.put(key, map.get(key));
				}
			}
		}
	}

	/**
	 * 条件部の共通する項目の設定する
	 * 
	 * @param param リクエストパラメータ
	 * @param template template 条件の設定先
	 * @throws RequestParameterException
	 */
	public void editInMsgBasicCmn(IRequestParameterReadOnly param, CAANMsg template) throws RequestParameterException {

		// オペレータ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);
	}

	/**
	 * 持ちうるフィールドにNullマッピングで埋める
	 * 
	 * @param msg 対象クラス
	 * @param contents 対応クラスのフィールド列挙
	 */
	public void fillCAANMSGNullMapping(CAANMsg msg, Object[][] contents) {
		// 要素ごとのループ
		for (int i = 0; i < contents.length; i++) {
			Object element = null;
			// キーに該当する箇所の取得
			element = contents[i][0];
			// Nullでマッピング
			msg.setNull((String) element);
		}
	}

	/**
	 * 文字列が空文字ならnullに変換する
	 * 
	 * @param value 判定する文字列
	 * @return 変換後文字列
	 */
	public String convBlankToNull(String value) {
		return JKKSvcConst.STRING_BLANK.equals(value) ? null : value;
	}
	
	/**
	 * サービスI/F実行用の上り情報を生成する
	 * 
	 * @param param リクエストパラメータ
	 * @param template 条件の設定先
	 * @return S/I上り情報
	 * @throws RequestParameterException
	 * @exception RequestParameterException
	 */
	public HashMap<String, Object> editInMsgCmn(IRequestParameterReadOnly param, CAANMsg template) 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));

		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;

	}

	/**
	 * サービスインターフェース呼び出し処理です。 <br>
	 * 
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param siInMap サービスインターフェースの入力マップ
	 * @return 業務データ
	 * @throws Throwable
	 */
	private CAANMsg callSvcInter(SessionHandle handle, IRequestParameterReadWrite param, HashMap<String, Object> siInMap, String fixedText) throws Throwable {
		// サービスI/F実行するサービスを生成
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		// サービスインターフェースの呼び出し
		Map<?, ?> rsltMap = scCall.run(siInMap, handle);
		// エラーマッピング処理
		editResultRP(rsltMap, param, fixedText);
		// エラーチェック処理
		errChk(rsltMap);
		// 業務データ取得処理
		CAANMsg workData = getWorkCAANMsg(rsltMap);

		return workData;
	}

	
	/**
	 * <pre>
	 * サービスコンポーネント実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
	 * 
	 * </pre>
	 * 
	 * @param msgList CAANMsgクラス
	 * @param param 業務データ取得・書込用I/F
	 * @param fixedText ユーザ任意文字列
	 * @return 業務データ取得・書込用I/F
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Throwable {

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Integer returnCode = (Integer) msgList.get(JCMConstants.RET_CD_INT_KEY);

		// テンプレートID、ステータス取得
		String templateId = template.getString(JCMConstants.TEMPLATE_ID_KEY);
		int templateStatus = template.getInt(JCMConstants.STATUS_INT_KEY);

		if (returnCode.intValue() != 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);
		}

		/* ユーザデータ情報 */
		HashMap inMap = (HashMap) param.getData(fixedText);

		// ユーザデータ情報にエラー情報をマッピング
		// 項目の配列を取得
		Object[][] contents = getContents(templateId);
		// エラーIDをマッピング
		mappingErrId(inMap, template, contents);

		// 明細に対するマッピング処理
		// ※明細1のみ対応
		String msg1ListId = templateId + "CBSMsg1List";
		CAANMsg[] templateArray = template.getCAANMsgList(msg1ListId);
		if (templateArray != null) {
			ArrayList inList = (ArrayList) inMap.get(msg1ListId);
			if (inList == null) {
				inList = new ArrayList();
				inMap.put(msg1ListId, inList);
			}

			for (int i = 0; i < templateArray.length; i++) {
				if (i >= inList.size()) {
					inList.add(new HashMap());
				}

				HashMap childMap = (HashMap) inList.get(i);
				CAANMsg childTemplate = templateArray[i];

				Object[][] msg1ListContents = getContents(msg1ListId);

				mappingErrId(childMap, childTemplate, msg1ListContents);
			}
		}

		// エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>) param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null) {
			errList = new ArrayList<Object>();
		}

		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * エラーチェック処理です。 <br>
	 * 
	 * @param msgList サービスインタフェース実行結果
	 * @return void
	 * @throws SCCallException
	 */
	private void errChk(Map<?, ?> msgList) throws SCCallException {
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Integer returnCode = (Integer) msgList.get(JCMConstants.RET_CD_INT_KEY);

		// ステータス取得
		int templateStatus = template.getInt(JCMConstants.STATUS_INT_KEY);

		if ((0 != returnCode.intValue()) || (0 != templateStatus)) {
			String errMsg = JKKTelnoStatJudgeConstCC.ERR_MSG;
			throw new SCCallException(errMsg, String.valueOf(returnCode), templateStatus);
		}
	}

	/**
	 * 業務データの取得処理です。 <br>
	 * 
	 * @param workMapKey 業務データのマップキー
	 * @param rslt SVIFの実行結果データ
	 * @return 業務データ
	 */
	private CAANMsg getWorkCAANMsg(Map<?, ?> rslt) {
		CAANMsg[] templates = (CAANMsg[]) rslt.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];

		return parentTemplate;
	}
	
	/**
	 * 各S/IFが保持する項目の配列を取得する
	 * 
	 * @param templateId サービスIF_ID
	 * @return 項目の配列
	 */
	private Object[][] getContents(String templateId) {
		Object[][] contents = null;

		if ("EZM0121A010".equals(templateId)) {
			contents = new EZM0121A010CBSMsg().getContents();
		}
		else if ("EZM0121C010".equals(templateId)) {
			contents = new EZM0121C010CBSMsg().getContents();
		}
		else if ("EKK0161B013".equals(templateId)) {
			contents = new EKK0161B013CBSMsg().getContents();
		}
		else if ("EKK0081A010".equals(templateId)) {
			contents = new EKK0081A010CBSMsg().getContents();
		}
		else if ("EKK0781A010".equals(templateId)) {
			contents = new EKK0781A010CBSMsg().getContents();
		}
		else if ("EKK0161A010".equals(templateId)) {
			contents = new EKK0161A010CBSMsg().getContents();
		}
		return contents;
	}

	/**
	 * 各S/IFのエラーIDをマッピングする
	 * 
	 * @param inMap 入力マップ
	 * @param template サービスIFマップ
	 * @param contents サービスIFの項目配列
	 */
	@SuppressWarnings("unchecked")
	private void mappingErrId(HashMap inMap, CAANMsg template, Object[][] contents) {
		for (int i = 0; contents != null && i < contents.length; i++) {
			String element = null;
			element = (String) contents[i][0];
			if (element.endsWith("_err")) {
				if (!template.isNull(element)) {
					if (!inMap.containsKey(element)) {
						inMap.put(element, template.getString(element));
					}
				}
			}
		}
	}

	/**
	 * S/IFの実行結果から指定されたキーに該当する値を取得する
	 * 
	 * S/IFの実行結果から指定のキー(リスト)で取得できるメッセージリストを取得する。
	 * メッセージリストが空でなければ、先頭行のメッセージから指定のキー(値)に該当する値を取得し、返却する。
	 * 
	 * @param trgtNMsg 対象メッセージ
	 * @param listKey キー(リスト)
	 * @param valueKey キー(値)
	 * @return 値
	 */
	private String getRsltMsgListValue(CAANMsg trgtNMsg, String listKey, String valueKey) {
		String value = null;
		if (trgtNMsg != null) {
			CAANMsg[] rsltMsgList = trgtNMsg.getCAANMsgList(listKey);
			if (rsltMsgList != null && rsltMsgList.length > 0) {
				CAANMsg rsltMsg = rsltMsgList[0];
				value = rsltMsg.getString(valueKey);
			}
		}
		return value;
	}

	/**
	 * SCのリターンコードをチェックし、正常でない場合は例外を送出します。 <br>
	 * 
	 * @param param
	 *            リクエストパラメータ
	 * @throws CCException
	 * @throws RequestParameterException
	 */
	private void checkReturnCode(IRequestParameterReadWrite param) throws RequestParameterException, CCException {
		if (getReturnCode2(param) >= JPCModelConstant.SINGLEDATA_ERR) {
			// ステータスが単項目エラー以上であれば例外をスロー
			throw new CCException(SC_ERROR_STRING, new Exception());
		}
	}

	/**
	 * SCの実行ステータスの取得処理を行います。 <br>
	 * 
	 * @param param
	 *            リクエストパラメータ
	 * @return SCの実行ステータス
	 * @throws RequestParameterException
	 */
	private int getReturnCode2(IRequestParameterReadWrite param) throws RequestParameterException {
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null) {
			return -1;
		}
		else {
			return Integer.parseInt((String) param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}
	}
// ANK-4494-00-00 ADD END
	
}