/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom, 2011
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：JKKAddIpv6Info
 *   ソースファイル名：JKKAddIpv6Info.java
 *   作成者          ：FJ
 *   日付            ：2012年05月01日
 *＜機能概要＞
 *   ＩＰｖ６アドレスを登録する。
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v3.00       2012/05/01   FJ)今西     新規作成
 *   v3.01       2012/05/23   FJ)森本     【IT1-2012-0000489】ワーニング表示対応
 *   v3.02       2012/05/25   FJ)藤原     【IT1-2012-0000489】
 *                                          オプションISPの照査・照査締結S-IFでIPv6アドレスを設定するよう修正
 *                                          オプションISP登録時、サービス契約内訳番号を設定するよう修正
 *   v3.03       2012/05/30   FJ)藤原     【IT1-2012-0000543】SODCCに内訳番号と世代を渡すよう修正
 *   v3.04       2012/05/30   FJ)砂川     【TAI-2012-0000080】照査前に申込明細を採番させない事と未来日でも後続業務以来済にする修正
 *   v4.00       2012/10/18   FJ)清崎      [ANK-1223-00-00]進捗補足事項編集対応
 *   v4.01       2012/11/22   FJ)清崎      [TAI-2012-0000091]暫定ロジック修正対応
 *   v4.02       2013/01/08   FJ)土生      [TAI-2012-0000101]返却メッセージIDをエラーフラグに変更
 *   v5.00       2013/06/13   FJ)清崎     【LT-2013-0000012】進捗スキーマ異動年月日時分秒対応
 *   v6.00       2013/12/25   FJ)鈴木     【OM-2013-0004225】コース変更中のＳＯＤパラメータを修正
 *   v7.00       2014/01/06   FJ)出羽     【IT2-2013-0000903】IPv6オプション登録時にサービス提供中にする対応
 **********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.KKSV0486_KKSV0486OP;
import com.fujitsu.futurity.bp.custom.constant.KKSV0486_KKSV0486OP_AddIpv6Info;
import com.fujitsu.futurity.bp.custom.constant.KKSV0486_KKSV0486OP_AddIpv6Info_ido_rsn_list;
import com.fujitsu.futurity.bp.custom.constant.KKSV0486_KKSV0486OP_AddIpv6Info_ipv6ad_list;
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.JCMConstants;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.mapping.bp.common.TemplateErrorUtil;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;

import eo.common.constant.JPCModelConstant;
import eo.common.util.JKKStringUtil;
import eo.common.util.JPCUtilCommon;
import eo.ejb.cbs.cbsmsg.EKK0011D020CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0011D020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0021C060CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0021D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0161B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0161B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0321B002CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341B002CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341B002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0361A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0361A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0361C010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0361C030CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0361C040CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0361D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1091B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0111D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0481C010CBSMsg;
import eo.ejb.common.JCCModelCommon;

public class JKKAddIpv6Info extends AbstractCommonComponent
{
	/*********** クラスフィールド ******************/
	/** ----- 作業用クラスフィールド ----- **/
//	private String oPE_DATE = "";
	
	/** 予約適用年月日 */
	private static final String RSV_APLY_YMD = "20991231";	// 最大;
	
	/** ----- リクエスト・レスポンス パラメータ ----- **/
	/** 根元の要素 **/
	private static final String ADDIPV6INFO = KKSV0486_KKSV0486OP.ADDIPV6INFO;			// "ADDIPV6INFO";
	/** 機能コード */
	private static final String FUNC_CODE = "func_code";
	/** サービス契約番号 */
	private static final String SVC_KEI_NO = KKSV0486_KKSV0486OP_AddIpv6Info.SVC_KEI_NO;	// "svc_kei_no";
	/** 申込種別コード */
	private static final String MSKM_SBT_CD = KKSV0486_KKSV0486OP_AddIpv6Info.MSKM_SBT_CD;	// "mskm_sbt_cd";
	/** 運用年月日 */
	private static final String UNYO_YMD = KKSV0486_KKSV0486OP_AddIpv6Info.UNYO_YMD;		// UNYO_YMD;
	/** 運用年月日時分秒 */
	private static final String UNYO_DTM = KKSV0486_KKSV0486OP_AddIpv6Info.UNYO_DTM;		// "unyo_dtm";
	/** オプションサービスコード */
	private static final String OP_SVC_CD = KKSV0486_KKSV0486OP_AddIpv6Info.OP_SVC_CD;	// "op_svc_cd";
	/** SYSID */
	private static final String SYSID = KKSV0486_KKSV0486OP_AddIpv6Info.SYSID;			// "sysid";
	/** 異動区分 */
	private static final String IDO_DIV = KKSV0486_KKSV0486OP_AddIpv6Info.IDO_DIV;		// "ido_div";
	/** 親契約識別コード */
	private static final String OYA_KEI_SKBT_CD = KKSV0486_KKSV0486OP_AddIpv6Info.OYA_KEI_SKBT_CD;// "oya_kei_skbt_cd"
	/** 予約適用コード */
	private static final String RSV_APLY_CD = KKSV0486_KKSV0486OP_AddIpv6Info.RSV_APLY_CD;	// "rsv_aply_cd";
	/** 事務手数料自動適用要否 */
	private static final String RULE0059_AUTO_APLY = KKSV0486_KKSV0486OP_AddIpv6Info.RULE0059_AUTO_APLY;	// "rule0059_auto_aply";
	/** 請求契約番号 */
	private static final String SEIKY_KEI_NO = KKSV0486_KKSV0486OP_AddIpv6Info.SEIKY_KEI_NO;	// "seik_kei_no";
	/** 異動理由コード（リスト） */
	private static final String IDO_RSN_LIST = KKSV0486_KKSV0486OP_AddIpv6Info.IDO_RSN_LIST; // IDO_RSN_LIST
	/** 異動理由コード（リストの要素） */
	private static final String IDO_RSN_LIST_ELEMENT = KKSV0486_KKSV0486OP_AddIpv6Info_ido_rsn_list.IDO_RSN_CD;	//"ido_rsn_cd"
	// ▼異動理由メモのマッピング対応 Start
	/** 異動理由メモ（リスト） */
	private static final String IDO_RSN_MEMO_LIST = "ido_rsn_memo_list";
	/** 異動理由メモ（リストの要素） */
	private static final String IDO_RSN_MEMO_LIST_ELEMENT = "ido_rsn_memo";
	// ▲異動理由メモのマッピング対応 End
	/** コンシューマ営業用申込状態識別コード */
	private static final String CONSMBSN_MSKM_STAT_SKBT_CD = KKSV0486_KKSV0486OP_AddIpv6Info.CONSMBSN_MSKM_STAT_SKBT_CD;	// "consmbsn_mskm_stat_skbt_cd";
	/** 利用開始日（年）*/
	private static final String USE_STAYMD_YEAR = KKSV0486_KKSV0486OP_AddIpv6Info.USE_STAYMD_YEAR;	// "use_staymd_year";
	/** 利用開始日（月） */ 
	private static final String USE_STAYMD_MON = KKSV0486_KKSV0486OP_AddIpv6Info.USE_STAYMD_MON;	// "use_staymd_mon";
	/** 利用開始日（日） */
	private static final String USE_STAYMD_DAY = KKSV0486_KKSV0486OP_AddIpv6Info.USE_STAYMD_DAY;	// "use_staymd_day";
	/**ＩＰｖ６アドレス登録リスト */
	private static final String IPV6AD_LIST = KKSV0486_KKSV0486OP_AddIpv6Info.IPV6AD_LIST;	// "ipv6ad_list";
	/**ＩＰｖ６アドレス */
	private static final String IPV6_AD = KKSV0486_KKSV0486OP_AddIpv6Info_ipv6ad_list.IPV6_AD;	// "ipv6_ad";
	/** 中心局コード */
	private static final String CHUSKK_CD = KKSV0486_KKSV0486OP_AddIpv6Info_ipv6ad_list.CHUSKK_CD;	// "chuskk_cd";
	/** 使用回数 */
	private static final String USE_CNT = KKSV0486_KKSV0486OP_AddIpv6Info_ipv6ad_list.USE_CNT;	// "use_cnt";
	/** 更新前年月日時分秒 */
	private static final String UPD_DTM_BF = KKSV0486_KKSV0486OP_AddIpv6Info_ipv6ad_list.UPD_DTM_BF;	// "upd_dtm_bf";
	/** IPv6IPアドレス情報適用開始年月日 */
	private static final String IPV6_IP_AD_INFO_TSTAYMD = KKSV0486_KKSV0486OP_AddIpv6Info_ipv6ad_list.IPV6_IP_AD_INFO_TSTAYMD;	// "ipv6_ip_ad_info_tstaymd";
	/** 返却メッセージID */
	private static final String RTN_MSG_ID = KKSV0486_KKSV0486OP_AddIpv6Info.RTN_MSG_ID;	// "rtn_msg_id";
	/** サービス契約内訳番号 */
	private static final String SVC_KEI_UCWK_NO = "svc_kei_ucwk_no";
	/** 世代登録年月日時分秒（サービス契約内訳） */
	private static final String GENE_ADD_DTM_SVC_KEI_UCWK = "gene_add_dtm_svc_kei_ucwk";

	// v4.02 TAI-2012-0000101 2013/01/07 UPD START
	/** エラーフラグ */
	private static final String ERR_FLG = "err_flg";
	// v4.02 TAI-2012-0000101 2013/01/07 UPD END

//	/** ----- エイジング関連 ----- **/
//	/** エイジング種別コード */
//	private static final String AGING_SBT_CD = EZM0111D010CBSMsg.AGING_SBT_CD;		// "aging_sbt_cd";
//	/** エイジング対象値 */
//	private static final String AGING_TG_VALUE = EZM0111D010CBSMsg.AGING_TG_VALUE;	// "aging_tg_value";
	
//	/** ----- エイジング種別コード値 ----- */
//	/** 固定IP */
//	private static final String AGING_SBT_CD_IPV6 = "002";
	
	/** ----- ソート区分値 ----- */
	/** ソート区分値*/
	private static final String SORT_DIV = "2";
	

	/** ----- 進捗ステータスコード値 ----- */
	/** オプション情報申請中 */
	private static final String PRG_STAT_OPSINSEI = "5101";
	/** オプション設定完了 */
	private static final String PRG_STAT_OPSETEND = "5102";
	/** 進捗ステータス */
	private static final String PRG_STAT = EKK1091D010CBSMsg.PRG_STAT;			// "prg_stat";
	
	/** ----- サービス契約ステータス値 ----- */
	// TAI-2012-0000080 MOD START
	/** 受付済 */
	private static final String SVC_KEI_STAT_UKZ = "010";
	// TAI-2012-0000080 MOD END
	/** 照査済 */
	private static final String SVC_KEI_STAT_SSZ = "020";
	/** 締結済 */
	private static final String SVC_KEI_STAT_TKZ = "030";
	/** サービス提供中 */
	private static final String SVC_KEI_STAT_TKC = "100";
	/** サービス休止中 */
	private static final String SVC_KEI_STAT_STOP = "210";
	
	
	/** 料金コースコード：IPv6 */
	private static final String PCRS_CD_IPV6 = "B74";
	/** 料金プランコード：IPv6 */
	private static final String PCRS_PLAN_CD_IPV6 = "PB7401";

// 2014/01/06 [IT2-2013-0000903]IPv6オプション登録時にサービス提供中にする対応 ADD START
	/** 機器提供サービス契約ステータス：サービス提供中 */
	private static final String KKTK_SVC_KEI_STAT_TEIKYO = "100";
	/** 機器提供サービス契約ステータス：契約変更中 */
	private static final String KKTK_SVC_KEI_STAT_HENKO  = "110";

	/** 機器提供サービスコード：BBR */
	private static final String KKTK_SVC_CD_BBR = "C014";
	/** 機器提供サービスコード：eo光多機能ルーター */
	private static final String KKTK_SVC_CD_TAKINO = "C024";

	/** 料金コースコード：ｅｏ光無線ルーター（１００Ｍ）（レンタル） */
	private static final String PCRS_CD_WIRELESS_1 = "C22";
	/** 料金コースコード：ｅｏ光無線ルーター（１Ｇ）（レンタル） */
	private static final String PCRS_CD_WIRELESS_2 = "C23";
	/** 料金コースコード：ｅｏ光無線ルーター（１００Ｍ）（買取） */
	private static final String PCRS_CD_WIRELESS_3 = "C32";
	/** 料金コースコード：ｅｏ光無線ルーター（１Ｇ）（買取） */
	private static final String PCRS_CD_WIRELESS_4 = "C33";
// 2014/01/06 [IT2-2013-0000903]IPv6オプション登録時にサービス提供中にする対応 ADD END
	
	/** ----- スキーマID定数 ----- **/
	/** 申込明細照査・後続業務依頼 **/
	private static final String TEMPLATE_ID_EKK0021C060 = "EKK0021C060";
	/** サービス契約一意照会 **/
	private static final String TEMPLATE_ID_EKK0081A010 = "EKK0081A010";
	/** オプションサービス契約＜ISP＞一意照会 **/
	private static final String TEMPLATE_ID_EKK0361A010 = "EKK0361A010";
	/** 機器提供サービス一覧照会 **/
	private static final String TEMPLATE_ID_EKK0341B002 = "EKK0341B002";
	/** 課金先一覧照会 **/
	private static final String TEMPLATE_ID_EKK0321B002 = "EKK0321B002";
	/** オプションサービス契約＜ISP＞照査 */
	private static final String TEMPLATE_ID_EKK0361C010 = "EKK0361C010";
	/** オプションサービス契約＜ISP＞照査締結 **/
	private static final String TEMPLATE_ID_EKK0361C030 = "EKK0361C030";
	/** オプションサービス契約＜ISP＞開始 **/
	private static final String TEMPLATE_ID_EKK0361C040 = "EKK0361C040";
	/** オプションサービス契約＜ISP＞登録 **/
	private static final String TEMPLATE_ID_EKK0361D010 = "EKK0361D010";
	/** エイジング登録 **/
//	private static final String TEMPLATE_ID_EZM0111D010 = "EZM0111D010";
	/** 申込内容承認登録 **/
	private static final String TEMPLATE_ID_EKK0011D020 = "EKK0011D020";
	/** 進捗登録 **/
	private static final String TEMPLATE_ID_EKK1091D010 = "EKK1091D010";
	/** 申込明細登録 **/
//	private static final String TEMPLATE_ID_EKK0021D010 = "EKK0021D010";
	private static final String TEMPLATE_ID_EZM0481C010 = "EZM0481C010";
	/** サービス契約内訳(予約の最新とカレント)一覧照会 **/
	private static final String TEMPLATE_ID_EKK0161B001 = "EKK0161B001";
// 2013/06/13 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD START
	/** 進捗一覧照会 **/
	private static final String TEMPLATE_ID_EKK1091B001 = "EKK1091B001";
// 2013/06/13 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD END
	
	/** 排他制御用更新日時 */
	private static final String EX_SVC_UPD_DTM = "ex_svc_upd_dtm";
	/** 排他制御用更新日時 */
	private static final String EX_MSKM_UPD_DTM = "ex_mskm_upd_dtm";

	// 2012/10/18 [ANK-1223-00-00]進捗補足事項編集対応 ADD START
	/** 進捗特記事項１：マルチセッション情報登録 */
	private static final String PRG_TKJK_1_VAL_IPV6_INFO_ADD = "ＩＰｖ６情報登録";
	// 2012/10/18 [ANK-1223-00-00]進捗補足事項編集対応 ADD END
	
// 2013/06/13 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD START
	/** 異動区分：新規契約 */
	private static final String IDO_DIV_SINKI = "00001";

	/** 異動区分：サービス追加 */
	private static final String IDO_DIV_TSUIKA = "00002";

// 2013/06/13 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD END

	
// 2013.12.22 OM-2013-0004225 add start
	private static final String CRSHN = "CRSHN";
// 2013.12.22 OM-2013-0004225 add end
	
	/**
	 * ＩＰｖ６アドレスを登録する主処理<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @return 業務データ取得・書込用I/F
	 * @exception Exceptionがスローされます。
	 */
	public IRequestParameterReadWrite runAddIpv6ad(SessionHandle handle, 
			IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		int statusCode = 0;
		
		// リクエストパラメータ情報取得
		HashMap<String, Object> inHash = analyzeRequestParam(param);
		
		//メイン処理の実行
		statusCode = mainProc(handle, param, inHash, fixedText);
		
		if(statusCode != 0){
			throw new CCException("", new SCCallException("", String.valueOf(statusCode), statusCode));
		}
		
		//リターンコードの設定
		param.setControlMapData(SCControlMapKeys.RETURN_CODE, String.valueOf(statusCode));
		
		//処理終了
		return param;
		
	}
	
	
	
	/**
	 * メイン処理
	 * 
	 * @param handle
	 *            セッションマネージャなどを持ったハンドル
	 * @param param
	 *            モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param requestParam
	 *            リクエストパラメータ
	 * @param fixedText
	 *            ユーザ任意文字列
	 * @return SIF呼び出し時のリターンコード
	 * @throws Throwable
	 *             ｓ
	 */
	@SuppressWarnings("unchecked")
	public int mainProc(SessionHandle handle, IRequestParameterReadWrite param, HashMap<String, Object> inHash,
			String fixedText) throws Throwable
	{
		
		HashMap<String, Object> resultHash = new HashMap<String, Object>();
		//サービス契約一意照会結果マップ
		HashMap<String, Object> eKK0081A010SCHash = null;
		//オプションサービス登録マップ
		HashMap<String, Object> eKK0361D010SCHash = null;
		//オプションサービス一意照会マップ
		HashMap<String, Object> eKK0361A010SCHash = null;
		//機器提供サービス契約一意照会マップ
		HashMap<String, Object> eKK0341B002SCHash = null;
		//サービス契約内訳(予約の最新とカレント)一覧照会マップ
		HashMap<String, Object> eKK0161B001SCHash = null;
		
		int statusCode  = 0;
		String svcKeiStat = null;
		// 運用年月日
		String unyoYmd = (String)inHash.get(UNYO_YMD);

		// 即時反映フラグ
		String useStaYmd =  getStrymd(inHash);
		boolean isSokuji = unyoYmd.equals(useStaYmd);
		
		String kkseizo_no = null;
		String str_kibo_ymd = null;
		// サービス契約内訳番号
		String svc_kei_ucwk_no = "";
		// 世代登録年月日時分秒（サービス契約内訳）
		String gene_add_dtm_svc_kei_ucwk = null;
		
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		//（１）サービス契約一意照会S-IF実行 EKK0081A010
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		statusCode = getEKK0081A010Map(handle, param, inHash, fixedText, resultHash);
		if(statusCode != 0)
		{
			return statusCode;
		}
		
		
		// 更新年月日
		setSvKeiExUpdDtm(inHash, resultHash, TEMPLATE_ID_EKK0081A010);
		
		//サービス契約一意照会結果取得
		eKK0081A010SCHash = (HashMap<String, Object>)resultHash.get(TEMPLATE_ID_EKK0081A010);
		
		//サービス契約ステータスの取得
		svcKeiStat = (String)eKK0081A010SCHash.get(EKK0081A010CBSMsg1List.SVC_KEI_STAT);
		
		/* 業務データ設定 */
		HashMap<String, Object> dataMap = (HashMap<String, Object>) param.getData(ADDIPV6INFO);
		
		// v4.02 TAI-2012-0000101 2013/01/07 UPD START
		dataMap.put( ERR_FLG ,"");
		// v4.02 TAI-2012-0000101 2013/01/07 UPD End
		
		// 休止中未来日チェック
		if (checkStopFuture(inHash, svcKeiStat))
		{
			// v4.02 TAI-2012-0000101 2013/01/07 UPD START
			// 返却メッセージIDの設定
			//dataMap.put(RTN_MSG_ID, "EKB5440-JW");
			dataMap.put( ERR_FLG ,"1");
			// v4.02 TAI-2012-0000101 2013/01/07 UPD End
			return statusCode;
		}
		
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		// （１−２）サービス契約内訳(予約の最新とカレント)一覧照会
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		statusCode = getEKK0161B001Map(handle, param, inHash, fixedText, resultHash);
		if(statusCode != 0)
		{
			return statusCode;
		}
		//サービス契約内訳(予約の最新とカレント)一覧照会結果取得
		eKK0161B001SCHash = (HashMap<String, Object>)resultHash.get(TEMPLATE_ID_EKK0161B001);
		
		if(eKK0161B001SCHash == null)
		{
			svc_kei_ucwk_no = "";
			gene_add_dtm_svc_kei_ucwk = "";
		}
		else
		{
			// サービス契約内訳番号の取得
			svc_kei_ucwk_no = (String)eKK0161B001SCHash.get(EKK0161B001CBSMsg1List.SVC_KEI_UCWK_NO);
			// 世代登録年月日時分秒（サービス契約内訳）の取得
			gene_add_dtm_svc_kei_ucwk = (String)eKK0161B001SCHash.get(EKK0161B001CBSMsg1List.GENE_ADD_DTM);
		}
		inHash.put(SVC_KEI_UCWK_NO, svc_kei_ucwk_no);
		inHash.put(GENE_ADD_DTM_SVC_KEI_UCWK, gene_add_dtm_svc_kei_ucwk);
		
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		//（２）機器提供サービス一覧照会S-IF実行 EKK0341B002
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		statusCode = getEKK0341B002Map(handle, param, inHash, fixedText, resultHash);
			//無の場合、エラーコード"EKB5440-JW"
		if(statusCode != 0)
		{
			return statusCode;
		}
		
		//機器提供サービス契約一意照会結果取得
// 2014/01/06 [IT2-2013-0000903]IPv6オプション登録時にサービス提供中にする対応 DEL START
//		eKK0341B002SCHash = (HashMap<String, Object>)resultHash.get(TEMPLATE_ID_EKK0341B002);
// 2014/01/06 [IT2-2013-0000903]IPv6オプション登録時にサービス提供中にする対応 DEL END
		
		// 対応ルーター有無チェック(このチェックはS-IFで吸収)  
//		if(eKK0341B002SCHash == null || eKK0341B002SCHash.isEmpty()){
//			//ルーターがない場合は登録不可のため、エラーメッセージを返却して終了
//			HashMap<String, Object> dataMap = (HashMap<String, Object>) param.getData(ADDIPV6INFO);
//			dataMap.put(RTN_MSG_ID, "EKB5440-JW");
//			return statusCode;
//		}
		//機器提供サービス契約ステータスの取得
//		svcKKStat = (String)eKK0341B002SCHash.get(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_STAT);
		
// 2014/01/06 [IT2-2013-0000903]IPv6オプション登録時にサービス提供中にする対応 DEL START
//		if(eKK0341B002SCHash == null)
//		{
//			kkseizo_no = null;
//		}
//		else
//		{
//			//機器製造番号コード名の取得
//			kkseizo_no = (String)eKK0341B002SCHash.get(EKK0341B002CBSMsg1List.KIKI_SEIZO_NO);
//		}
// 2014/01/06 [IT2-2013-0000903]IPv6オプション登録時にサービス提供中にする対応 DEL END

// 2014/01/06 [IT2-2013-0000903]IPv6オプション登録時にサービス提供中にする対応 ADD START

		// 「"C024":eo光多機能ルーター」を探す
		CAANMsg[] ucwkList = (CAANMsg[])resultHash.get(TEMPLATE_ID_EKK0341B002);
		if (ucwkList != null) {
			for (CAANMsg ucwkMsg : ucwkList) {
				if (KKTK_SVC_CD_TAKINO.equals(ucwkMsg.getString(EKK0341B002CBSMsg1List.KKTK_SVC_CD))
				  && (KKTK_SVC_KEI_STAT_TEIKYO.equals(ucwkMsg.getString(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_STAT))
				  || KKTK_SVC_KEI_STAT_HENKO.equals(ucwkMsg.getString(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_STAT)))) {
					kkseizo_no = ucwkMsg.getString(EKK0341B002CBSMsg1List.KIKI_SEIZO_NO);
					break;
				}
			}
			
			// 「"C024":eo光多機能ルーター」が見つからなかったときは「"C014":BBR」を探す
			if (kkseizo_no == null) {
				for (CAANMsg ucwkMsg : ucwkList) {
					if (KKTK_SVC_CD_BBR.equals(ucwkMsg.getString(EKK0341B002CBSMsg1List.KKTK_SVC_CD))
					  && (KKTK_SVC_KEI_STAT_TEIKYO.equals(ucwkMsg.getString(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_STAT))
					  || KKTK_SVC_KEI_STAT_HENKO.equals(ucwkMsg.getString(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_STAT)))){
	
						// 料金コースコードが無線ルーターか判定
						String pcrsCd = ucwkMsg.getString(EKK0341B002CBSMsg1List.PCRS_CD);
						if (PCRS_CD_WIRELESS_1.equals(pcrsCd) || PCRS_CD_WIRELESS_2.equals(pcrsCd)
						  || PCRS_CD_WIRELESS_3.equals(pcrsCd) || PCRS_CD_WIRELESS_4.equals(pcrsCd)) {
							kkseizo_no = ucwkMsg.getString(EKK0341B002CBSMsg1List.KIKI_SEIZO_NO);
							break;
						}
					}
				}
			}
		}
// 2014/01/06 [IT2-2013-0000903]IPv6オプション登録時にサービス提供中にする対応 ADD END

		
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		//（２）課金先一意照会S-IF実行 EKK0321B002
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		statusCode = getEKK0321B002Map(handle, param, inHash, fixedText, resultHash);
		
		if(statusCode != 0)
		{
			return statusCode;
		}
		
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		//（５）申込内容承認申請S-IF実行 EKK0011D020
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		
		// TAI-2012-0000080 MOD START
		if(isUketsukezumi(svcKeiStat))
		{
			// 申込明細番号の取得
			String mskmDtlNo = (String)eKK0081A010SCHash.get(EKK0081A010CBSMsg1List.MSKM_DTL_NO);
			HashMap kk0021Map = new HashMap();
			ArrayList ekk0011d020MsgList = new ArrayList();
			HashMap ekk0011d020Msg = new HashMap();
			kk0021Map.put(EKK0011D020CBSMsg1List.MSKM_DTL_NO, mskmDtlNo);
			ekk0011d020MsgList.add(kk0021Map);
			ekk0011d020Msg.put(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST, ekk0011d020MsgList);
			resultHash.put(TEMPLATE_ID_EKK0011D020, ekk0011d020Msg);
		}
		else
		{
			statusCode = getEKK0011D020Map(handle, param, inHash, fixedText, resultHash);
			
			if(statusCode != 0)
			{
				return statusCode;
			}

			// 更新年月日
			inHash.put(EX_MSKM_UPD_DTM, getUpdDtm(resultHash, TEMPLATE_ID_EKK0011D020));
		}
		// TAI-2012-0000080 MOD END

		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		//（６）オプションサービス契約＜ISP＞登録S-IF実行 EKK0361D010
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		// サービス契約ステータスがサービス提供中の場合且つIPv6アドレスが払い出されている場合
//		if (isCheckIP(inHash) && isTeikyo(svcKeiStat) && (kkseizo_no == null || !"".equals(kkseizo_no)) && isSokuji)
//		{
			// 利用開始希望年月日+1日
//			str_kibo_ymd = getStrymd(inHash);
//			if(!"".equals(str_kibo_ymd))
//			{
//				Calendar cl = Calendar.getInstance();
//				
//				
//				cl.set(Integer.parseInt(inHash.get(USE_STAYMD_YEAR).toString()), 
//						Integer.parseInt(inHash.get(USE_STAYMD_MON).toString()),
//						Integer.parseInt(inHash.get(USE_STAYMD_DAY).toString()));
//						
//				cl.add(Integer.parseInt(inHash.get(USE_STAYMD_DAY).toString()), +1);
//				Date tempedate = cl.getTime();
//				SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
//				str_kibo_ymd = sdf.format(tempedate);				
//				
//			}
//			inHash.put("kibo_ymd_af", str_kibo_ymd);
//		}
//		else
//		{
//			inHash.put("kibo_ymd_af", getStrymd(inHash));
//		}
		
		statusCode = getEKK0361D010Map(handle, param , inHash, fixedText, resultHash);

		HashMap<String, Object> errorInfoHash = (HashMap<String, Object>)resultHash.get("EKK0361D010");

		// ST1-2012-0000378 ADD START
		//機能コードが2(チェック)かつIPv6アドレスが未取得の場合
		if(JPCModelConstant.FUNC_CD_2.equals(inHash.get(FUNC_CODE)))
		{
			if(inHash == null || inHash.get(IPV6AD_LIST) == null || "".equals(inHash.get(IPV6AD_LIST)))
			{
				// 返却メッセージIDの設定
				// v4.02 TAI-2012-0000101 2013/01/07 UPD START
				// 返却メッセージIDの設定
				// dataMap.put(RTN_MSG_ID, "EKBC020--Q");
				dataMap.put( ERR_FLG ,"2");
				// v4.02 TAI-2012-0000101 2013/01/07 UPD End
				statusCode = 0;
			}
			else
			{
				ArrayList<HashMap> ipArray =  (ArrayList<HashMap>) inHash.get(IPV6AD_LIST);
				if(ipArray.size() == 0 || null == ipArray.get(0).get(IPV6_AD) || "".equals(ipArray.get(0).get(IPV6_AD)))
				{
					// v4.02 TAI-2012-0000101 2013/01/07 UPD START
					// 返却メッセージIDの設定
					// dataMap.put(RTN_MSG_ID, "EKBC020--Q");
					dataMap.put( ERR_FLG ,"2");
					// v4.02 TAI-2012-0000101 2013/01/07 UPD End
					statusCode = 0;
				}
			}
		}
		// ST1-2012-0000378 ADD END
		//機能コードが2(チェック)かつオプションサービスコードのエラーがWAの場合
		if(JPCModelConstant.FUNC_CD_2.equals(inHash.get(FUNC_CODE)) && "WA".equals(errorInfoHash.get("op_svc_cd_err")))
		{
			// v4.02 TAI-2012-0000101 2013/01/07 UPD START
			// 返却メッセージIDの設定
			// dataMap.put(RTN_MSG_ID, "EKB9390--Q");
			dataMap.put( ERR_FLG ,"3");
			// v4.02 TAI-2012-0000101 2013/01/07 UPD End
			
			statusCode = 0;
//▼IT1-2012-0000489 IT1故障対応
//		}
//		else if(JPCModelConstant.FUNC_CD_1.equals(inHash.get(FUNC_CODE)) && statusCode == 4 )
//		{
//		}else{
//			return statusCode;
//		}
		//機能コードが1(登録)かつオプションサービスコードのエラーがWAの場合
		}else if(JPCModelConstant.FUNC_CD_1.equals(inHash.get(FUNC_CODE)) && "WA".equals(errorInfoHash.get("op_svc_cd_err")))
		{
			//処理を続行する為何もしない
			
		}else if(statusCode != 0){
			return statusCode;
		}
//▲IT1-2012-0000489 IT1故障対応
		
		// 更新年月日
		setSvKeiExUpdDtm(inHash, resultHash, TEMPLATE_ID_EKK0361D010);

		
		
		//サービス契約のステータスが「締結済」の場合
		if (isTeiketsuzumi(svcKeiStat))
		{
			// （１０）オプションサービス契約＜ISP＞照査締結
			if(JPCModelConstant.FUNC_CD_1.equals(inHash.get(FUNC_CODE))){
				statusCode = getEKK0361C030Map(handle, param, inHash, fixedText, resultHash);
				if (statusCode != 0)
				{
					return statusCode;
				}
				// 更新年月日
				setSvKeiExUpdDtm(inHash, resultHash, TEMPLATE_ID_EKK0361C030);
			}
			
			// サービス契約ステータスがサービス提供中の場合且つIPv6アドレスが払い出されている場合
			if (isCheckIP(inHash) && isTeikyo(svcKeiStat)&& kkseizo_no != null && !"".equals(kkseizo_no))
			{
				if(JPCModelConstant.FUNC_CD_1.equals(inHash.get(FUNC_CODE))){
					// （１３）オプションサービス契約＜ISP＞開始
					statusCode = getEKK0361C040Map(handle, param, inHash, fixedText, resultHash);
					if (statusCode != 0)
					{
						return statusCode;
					}
	
					// 更新年月日
					setSvKeiExUpdDtm(inHash, resultHash, TEMPLATE_ID_EKK0361C040);

				}
			}
			
		}
		
		//サービス契約のステータスが「照査済」以降の場合
		else if (isShosazumi(svcKeiStat))
		{
			if(JPCModelConstant.FUNC_CD_1.equals(inHash.get(FUNC_CODE))){
				//（８）オプションサービス契約＜ISP＞照査
				statusCode = getEKK0361C010Map(handle, param, inHash, fixedText, resultHash);
				if(statusCode != 0)
				{
					return statusCode;
				}
				// 更新年月日
				setSvKeiExUpdDtm(inHash, resultHash, TEMPLATE_ID_EKK0361C010);
			}
		}
		
		// 払い出されたIPがあれば、マスタを更新する
		if (JPCModelConstant.FUNC_CD_1.equals(inHash.get(FUNC_CODE)) && isCheckIP(inHash)){
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			//（１４）ＩＰｖ６アドレスマスタ登録S-IF実行
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			statusCode = getEZM0481C010Map(handle, param, inHash, fixedText, resultHash);
			
			if(statusCode != 0)
			{
				return statusCode;
			}
		}
	
		if(!(isUketsukezumi(svcKeiStat))){

			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			// （１５）申込明細照査・後続業務依頼S-IF実行
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			if(JPCModelConstant.FUNC_CD_1.equals(inHash.get(FUNC_CODE))){
				statusCode = getEKK0021C060Map(handle, param, inHash, fixedText, resultHash);
				if(statusCode != 0)
				{
					return statusCode;
				}
			}

		}

// 2013/06/13 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD START
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		//（１６）進捗一覧照会S-IF実行
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋

		statusCode = getEKK1091B001Map(handle, param, inHash, fixedText, resultHash);
		
		if(statusCode != 0)
		{
			return statusCode;
		}
//2013/06/13 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD END	
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		//（１７）進捗登録S-IF実行
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
	
		if(JPCModelConstant.FUNC_CD_1.equals(inHash.get(FUNC_CODE))){
			// TODO オプションに変更する
			String opSvcStat = eKK0081A010SCHash.get(EKK0081A010CBSMsg1List.SVC_KEI_STAT).toString();
			// オプション設定完了(進捗登録の情報作成)
			
			if (isSokuji && SVC_KEI_STAT_TKC.equals(opSvcStat))
			{
				inHash.put(PRG_STAT, PRG_STAT_OPSETEND);
			}
			// オプション情報申請中(進捗登録の情報作成)
			else
			{
				inHash.put(PRG_STAT, PRG_STAT_OPSINSEI);
			}
			statusCode = getEKK1091D010Map(handle, param, inHash, fixedText, resultHash);
		
			if(statusCode != 0)
			{
				return statusCode;
			}
		}
		//オプションサービス契約番号がある場合のみ実行(SODCCに渡すパラメータを作成)
		eKK0361D010SCHash = (HashMap<String, Object>)resultHash.get(TEMPLATE_ID_EKK0361D010);
		if(eKK0361D010SCHash != null && eKK0361D010SCHash.containsKey(EKK0361D010CBSMsg.OP_SVC_KEI_NO)){
			//オプションサービス契約番号
			String op_svc_no = (String) eKK0361D010SCHash.get(EKK0361D010CBSMsg.OP_SVC_KEI_NO);
			if(op_svc_no == null || ("").equals(op_svc_no)){
				return statusCode;
			}
			//転記
			inHash.put(EKK0361D010CBSMsg.OP_SVC_KEI_NO, op_svc_no);
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			//オプションサービス契約一意照会S-IF実行
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			statusCode = getEKK0361A010Map(handle, param, inHash, fixedText, resultHash);
			
			if(statusCode != 0)
			{
				return statusCode;
			}
			
			//ＳＯＤＣＣ用のデータをマッピングする
			
			HashMap<String, Object> paramData = new HashMap<String, Object>();
			
			//--データの受け取り
			//受け渡されたパラメータを取得
			paramData = (HashMap<String, Object>)param.getData(ADDIPV6INFO);
			
			//オプションサービス契約照会結果を取得
			eKK0361A010SCHash = (HashMap<String, Object>)resultHash.get(TEMPLATE_ID_EKK0361A010);
			//オプションサービス契約世代登録年月日
			if(eKK0361A010SCHash != null && eKK0361A010SCHash.containsKey(EKK0361A010CBSMsg1List.GENE_ADD_DTM)){
				
				inHash.put("chgaf_gene_add_dtm", eKK0361A010SCHash.get(EKK0361A010CBSMsg1List.GENE_ADD_DTM));
			}
			
// 2013.12.22 OM-2013-0004225 add start
			// サービス契約内訳(予約の最新とカレント)一覧照会（コース変更のときは内訳２件）
			// コース変更後のサービス契約内訳番号、世代をＳＯＤのパラメータに設定する。
			statusCode = getEKK0161B001CrsHnSod(handle, param, inHash, fixedText, resultHash);
// 2013.12.22 OM-2013-0004225 add end
			
		}
		//リターンパラメータ情報取得
		returnSetParam(param, inHash);

		return statusCode;
		
		
	
	
	}
	
	/**
	 * @param param
	 * @param hash
	 * @param templateKey
	 */
	private void setSvKeiExUpdDtm(HashMap<String, Object> inHash, HashMap<String, Object> workMap, String templateKey)
	{
		String svKeiExUpdDtm = getUpdDtm(workMap, templateKey);
		if (svKeiExUpdDtm != null && !"".equals(svKeiExUpdDtm))
		{
			inHash.put(EX_SVC_UPD_DTM, svKeiExUpdDtm);
		}
	}
	

	/**
	 * @param obj
	 * @param key
	 * @return
	 */
	@SuppressWarnings("unchecked")
	private String getUpdDtm(HashMap<String, Object> obj, String key)
	{
		Map<String, Object> map = (HashMap<String, Object>)obj.get(key);
		if (TEMPLATE_ID_EKK0081A010.equals(key))
		{
			return (String)map.get("last_upd_dtm");
		}
		else
		{
			return (String)map.get("upd_dtm");
		}
	}
	
	/**
	 * 休止中未来日チェック。<br>
	 * <br>
	 * @param param (I) 業務データ取得用I/F
	 * @param fixedText (I) ユーザ定義文字列
	 * @param workMap (I) 作業用マップ
	 * @return True:エラー有りの場合
	 * @exception RequestParameterExceptionがスローされます。
	 */
	@SuppressWarnings("unchecked")
	private boolean checkStopFuture(HashMap<String, Object> inHash , String svc_stats)
	throws RequestParameterException
	{
		
		// 運用年月日取得
		String opedate = JCCBPCommon.getOpeDate(null);
		
		// 希望開始年月日
		String opsvc_statymd = getStrymd(inHash);
		
		if(SVC_KEI_STAT_STOP.equals(svc_stats))
		{
			// 日付が運用日付より未来日の場合はtrue
			if (JPCUtilCommon.isFutureDate(opsvc_statymd, opedate, "0")) 
			{
				return true;
			}
		}
			
		return false;
	}
	
	
	/**
	 * リターンパラメータをセットする
	 * 
	 * @param param
	 * @param paramHash
	 * @throws RequestParameterException
	 */
	@SuppressWarnings({ "unused", "unchecked" })
	private void returnSetParam(IRequestParameterReadWrite param, HashMap<String, Object> paramHash)
			throws RequestParameterException
	{
		// データの返却
		ArrayList<HashMap<String, Object>> inList = null;
		ArrayList<HashMap<String, Object>> outList = null;
		inList = (ArrayList<HashMap<String, Object>>)paramHash.get(IPV6AD_LIST);
		outList = (ArrayList<HashMap<String, Object>>)param.getData(IPV6AD_LIST);
		outList = inList;
		//IPv6登録CCマップに設定
		((HashMap<String, Object>) param.getData(ADDIPV6INFO)).put(EKK0361D010CBSMsg.OP_SVC_KEI_NO , paramHash.get(EKK0361D010CBSMsg.OP_SVC_KEI_NO));
		((HashMap<String, Object>) param.getData(ADDIPV6INFO)).put("chgaf_gene_add_dtm" , paramHash.get("chgaf_gene_add_dtm"));
		((HashMap<String, Object>) param.getData(ADDIPV6INFO)).put("svc_kei_ucwk_no" , paramHash.get(SVC_KEI_UCWK_NO));
		((HashMap<String, Object>) param.getData(ADDIPV6INFO)).put("svc_kei_ucwk_gene_add_dtm" , paramHash.get(GENE_ADD_DTM_SVC_KEI_UCWK));

// 2013.12.22 OM-2013-0004225 add start
		// コース変更時
		String svc_kei_ucwk_no_CrsHn = (String)paramHash.get(SVC_KEI_UCWK_NO + CRSHN);
		String gene_add_dtm_svc_kei_ucwk_CrsHn = (String)paramHash.get(GENE_ADD_DTM_SVC_KEI_UCWK + CRSHN);
// 2013.12.22 OM-2013-0004225 add end
		
		// TAI-2012-0000080 ADD START
		// SOD発行CCへのマッピング
		HashMap<String, Object> addIpv6Result;
		ArrayList<HashMap<String, Object>> trgt_data_list = null;
		String chgafGeneAddDtm = null;
		String opsvkeino = null;
		String geneAddDtmSvcKeiUcwk = null;
		String svcKeiUcwkNo = null;
		HashMap<String, Object> trgt_data = null;
		HashMap<String, Object> trgt_data_list_element = null;
		HashMap<String, Object> op_svc_kei_info = null;
		HashMap<String, Object> svc_kei_ucwk_info = null;
		
		//ＩＰｖ６アドレスの登録結果を取得
		addIpv6Result = (HashMap<String, Object>)param.getData("AddIpv6Info");  // ←ここは、「世代登録年月日時分秒」を出力してくれるCCまたはSCの名前
		if(addIpv6Result != null)
		{
			//世代登録年月日時分秒を取得
			chgafGeneAddDtm = (String)addIpv6Result.get("chgaf_gene_add_dtm");		// ←ここは、「世代登録年月日時分秒」の項目名英名
			//オプションサービス契約番号
			opsvkeino = (String)addIpv6Result.get("op_svc_kei_no");
			//世代登録年月日時分秒（サービス契約内訳）
			geneAddDtmSvcKeiUcwk = (String)addIpv6Result.get("svc_kei_ucwk_gene_add_dtm");
			//サービス契約内訳番号
			svcKeiUcwkNo = (String)addIpv6Result.get("svc_kei_ucwk_no");
			
			trgt_data = (HashMap<String, Object>)param.getData("HakkoSODCC");

			trgt_data_list = (ArrayList<HashMap<String,Object>>)trgt_data.get("trgt_data_list");
			
			if(trgt_data_list != null)
			{
				trgt_data_list_element = trgt_data_list.get(0);
			}
			
			if(trgt_data_list_element != null)
			{
				// オプションサービス契約情報
				op_svc_kei_info = (HashMap<String, Object>)trgt_data_list_element.get("opsvkei_info");
				// サービス契約内訳情報
				svc_kei_ucwk_info = (HashMap<String, Object>)trgt_data_list_element.get("svc_kei_ucwk_info");
			}
			
			if(op_svc_kei_info != null && null != chgafGeneAddDtm)
			{
				// 各種値の設定
				// 変更後オプションサービス契約世代登録年月日時分秒
				op_svc_kei_info.put("chaf_opsvkei_gene_add_dtm", chgafGeneAddDtm);
				// 変更後オプションサービス契約番号
				op_svc_kei_info.put("chaf_opsvkei_no", opsvkeino);
			}
			
			if(svc_kei_ucwk_info != null && null != geneAddDtmSvcKeiUcwk && null != svcKeiUcwkNo)
			{
				// 各種値の設定
		
// 2013.12.22 OM-2013-0004225 add start
				// コース変更中の場合、コース変更後の内訳番号、世代を設定する。
				if (!JKKStringUtil.isNullBlank(svc_kei_ucwk_no_CrsHn) &&
						!JKKStringUtil.isNullBlank(gene_add_dtm_svc_kei_ucwk_CrsHn)) {
					// 変更前サービス契約内訳世代登録年月日時分秒
					svc_kei_ucwk_info.put("chbf_svc_kei_ucwk_gene_add_dtm", gene_add_dtm_svc_kei_ucwk_CrsHn);
					// 変更後サービス契約内訳世代登録年月日時分秒
					svc_kei_ucwk_info.put("chaf_svc_kei_ucwk_gene_add_dtm", gene_add_dtm_svc_kei_ucwk_CrsHn);
					// サービス契約内訳番号
					svc_kei_ucwk_info.put("svc_kei_ucwk_no", svc_kei_ucwk_no_CrsHn);
				} else {
// 2013.12.22 OM-2013-0004225 add end
					// 変更前サービス契約内訳世代登録年月日時分秒
					svc_kei_ucwk_info.put("chbf_svc_kei_ucwk_gene_add_dtm", geneAddDtmSvcKeiUcwk);
					// 変更後サービス契約内訳世代登録年月日時分秒
					svc_kei_ucwk_info.put("chaf_svc_kei_ucwk_gene_add_dtm", geneAddDtmSvcKeiUcwk);
					// サービス契約内訳番号
					svc_kei_ucwk_info.put("svc_kei_ucwk_no", svcKeiUcwkNo);
				}
			}
			
			param.setData("trgt_data", trgt_data);
		}
		// TAI-2012-0000080 ADD END

	}

	
	/**
	 * リクエストパラメータの取得
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @return リクエストパラメータのHash
	 * @throws RequestParameterException 例外時にスローされます
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> analyzeRequestParam(IRequestParameterReadWrite param) 
	throws RequestParameterException
	{
		
		HashMap<String, Object> paramData = null;
		HashMap<String, Object> rootData = null;
		ArrayList idoRsnList = null;
		ArrayList idoRsnMemoList = null;
		ArrayList paramIdoRsnList = null;
		HashMap paramIdoRsnElement = null;

		paramData = new HashMap<String, Object>();
		idoRsnList = new ArrayList<String>();
		idoRsnMemoList = new ArrayList<String>();
		
		//--データの受け取り
		//受け渡されたパラメータを取得
		rootData = (HashMap<String, Object>)param.getData(ADDIPV6INFO);
		
		if(rootData != null && rootData.containsKey(FUNC_CODE)){
			paramData.put(FUNC_CODE, rootData.get(FUNC_CODE));
		}else{
			paramData.put(FUNC_CODE, new String());
		}
		if(rootData != null && rootData.containsKey(SVC_KEI_NO)){
			paramData.put(SVC_KEI_NO, rootData.get(SVC_KEI_NO));
		}else{
			paramData.put(SVC_KEI_NO, new String());
		}
		if(rootData != null && rootData.containsKey(MSKM_SBT_CD)){
			paramData.put(MSKM_SBT_CD, rootData.get(MSKM_SBT_CD));
		}else{
			paramData.put(MSKM_SBT_CD, new String());
		}
		
		if(rootData != null && rootData.containsKey(UNYO_YMD)){
			paramData.put(UNYO_YMD, rootData.get(UNYO_YMD));
		}else{
			paramData.put(UNYO_YMD, new String());
		}
		if(rootData != null && rootData.containsKey(UNYO_DTM)){
			paramData.put(UNYO_DTM, rootData.get(UNYO_DTM));
		}else{
			paramData.put(UNYO_DTM, new String());
		}
		
		if(rootData != null && rootData.containsKey(OP_SVC_CD)){
			paramData.put(OP_SVC_CD, rootData.get(OP_SVC_CD));
		}else{
			paramData.put(OP_SVC_CD, new String());
		}
		
		if(rootData != null && rootData.containsKey(SYSID)){
			paramData.put(SYSID, rootData.get(SYSID));
		}else{
			paramData.put(SYSID, new String());
		}
		
		if(rootData != null && rootData.containsKey(IDO_DIV)){
			paramData.put(IDO_DIV, rootData.get(IDO_DIV));
		}else{
			paramData.put(IDO_DIV, new String());
		}
		
		if(rootData != null && rootData.containsKey(OYA_KEI_SKBT_CD)){
			paramData.put(OYA_KEI_SKBT_CD, rootData.get(OYA_KEI_SKBT_CD));
		}else{
			paramData.put(OYA_KEI_SKBT_CD, new String());
		}
		
		if(rootData != null && rootData.containsKey(RSV_APLY_CD)){
			paramData.put(RSV_APLY_CD, rootData.get(RSV_APLY_CD));
		}else{
			paramData.put(RSV_APLY_CD, new String());
		}
		
		if(rootData != null && rootData.containsKey(USE_STAYMD_YEAR)){
			paramData.put(USE_STAYMD_YEAR, rootData.get(USE_STAYMD_YEAR));
		}else{
			paramData.put(USE_STAYMD_YEAR, new String());
		}	
		if(rootData != null && rootData.containsKey(USE_STAYMD_MON)){
			paramData.put(USE_STAYMD_MON, rootData.get(USE_STAYMD_MON));
		}else{
			paramData.put(USE_STAYMD_MON, new String());
		}	
		if(rootData != null && rootData.containsKey(USE_STAYMD_DAY)){
			paramData.put(USE_STAYMD_DAY, rootData.get(USE_STAYMD_DAY));
		}else{
			paramData.put(USE_STAYMD_DAY, new String());
		}
		
		if(rootData != null && rootData.containsKey(RULE0059_AUTO_APLY)){
			paramData.put(RULE0059_AUTO_APLY, rootData.get(RULE0059_AUTO_APLY));
		}else{
			paramData.put(RULE0059_AUTO_APLY, new String());
		}
		
		if(rootData != null && rootData.containsKey(SEIKY_KEI_NO)){
			paramData.put(SEIKY_KEI_NO, rootData.get(SEIKY_KEI_NO));
		}else{
			paramData.put(SEIKY_KEI_NO, new String());
		}
		
		if(rootData != null && rootData.containsKey(IPV6AD_LIST)){
			paramData.put(IPV6AD_LIST,rootData.get(IPV6AD_LIST));
		}else{
			paramData.put(IPV6AD_LIST, new ArrayList<String>());
		}
		
		if(rootData != null && rootData.containsKey(IDO_RSN_LIST)){
			paramIdoRsnList = (ArrayList)rootData.get(IDO_RSN_LIST);
		}else{
			paramData.put(IDO_RSN_LIST, new ArrayList<String>());
		}
		
		
		for(int i = 0 ; i < paramIdoRsnList.size() ; i++)
		{
			paramIdoRsnElement = (HashMap)paramIdoRsnList.get(i);
			idoRsnList.add(paramIdoRsnElement.get(IDO_RSN_LIST_ELEMENT));
			idoRsnMemoList.add(paramIdoRsnElement.get(IDO_RSN_MEMO_LIST_ELEMENT));
		}
		paramData.put(IDO_RSN_LIST,idoRsnList);
		paramData.put(IDO_RSN_MEMO_LIST, idoRsnMemoList);
		
		paramData.put(CONSMBSN_MSKM_STAT_SKBT_CD, String.valueOf("04"));
		
		return paramData;
	
	}
	
	/**
	 * サービス契約一意照会S-IF呼出処理。<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param 業務データ取得用I/F
	 * @param fixedText ユーザ定義文字列
	 * @param workMap 作業用マップ
	 * @return 業務データ取得・書込用I/F
	 * @throws Exception 
	 * @exception RequestParameterExceptionがスローされます。
	 */
	private int getEKK0081A010Map(SessionHandle handle, IRequestParameterReadWrite param, 
			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> workMap) throws Exception
	{
		/* ◇上りマッピング処理 */
		// 上りマッピングの処理結果を取得するためのマップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		paramMap = editEKK0081A010InMsg(param, inHash, workMap);

		/* ◇ＳＣ呼出実行 */
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, handle);
		
		/* ◇下りマッピング処理 */
		workMap.put(TEMPLATE_ID_EKK0081A010, editEKK0081A010ResultRP(result, param, fixedText));
		
		
		// エラーチェック処理
		return errChk(result);
	}
	
	/**
	 * サービス契約内訳（予約の最新とカレント）一覧照会S-IF呼出処理。<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param 業務データ取得用I/F
	 * @param fixedText ユーザ定義文字列
	 * @param workMap 作業用マップ
	 * @return 業務データ取得・書込用I/F
	 * @throws Exception 
	 * @exception RequestParameterExceptionがスローされます。
	 */
	private int getEKK0161B001Map(SessionHandle handle, IRequestParameterReadWrite param, 
			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> workMap) throws Exception
	{
		/* ◇上りマッピング処理 */
		// 上りマッピングの処理結果を取得するためのマップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		paramMap = editEKK0161B001InMsg(param, inHash, workMap);
		
		/* ◇ＳＣ呼出実行 */
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, handle);
		
		/* ◇下りマッピング処理 */
		workMap.put(TEMPLATE_ID_EKK0161B001, editEKK0161B001ResultRP(result, param, fixedText));
		
		// エラーチェック処理
		return errChk(result);
	}
	
	/**
	 * サービス契約一意照会S-IF呼出処理。<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param 業務データ取得用I/F
	 * @param fixedText ユーザ定義文字列
	 * @param workMap 作業用マップ
	 * @return 業務データ取得・書込用I/F
	 * @throws Exception 
	 * @exception RequestParameterExceptionがスローされます。
	 */
	private int getEKK0341B002Map(SessionHandle handle, IRequestParameterReadWrite param, 
			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> workMap) throws Exception
	{
		/* ◇上りマッピング処理 */
		// 上りマッピングの処理結果を取得するためのマップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		paramMap = editEKK0341B002InMsg(param, inHash, workMap);

		/* ◇ＳＣ呼出実行 */
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, handle);
		
		/* ◇下りマッピング処理 */
// 2014/01/06 [IT2-2013-0000903]IPv6オプション登録時にサービス提供中にする対応 MOD START
//		workMap.put(TEMPLATE_ID_EKK0341B002, editEKK0341B002ResultRP(result, param, fixedText));
		workMap.put(TEMPLATE_ID_EKK0341B002, editEKK0341B002ResultRP_List(result, param, fixedText));
// 2014/01/06 [IT2-2013-0000903]IPv6オプション登録時にサービス提供中にする対応 MOD END
		
		// エラーチェック処理
		return errChk(result);
	}
	
	/**
	 * 課金先一覧照会S-IF呼出処理。<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param 業務データ取得用I/F
	 * @param fixedText ユーザ定義文字列
	 * @param workMap 作業用マップ
	 * @return 業務データ取得・書込用I/F
	 * @throws Exception 
	 * @exception RequestParameterExceptionがスローされます。
	 */
	private int getEKK0321B002Map(SessionHandle handle, IRequestParameterReadWrite param, 
			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> workMap) throws Exception
	{
		/* ◇上りマッピング処理 */
		// 上りマッピングの処理結果を取得するためのマップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		paramMap = editEKK0321B002InMsg(param, inHash, workMap);

		/* ◇ＳＣ呼出実行 */
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, handle);
		
		/* ◇下りマッピング処理 */
		workMap.put(TEMPLATE_ID_EKK0321B002, editEKK0321B002ResultRP(result, param, fixedText));
		
		// エラーチェック処理
		return errChk(result);
		
	}
	/**
	 * 申込内容承認登録S-IF呼出処理。<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param 業務データ取得用I/F
	 * @param fixedText ユーザ定義文字列
	 * @param workMap 作業用マップ
	 * @return 業務データ取得・書込用I/F
	 * @throws Exception 
	 * @exception RequestParameterExceptionがスローされます。
	 */
	private int getEKK0011D020Map(SessionHandle handle, IRequestParameterReadWrite param, 
			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> workMap) throws Exception
	{
		/* ◇上りマッピング処理 */
		// 上りマッピングの処理結果を取得するためのマップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		paramMap = editEKK0011D020InMsg(param, inHash, workMap);

		/* ◇ＳＣ呼出実行 */
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, handle);
		
		
		/* ◇下りマッピング処理 */
		workMap.put(TEMPLATE_ID_EKK0011D020, editEKK0011D020ResultRP(result, param, fixedText));
		
		// エラーチェック処理
		return errChk(result);
		
		
	}
//	/**
//	 * 申込明細登録S-IF呼出処理。<br>
//	 * <br>
//	 * @param handle セッションマネージャなどを持ったハンドル
//	 * @param param 業務データ取得用I/F
//	 * @param fixedText ユーザ定義文字列
//	 * @param workMap 作業用マップ
//	 * @return 業務データ取得・書込用I/F
//	 * @throws Exception 
//	 * @exception RequestParameterExceptionがスローされます。
//	 */
//	private int getEKK0021D010Map(SessionHandle handle, IRequestParameterReadWrite param, 
//			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> workMap) throws Exception
//	{
//		/* ◇上りマッピング処理 */
//		// 上りマッピングの処理結果を取得するためのマップを生成
//		HashMap<String, Object> paramMap = new HashMap<String, Object>();
//		
//		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
//		paramMap = editEKK0021D010InMsg(param, inHash, workMap);
//
//		/* ◇ＳＣ呼出実行 */
//		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
//		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
//		Map<?, ?> result = scCall.run(paramMap, handle);
//		
//		/* ◇下りマッピング処理 */
//		workMap.put(TEMPLATE_ID_EKK0021D010, editEKK0021D010ResultRP(result, param, fixedText));
//		
//		// エラーチェック処理
//		return errChk(result);
//		
//	}
	/**
	 *オプションサービス契約<ISP>登録S-IF呼出処理。<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param 業務データ取得用I/F
	 * @param fixedText ユーザ定義文字列
	 * @param workMap 作業用マップ
	 * @return 業務データ取得・書込用I/F
	 * @throws Exception 
	 * @exception RequestParameterExceptionがスローされます。
	 */
	private int getEKK0361D010Map(SessionHandle handle, IRequestParameterReadWrite param, 
			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> workMap) throws Exception
	{
		
		/* ◇上りマッピング処理 */
		// 上りマッピングの処理結果を取得するためのマップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		paramMap = editEKK0361D010InMsg(param, inHash, workMap);

		/* ◇ＳＣ呼出実行 */
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, handle);
		
		/* ◇下りマッピング処理 */
		workMap.put(TEMPLATE_ID_EKK0361D010, editEKK0361D010ResultRP(result, param, fixedText));
		
		// エラーチェック処理
		return errChk(result);
		
	}
	
	/**
	 *オプションサービス契約<ISP>照査S-IF呼出処理。<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param 業務データ取得用I/F
	 * @param fixedText ユーザ定義文字列
	 * @param workMap 作業用マップ
	 * @return 業務データ取得・書込用I/F
	 * @throws Exception 
	 * @exception RequestParameterExceptionがスローされます。
	 */
	private int getEKK0361C010Map(SessionHandle handle, IRequestParameterReadWrite param, 
			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> workMap) throws Exception
	{
		/* ◇上りマッピング処理 */
		// 上りマッピングの処理結果を取得するためのマップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		paramMap = editEKK0361C010InMsg(param, inHash, workMap);

		/* ◇ＳＣ呼出実行 */
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, handle);
		
		/* ◇下りマッピング処理 */
		workMap.put(TEMPLATE_ID_EKK0361C010, editEKK0361C010ResultRP(result, param, fixedText));
		
		// エラーチェック処理
		return errChk(result);
		
		
	}
	/**
	 *オプションサービス契約<ISP>照査締結S-IF呼出処理。<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param 業務データ取得用I/F
	 * @param fixedText ユーザ定義文字列
	 * @param workMap 作業用マップ
	 * @return 業務データ取得・書込用I/F
	 * @throws Exception 
	 * @exception RequestParameterExceptionがスローされます。
	 */
	private int getEKK0361C030Map(SessionHandle handle, IRequestParameterReadWrite param, 
			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> workMap) throws Exception
	{
		
		/* ◇上りマッピング処理 */
		// 上りマッピングの処理結果を取得するためのマップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		paramMap = editEKK0361C030InMsg(param, inHash, workMap);

		/* ◇ＳＣ呼出実行 */
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, handle);
		
		/* ◇下りマッピング処理 */
		workMap.put(TEMPLATE_ID_EKK0361C030, editEKK0361C030ResultRP(result, param, fixedText));
		
		// エラーチェック処理
		return errChk(result);
		
	}
	/**
	 *オプションサービス契約<ISP>開始S-IF呼出処理。<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param 業務データ取得用I/F
	 * @param fixedText ユーザ定義文字列
	 * @param workMap 作業用マップ
	 * @return 業務データ取得・書込用I/F
	 * @throws Exception 
	 * @exception RequestParameterExceptionがスローされます。
	 */
	private int getEKK0361C040Map(SessionHandle handle, IRequestParameterReadWrite param, 
			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> workMap) throws Exception
	{
		
		/* ◇上りマッピング処理 */
		// 上りマッピングの処理結果を取得するためのマップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		paramMap = editEKK0361C040InMsg(param, inHash, workMap);

		/* ◇ＳＣ呼出実行 */
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, handle);
		
		/* ◇下りマッピング処理 */
		workMap.put(TEMPLATE_ID_EKK0361C040, editEKK0361C040ResultRP(result, param, fixedText));
		
		// エラーチェック処理
		return errChk(result);
		
	}

// 2013/06/13 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD START
	/**
	 * 進捗一覧照会S-IF呼出処理。<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param 業務データ取得用I/F
	 * @param fixedText ユーザ定義文字列
	 * @param workMap 作業用マップ
	 * @return 業務データ取得・書込用I/F
	 * @throws Exception 
	 * @exception RequestParameterExceptionがスローされます。
	 */
	private int getEKK1091B001Map(SessionHandle handle, IRequestParameterReadWrite param, 
			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> workMap) throws Exception
	{
		/* ◇上りマッピング処理 */
		// 上りマッピングの処理結果を取得するためのマップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		paramMap = editEKK1091B001InMsg(param, inHash, workMap);

		/* ◇ＳＣ呼出実行 */
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, handle);
		
		/* ◇下りマッピング処理 */
		workMap.put(TEMPLATE_ID_EKK1091B001, editEKK1091B001ResultRP(result, param, fixedText));
		
		// エラーチェック処理
		return errChk(result);
		
	}
// 2013/06/13 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD END
	/**
	 *進捗登録S-IF呼出処理。<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param 業務データ取得用I/F
	 * @param fixedText ユーザ定義文字列
	 * @param workMap 作業用マップ
	 * @return 業務データ取得・書込用I/F
	 * @throws Exception 
	 * @exception RequestParameterExceptionがスローされます。
	 */
	private int getEKK1091D010Map(SessionHandle handle, IRequestParameterReadWrite param, 
			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> workMap) throws Exception
	{

		/* ◇上りマッピング処理 */
		// 上りマッピングの処理結果を取得するためのマップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		paramMap = editEKK1091D010InMsg(param, inHash, workMap);

		/* ◇ＳＣ呼出実行 */
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, handle);
		
		/* ◇下りマッピング処理 */
		workMap.put(TEMPLATE_ID_EKK1091D010, editEKK1091D010ResultRP(result, param, fixedText));
		
		// エラーチェック処理
		return errChk(result);
	}
	
	/**
	 * 申込明細照査・後続業務依頼呼出処理<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param 業務データ取得用I/F
	 * @param fixedText ユーザ定義文字列
	 * @param workMap 作業用マップ
	 * @return 業務データ取得・書込用I/F
	 * @throws Exception 
	 * @exception RequestParameterExceptionがスローされます。
	 */
	private int getEKK0021C060Map(SessionHandle handle, IRequestParameterReadWrite param, 
			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> workMap) throws Exception
	{
		/* ◇上りマッピング処理 */
		// 上りマッピングの処理結果を取得するためのマップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		paramMap = editEKK0021C060InMsg(param, inHash, workMap);

		/* ◇ＳＣ呼出実行 */
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, handle);
		
		/* ◇下りマッピング処理 */
		workMap.put(TEMPLATE_ID_EKK0021C060, editEKK0021C060ResultRP(result, param, fixedText));
		
		// エラーチェック処理
		return errChk(result);
		
	}
	
	/**
	 *エイジング登録S-IF呼出処理。<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param 業務データ取得用I/F
	 * @param fixedText ユーザ定義文字列
	 * @param workMap 作業用マップ
	 * @return 業務データ取得・書込用I/F
	 * @throws Exception 
	 * @exception RequestParameterExceptionがスローされます。
	 */
//	private int getEZM0111D010Map(SessionHandle handle, IRequestParameterReadWrite param, 
//			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> workMap) throws Exception
//	{
//		/* ◇上りマッピング処理 */
//		// 上りマッピングの処理結果を取得するためのマップを生成
//		HashMap<String, Object> paramMap = new HashMap<String, Object>();
//		
//		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
//		paramMap = editEZM0111D010InMsg(param, inHash, workMap);
//
//		/* ◇ＳＣ呼出実行 */
//		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
//		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
//		Map<?, ?> result = scCall.run(paramMap, handle);
//		
//		/* ◇下りマッピング処理 */
//		workMap.put(TEMPLATE_ID_EZM0111D010, editEZM0111D010ResultRP(result, param, fixedText));
//		
//		// エラーチェック処理
//		return errChk(result);
//		
//	}
//	
	

	/**
	 *オプションサービス一意照会S-IF呼出処理。<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param 業務データ取得用I/F
	 * @param fixedText ユーザ定義文字列
	 * @param workMap 作業用マップ
	 * @return 業務データ取得・書込用I/F
	 * @throws Exception 
	 * @exception RequestParameterExceptionがスローされます。
	 */
	private int getEKK0361A010Map(SessionHandle handle, IRequestParameterReadWrite param, 
			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> workMap) throws Exception
	{
		/* ◇上りマッピング処理 */
		// 上りマッピングの処理結果を取得するためのマップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		paramMap = editEKK0361A010InMsg(param, inHash, workMap);

		/* ◇ＳＣ呼出実行 */
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, handle);
		
		/* ◇下りマッピング処理 */
		workMap.put(TEMPLATE_ID_EKK0361A010, editEKK0361A010ResultRP(result, param, fixedText));
		
		// エラーチェック処理
		return errChk(result);
		
	}
	/**
	 ＩＰｖ６アドレス更新S-IF呼出処理。<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param 業務データ取得用I/F
	 * @param fixedText ユーザ定義文字列
	 * @param workMap 作業用マップ
	 * @return 業務データ取得・書込用I/F
	 * @throws Exception 
	 * @exception RequestParameterExceptionがスローされます。
	 */
	
	private int getEZM0481C010Map(SessionHandle handle, IRequestParameterReadWrite param, 
			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> workMap) throws Exception
	{
		/* ◇上りマッピング処理 */
		// 上りマッピングの処理結果を取得するためのマップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		paramMap = editEZM0481C010InMsg(param, inHash, workMap);

		/* ◇ＳＣ呼出実行 */
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, handle);
		
		/* ◇下りマッピング処理 */
		workMap.put(TEMPLATE_ID_EZM0481C010, editEZM0481C010ResultRP(result, param, fixedText));
		
		// エラーチェック処理
		return errChk(result);
	}

	
//	/**
//	 *オーダ発行条件登録S-IF呼出処理。<br>
//	 * <br>
//	 * @param handle セッションマネージャなどを持ったハンドル
//	 * @param param 業務データ取得用I/F
//	 * @param fixedText ユーザ定義文字列
//	 * @param workMap 作業用マップ
//	 * @return 業務データ取得・書込用I/F
//	 * @throws Exception 
//	 * @exception RequestParameterExceptionがスローされます。
//	 */
//	private HashMap<String, Object> getEKK1081D010Map(SessionHandle handle, IRequestParameterReadWrite param, 
//			String fixedText, HashMap<String, Object> workMap) throws Exception
//	{
//		
//		/* ◇上りマッピング処理 */
//		// 上りマッピングの処理結果を取得するためのマップを生成
//		HashMap<String, Object> paramMap = new HashMap<String, Object>();
//		
//		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
//		paramMap = editInMsgEZM0331A010(param, fixedText, workMap);
//
//		/* ◇ＳＣ呼出実行 */
//		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
//		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
//		Map<?, ?> result = scCall.run(paramMap, handle);
//		
//		/* ◇下りマッピング処理 */
//		HashMap<String, Object> resultMap = new HashMap<String, Object>();
//		resultMap = editResultRPEZM0331A010(result, param, fixedText);
//		
//		return workMap;
//		
//	}
//	/**
//	 *オーダ情報作成ワークS-IF呼出処理。<br>
//	 * <br>
//	 * @param handle セッションマネージャなどを持ったハンドル
//	 * @param param 業務データ取得用I/F
//	 * @param fixedText ユーザ定義文字列
//	 * @param workMap 作業用マップ
//	 * @return 業務データ取得・書込用I/F
//	 * @throws Exception 
//	 * @exception RequestParameterExceptionがスローされます。
//	 */
//	private HashMap<String, Object> getEKK1551D010Map(SessionHandle handle, IRequestParameterReadWrite param, 
//			String fixedText, HashMap<String, Object> workMap) throws Exception
//	{
//		/* ◇上りマッピング処理 */
//		// 上りマッピングの処理結果を取得するためのマップを生成
//		HashMap<String, Object> paramMap = new HashMap<String, Object>();
//		
//		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
//		paramMap = editInMsgEZM0331A010(param, fixedText, workMap);
//
//		/* ◇ＳＣ呼出実行 */
//		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
//		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
//		Map<?, ?> result = scCall.run(paramMap, handle);
//		
//		/* ◇下りマッピング処理 */
//		HashMap<String, Object> resultMap = new HashMap<String, Object>();
//		resultMap = editResultRPEZM0331A010(result, param, fixedText);
//		
//		
//		return workMap;
//		
//	}
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得用I/F
	 * @return サービスコンポーネント実行用CAANMsg
	 * @since 2012.02.08
	 */
	public HashMap<String, Object> editEKK0081A010InMsg(IRequestParameterReadOnly param, HashMap<String, Object>inHash, HashMap<String, Object> workMap)
	throws RequestParameterException{

		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// メッセージ共通部の設定
		setCommonParamMap(param, paramMap);

		CAANMsg template = new CAANMsg(EKK0081A010CBSMsg.class.getName());

		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0081A010CBSMsg().getContents());

		// テンプレートID
		template.set(EKK0081A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0081A010);

		
		// 機能コード（デフォルト：2）
		template.set(EKK0081A010CBSMsg.FUNC_CODE, "2");

		// ＩＰｖ６アドレス登録マップ.ＫＥＹ＿サービス契約番号 → ＫＥＹ＿サービス契約番号
		if (inHash == null || inHash.get(SVC_KEI_NO) == null || "".equals(inHash.get(SVC_KEI_NO))) {
			template.setNull(EKK0081A010CBSMsg.KEY_SVC_KEI_NO);
		} else {
			template.set(EKK0081A010CBSMsg.KEY_SVC_KEI_NO, (String) inHash.get(SVC_KEI_NO));
		}

		// ＩＰｖ６アドレス登録マップ.ＫＥＹ＿世代登録年月日時分秒 → ＫＥＹ＿世代登録年月日時分秒
		template.setNull(EKK0081A010CBSMsg.KEY_GENE_ADD_DTM);

		// TODO 予約適用年月日は必要がないが、S-IFのチェックに引っかかるので、最大値を入れる
		template.set(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD , RSV_APLY_YMD);
		
		// サービスインターフェイス共通部の設定
		setCommonTemplate(param, template);

		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得用I/F
	 * @return サービスコンポーネント実行用CAANMsg
	 * @since 2012.02.08
	 */
	public HashMap<String, Object> editEKK0161B001InMsg(IRequestParameterReadOnly param, HashMap<String, Object>inHash, HashMap<String, Object> workMap)
	throws RequestParameterException{

		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// メッセージ共通部の設定
		setCommonParamMap(param, paramMap);

		CAANMsg template = new CAANMsg(EKK0161B001CBSMsg.class.getName());

		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0161B001CBSMsg().getContents());

		// テンプレートID
		template.set(EKK0161B001CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0161B001);

		// 機能コード（デフォルト：1）
		template.set(EKK0161B001CBSMsg.FUNC_CODE, "1");

		// サービス契約内訳（予約の最新とカレント）一覧照会.ＫＥＹ＿サービス契約番号 → ＫＥＹ＿サービス契約番号
		if (inHash == null || inHash.get(SVC_KEI_NO) == null || "".equals(inHash.get(SVC_KEI_NO))) {
			template.setNull(EKK0161B001CBSMsg.KEY_SVC_KEI_NO);
		} else {
			template.set(EKK0161B001CBSMsg.KEY_SVC_KEI_NO, (String) inHash.get(SVC_KEI_NO));
		}

		// サービスインターフェイス共通部の設定
		setCommonTemplate(param, template);

		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得用I/F
	 * @return サービスコンポーネント実行用CAANMsg
	 * @since 2012.02.08
	 */
	public HashMap<String, Object> editEKK0321B002InMsg(IRequestParameterReadOnly param, HashMap<String, Object>inHash, HashMap<String, Object> workMap)
	throws RequestParameterException{

		HashMap<String, Object> paramMap = new HashMap<String, Object>();
	
		// メッセージ共通部の設定
		setCommonParamMap(param, paramMap);

		CAANMsg template = new CAANMsg(EKK0321B002CBSMsg.class.getName());
		
		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0321B002CBSMsg().getContents());
		
		// テンプレートID
		template.set(EKK0321B002CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0321B002);

		if (inHash != null) {
			// 機能コード
			template.set(EKK0321B002CBSMsg.FUNC_CODE, "1");
		}

		// 課金先一覧照会マップ.ＫＥＹ＿サービス契約番号 → ＫＥＹ＿サービス契約番号
		if (inHash == null || inHash.get(SVC_KEI_NO) == null || "".equals(inHash.get(SVC_KEI_NO))) {
			template.setNull(EKK0321B002CBSMsg.KEY_SVC_KEI_NO);
		} else {
			template.set(EKK0321B002CBSMsg.KEY_SVC_KEI_NO, (String) inHash.get(SVC_KEI_NO));
		}
		
		// サービスインターフェイス共通部の設定
		setCommonTemplate(param, template);

		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}
	
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得用I/F
	 * @return サービスコンポーネント実行用CAANMsg
	 * @since 2012.02.08
	 */
	public HashMap<String, Object> editEKK0011D020InMsg(IRequestParameterReadOnly param, HashMap<String, Object>inHash, HashMap<String, Object> workMap)
	throws RequestParameterException{

		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// メッセージ共通部の設定
		setCommonParamMap(param, paramMap);

		CAANMsg template = new CAANMsg(EKK0011D020CBSMsg.class.getName());
		
		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0011D020CBSMsg().getContents());

		// テンプレートID
		template.set(EKK0011D020CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0011D020);

		if (inHash != null) {
			// 機能コード
			template.set(EKK0011D020CBSMsg.FUNC_CODE, inHash.get(JCMConstants.FUNC_CODE_KEY));
		}

		// 申込内容承認登録マップ.SYSID → SYSID
		if (inHash == null || inHash.get(SYSID) == null || "".equals(inHash.get(SYSID))) {
			template.setNull(EKK0011D020CBSMsg.SYSID);
		} else {
			template.set(EKK0011D020CBSMsg.SYSID, (String) inHash.get(SYSID));
		}

		// 申込内容承認登録マップ.申込種別コード → 申込種別コード
		if (inHash == null || inHash.get(MSKM_SBT_CD) == null || "".equals(inHash.get(MSKM_SBT_CD))) {
			template.setNull(EKK0011D020CBSMsg.MSKM_SBT_CD);
		} else {
			template.set(EKK0011D020CBSMsg.MSKM_SBT_CD, (String) inHash.get(MSKM_SBT_CD));
		}

		// 申込内容承認登録マップ.運用年月日時分秒 → 申込受付年月日時分秒
		if (inHash == null || inHash.get(UNYO_DTM) == null || "".equals(inHash.get(UNYO_DTM))) {
			template.setNull(EKK0011D020CBSMsg.MSKM_UK_DTM);
		} else {
			template.set(EKK0011D020CBSMsg.MSKM_UK_DTM, (String) inHash.get(UNYO_DTM));
		}

		// 申込内容承認登録マップ.運用年月日 → 申込年月日
		if (inHash == null || inHash.get(UNYO_YMD) == null || "".equals(inHash.get(UNYO_YMD))) {
			template.setNull(EKK0011D020CBSMsg.MSKM_YMD);
		} else {
			template.set(EKK0011D020CBSMsg.MSKM_YMD, (String) inHash.get(UNYO_YMD));
		}
		// 申込内容承認登録マップ.コンシューマ営業用申込状態識別コード → コンシューマ営業用申込状態識別コード
		if (inHash == null || inHash.get(CONSMBSN_MSKM_STAT_SKBT_CD) == null || "".equals(inHash.get(CONSMBSN_MSKM_STAT_SKBT_CD))) {
			template.setNull(EKK0011D020CBSMsg.CONSMBSN_MSKM_STAT_SKBT_CD);
		} else {
			template.set(EKK0011D020CBSMsg.CONSMBSN_MSKM_STAT_SKBT_CD, (String) inHash.get(CONSMBSN_MSKM_STAT_SKBT_CD));
		}

		//申込内容承認登録明細を作成
		CAANMsg[] eKK0011D020CBSMSG1LIST = null;
		CAANMsg eKK0011D020CBSMSG1 = null;
		eKK0011D020CBSMSG1 = new CAANMsg(EKK0011D020CBSMsg1List.class.getName());
		fillCAANMSGNullMapping(eKK0011D020CBSMSG1, new EKK0011D020CBSMsg1List().getContents());
		eKK0011D020CBSMSG1LIST = new CAANMsg[]{eKK0011D020CBSMSG1};

		// サービスインターフェイス共通部の設定
		setCommonTemplate(param, template);		
		
		template.set(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST, eKK0011D020CBSMSG1LIST);
		

		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}
	
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>実行前に、CAANMsgに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得用I/F
	 * @return サービスコンポーネント実行用CAANMsg
	 * @since 2012.02.08
	 */
	public HashMap<String, Object> editEKK0021D010InMsg(IRequestParameterReadOnly param, HashMap<String, Object>inHash, HashMap<String, Object> workMap)
	throws RequestParameterException{

		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// メッセージ共通部の設定
		setCommonParamMap(param, paramMap);

		CAANMsg template = new CAANMsg(EKK0021D010CBSMsg.class.getName());
		
		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0021C060CBSMsg().getContents());
		
		// テンプレートID
		template.set(EKK0021C060CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0021C060);

		// 機能コード（デフォルト：１）
		template.set(EKK0021C060CBSMsg.FUNC_CODE, "1");

		if (inHash != null) {
			// 機能コード
			template.set(EKK0021C060CBSMsg.FUNC_CODE, inHash.get(JCMConstants.FUNC_CODE_KEY));
		}

		// 申込明細照査・後続業務依頼マップ.申込明細番号 → 申込明細番号
		if (inHash == null || inHash.get("mskm_dtl_no") == null || "".equals(inHash.get("mskm_dtl_no"))) {
			template.setNull(EKK0021C060CBSMsg.MSKM_DTL_NO);
		} else {
			template.set(EKK0021C060CBSMsg.MSKM_DTL_NO, (String) inHash.get("mskm_dtl_no"));
		}

		// 申込明細照査・後続業務依頼マップ.連絡事項登録年月日時分秒 → 連絡事項登録年月日時分秒
		if (inHash == null || inHash.get("rrk_jiko_add_dtm") == null || "".equals(inHash.get("rrk_jiko_add_dtm"))) {
			template.setNull(EKK0021C060CBSMsg.RRK_JIKO_ADD_DTM);
		} else {
			template.set(EKK0021C060CBSMsg.RRK_JIKO_ADD_DTM, (String) inHash.get("rrk_jiko_add_dtm"));
		}

		// 申込明細照査・後続業務依頼マップ.運用年月日 → 後続業務依頼年月日
		if (inHash == null || inHash.get(UNYO_YMD) == null || "".equals(inHash.get(UNYO_YMD))) {
			template.setNull(EKK0021C060CBSMsg.KZKWRK_REQYMD);
		} else {
			template.set(EKK0021C060CBSMsg.KZKWRK_REQYMD, (String) inHash.get(UNYO_YMD));
		}

		// 申込明細照査・後続業務依頼マップ.連絡事項 → 連絡事項
		if (inHash == null || inHash.get("rrk_jiko") == null || "".equals(inHash.get("rrk_jiko"))) {
			template.setNull(EKK0021C060CBSMsg.RRK_JIKO);
		} else {
			template.set(EKK0021C060CBSMsg.RRK_JIKO, (String) inHash.get("rrk_jiko"));
		}

		// 申込明細照査・後続業務依頼マップ.更新年月日時分秒 → 更新年月日時分秒(更新前)
		if (inHash == null || inHash.get("upd_dtm") == null || "".equals(inHash.get("upd_dtm"))) {
			template.setNull(EKK0021C060CBSMsg.UPD_DTM_BF);
		} else {
			template.set(EKK0021C060CBSMsg.UPD_DTM_BF, (String) inHash.get("upd_dtm"));
		}

		// 申込明細照査・後続業務依頼マップ.異動区分 → 異動区分
		if (inHash == null || inHash.get("ido_div") == null || "".equals(inHash.get("ido_div"))) {
			template.setNull(EKK0021C060CBSMsg.IDO_DIV);
		} else {
			template.set(EKK0021C060CBSMsg.IDO_DIV, (String) inHash.get("ido_div"));
		}

		// 申込明細照査・後続業務依頼マップ.機器認証ID → 機器認証ID
		if (inHash == null || inHash.get("kiki_ninsho_id") == null || "".equals(inHash.get("kiki_ninsho_id"))) {
			template.setNull(EKK0021C060CBSMsg.KIKI_NINSHO_ID);
		} else {
			template.set(EKK0021C060CBSMsg.KIKI_NINSHO_ID, (String) inHash.get("kiki_ninsho_id"));
		}

		// 申込明細照査・後続業務依頼マップ.機器認証IDパスワード → 機器認証IDパスワード
		if (inHash == null || inHash.get("kiki_ninsho_id_pwd") == null || "".equals(inHash.get("kiki_ninsho_id_pwd"))) {
			template.setNull(EKK0021C060CBSMsg.KIKI_NINSHO_ID_PWD);
		} else {
			template.set(EKK0021C060CBSMsg.KIKI_NINSHO_ID_PWD, (String) inHash.get("kiki_ninsho_id_pwd"));
		}
			

		// サービスインターフェイス共通部の設定
		setCommonTemplate(param, template);		
		
		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}
	
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得用I/F
	 * @return サービスコンポーネント実行用CAANMsg
	 * @since 2012.02.08
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> editEKK0361D010InMsg(IRequestParameterReadOnly param, HashMap<String, Object>inHash, HashMap<String, Object> workMap)
	throws RequestParameterException{

		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// メッセージ共通部の設定
		setCommonParamMap(param, paramMap);

		CAANMsg template = new CAANMsg(EKK0361D010CBSMsg.class.getName());
		
		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0361D010CBSMsg().getContents());

		// テンプレートID
		template.set(EKK0361D010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0361D010);

		
		if (inHash != null) {
			// 機能コード
			template.set(EKK0361D010CBSMsg.FUNC_CODE, inHash.get(JCMConstants.FUNC_CODE_KEY));
		}

		// オプションサービス契約<ISP>登録マップ.オプションサービスコード → オプションサービスコード
		if (inHash == null || inHash.get(OP_SVC_CD) == null || "".equals(inHash.get(OP_SVC_CD))) {
			template.setNull(EKK0361D010CBSMsg.OP_SVC_CD);
		} else {
			template.set(EKK0361D010CBSMsg.OP_SVC_CD, (String) inHash.get(OP_SVC_CD));
		}
		
		// オプションサービス契約<ISP>登録マップ.異動区分 → 異動区分
		if (inHash == null || inHash.get(IDO_DIV) == null || "".equals(inHash.get(IDO_DIV))) {
			template.setNull(EKK0361D010CBSMsg.IDO_DIV);
		} else {
			template.set(EKK0361D010CBSMsg.IDO_DIV, (String) inHash.get(IDO_DIV));
		}

		// オプションサービス契約<ISP>登録マップ.料金コースコード → 料金コースコード(固定)
		template.set(EKK0361D010CBSMsg.PCRS_CD, PCRS_CD_IPV6);

		// オプションサービス契約<ISP>登録マップ.料金プランコード → 料金プランコード(固定)
		template.set(EKK0361D010CBSMsg.PPLAN_CD, PCRS_PLAN_CD_IPV6);

		// オプションサービス契約<ISP>登録マップ.親契約識別コード → 親契約識別コード
		if (inHash == null || inHash.get(OYA_KEI_SKBT_CD) == null || "".equals(inHash.get(OYA_KEI_SKBT_CD))) {
			template.setNull(EKK0361D010CBSMsg.OYA_KEI_SKBT_CD);
		} else {
			template.set(EKK0361D010CBSMsg.OYA_KEI_SKBT_CD, (String) inHash.get(OYA_KEI_SKBT_CD));
		}

		// オプションサービス契約<ISP>登録マップ.サービス契約番号 → サービス契約番号
		if (inHash == null || inHash.get(SVC_KEI_NO) == null || "".equals(inHash.get(SVC_KEI_NO))) {
			template.setNull(EKK0361D010CBSMsg.SVC_KEI_NO);
		} else {
			template.set(EKK0361D010CBSMsg.SVC_KEI_NO, (String) inHash.get(SVC_KEI_NO));
		}
		// オプションサービス契約<ISP>登録マップ.SYSID → SYSID
		if (inHash == null || inHash.get(SYSID) == null || "".equals(inHash.get(SYSID))) {
			template.setNull(EKK0361D010CBSMsg.SYSID);
		} else {
			template.set(EKK0361D010CBSMsg.SYSID, (String) inHash.get(SYSID));
		}

		// オプションサービス契約<ISP>登録マップ.申込明細番号 → 申込明細番号
		HashMap<?, ?> ekk0011d020Msg = (HashMap<?, ?>)workMap.get(TEMPLATE_ID_EKK0011D020);
		ArrayList<?> ekk0011d020MsgList = (ArrayList<?>)ekk0011d020Msg.get(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST);
		HashMap<?, ?> kk0021Map = (HashMap<?, ?>) ekk0011d020MsgList.get(0);
		Object mskm_dtl_no = kk0021Map.get(EKK0011D020CBSMsg1List.MSKM_DTL_NO);
		template.set(EKK0361D010CBSMsg.MSKM_DTL_NO, mskm_dtl_no);

		// オプションサービス契約<ISP>登録マップ.サービス利用開始希望年月日 → サービス利用開始希望年月日
		template.set(EKK0361D010CBSMsg.SVC_USE_STA_KIBO_YMD, getStrymd(inHash));
//		template.set(EKK0361D010CBSMsg.SVC_USE_STA_KIBO_YMD, inHash.get("kibo_ymd_af"));

		// オプションサービス契約<ISP>登録マップ.IPv6アドレス → IPv6アドレス
		if (inHash == null || inHash.get(IPV6AD_LIST) == null || "".equals(inHash.get(IPV6AD_LIST))) {
			template.setNull(EKK0361D010CBSMsg.IPV6_AD_IFID);
		} else {
			ArrayList<HashMap> ipArray =  (ArrayList<HashMap>) inHash.get(IPV6AD_LIST);
			if(ipArray.size() > 0 && ipArray.get(0).containsKey(IPV6_AD)){
				template.set(EKK0361D010CBSMsg.IPV6_AD_IFID, (String) ipArray.get(0).get(IPV6_AD));
			}
		}
		
		// オプションサービス契約<ISP>登録マップ.サービス契約内訳番号 → サービス契約内訳番号
		if (inHash == null || inHash.get(SVC_KEI_UCWK_NO) == null || "".equals(inHash.get(SVC_KEI_UCWK_NO))) {
			template.setNull(EKK0361D010CBSMsg.SVC_KEI_UCWK_NO);
		} else {
			template.set(EKK0361D010CBSMsg.SVC_KEI_UCWK_NO, (String) inHash.get(SVC_KEI_UCWK_NO));
		}
		
		//課金先一覧照会の結果を格納する
		HashMap<String, Object> ekk0321B002Hash = null;
		ekk0321B002Hash = (HashMap<String, Object>)workMap.get(TEMPLATE_ID_EKK0321B002);
		
		// オプションサービス契約<ISP>登録マップ.請求契約番号 → 請求契約番号
		template.set(EKK0361D010CBSMsg.SEIKY_KEI_NO, (String)ekk0321B002Hash.get(SEIKY_KEI_NO));

		// オプションサービス契約<ISP>登録マップ.更新年月日時分秒 → 更新年月日時分秒(更新前)
		template.set(EKK0361D010CBSMsg.UPD_DTM_BF, (String) inHash.get(EX_SVC_UPD_DTM));

		// サービスインターフェイス共通部の設定
		setCommonTemplate(param, template);		
		
		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得用I/F
	 * @return サービスコンポーネント実行用CAANMsg
	 * @since 2012.02.08
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> editEKK0361C010InMsg(IRequestParameterReadOnly param, HashMap<String, Object>inHash, HashMap<String, Object> workMap)
	throws RequestParameterException{



		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// メッセージ共通部の設定
		setCommonParamMap(param, paramMap);

		CAANMsg template = new CAANMsg(EKK0361C010CBSMsg.class.getName());

		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0361C010CBSMsg().getContents());
		
		// テンプレートID
		template.set(EKK0361C010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0361C010);
	

		if (inHash != null) {
			// 機能コード
			template.set(EKK0361C010CBSMsg.FUNC_CODE, inHash.get(JCMConstants.FUNC_CODE_KEY));
		}

		// オプションサービス契約＜ISP＞登録の結果取得
		HashMap<String, Object> eKK0361D010Hash = null;
		eKK0361D010Hash = (HashMap<String, Object>)workMap.get(TEMPLATE_ID_EKK0361D010);

		// オプションサービス契約<ISP>照査締結マップ.オプションサービス契約番号 → オプションサービス契約番号
//		if (eKK0361D010Hash == null || eKK0361D010Hash.get(EKK0361D010CBSMsg.OP_SVC_KEI_NO) == null || "".equals(eKK0361D010Hash.get(EKK0361D010CBSMsg.OP_SVC_KEI_NO))) {
//			template.setNull(EKK0361C030CBSMsg.OP_SVC_KEI_NO);
//		} else {
			template.set(EKK0361C030CBSMsg.OP_SVC_KEI_NO, eKK0361D010Hash.get(EKK0361D010CBSMsg.OP_SVC_KEI_NO));
//		}
		
		// オプションサービス契約<ISP>照査マップ.異動区分 → 異動区分
		if (inHash == null || inHash.get(IDO_DIV) == null || "".equals(inHash.get(IDO_DIV))) {
			template.setNull(EKK0361C010CBSMsg.IDO_DIV);
		} else {
			template.set(EKK0361C010CBSMsg.IDO_DIV, (String) inHash.get(IDO_DIV));
		}

		// オプションサービス契約<ISP>照査マップ.更新年月日時分秒 → 更新年月日時分秒(更新前)
		template.set(EKK0361C010CBSMsg.UPD_DTM_BF, (String) inHash.get(EX_SVC_UPD_DTM));

		// オプションサービス契約<ISP>照査締結マップ.IPv6アドレス → IPv6アドレス
		if (inHash == null || inHash.get(IPV6AD_LIST) == null || "".equals(inHash.get(IPV6AD_LIST))) {
			template.setNull(EKK0361C010CBSMsg.IPV6_AD_IFID);
		} else {
			ArrayList<HashMap> ipArray =  (ArrayList<HashMap>) inHash.get(IPV6AD_LIST);
			if(ipArray.size() > 0 && ipArray.get(0).containsKey(IPV6_AD)){
				template.set(EKK0361C010CBSMsg.IPV6_AD_IFID, (String) ipArray.get(0).get(IPV6_AD));
			}
		}
		// サービスインターフェイス共通部の設定
		setCommonTemplate(param, template);		

		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得用I/F
	 * @return サービスコンポーネント実行用CAANMsg
	 * @since 2012.02.08
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> editEKK0361C030InMsg(IRequestParameterReadOnly param, HashMap<String, Object>inHash, HashMap<String, Object> workMap)
	throws RequestParameterException{

		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// メッセージ共通部の設定
		setCommonParamMap(param, paramMap);
		
		CAANMsg template = new CAANMsg(EKK0361C030CBSMsg.class.getName());
		
		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0361C030CBSMsg().getContents());
		

		// テンプレートID
		template.set(EKK0361C030CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0361C030);

		if (inHash != null) {
			// 機能コード
			template.set(EKK0361C030CBSMsg.FUNC_CODE, inHash.get(JCMConstants.FUNC_CODE_KEY));
		}
		
		// オプションサービス契約＜ISP＞登録の結果取得
		HashMap<String, Object> eKK0361D010Hash = null;
		eKK0361D010Hash = (HashMap<String, Object>)workMap.get(TEMPLATE_ID_EKK0361D010);

		// オプションサービス契約<ISP>照査締結マップ.オプションサービス契約番号 → オプションサービス契約番号
		if (eKK0361D010Hash == null || eKK0361D010Hash.get(EKK0361D010CBSMsg.OP_SVC_KEI_NO) == null || "".equals(eKK0361D010Hash.get(EKK0361D010CBSMsg.OP_SVC_KEI_NO))) {
			template.setNull(EKK0361C030CBSMsg.OP_SVC_KEI_NO);
		} else {
			template.set(EKK0361C030CBSMsg.OP_SVC_KEI_NO, eKK0361D010Hash.get(EKK0361D010CBSMsg.OP_SVC_KEI_NO));
		}

		// オプションサービス契約<ISP>照査締結マップ.異動区分 → 異動区分
		if (inHash == null || inHash.get(IDO_DIV) == null || "".equals(inHash.get(IDO_DIV))) {
			template.setNull(EKK0361C030CBSMsg.IDO_DIV);
		} else {
			template.set(EKK0361C030CBSMsg.IDO_DIV, (String) inHash.get(IDO_DIV));
		}

		// オプションサービス契約<ISP>照査締結マップ.更新年月日時分秒 → 更新年月日時分秒(更新前)
		template.set(EKK0361C030CBSMsg.UPD_DTM_BF, (String) inHash.get(EX_SVC_UPD_DTM));

		// オプションサービス契約<ISP>照査締結マップ.事務手数料自動適用要否 → 事務手数料自動適用要否
		if (inHash == null || inHash.get(RULE0059_AUTO_APLY) == null || "".equals(RULE0059_AUTO_APLY)) {
			template.setNull(EKK0361C030CBSMsg.RULE0059_AUTO_APLY);
		} else {
			template.set(EKK0361C030CBSMsg.RULE0059_AUTO_APLY, (String) inHash.get(RULE0059_AUTO_APLY));
		}

		// オプションサービス契約<ISP>照査締結マップ.IPv6アドレス → IPv6アドレス
		if (inHash == null || inHash.get(IPV6AD_LIST) == null || "".equals(inHash.get(IPV6AD_LIST))) {
			template.setNull(EKK0361C030CBSMsg.IPV6_AD_IFID);
		} else {
			ArrayList<HashMap> ipArray =  (ArrayList<HashMap>) inHash.get(IPV6AD_LIST);
			if(ipArray.size() > 0 && ipArray.get(0).containsKey(IPV6_AD)){
				template.set(EKK0361C030CBSMsg.IPV6_AD_IFID, (String) ipArray.get(0).get(IPV6_AD));
			}
		}
		// サービスインターフェイス共通部の設定
		setCommonTemplate(param, template);


		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得用I/F
	 * @return サービスコンポーネント実行用CAANMsg
	 * @since 2012.02.08
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> editEKK0361C040InMsg(IRequestParameterReadOnly param, HashMap<String, Object>inHash, HashMap<String, Object> workMap)
	throws RequestParameterException{

		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// メッセージ共通部の設定
		setCommonParamMap(param, paramMap);
		
		CAANMsg template = new CAANMsg(EKK0361C040CBSMsg.class.getName());

		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0361C040CBSMsg().getContents());
		
		// テンプレートID
		template.set(EKK0361C040CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0361C040);

		
		if (inHash != null) {
			// 機能コード
			template.set(EKK0361C040CBSMsg.FUNC_CODE, inHash.get(JCMConstants.FUNC_CODE_KEY));
		}
		// オプションサービス契約＜ISP＞登録の結果取得
		HashMap<String, Object> eKK0361D010Hash = null;
		eKK0361D010Hash = (HashMap<String, Object>)workMap.get(TEMPLATE_ID_EKK0361D010);

		// オプションサービス契約<ISP>照査締結マップ.オプションサービス契約番号 → オプションサービス契約番号
		if (eKK0361D010Hash == null || eKK0361D010Hash.get(EKK0361D010CBSMsg.OP_SVC_KEI_NO) == null || "".equals(eKK0361D010Hash.get(EKK0361D010CBSMsg.OP_SVC_KEI_NO))) {
			template.setNull(EKK0361C030CBSMsg.OP_SVC_KEI_NO);
		} else {
			template.set(EKK0361C030CBSMsg.OP_SVC_KEI_NO, eKK0361D010Hash.get(EKK0361D010CBSMsg.OP_SVC_KEI_NO));
		}

		// オプションサービス契約<ISP>開始マップ.異動区分 → 異動区分
		if (inHash == null || inHash.get(IDO_DIV) == null || "".equals(inHash.get(IDO_DIV))) {
			template.setNull(EKK0361C040CBSMsg.IDO_DIV);
		} else {
			template.set(EKK0361C040CBSMsg.IDO_DIV, (String) inHash.get(IDO_DIV));
		}

		// オプションサービス契約<ISP>開始マップ.IPv6アドレス → IPv6アドレス
		if (inHash == null || inHash.get(IPV6_AD) == null || "".equals(inHash.get(IPV6_AD))) {
			template.setNull(EKK0361C040CBSMsg.IPV6_AD_IFID);
		} else {
			template.set(EKK0361C040CBSMsg.IPV6_AD_IFID, (String) inHash.get(IPV6_AD));
		}

		// オプションサービス契約<ISP>開始マップ.更新年月日時分秒 → 更新年月日時分秒(更新前)
		template.set(EKK0361C040CBSMsg.UPD_DTM_BF, (String) inHash.get(EX_SVC_UPD_DTM));

		// サービスインターフェイス共通部の設定
		setCommonTemplate(param, template);		
		
		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}
	
// 2013/06/13 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD START
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得用I/F
	 * @return サービスコンポーネント実行用CAANMsg
	 * @since 2012.02.08
	 */
	public HashMap<String, Object> editEKK1091B001InMsg(IRequestParameterReadOnly param, HashMap<String, Object>inHash, HashMap<String, Object> workMap)
	throws RequestParameterException{

		HashMap<String, Object> paramMap = new HashMap<String, Object>();
	
		// メッセージ共通部の設定
		setCommonParamMap(param, paramMap);

		CAANMsg template = new CAANMsg(EKK1091B001CBSMsg.class.getName());
		
		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK1091B001CBSMsg().getContents());
		
		// テンプレートID
		template.set(EKK1091B001CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK1091B001);

		if (inHash != null) {
			// 機能コード
			template.set(EKK1091B001CBSMsg.FUNC_CODE, "1");
		}

		// 進捗一覧照会マップ.ＫＥＹ＿サービス契約番号 → ＫＥＹ＿サービス契約番号
		if (inHash == null || inHash.get(SVC_KEI_NO) == null || "".equals(inHash.get(SVC_KEI_NO))) {
			template.setNull(EKK1091B001CBSMsg.KEY_SVC_KEI_NO);
		} else {
			template.set(EKK1091B001CBSMsg.KEY_SVC_KEI_NO, (String) inHash.get(SVC_KEI_NO));
		}
		
		// 進捗一覧照会マップ.ＫＥＹ＿異動区分 → ＫＥＹ＿異動区分
		if (inHash == null || inHash.get(IDO_DIV) == null || "".equals(inHash.get(IDO_DIV))) {
			template.setNull(EKK1091B001CBSMsg.KEY_IDO_DIV);
		} else {
			template.set(EKK1091B001CBSMsg.KEY_IDO_DIV, (String) inHash.get(IDO_DIV));
		}
		
		// サービスインターフェイス共通部の設定
		setCommonTemplate(param, template);

		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}
// 2013/06/13 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD END
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得用I/F
	 * @return サービスコンポーネント実行用CAANMsg
	 * @since 2012.02.08
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> editEKK1091D010InMsg(IRequestParameterReadOnly param, HashMap<String, Object>inHash, HashMap<String, Object> workMap)
	throws RequestParameterException{

		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// メッセージ共通部の設定
		setCommonParamMap(param, paramMap);
		
		CAANMsg template = new CAANMsg(EKK1091D010CBSMsg.class.getName());

		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK1091D010CBSMsg().getContents());
		
		// テンプレートID
		template.set(EKK1091D010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK1091D010);
		
		
		if (inHash != null) {
			// 機能コード
			template.set(EKK1091D010CBSMsg.FUNC_CODE, inHash.get(JCMConstants.FUNC_CODE_KEY));
		}

		// 進捗登録マップ.サービス契約番号 → サービス契約番号
		if (inHash == null || inHash.get(SVC_KEI_NO) == null || "".equals(inHash.get(SVC_KEI_NO))) {
			template.setNull(EKK1091D010CBSMsg.SVC_KEI_NO);
		} else {
			template.set(EKK1091D010CBSMsg.SVC_KEI_NO, (String) inHash.get(SVC_KEI_NO));
		}
		
		// 進捗登録マップ.ステータス → ステータス
		if (inHash == null || inHash.get(PRG_STAT) == null || "".equals(inHash.get(PRG_STAT))) {
			template.setNull(EKK1091D010CBSMsg.PRG_STAT);
		} else {
			template.set(EKK1091D010CBSMsg.PRG_STAT, (String) inHash.get(PRG_STAT));
		}
		//請求契約番号
		//課金先一覧照会の結果を格納する
		HashMap<String, Object> ekk0321B002Hash = null;
		ekk0321B002Hash = (HashMap<String, Object>)workMap.get(TEMPLATE_ID_EKK0321B002);
		
		// オプションサービス契約<ISP>登録マップ.請求契約番号 → 請求契約番号
		template.set(EKK1091D010CBSMsg.SEIKY_KEI_NO, (String)ekk0321B002Hash.get(SEIKY_KEI_NO));

		// 進捗登録マップ.異動区分 → 異動区分
		if (inHash == null || inHash.get(IDO_DIV) == null || "".equals(inHash.get(IDO_DIV))) {
			template.setNull(EKK1091D010CBSMsg.IDO_DIV);
		} else {
			template.set(EKK1091D010CBSMsg.IDO_DIV, (String) inHash.get(IDO_DIV));
		}
		
		// 2012/10/18 [ANK-1223-00-00]進捗補足事項編集対応 ADD START
		// 進捗登録マップ.進捗特記事項1 → 進捗特記事項1
		template.set(EKK1091D010CBSMsg.PRG_TKJK_1, PRG_TKJK_1_VAL_IPV6_INFO_ADD);
		// 2012/10/18 [ANK-1223-00-00]進捗補足事項編集対応 ADD END

// 2013/06/13 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 MOD START
		//進捗一覧照会の結果を格納する
		HashMap<String, Object> ekk1091B001Hash = null;
		String ido_dtm = null;
		ekk1091B001Hash = (HashMap<String, Object>)workMap.get(TEMPLATE_ID_EKK1091B001);
		if (ekk1091B001Hash != null){
			ido_dtm = (String)ekk1091B001Hash.get("ido_dtm");
		}
		// 異動区分が新規契約またはサービス追加の場合、進捗一覧照会マップの異動年月日
		if (IDO_DIV_SINKI.equals((String)inHash.get(IDO_DIV)) || IDO_DIV_TSUIKA.equals((String)inHash.get(IDO_DIV))){
			template.set(EKK1091D010CBSMsg.IDO_DTM, ido_dtm);
		}
		else
		{
			// 進捗登録マップ.運用年月時分秒 → システム年月日時分秒
			template.set(EKK1091D010CBSMsg.IDO_DTM, JCCModelCommon.getSysDateTimeStamp());
		}
// 2013/06/13 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 MOD END
		
		//オプションサービス契約番号			//2011-11-18
		HashMap<?, ?> ekk0361d010Msg = (HashMap<?, ?>)workMap.get(TEMPLATE_ID_EKK0361D010);
		Object op_svc_kei_no = ekk0361d010Msg.get(EKK0361D010CBSMsg.OP_SVC_KEI_NO);
		template.set(EKK1091D010CBSMsg.OP_SVC_KEI_NO, op_svc_kei_no);

		//異動理由リスト
		ArrayList idoRsnList = (ArrayList)inHash.get(IDO_RSN_LIST);
		//異動理由メモ
		ArrayList idoRsnMemoList = (ArrayList)inHash.get(IDO_RSN_MEMO_LIST);
		CAANMsg[] list = new CAANMsg[idoRsnList.size()];
		for(int i = 0 ; i < idoRsnList.size() ; i++)
		{
			CAANMsg idoRsnTemp = new CAANMsg(EKK1091D010CBSMsg1List.class.getName());
			// ▼異動理由メモのマッピング対応 Start
//			idoRsnTemp.set(EKK1091D010CBSMsg1List.IDO_RSN_CD , idoRsnList.get(i));
//			idoRsnTemp.setNull(EKK1091D010CBSMsg1List.IDO_RSN_MEMO);
//			idoRsnTemp.set(EKK1091D010CBSMsg1List.IDO_RSN_MEMO, idoRsnMemoList.get(i));
			if (idoRsnList == null || idoRsnList.get(i) == null || "".equals(idoRsnList.get(i))) 
			{
				idoRsnTemp.setNull(EKK1091D010CBSMsg1List.IDO_RSN_CD);
			} 
			else 
			{
				idoRsnTemp.set(EKK1091D010CBSMsg1List.IDO_RSN_CD, idoRsnList.get(i));
			}
			if (idoRsnMemoList == null || idoRsnMemoList.get(i) == null || "".equals(idoRsnMemoList.get(i))) 
			{
				idoRsnTemp.setNull(EKK1091D010CBSMsg1List.IDO_RSN_MEMO);
			} 
			else 
			{
				idoRsnTemp.set(EKK1091D010CBSMsg1List.IDO_RSN_MEMO, idoRsnMemoList.get(i));
			}
			// ▲異動理由メモのマッピング対応 End
			list[i] = idoRsnTemp;
		}	
		
		
		// 異動理由コード
		template.set(EKK1091D010CBSMsg.EKK1091D010CBSMSG1LIST, list);

		// サービスインターフェイス共通部の設定
		setCommonTemplate(param, template);		

		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし	
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得用I/F
	 * @return サービスコンポーネント実行用CAANMsg
	 * @since 2012.02.08
	 */
//	public HashMap<String, Object> editEZM0111D010InMsg(IRequestParameterReadOnly param, HashMap<String, Object>inHash, HashMap<String, Object> workMap)
//	throws RequestParameterException{
//
//		HashMap<String, Object> paramMap = new HashMap<String, Object>();
//
//		// メッセージ共通部の設定
//		setCommonParamMap(param, paramMap);
//		
//		CAANMsg template = new CAANMsg(EZM0111D010CBSMsg.class.getName());
//
//		//まずは全条件のNullマッピング
//		fillCAANMSGNullMapping(template, new EZM0111D010CBSMsg().getContents());
//
//		
//		// テンプレートID
//		template.set(EZM0111D010CBSMsg.TEMPLATEID, TEMPLATE_ID_EZM0111D010);
//		
//		if (inHash != null) {
//			// 機能コード
//			template.set(EZM0111D010CBSMsg.FUNC_CODE, inHash.get(JCMConstants.FUNC_CODE_KEY));
//		}
//
//		// エイジング登録マップ.エイジング種別コード → エイジング種別コード
//		template.set(EZM0111D010CBSMsg.AGING_SBT_CD,  AGING_SBT_CD_IPV6);
//
//		// エイジング登録マップ.エイジング対象値 → エイジング対象値
//		if (inHash == null || inHash.get(IPV6_AD) == null || "".equals(inHash.get(IPV6_AD))) {
//			template.setNull(EZM0111D010CBSMsg.AGING_TG_VALUE);
//		} else {
//			template.set(EZM0111D010CBSMsg.AGING_TG_VALUE, (String) inHash.get(IPV6_AD));
//		}
//
//		// エイジング登録マップ.使用開始年月日時分秒  → 使用開始年月日時分秒 
//		if (inHash == null || inHash.get(UNYO_DTM) == null || "".equals(inHash.get(UNYO_DTM))) {
//			template.setNull(EZM0111D010CBSMsg.USE_STA_DTM);
//		} else {
//			template.set(EZM0111D010CBSMsg.USE_STA_DTM, (String) inHash.get(UNYO_DTM));
//		}
//		
//		// サービスインターフェイス共通部の設定
//		setCommonTemplate(param, template);		
//
//		CAANMsg[] templates = new CAANMsg[1];
//		templates[0] = template;
//		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);
//
//		return paramMap;
//	}
//	
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>IPv6更新S-IFを実行前に、CAANMsgに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得用I/F
	 * @return サービスコンポーネント実行用CAANMsg
	 * @since 2012.02.08
	 */
//	@SuppressWarnings("unchecked")
//	public HashMap<String, Object> editEZM0999C010InMsg(IRequestParameterReadOnly param)
//	throws Throwable {
//
//		HashMap<String, Object> paramMap = new HashMap<String, Object>();
//
//		// メッセージ共通部の設定
//		setCommonParamMap(param, paramMap);
//
//		CAANMsg template = new CAANMsg(EZM0999C010CBSMsg.class.getName());
//		CAANMsg[] templateArray = null;
//
//		HashMap inHash = null;
//		ArrayList inList = null;
//
//		// テンプレートID
//		template.set(EZM0999C010CBSMsg.TEMPLATEID, "EZM0999C010");
//
//		// 機能コード（デフォルト：１）
//		template.set(EZM0999C010CBSMsg.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);
//
//		// 作業領域の取得
//		Map workMap = (Map)param.getMappingWorkArea();
//		
//
//		/* ユーザデータ情報 */
//		inHash = (HashMap)param.getData("ezm0999_map");
//		
//		if (inHash != null) {
//			// 機能コード
//			template.set(EZM0999C010CBSMsg.FUNC_CODE, inHash.get(JCMConstants.FUNC_CODE_KEY));
//		}
//
//		// ＩＰｖ６アドレス更新マップ.中心局コード → 中心局コード
//		if (inHash == null || inHash.get("CHUSKK_CD") == null || "".equals(inHash.get("CHUSKK_CD"))) {
//			template.setNull(EZM0999C010CBSMsg.CHUSKK_CD);
//		} else {
//			template.set(EZM0999C010CBSMsg.CHUSKK_CD, (String) inHash.get("CHUSKK_CD"));
//		}
//
//		// ＩＰｖ６アドレス更新マップ.使用回数 → 使用回数
//		if (inHash == null || inHash.get(USE_CNT) == null || "".equals(inHash.get(USE_CNT))) {
//			template.setNull(EZM0999C010CBSMsg.USE_CNT);
//		} else {
//			template.set(EZM0999C010CBSMsg.USE_CNT, (String) inHash.get(USE_CNT));
//		}
//
//		// ＩＰｖ６アドレス更新マップ.運用年月日 → IPv6IPアドレス情報適用開始年月日
//		if (inHash == null || inHash.get(UNYO_YMD) == null || "".equals(inHash.get(UNYO_YMD))) {
//			template.setNull(EZM0999C010CBSMsg.IPV6_IP_AD_INFO_TSTAYMD);
//		} else {
//			template.set(EZM0999C010CBSMsg.IPV6_IP_AD_INFO_TSTAYMD, (String) inHash.get(UNYO_YMD));
//		}
//
//		// ＩＰｖ６アドレス更新マップ.更新年月日時分秒(更新前) → 更新年月日時分秒(更新前)
//		if (inHash == null || inHash.get("upd_dtm_bf") == null || "".equals(inHash.get("upd_dtm_bf"))) {
//			template.setNull(EZM0999C010CBSMsg.UPD_DTM_BF);
//		} else {
//			template.set(EZM0999C010CBSMsg.UPD_DTM_BF, (String) inHash.get("upd_dtm_bf"));
//		}
//			
//
//		CAANMsg[] templates = new CAANMsg[1];
//		templates[0] = template;
//		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);
//
//		return paramMap;
//	}
	
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>承認登録後続処理S-IF実行前に、CAANMsgに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得用I/F
	 * @return サービスコンポーネント実行用CAANMsg
	 * @since 2012.02.08
	 */
	public HashMap<String, Object> editEKK0021C060InMsg(IRequestParameterReadOnly param, HashMap<String, Object>inHash, HashMap<String, Object> workMap)
	throws RequestParameterException
			{

		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// メッセージ共通部の設定
		setCommonParamMap(param, paramMap);

		CAANMsg template = new CAANMsg(EKK0021C060CBSMsg.class.getName());

		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0021C060CBSMsg().getContents());
		
		// テンプレートID
		template.set(EKK0021C060CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0021C060);
		
		if (inHash != null) {
			// 機能コード
			template.set(EZM0111D010CBSMsg.FUNC_CODE, inHash.get(JCMConstants.FUNC_CODE_KEY));
		}
		
		// 申込明細番号
		HashMap<?, ?> ekk0011d020Msg = (HashMap<?, ?>)workMap.get(TEMPLATE_ID_EKK0011D020);
		ArrayList<?> ekk0011d020MsgList = (ArrayList<?>)ekk0011d020Msg.get(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST);
		HashMap<?, ?> kk0021Map = (HashMap<?, ?>) ekk0011d020MsgList.get(0);
		Object mskm_dtl_no = kk0021Map.get(EKK0011D020CBSMsg1List.MSKM_DTL_NO);
		template.set(EKK0021C060CBSMsg.MSKM_DTL_NO, mskm_dtl_no);
		
		// 後続依頼年月日時分秒
		template.set(EKK0021C060CBSMsg.KZKWRK_REQYMD,
				inHash.get(UNYO_YMD));

		// 更新年月日時分秒（更新前）
		template.set(EKK0021C060CBSMsg.UPD_DTM_BF, inHash.get(EX_SVC_UPD_DTM));
		
		// サービスインターフェイス共通部の設定
		setCommonTemplate(param, template);		
		
		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>オプションサービス契約一意照会S-IF実行前に、CAANMsgに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得用I/F
	 * @return サービスコンポーネント実行用CAANMsg
	 * @since 2012.02.08
	 */
	public HashMap<String, Object> editEKK0361A010InMsg(IRequestParameterReadOnly param, HashMap<String, Object>inHash, HashMap<String, Object> workMap)
	throws RequestParameterException
			{

		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// メッセージ共通部の設定
		setCommonParamMap(param, paramMap);

		CAANMsg template = new CAANMsg(EKK0361A010CBSMsg.class.getName());

		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0361A010CBSMsg().getContents());
		
		// テンプレートID
		template.set(EKK0361A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0361A010);

		// 機能コード (固定："2" のみ）
		template.set(EKK0361A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_2);
		
		// オプションサービス一意照会マップ.ＫＥＹ＿サービス契約番号 → ＫＥＹ＿サービス契約番号
		if (inHash == null || inHash.get(EKK0361D010CBSMsg.OP_SVC_KEI_NO) == null || "".equals(inHash.get(EKK0361D010CBSMsg.OP_SVC_KEI_NO) )) {
			template.setNull(EKK0361A010CBSMsg.KEY_OP_SVC_KEI_NO);
		} else {
			template.set(EKK0361A010CBSMsg.KEY_OP_SVC_KEI_NO, (String) inHash.get(EKK0361D010CBSMsg.OP_SVC_KEI_NO));
		}

		// サービスインターフェイス共通部の設定
		setCommonTemplate(param, template);		
		
		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}
	
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>機器提供サービス一意照会S-IF実行前に、CAANMsgに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得用I/F
	 * @return サービスコンポーネント実行用CAANMsg
	 * @since 2012.02.08
	 */
	public HashMap<String, Object> editEKK0341B002InMsg(IRequestParameterReadOnly param, HashMap<String, Object>inHash, HashMap<String, Object> workMap)
	throws RequestParameterException
			{

		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// メッセージ共通部の設定
		setCommonParamMap(param, paramMap);

		CAANMsg template = new CAANMsg(EKK0341B002CBSMsg.class.getName());

		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0341B002CBSMsg().getContents());
		
		// テンプレートID
		template.set(EKK0341B002CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0341B002);

		
// 2014/01/06 [IT2-2013-0000903]IPv6オプション登録時にサービス提供中にする対応 MOD START
//		// 機能コード (固定："1" のみ）
//		template.set(EKK0341B002CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
		// 機能コード (固定："8" のみ）
		template.set(EKK0341B002CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_8);
// 2014/01/06 [IT2-2013-0000903]IPv6オプション登録時にサービス提供中にする対応 MOD END
		
		// 機器提供サービス一意照会マップ.ＫＥＹ＿サービス契約番号 → ＫＥＹ＿サービス契約番号
		if (inHash == null || inHash.get(SVC_KEI_NO) == null || "".equals(inHash.get(SVC_KEI_NO))) {
			template.setNull(EKK0341B002CBSMsg.KEY_SVC_KEI_NO);
		} else {
			template.set(EKK0341B002CBSMsg.KEY_SVC_KEI_NO, (String) inHash.get(SVC_KEI_NO));
		}

		// 機器提供サービス一意照会マップ.ＫＥＹ＿ソート区分 → ＫＥＹ＿ソート区分
		template.set(EKK0341B002CBSMsg.KEY_SORT_KBN, SORT_DIV );

		// サービスインターフェイス共通部の設定
		setCommonTemplate(param, template);		
		
		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>機器提供サービス一意照会S-IF実行前に、CAANMsgに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得用I/F
	 * @return サービスコンポーネント実行用CAANMsg
	 * @since 2012.02.08
	 */
	public HashMap<String, Object> editEZM0481C010InMsg(IRequestParameterReadOnly param, HashMap<String, Object>inHash, HashMap<String, Object> workMap)
	throws RequestParameterException
			{

		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap subMap = new HashMap();
// ▼20120514 動作確認にて修正
		ArrayList inList = null;
		
		inList = (ArrayList) inHash.get(IPV6AD_LIST);
		subMap = (HashMap) inList.get(0);
//		subMap = (HashMap) inHash.get(IPV6AD_LIST);
// ▲20120514 動作確認にて修正
		
		// メッセージ共通部の設定
		setCommonParamMap(param, paramMap);

		CAANMsg template = new CAANMsg(EZM0481C010CBSMsg.class.getName());

		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EZM0481C010CBSMsg().getContents());
		
		// テンプレートID
		template.set(EZM0481C010CBSMsg.TEMPLATEID, TEMPLATE_ID_EZM0481C010);

		
		// 機能コード (固定："1" のみ）
		template.set(EZM0481C010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
		
		// ＩＰｖ６アドレス情報リスト.ＩＰｖ６アドレス → ＩＰｖ６アドレス
		if (subMap == null || subMap.get(IPV6_AD) == null || "".equals(subMap.get(IPV6_AD))) {
			template.setNull(EZM0481C010CBSMsg.IPV6_AD_IFID);
		} else {
			template.set(EZM0481C010CBSMsg.IPV6_AD_IFID, (String) subMap.get(IPV6_AD));
		}

		// ＩＰｖ６アドレス.中心局コード → 中心局コード
		if (subMap == null || subMap.get(CHUSKK_CD) == null || "".equals(subMap.get(CHUSKK_CD))) {
			template.setNull(EZM0481C010CBSMsg.CHUSKK_CD);
		} else {
			template.set(EZM0481C010CBSMsg.CHUSKK_CD, (String) subMap.get(CHUSKK_CD));
		}
		
		// ＩＰｖ６アドレス.使用回数 → 使用回数
		if (subMap == null || subMap.get(USE_CNT) == null || "".equals(subMap.get(USE_CNT))) {
			template.setNull(EZM0481C010CBSMsg.USE_CNT);
		} else {
			template.set(EZM0481C010CBSMsg.USE_CNT, (String) subMap.get(USE_CNT));
		}
		
		// 運用日 → 適用開始年月日
		if (inHash == null || inHash.get(UNYO_YMD) == null || "".equals(inHash.get(UNYO_YMD))) {
			template.setNull(EZM0481C010CBSMsg.IPV6_AD_TSTAYMD);
		} else {
			template.set(EZM0481C010CBSMsg.IPV6_AD_TSTAYMD, (String) inHash.get(UNYO_YMD));
		}
		
// ▼20120514 動作確認にて修正
		// ＩＰｖ６アドレス.更新前年月日時分秒 → 更新前最終年月日時分秒
		if (subMap == null || subMap.get(UPD_DTM_BF) == null || "".equals(subMap.get(UPD_DTM_BF))) {
			template.setNull(EZM0481C010CBSMsg.LAST_UPD_DTM_BF);
		} else {
			template.set(EZM0481C010CBSMsg.LAST_UPD_DTM_BF, (String) subMap.get(UPD_DTM_BF));
		}
// ▲20120514 動作確認にて修正
		
		// サービスインターフェイス共通部の設定
		setCommonTemplate(param, template);		
		
		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}
	
	
	
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービス一意照会S-IF実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param msgList (I) CAANMsgクラス 
	 * @param param (I) 業務データ取得・書込用I/F
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.08
	 */
	@SuppressWarnings("unchecked")
	public HashMap editEKK0081A010ResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception {

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		CAANMsg[] templateArray = null;

		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);
		
		// エラー情報の設定
		param = editEKK0081A010ErrorInfo(param, templates, (Integer)return_code, 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));
		

		/* ◇処理結果の判定 */
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = return_code.toString();
		int status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);

		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
		
		//結果の取得
		templateArray = (CAANMsg[])parentTemplate.getMsgData().get(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST);
		if(templateArray != null && templateArray.length > 0){
			return templateArray[0].getMsgData();
		}
		return null;
	}

	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービス一意照会S-IF実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param msgList (I) CAANMsgクラス 
	 * @param param (I) 業務データ取得・書込用I/F
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.08
	 */
	@SuppressWarnings("unchecked")
	public HashMap editEKK0161B001ResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception {

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		CAANMsg[] templateArray = null;

		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);
		
		// エラー情報の設定
		param = editEKK0161B001ErrorInfo(param, templates, (Integer)return_code, 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));
		
		/* ◇処理結果の判定 */
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = return_code.toString();
		int status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);

		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
		
		// 結果の取得
		templateArray = (CAANMsg[])parentTemplate.getMsgData().get(EKK0161B001CBSMsg.EKK0161B001CBSMSG1LIST);
		if(templateArray != null && templateArray.length > 0){
			return templateArray[0].getMsgData();
		}
		return null;
	}

	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>S-IF実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param msgList (I) CAANMsgクラス 
	 * @param param (I) 業務データ取得・書込用I/F
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.08
	 */
	@SuppressWarnings("unchecked")
	public HashMap editEKK0341B002ResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception {

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		CAANMsg[] templateArray = null;

		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);
		
		// エラー情報の設定
		param = editEKK0341B002ErrorInfo(param, templates, (Integer)return_code, 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));
		

		/* ◇処理結果の判定 */
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = return_code.toString();
		int status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);

		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
		

		//結果の取得
		templateArray = (CAANMsg[])parentTemplate.getMsgData().get(EKK0341B002CBSMsg.EKK0341B002CBSMSG1LIST);
		if(templateArray != null && templateArray.length > 0){
			return templateArray[0].getMsgData();
		}else{
			return null;
		}
	}
	
// 2014/01/06 [IT2-2013-0000903]IPv6オプション登録時にサービス提供中にする対応 ADD START
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>S-IF実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param msgList (I) CAANMsgクラス 
	 * @param param (I) 業務データ取得・書込用I/F
	 * @return 業務データ取得・書込用I/F
	 */
	@SuppressWarnings("unchecked")
	public CAANMsg[] editEKK0341B002ResultRP_List(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception {

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		CAANMsg[] templateArray = null;

		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);
		
		// エラー情報の設定
		param = editEKK0341B002ErrorInfo(param, templates, (Integer)return_code, 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));
		
		/* ◇処理結果の判定 */
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = return_code.toString();
		int status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);

		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
		
		//結果の取得
		templateArray = (CAANMsg[])parentTemplate.getMsgData().get(EKK0341B002CBSMsg.EKK0341B002CBSMSG1LIST);
		if(templateArray != null && templateArray.length > 0){
			return templateArray;
		}else{
			return null;
		}
	}
// 2014/01/06 [IT2-2013-0000903]IPv6オプション登録時にサービス提供中にする対応 ADD END

	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>S-IF実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param msgList (I) CAANMsgクラス 
	 * @param param (I) 業務データ取得・書込用I/F
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.08
	 */
	@SuppressWarnings("unchecked")
	public HashMap editEKK0321B002ResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception {

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		CAANMsg[] templateArray = null;

		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);
		
		// エラー情報の設定
		param = editEKK0321B002ErrorInfo(param, templates, (Integer)return_code, 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));
		

		/* ◇処理結果の判定 */
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = return_code.toString();
		int status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);

		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}

		//結果の取得
		templateArray = (CAANMsg[])parentTemplate.getMsgData().get(EKK0321B002CBSMsg.EKK0321B002CBSMSG1LIST);
		
		if(templateArray != null && templateArray.length > 0){
			return templateArray[0].getMsgData();
		}
		return null;
	}
	
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>S-IF実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param msgList (I) CAANMsgクラス 
	 * @param param (I) 業務データ取得・書込用I/F
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.08
	 */
	@SuppressWarnings("unchecked")
	public HashMap editEKK0011D020ResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception {

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		CAANMsg[] templateArray = null;
		
		HashMap<String, Object> ekk0011D020Msg = null;
		ArrayList<HashMap> ekk0011D020MsgList = null;

		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);
		
		// エラー情報の設定
		param = editEKK0011D020ErrorInfo(param, templates, (Integer)return_code, 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));
		

		/* ◇処理結果の判定 */
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = return_code.toString();
		int status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);

		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
		
		//結果の取得
		ekk0011D020Msg = parentTemplate.getMsgData();
		templateArray = (CAANMsg[])parentTemplate.getMsgData().get(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST);
		
		ekk0011D020MsgList = new ArrayList<HashMap>();
		for(int i = 0 ; i < templateArray.length ; i++)
		{
			CAANMsg element = null;
			element = templateArray[i];
			HashMap	ekk0011D020MsgListElement = element.getMsgData();
			ekk0011D020MsgList.add(ekk0011D020MsgListElement);
			
			//申込明細番号
			Object mskm_dtl_no = ekk0011D020MsgListElement.get(EKK0011D020CBSMsg1List.MSKM_DTL_NO);
			ekk0011D020Msg.put(EKK0011D020CBSMsg1List.MSKM_DTL_NO, mskm_dtl_no);
		}
		ekk0011D020Msg.remove(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST);
		ekk0011D020Msg.put(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST, ekk0011D020MsgList);
		
		return ekk0011D020Msg;
		
		
	}
	
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>S-IF実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param msgList (I) CAANMsgクラス 
	 * @param param (I) 業務データ取得・書込用I/F
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.08
	 */
	@SuppressWarnings("unchecked")
	public HashMap editEKK0021D010ResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception {

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		CAANMsg[] templateArray = null;

		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);
		
		// エラー情報の設定
		param = editEKK0021D010ErrorInfo(param, templates, (Integer)return_code, 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));
		

		/* ◇処理結果の判定 */
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = return_code.toString();
		int status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);

		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}

		//結果の取得
		templateArray = (CAANMsg[])parentTemplate.getMsgData().get(EKK0321B002CBSMsg.EKK0321B002CBSMSG1LIST);

		if(templateArray != null && templateArray.length > 0){

			return templateArray[0].getMsgData();
		}
		return null;
	}
	
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>S-IF実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param msgList (I) CAANMsgクラス 
	 * @param param (I) 業務データ取得・書込用I/F
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.08
	 */
	@SuppressWarnings("unchecked")
	public HashMap editEKK0361D010ResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception {

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];

		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);
		
		// エラー情報の設定
		param = editEKK0361D010ErrorInfo(param, templates, (Integer)return_code, 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));
		

		/* ◇処理結果の判定 */
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = return_code.toString();
		int status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);

		// 異常の場合、SCCallExceptionを生成してスローする
		//▼IT1-2012-0000489 IT1故障対応 ワーニングの場合例外にthrowしない様に修正
		if(!("0".equals(rtnCode) && 0 == status) && 4 != status)
		{
			
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
		
		//結果の取得
		return parentTemplate.getMsgData();
	
	}
	
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>S-IF実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param msgList (I) CAANMsgクラス 
	 * @param param (I) 業務データ取得・書込用I/F
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.08
	 */
	@SuppressWarnings("unchecked")
	public HashMap editEKK0361C010ResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception {

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];

		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);
		
		// エラー情報の設定
		param = editEKK0361C010ErrorInfo(param, templates, (Integer)return_code, 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));
		

		/* ◇処理結果の判定 */
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = return_code.toString();
		int status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);

		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}


		return parentTemplate.getMsgData();
	}
	
	
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>S-IF実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param msgList (I) CAANMsgクラス 
	 * @param param (I) 業務データ取得・書込用I/F
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.08
	 */
	@SuppressWarnings("unchecked")
	public HashMap editEKK0361C030ResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception {

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];

		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);
		
		// エラー情報の設定
		param = editEKK0361C030ErrorInfo(param, templates, (Integer)return_code, 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));
		

		/* ◇処理結果の判定 */
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = return_code.toString();
		int status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);

		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}

		return parentTemplate.getMsgData();
	}
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>S-IF実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param msgList (I) CAANMsgクラス 
	 * @param param (I) 業務データ取得・書込用I/F
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.08
	 */
	@SuppressWarnings("unchecked")
	public HashMap editEKK0361C040ResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception {

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];

		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);
		
		// エラー情報の設定
		param = editEKK0361C040ErrorInfo(param, templates, (Integer)return_code, 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));
		

		/* ◇処理結果の判定 */
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = return_code.toString();
		int status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);

		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}

		return parentTemplate.getMsgData();
	}
	
// 2013/06/13 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD START
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービス一意照会S-IF実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param msgList (I) CAANMsgクラス 
	 * @param param (I) 業務データ取得・書込用I/F
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.08
	 */
	@SuppressWarnings("unchecked")
	public HashMap editEKK1091B001ResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception {

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		CAANMsg[] templateArray = null;

		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);
		
		// エラー情報の設定
		param = editEKK1091B001ErrorInfo(param, templates, (Integer)return_code, 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));
		
		/* ◇処理結果の判定 */
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = return_code.toString();
		int status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);

		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
		
		// 結果の取得
		templateArray = (CAANMsg[])parentTemplate.getMsgData().get(EKK1091B001CBSMsg.EKK1091B001CBSMSG1LIST);
		if(templateArray != null && templateArray.length > 0){
			return templateArray[0].getMsgData();
		}
		return null;
	}
// 2013/06/13 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD END

	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>S-IF実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param msgList (I) CAANMsgクラス 
	 * @param param (I) 業務データ取得・書込用I/F
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.08
	 */
	@SuppressWarnings("unchecked")
	public HashMap editEKK1091D010ResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception {

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];

		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);
		
		// エラー情報の設定
		param = editEKK1091D010ErrorInfo(param, templates, (Integer)return_code, 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));
		

		/* ◇処理結果の判定 */
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = return_code.toString();
		int status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);

		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}

		return parentTemplate.getMsgData();
	}
	
//	/**
//	 *<DL>
//	 *<DT>処理概要:
//	 *<DD>S-IF実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
//	 *<DT>入力パラメータ説明:
//	 *<DD>特になし
//	 *<DT>入力パラメータ説明：
//	 *<DD>特になし
//	 *<DT>出力パラメータ説明:
//	 *<DD>特になし
//	 *</DL>
//	 * @param msgList (I) CAANMsgクラス 
//	 * @param param (I) 業務データ取得・書込用I/F
//	 * @return 業務データ取得・書込用I/F
//	 * @since 2012.02.08
//	 */
//	@SuppressWarnings("unchecked")
//	public HashMap editEZM0111D010ResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception {
//
//		// SCからの戻り値からCAANMsgを取得する。
//		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
//		CAANMsg parentTemplate = templates[0];
//
//		// リターンコード取得
//		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);
//		
//		// エラー情報の設定
//		param = editEZM0111D010ErrorInfo(param, templates, (Integer)return_code, 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));
//		
//
//		/* ◇処理結果の判定 */
//		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
//		String rtnCode = return_code.toString();
//		int status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);
//
//		// 異常の場合、SCCallExceptionを生成してスローする
//		if(!("0".equals(rtnCode) && 0 == status))
//		{
//			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
//			throw scCallEx;
//		}
//
//		return parentTemplate.getMsgData();
//	}
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>申込後続S-IF実行実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得・書込用I/F
	 * @param templates (I) CAANMsgクラス配列
	 * @param returnCode (I) リターンコード
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.04
	 */
	@SuppressWarnings("unchecked")
	public HashMap editEKK0021C060ResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception {

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];

		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);
		
		// エラー情報の設定
		param = editEKK0021C060ErrorInfo(param, templates, (Integer)return_code, 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));
		

		/* ◇処理結果の判定 */
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = return_code.toString();
		int status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);

		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}

		return parentTemplate.getMsgData();
	}
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>オプションサービス一意照会S-IF実行実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得・書込用I/F
	 * @param templates (I) CAANMsgクラス配列
	 * @param returnCode (I) リターンコード
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.04
	 */
	@SuppressWarnings("unchecked")
	public HashMap editEKK0361A010ResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception {

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		CAANMsg[] templateArray = null;

		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);
		
		// エラー情報の設定
		param = editEKK0361A010ErrorInfo(param, templates, (Integer)return_code, 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));
		

		/* ◇処理結果の判定 */
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = return_code.toString();
		int status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);

		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
		
		//結果の取得
		templateArray = (CAANMsg[])parentTemplate.getMsgData().get(EKK0361A010CBSMsg.EKK0361A010CBSMSG1LIST);
		if(templateArray != null && templateArray.length > 0){
			return templateArray[0].getMsgData();
		}

		return parentTemplate.getMsgData();
	}
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>S-IF実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param msgList (I) CAANMsgクラス 
	 * @param param (I) 業務データ取得・書込用I/F
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.08
	 */
	@SuppressWarnings("unchecked")
	public HashMap editEZM0481C010ResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception {

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];

		return parentTemplate.getMsgData();
	}
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービス契約回線内訳一覧照会S-IF実行実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得・書込用I/F
	 * @param templates (I) CAANMsgクラス配列
	 * @param returnCode (I) リターンコード
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.04
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editEKK0081A010ErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, 
			String fixedText) throws RequestParameterException 
			{
		
		CAANMsg template = templates[0];
		// エラー共通部の設定
		setControlMap(param, templates, returnCode, EKK0081A010CBSMsg.STATUS);

		HashMap inHash = null;

		/* ユーザデータ情報 */
		inHash = (HashMap)param.getData(fixedText);
		if (inHash == null) 
		{
			inHash = new HashMap();
			param.setData(fixedText, inHash);
		}

		// ＩＰｖ６アドレス登録マップ.ＫＥＹ＿サービス契約番号 → ＫＥＹ＿サービス契約番号 のエラー情報返却
		if (!template.isNull(EKK0081A010CBSMsg.KEY_SVC_KEI_NO_ERR)) {
			if (!inHash.containsKey("key_svc_kei_no_err")) {
				inHash.put("key_svc_kei_no_err", template.getString(EKK0081A010CBSMsg.KEY_SVC_KEI_NO_ERR));
			}
		}
		// ＩＰｖ６アドレス登録マップ.ＫＥＹ＿世代登録年月日時分秒 → ＫＥＹ＿世代登録年月日時分秒 のエラー情報返却
		if (!template.isNull(EKK0081A010CBSMsg.KEY_GENE_ADD_DTM_ERR)) {
			if (!inHash.containsKey("key_gene_add_dtm_err")) {
				inHash.put("key_gene_add_dtm_err", template.getString(EKK0081A010CBSMsg.KEY_GENE_ADD_DTM_ERR));
			}
		}
		// ＩＰｖ６アドレス登録マップ.ＫＥＹ＿予約適用年月日 → ＫＥＹ＿予約適用年月日 のエラー情報返却
		if (!template.isNull(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD_ERR)) {
			if (!inHash.containsKey("key_rsv_aply_ymd_err")) {
				inHash.put("key_rsv_aply_ymd_err", template.getString(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD_ERR));
			}
		}
		return param;
	}
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービス契約内訳（予約の最新とカレント）一覧照会S-IF実行実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得・書込用I/F
	 * @param templates (I) CAANMsgクラス配列
	 * @param returnCode (I) リターンコード
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.04
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editEKK0161B001ErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, 
			String fixedText) throws RequestParameterException 
			{
		
		CAANMsg template = templates[0];
		// エラー共通部の設定
		setControlMap(param, templates, returnCode, EKK0161B001CBSMsg.STATUS);

		HashMap inHash = null;

		/* ユーザデータ情報 */
		inHash = (HashMap)param.getData(fixedText);
		if (inHash == null) 
		{
			inHash = new HashMap();
			param.setData(fixedText, inHash);
		}

		// サービス契約内訳（予約の最新とカレント）一覧照会.ＫＥＹ＿サービス契約番号 → ＫＥＹ＿サービス契約番号 のエラー情報返却
		if (!template.isNull(EKK0161B001CBSMsg.KEY_SVC_KEI_NO_ERR)) {
			if (!inHash.containsKey("key_svc_kei_no_err")) {
				inHash.put("key_svc_kei_no_err", template.getString(EKK0161B001CBSMsg.KEY_SVC_KEI_NO_ERR));
			}
		}
		return param;
	}
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービス契約回線内訳一覧照会S-IF実行実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得・書込用I/F
	 * @param templates (I) CAANMsgクラス配列
	 * @param returnCode (I) リターンコード
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.04
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editEKK0321B002ErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, 
			String fixedText) throws RequestParameterException 
			{
		
		CAANMsg template = templates[0];
		// エラー共通部の設定
		setControlMap(param, templates, returnCode, EKK0321B002CBSMsg.STATUS);

		HashMap inHash = null;

		/* ユーザデータ情報 */
		inHash = (HashMap)param.getData(fixedText);
		if (inHash == null) 
		{
			inHash = new HashMap();
			param.setData(fixedText, inHash);
		}

		// 課金先一覧照会マップ.ＫＥＹ＿サービス契約番号 → ＫＥＹ＿サービス契約番号 のエラー情報返却
		if (!template.isNull(EKK0321B002CBSMsg.KEY_SVC_KEI_NO_ERR)) {
			if (!inHash.containsKey("key_svc_kei_no_err")) {
				inHash.put("key_svc_kei_no_err", template.getString(EKK0321B002CBSMsg.KEY_SVC_KEI_NO_ERR));
			}
		}
		// 課金先一覧照会マップ.ＫＥＹ＿請求契約番号 → ＫＥＹ＿請求契約番号 のエラー情報返却
		if (!template.isNull(EKK0321B002CBSMsg.KEY_SEIKY_KEI_NO_ERR)) {
			if (!inHash.containsKey("key_seiky_kei_no_err")) {
				inHash.put("key_seiky_kei_no_err", template.getString(EKK0321B002CBSMsg.KEY_SEIKY_KEI_NO_ERR));
			}
		}
		return param;
	}
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービス契約回線内訳一覧照会S-IF実行実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得・書込用I/F
	 * @param templates (I) CAANMsgクラス配列
	 * @param returnCode (I) リターンコード
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.04
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editEKK0011D020ErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, 
			String fixedText) throws RequestParameterException 
			{
		
		CAANMsg template = templates[0];
		// エラー共通部の設定
		setControlMap(param, templates, returnCode, EKK0011D020CBSMsg.STATUS);

		HashMap inHash = null;

		/* ユーザデータ情報 */
		inHash = (HashMap)param.getData(fixedText);
		if (inHash == null) 
		{
			inHash = new HashMap();
			param.setData(fixedText, inHash);
		}
		// 申込内容承認登録マップ.SYSID → SYSID のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.SYSID_ERR)) {
			if (!inHash.containsKey("sysid_err")) {
				inHash.put("sysid_err", template.getString(EKK0011D020CBSMsg.SYSID_ERR));
			}
		}
		// 申込内容承認登録マップ.申込種別コード → 申込種別コード のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.MSKM_SBT_CD_ERR)) {
			if (!inHash.containsKey("mskm_sbt_cd_err")) {
				inHash.put("mskm_sbt_cd_err", template.getString(EKK0011D020CBSMsg.MSKM_SBT_CD_ERR));
			}
		}
		// 申込内容承認登録マップ.申込書到着年月日 → 申込書到着年月日 のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.MSKMSHO_ARIV_YMD_ERR)) {
			if (!inHash.containsKey("mskmsho_ariv_ymd_err")) {
				inHash.put("mskmsho_ariv_ymd_err", template.getString(EKK0011D020CBSMsg.MSKMSHO_ARIV_YMD_ERR));
			}
		}
		// 申込内容承認登録マップ.運用年月日時分秒 → 申込受付年月日時分秒 のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.MSKM_UK_DTM_ERR)) {
			if (!inHash.containsKey("unyo_ymd_err")) {
				inHash.put("unyo_ymd_err", template.getString(EKK0011D020CBSMsg.MSKM_UK_DTM_ERR));
			}
		}
		// 申込内容承認登録マップ.申込受付担当ユーザーID → 申込受付担当ユーザーID のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.MSKM_UK_TNT_USER_ID_ERR)) {
			if (!inHash.containsKey("mskm_uk_tnt_user_id_err")) {
				inHash.put("mskm_uk_tnt_user_id_err", template.getString(EKK0011D020CBSMsg.MSKM_UK_TNT_USER_ID_ERR));
			}
		}
		// 申込内容承認登録マップ.運用年月日 → 申込年月日 のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.MSKM_YMD_ERR)) {
			if (!inHash.containsKey("unyo_ymd_err")) {
				inHash.put("unyo_ymd_err", template.getString(EKK0011D020CBSMsg.MSKM_YMD_ERR));
			}
		}
		// 申込内容承認登録マップ.総合営業センター受付番号 → 総合営業センター受付番号 のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.TTL_BUSINESS_CENTER_UK_NO_ERR)) {
			if (!inHash.containsKey("ttl_business_center_uk_no_err")) {
				inHash.put("ttl_business_center_uk_no_err", template.getString(EKK0011D020CBSMsg.TTL_BUSINESS_CENTER_UK_NO_ERR));
			}
		}
		// 申込内容承認登録マップ.総合営業申込契機コード → 総合営業申込契機コード のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.TTL_BUSINESS_MSKM_OPT_CD_ERR)) {
			if (!inHash.containsKey("ttl_business_mskm_opt_cd_err")) {
				inHash.put("ttl_business_mskm_opt_cd_err", template.getString(EKK0011D020CBSMsg.TTL_BUSINESS_MSKM_OPT_CD_ERR));
			}
		}
		// 申込内容承認登録マップ.申込連絡先電話番号 → 申込連絡先電話番号 のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.MSKM_RRKS_TELNO_ERR)) {
			if (!inHash.containsKey("mskm_rrks_telno_err")) {
				inHash.put("mskm_rrks_telno_err", template.getString(EKK0011D020CBSMsg.MSKM_RRKS_TELNO_ERR));
			}
		}
		// 申込内容承認登録マップ.申込実施者種別コード → 申込実施者種別コード のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.MSKM_JSSIS_SBT_CD_ERR)) {
			if (!inHash.containsKey("mskm_jssis_sbt_cd_err")) {
				inHash.put("mskm_jssis_sbt_cd_err", template.getString(EKK0011D020CBSMsg.MSKM_JSSIS_SBT_CD_ERR));
			}
		}
		// 申込内容承認登録マップ.お客様ご要望事項 → お客様ご要望事項 のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.CUST_YOBO_JIKO_ERR)) {
			if (!inHash.containsKey("cust_yobo_jiko_err")) {
				inHash.put("cust_yobo_jiko_err", template.getString(EKK0011D020CBSMsg.CUST_YOBO_JIKO_ERR));
			}
		}
		// 申込内容承認登録マップ.本人確認書類名 → 本人確認書類名 のエラー情報返却
		// 2012/11/22 [TAI-2012-0000091]暫定ロジック修正対応 DEL START
//		if (!template.isNull(EKK0011D020CBSMsg.HNIN_CFM_BUNSHO_KIND_NM_ERR)) {
//			if (!inHash.containsKey("hnin_cfm_bunsho_kind_nm_err")) {
//				inHash.put("hnin_cfm_bunsho_kind_nm_err", template.getString(EKK0011D020CBSMsg.HNIN_CFM_BUNSHO_KIND_NM_ERR));
//			}
//		}
		// 2012/11/22 [TAI-2012-0000091]暫定ロジック修正対応 DEL END
		
		// 申込内容承認登録マップ.電話連絡希望日種別コード → 電話連絡希望日種別コード のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.TEL_RRK_KIBOD_SBT_CD_ERR)) {
			if (!inHash.containsKey("tel_rrk_kibod_sbt_cd_err")) {
				inHash.put("tel_rrk_kibod_sbt_cd_err", template.getString(EKK0011D020CBSMsg.TEL_RRK_KIBOD_SBT_CD_ERR));
			}
		}
		// 申込内容承認登録マップ.電話連絡希望時間帯コード → 電話連絡希望時間帯コード のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.TEL_RRK_KIBO_TIME_CD_ERR)) {
			if (!inHash.containsKey("tel_rrk_kibo_time_cd_err")) {
				inHash.put("tel_rrk_kibo_time_cd_err", template.getString(EKK0011D020CBSMsg.TEL_RRK_KIBO_TIME_CD_ERR));
			}
		}
		// 申込内容承認登録マップ.宅内調査希望日種別コード → 宅内調査希望日種別コード のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.TAKCHO_KIBOD_SBT_CD_ERR)) {
			if (!inHash.containsKey("takcho_kibod_sbt_cd_err")) {
				inHash.put("takcho_kibod_sbt_cd_err", template.getString(EKK0011D020CBSMsg.TAKCHO_KIBOD_SBT_CD_ERR));
			}
		}
		// 申込内容承認登録マップ.宅内調査希望時間帯コード → 宅内調査希望時間帯コード のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.TAKCHO_KIBO_TIME_CD_ERR)) {
			if (!inHash.containsKey("takcho_kibo_time_cd_err")) {
				inHash.put("takcho_kibo_time_cd_err", template.getString(EKK0011D020CBSMsg.TAKCHO_KIBO_TIME_CD_ERR));
			}
		}
		// 申込内容承認登録マップ.仮申込フラグ → 仮申込フラグ のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.KARI_MSKM_FLG_ERR)) {
			if (!inHash.containsKey("kari_mskm_flg_err")) {
				inHash.put("kari_mskm_flg_err", template.getString(EKK0011D020CBSMsg.KARI_MSKM_FLG_ERR));
			}
		}
		// 申込内容承認登録マップ.リファラー → リファラー のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.REFERER_ERR)) {
			if (!inHash.containsKey("referer_err")) {
				inHash.put("referer_err", template.getString(EKK0011D020CBSMsg.REFERER_ERR));
			}
		}
		// 申込内容承認登録マップ.関西電力お客様情報授受同意有無 → 関西電力お客様情報授受同意有無 のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.KEPCO_CUSTINFO_JUJU_DOI_UM_ERR)) {
			if (!inHash.containsKey("kepco_custinfo_juju_doi_um_err")) {
				inHash.put("kepco_custinfo_juju_doi_um_err", template.getString(EKK0011D020CBSMsg.KEPCO_CUSTINFO_JUJU_DOI_UM_ERR));
			}
		}
		// 申込内容承認登録マップ.照査前連絡事項要否 → 照査前連絡事項要否 のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.SHOSA_BF_RRK_JIKO_YH_ERR)) {
			if (!inHash.containsKey("shosa_bf_rrk_jiko_yh_err")) {
				inHash.put("shosa_bf_rrk_jiko_yh_err", template.getString(EKK0011D020CBSMsg.SHOSA_BF_RRK_JIKO_YH_ERR));
			}
		}
		// 申込内容承認登録マップ.照査前連絡事項 → 照査前連絡事項 のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.SHOSA_BF_RRK_JIKO_ERR)) {
			if (!inHash.containsKey("shosa_bf_rrk_jiko_err")) {
				inHash.put("shosa_bf_rrk_jiko_err", template.getString(EKK0011D020CBSMsg.SHOSA_BF_RRK_JIKO_ERR));
			}
		}
		// 申込内容承認登録マップ.利用サービス継続種別コード → 利用サービス継続種別コード のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.USE_SVC_KEIZK_SBT_CD_ERR)) {
			if (!inHash.containsKey("use_svc_keizk_sbt_cd_err")) {
				inHash.put("use_svc_keizk_sbt_cd_err", template.getString(EKK0011D020CBSMsg.USE_SVC_KEIZK_SBT_CD_ERR));
			}
		}
		// 申込内容承認登録マップ.コンシューマ営業用申込状態識別コード → コンシューマ営業用申込状態識別コード のエラー情報返却
		if (!template.isNull(EKK0011D020CBSMsg.CONSMBSN_MSKM_STAT_SKBT_CD_ERR)) {
			if (!inHash.containsKey("consmbsn_mskm_stat_skbt_cd_err")) {
				inHash.put("consmbsn_mskm_stat_skbt_cd_err", template.getString(EKK0011D020CBSMsg.CONSMBSN_MSKM_STAT_SKBT_CD_ERR));
			}
		}
		ArrayList inList = (ArrayList)inHash.get("EKK0011D020CBSMsg1List");
		if (inList == null) {
			inList = new ArrayList();
			inHash.put("EKK0011D020CBSMsg1List", inList);
		}

		CAANMsg[] templateArray = template.getCAANMsgList(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST);

		if (templateArray != null) {
			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];

				// 申込内容承認登録マップ.申込内容承認登録明細.申込書番号 → 申込内容承認登録明細.申込書番号 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.MSKMSHO_NO_ERR)) {
					if (!childMap.containsKey("mskmsho_no_err")) {
						childMap.put("mskmsho_no_err", childTemplate.getString(EKK0011D020CBSMsg1List.MSKMSHO_NO_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.WEB受付番号 → 申込内容承認登録明細.WEB受付番号 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.WEB_UK_NO_ERR)) {
					if (!childMap.containsKey("web_uk_no_err")) {
						childMap.put("web_uk_no_err", childTemplate.getString(EKK0011D020CBSMsg1List.WEB_UK_NO_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.申込形態コード → 申込内容承認登録明細.申込形態コード のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.MSKM_FORM_CD_ERR)) {
					if (!childMap.containsKey("mskm_form_cd_err")) {
						childMap.put("mskm_form_cd_err", childTemplate.getString(EKK0011D020CBSMsg1List.MSKM_FORM_CD_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.申込明細種別コード → 申込内容承認登録明細.申込明細種別コード のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.MSKM_DTL_SBT_CD_ERR)) {
					if (!childMap.containsKey("mskm_dtl_sbt_cd_err")) {
						childMap.put("mskm_dtl_sbt_cd_err", childTemplate.getString(EKK0011D020CBSMsg1List.MSKM_DTL_SBT_CD_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.連絡先携帯電話番号 → 申込内容承認登録明細.連絡先携帯電話番号 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.RRKS_KTAI_TELNO_ERR)) {
					if (!childMap.containsKey("rrks_ktai_telno_err")) {
						childMap.put("rrks_ktai_telno_err", childTemplate.getString(EKK0011D020CBSMsg1List.RRKS_KTAI_TELNO_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.連絡先勤務先名 → 申込内容承認登録明細.連絡先勤務先名 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.RRKS_OFFC_NM_ERR)) {
					if (!childMap.containsKey("rrks_offc_nm_err")) {
						childMap.put("rrks_offc_nm_err", childTemplate.getString(EKK0011D020CBSMsg1List.RRKS_OFFC_NM_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.昼間連絡先電話番号 → 申込内容承認登録明細.昼間連絡先電話番号 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.DT_RRKS_TELNO_ERR)) {
					if (!childMap.containsKey("dt_rrks_telno_err")) {
						childMap.put("dt_rrks_telno_err", childTemplate.getString(EKK0011D020CBSMsg1List.DT_RRKS_TELNO_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.新規申込種別コード → 申込内容承認登録明細.新規申込種別コード のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.NEW_MSKM_SBT_CD_ERR)) {
					if (!childMap.containsKey("new_mskm_sbt_cd_err")) {
						childMap.put("new_mskm_sbt_cd_err", childTemplate.getString(EKK0011D020CBSMsg1List.NEW_MSKM_SBT_CD_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.申込契機コード → 申込内容承認登録明細.申込契機コード のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.MSKM_OPTNTY_CD_ERR)) {
					if (!childMap.containsKey("mskm_optnty_cd_err")) {
						childMap.put("mskm_optnty_cd_err", childTemplate.getString(EKK0011D020CBSMsg1List.MSKM_OPTNTY_CD_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.申込経路コード → 申込内容承認登録明細.申込経路コード のエラー情報返却
				// 2012/11/22 [TAI-2012-0000091]暫定ロジック修正対応 DEL START
//				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.MSKM_ROUTE_CD_ERR)) {
//					if (!childMap.containsKey("mskm_route_cd_err")) {
//						childMap.put("mskm_route_cd_err", childTemplate.getString(EKK0011D020CBSMsg1List.MSKM_ROUTE_CD_ERR));
//					}
//				}
				// 2012/11/22 [TAI-2012-0000091]暫定ロジック修正対応 DEL END
				
				// 申込内容承認登録マップ.申込内容承認登録明細.宅内調査希望アポ期限年月日 → 申込内容承認登録明細.宅内調査希望アポ期限年月日 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.TAKCHO_KIBO_APO_KIGEN_YMD_ERR)) {
					if (!childMap.containsKey("takcho_kibo_apo_kigen_ymd_err")) {
						childMap.put("takcho_kibo_apo_kigen_ymd_err", childTemplate.getString(EKK0011D020CBSMsg1List.TAKCHO_KIBO_APO_KIGEN_YMD_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.工事アポ連絡先指定コード → 申込内容承認登録明細.工事アポ連絡先指定コード のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.KOJI_APO_RRKS_SHITEI_CD_ERR)) {
					if (!childMap.containsKey("koji_apo_rrks_shitei_cd_err")) {
						childMap.put("koji_apo_rrks_shitei_cd_err", childTemplate.getString(EKK0011D020CBSMsg1List.KOJI_APO_RRKS_SHITEI_CD_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.工事アポ連絡先電話番号 → 申込内容承認登録明細.工事アポ連絡先電話番号 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.KOJI_APO_RRKS_TELNO_ERR)) {
					if (!childMap.containsKey("koji_apo_rrks_telno_err")) {
						childMap.put("koji_apo_rrks_telno_err", childTemplate.getString(EKK0011D020CBSMsg1List.KOJI_APO_RRKS_TELNO_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.連絡事項登録年月日時分秒 → 申込内容承認登録明細.連絡事項登録年月日時分秒 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.RRK_JIKO_ADD_DTM_ERR)) {
					if (!childMap.containsKey("rrk_jiko_add_dtm_err")) {
						childMap.put("rrk_jiko_add_dtm_err", childTemplate.getString(EKK0011D020CBSMsg1List.RRK_JIKO_ADD_DTM_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.申込連絡先メールアドレス → 申込内容承認登録明細.申込連絡先メールアドレス のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.MSKM_RRKS_MLAD_ERR)) {
					if (!childMap.containsKey("mskm_rrks_mlad_err")) {
						childMap.put("mskm_rrks_mlad_err", childTemplate.getString(EKK0011D020CBSMsg1List.MSKM_RRKS_MLAD_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.工事進捗通知メールアドレス → 申込内容承認登録明細.工事進捗通知メールアドレス のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.KOJI_PRG_TCHI_MLAD_ERR)) {
					if (!childMap.containsKey("koji_prg_tchi_mlad_err")) {
						childMap.put("koji_prg_tchi_mlad_err", childTemplate.getString(EKK0011D020CBSMsg1List.KOJI_PRG_TCHI_MLAD_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.連絡事項 → 申込内容承認登録明細.連絡事項 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.RRK_JIKO_ERR)) {
					if (!childMap.containsKey("rrk_jiko_err")) {
						childMap.put("rrk_jiko_err", childTemplate.getString(EKK0011D020CBSMsg1List.RRK_JIKO_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.工事進捗通知携帯メールアドレス → 申込内容承認登録明細.工事進捗通知携帯メールアドレス のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.KJSC_TCH_KTAI_MLAD_ERR)) {
					if (!childMap.containsKey("kjsc_tch_ktai_mlad_err")) {
						childMap.put("kjsc_tch_ktai_mlad_err", childTemplate.getString(EKK0011D020CBSMsg1List.KJSC_TCH_KTAI_MLAD_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.メール送信除外フラグ → 申込内容承認登録明細.メール送信除外フラグ のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.ML_SEND_JGI_FLG_ERR)) {
					if (!childMap.containsKey("ml_send_jgi_flg_err")) {
						childMap.put("ml_send_jgi_flg_err", childTemplate.getString(EKK0011D020CBSMsg1List.ML_SEND_JGI_FLG_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.メール送信除外理由メモ → 申込内容承認登録明細.メール送信除外理由メモ のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.ML_SEND_JGI_RSN_MEMO_ERR)) {
					if (!childMap.containsKey("ml_send_jgi_rsn_memo_err")) {
						childMap.put("ml_send_jgi_rsn_memo_err", childTemplate.getString(EKK0011D020CBSMsg1List.ML_SEND_JGI_RSN_MEMO_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.番ポ申込連絡先電話番号 → 申込内容承認登録明細.番ポ申込連絡先電話番号 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.BMP_MSKM_RRKS_TLN_ERR)) {
					if (!childMap.containsKey("bmp_mskm_rrks_tln_err")) {
						childMap.put("bmp_mskm_rrks_tln_err", childTemplate.getString(EKK0011D020CBSMsg1List.BMP_MSKM_RRKS_TLN_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.オプションサービス引継有無 → 申込内容承認登録明細.オプションサービス引継有無 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.OP_SVC_HKTGI_UM_ERR)) {
					if (!childMap.containsKey("op_svc_hktgi_um_err")) {
						childMap.put("op_svc_hktgi_um_err", childTemplate.getString(EKK0011D020CBSMsg1List.OP_SVC_HKTGI_UM_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.解約書類送付希望有無 → 申込内容承認登録明細.解約書類送付希望有無 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.DSL_ATICLE_SOHU_KIBO_UM_ERR)) {
					if (!childMap.containsKey("dsl_aticle_sohu_kibo_um_err")) {
						childMap.put("dsl_aticle_sohu_kibo_um_err", childTemplate.getString(EKK0011D020CBSMsg1List.DSL_ATICLE_SOHU_KIBO_UM_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.連絡手段補記 → 申込内容承認登録明細.連絡手段補記 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.RRK_WAY_HOKI_ERR)) {
					if (!childMap.containsKey("rrk_way_hoki_err")) {
						childMap.put("rrk_way_hoki_err", childTemplate.getString(EKK0011D020CBSMsg1List.RRK_WAY_HOKI_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.新築物件コード → 申込内容承認登録明細.新築物件コード のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.NEWCONST_BUKKEN_CD_ERR)) {
					if (!childMap.containsKey("newconst_bukken_cd_err")) {
						childMap.put("newconst_bukken_cd_err", childTemplate.getString(EKK0011D020CBSMsg1List.NEWCONST_BUKKEN_CD_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.復活案件フラグ → 申込内容承認登録明細.復活案件フラグ のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.HUKKAT_ANKEN_FLG_ERR)) {
					if (!childMap.containsKey("hukkat_anken_flg_err")) {
						childMap.put("hukkat_anken_flg_err", childTemplate.getString(EKK0011D020CBSMsg1List.HUKKAT_ANKEN_FLG_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.同一設備再申込コード → 申込内容承認登録明細.同一設備再申込コード のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.SAME_EQUIP_RE_MSKM_CD_ERR)) {
					if (!childMap.containsKey("same_equip_re_mskm_cd_err")) {
						childMap.put("same_equip_re_mskm_cd_err", childTemplate.getString(EKK0011D020CBSMsg1List.SAME_EQUIP_RE_MSKM_CD_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.本人確認書類種別コード → 申込内容承認登録明細.本人確認書類種別コード のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.HNIN_CFM_ATICLE_SBT_CD_ERR)) {
					if (!childMap.containsKey("hnin_cfm_aticle_sbt_cd_err")) {
						childMap.put("hnin_cfm_aticle_sbt_cd_err", childTemplate.getString(EKK0011D020CBSMsg1List.HNIN_CFM_ATICLE_SBT_CD_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.申込書種別コード → 申込内容承認登録明細.申込書種別コード のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.MSKMSHO_SBT_CD_ERR)) {
					if (!childMap.containsKey("mskmsho_sbt_cd_err")) {
						childMap.put("mskmsho_sbt_cd_err", childTemplate.getString(EKK0011D020CBSMsg1List.MSKMSHO_SBT_CD_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.地図添付有無 → 申込内容承認登録明細.地図添付有無 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.MAP_TEMP_UM_ERR)) {
					if (!childMap.containsKey("map_temp_um_err")) {
						childMap.put("map_temp_um_err", childTemplate.getString(EKK0011D020CBSMsg1List.MAP_TEMP_UM_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.KCNSTB申込台数 → 申込内容承認登録明細.KCNSTB申込台数 のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.KCN_STB_MSKM_CNT_ERR)) {
					if (!childMap.containsKey("kcn_stb_mskm_cnt_err")) {
						childMap.put("kcn_stb_mskm_cnt_err", childTemplate.getString(EKK0011D020CBSMsg1List.KCN_STB_MSKM_CNT_ERR));
					}
				}
				// 申込内容承認登録マップ.申込内容承認登録明細.KCNSTB種類コード → 申込内容承認登録明細.KCNSTB種類コード のエラー情報返却
				if (!childTemplate.isNull(EKK0011D020CBSMsg1List.KCN_STB_KIND_CD_ERR)) {
					if (!childMap.containsKey("kcn_stb_kind_cd_err")) {
						childMap.put("kcn_stb_kind_cd_err", childTemplate.getString(EKK0011D020CBSMsg1List.KCN_STB_KIND_CD_ERR));
					}
				}
			}
		}
		if (!template.isNull(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST_ERR)) {
			if (!inHash.containsKey("EKK0011D020CBSMsg1List_err")) {
				inHash.put("EKK0011D020CBSMsg1List_err", template.getString(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST_ERR));
			}
		}
		return param;
	}
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービス契約回線内訳一覧照会S-IF実行実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得・書込用I/F
	 * @param templates (I) CAANMsgクラス配列
	 * @param returnCode (I) リターンコード
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.04
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editEKK0021D010ErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, 
			String fixedText) throws RequestParameterException 
			{
		
		CAANMsg template = templates[0];
		// エラー共通部の設定
		setControlMap(param, templates, returnCode, EKK0021D010CBSMsg.STATUS);

		HashMap inHash = null;

		/* ユーザデータ情報 */
		inHash = (HashMap)param.getData(fixedText);
		if (inHash == null) 
		{
			inHash = new HashMap();
			param.setData(fixedText, inHash);
		}

		// 申込明細登録マップ.申込番号 → 申込番号 のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.MSKM_NO_ERR)) {
			if (!inHash.containsKey("mskm_no_err")) {
				inHash.put("mskm_no_err", template.getString(EKK0021D010CBSMsg.MSKM_NO_ERR));
			}
		}
		// 申込明細登録マップ.申込書番号 → 申込書番号 のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.MSKMSHO_NO_ERR)) {
			if (!inHash.containsKey("mskmsho_no_err")) {
				inHash.put("mskmsho_no_err", template.getString(EKK0021D010CBSMsg.MSKMSHO_NO_ERR));
			}
		}
		// 申込明細登録マップ.運用年月日 → 申込年月日 のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.MSKM_YMD_ERR)) {
			if (!inHash.containsKey("unyo_ymd_err")) {
				inHash.put("unyo_ymd_err", template.getString(EKK0021D010CBSMsg.MSKM_YMD_ERR));
			}
		}
		// 申込明細登録マップ.SYSID → SYSID のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.SYSID_ERR)) {
			if (!inHash.containsKey("sysid_err")) {
				inHash.put("sysid_err", template.getString(EKK0021D010CBSMsg.SYSID_ERR));
			}
		}
		// 申込明細登録マップ.WEB受付番号 → WEB受付番号 のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.WEB_UK_NO_ERR)) {
			if (!inHash.containsKey("web_uk_no_err")) {
				inHash.put("web_uk_no_err", template.getString(EKK0021D010CBSMsg.WEB_UK_NO_ERR));
			}
		}
		// 申込明細登録マップ.申込形態コード → 申込形態コード のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.MSKM_FORM_CD_ERR)) {
			if (!inHash.containsKey("mskm_form_cd_err")) {
				inHash.put("mskm_form_cd_err", template.getString(EKK0021D010CBSMsg.MSKM_FORM_CD_ERR));
			}
		}
		// 申込明細登録マップ.申込明細種別コード → 申込明細種別コード のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.MSKM_DTL_SBT_CD_ERR)) {
			if (!inHash.containsKey("mskm_dtl_sbt_cd_err")) {
				inHash.put("mskm_dtl_sbt_cd_err", template.getString(EKK0021D010CBSMsg.MSKM_DTL_SBT_CD_ERR));
			}
		}
		// 申込明細登録マップ.連絡先携帯電話番号 → 連絡先携帯電話番号 のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.RRKS_KTAI_TELNO_ERR)) {
			if (!inHash.containsKey("rrks_ktai_telno_err")) {
				inHash.put("rrks_ktai_telno_err", template.getString(EKK0021D010CBSMsg.RRKS_KTAI_TELNO_ERR));
			}
		}
		// 申込明細登録マップ.連絡先勤務先名 → 連絡先勤務先名 のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.RRKS_OFFC_NM_ERR)) {
			if (!inHash.containsKey("rrks_offc_nm_err")) {
				inHash.put("rrks_offc_nm_err", template.getString(EKK0021D010CBSMsg.RRKS_OFFC_NM_ERR));
			}
		}
		// 申込明細登録マップ.昼間連絡先電話番号 → 昼間連絡先電話番号 のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.DT_RRKS_TELNO_ERR)) {
			if (!inHash.containsKey("dt_rrks_telno_err")) {
				inHash.put("dt_rrks_telno_err", template.getString(EKK0021D010CBSMsg.DT_RRKS_TELNO_ERR));
			}
		}
		// 申込明細登録マップ.新規申込種別コード → 新規申込種別コード のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.NEW_MSKM_SBT_CD_ERR)) {
			if (!inHash.containsKey("new_mskm_sbt_cd_err")) {
				inHash.put("new_mskm_sbt_cd_err", template.getString(EKK0021D010CBSMsg.NEW_MSKM_SBT_CD_ERR));
			}
		}
		// 申込明細登録マップ.申込契機コード → 申込契機コード のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.MSKM_OPTNTY_CD_ERR)) {
			if (!inHash.containsKey("mskm_optnty_cd_err")) {
				inHash.put("mskm_optnty_cd_err", template.getString(EKK0021D010CBSMsg.MSKM_OPTNTY_CD_ERR));
			}
		}
		// 申込明細登録マップ.申込経路コード → 申込経路コード のエラー情報返却
		// 2012/11/22 [TAI-2012-0000091]暫定ロジック修正対応 DEL START
//		if (!template.isNull(EKK0021D010CBSMsg.MSKM_ROUTE_CD_ERR)) {
//			if (!inHash.containsKey("mskm_route_cd_err")) {
//				inHash.put("mskm_route_cd_err", template.getString(EKK0021D010CBSMsg.MSKM_ROUTE_CD_ERR));
//			}
//		}
		// 2012/11/22 [TAI-2012-0000091]暫定ロジック修正対応 DEL END
		
		// 申込明細登録マップ.宅内調査希望アポ期限年月日 → 宅内調査希望アポ期限年月日 のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD_ERR)) {
			if (!inHash.containsKey("takcho_kibo_apo_kigen_ymd_err")) {
				inHash.put("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 (!inHash.containsKey("koji_apo_rrks_shitei_cd_err")) {
				inHash.put("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 (!inHash.containsKey("koji_apo_rrks_telno_err")) {
				inHash.put("koji_apo_rrks_telno_err", template.getString(EKK0021D010CBSMsg.KOJI_APO_RRKS_TELNO_ERR));
			}
		}
		// 申込明細登録マップ.連絡事項登録年月日時分秒 → 連絡事項登録年月日時分秒 のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.RRK_JIKO_ADD_DTM_ERR)) {
			if (!inHash.containsKey("rrk_jiko_add_dtm_err")) {
				inHash.put("rrk_jiko_add_dtm_err", template.getString(EKK0021D010CBSMsg.RRK_JIKO_ADD_DTM_ERR));
			}
		}
		// 申込明細登録マップ.申込連絡先メールアドレス → 申込連絡先メールアドレス のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.MSKM_RRKS_MLAD_ERR)) {
			if (!inHash.containsKey("mskm_rrks_mlad_err")) {
				inHash.put("mskm_rrks_mlad_err", template.getString(EKK0021D010CBSMsg.MSKM_RRKS_MLAD_ERR));
			}
		}
		// 申込明細登録マップ.工事進捗通知メールアドレス → 工事進捗通知メールアドレス のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.KOJI_PRG_TCHI_MLAD_ERR)) {
			if (!inHash.containsKey("koji_prg_tchi_mlad_err")) {
				inHash.put("koji_prg_tchi_mlad_err", template.getString(EKK0021D010CBSMsg.KOJI_PRG_TCHI_MLAD_ERR));
			}
		}
		// 申込明細登録マップ.連絡事項 → 連絡事項 のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.RRK_JIKO_ERR)) {
			if (!inHash.containsKey("rrk_jiko_err")) {
				inHash.put("rrk_jiko_err", template.getString(EKK0021D010CBSMsg.RRK_JIKO_ERR));
			}
		}
		// 申込明細登録マップ.工事進捗通知携帯メールアドレス → 工事進捗通知携帯メールアドレス のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.KJSC_TCH_KTAI_MLAD_ERR)) {
			if (!inHash.containsKey("kjsc_tch_ktai_mlad_err")) {
				inHash.put("kjsc_tch_ktai_mlad_err", template.getString(EKK0021D010CBSMsg.KJSC_TCH_KTAI_MLAD_ERR));
			}
		}
		// 申込明細登録マップ.メール送信除外フラグ → メール送信除外フラグ のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.ML_SEND_JGI_FLG_ERR)) {
			if (!inHash.containsKey("ml_send_jgi_flg_err")) {
				inHash.put("ml_send_jgi_flg_err", template.getString(EKK0021D010CBSMsg.ML_SEND_JGI_FLG_ERR));
			}
		}
		// 申込明細登録マップ.メール送信除外理由メモ → メール送信除外理由メモ のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.ML_SEND_JGI_RSN_MEMO_ERR)) {
			if (!inHash.containsKey("ml_send_jgi_rsn_memo_err")) {
				inHash.put("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 (!inHash.containsKey("bmp_mskm_rrks_tln_err")) {
				inHash.put("bmp_mskm_rrks_tln_err", template.getString(EKK0021D010CBSMsg.BMP_MSKM_RRKS_TLN_ERR));
			}
		}
		// 申込明細登録マップ.オプションサービス引継有無 → オプションサービス引継有無 のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.OP_SVC_HKTGI_UM_ERR)) {
			if (!inHash.containsKey("op_svc_hktgi_um_err")) {
				inHash.put("op_svc_hktgi_um_err", template.getString(EKK0021D010CBSMsg.OP_SVC_HKTGI_UM_ERR));
			}
		}
		// 申込明細登録マップ.解約書類送付希望有無 → 解約書類送付希望有無 のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.DSL_ATICLE_SOHU_KIBO_UM_ERR)) {
			if (!inHash.containsKey("dsl_aticle_sohu_kibo_um_err")) {
				inHash.put("dsl_aticle_sohu_kibo_um_err", template.getString(EKK0021D010CBSMsg.DSL_ATICLE_SOHU_KIBO_UM_ERR));
			}
		}
		// 申込明細登録マップ.連絡手段補記 → 連絡手段補記 のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.RRK_WAY_HOKI_ERR)) {
			if (!inHash.containsKey("rrk_way_hoki_err")) {
				inHash.put("rrk_way_hoki_err", template.getString(EKK0021D010CBSMsg.RRK_WAY_HOKI_ERR));
			}
		}
		// 申込明細登録マップ.新築物件コード → 新築物件コード のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.NEWCONST_BUKKEN_CD_ERR)) {
			if (!inHash.containsKey("newconst_bukken_cd_err")) {
				inHash.put("newconst_bukken_cd_err", template.getString(EKK0021D010CBSMsg.NEWCONST_BUKKEN_CD_ERR));
			}
		}
		// 申込明細登録マップ.復活案件フラグ → 復活案件フラグ のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.HUKKAT_ANKEN_FLG_ERR)) {
			if (!inHash.containsKey("hukkat_anken_flg_err")) {
				inHash.put("hukkat_anken_flg_err", template.getString(EKK0021D010CBSMsg.HUKKAT_ANKEN_FLG_ERR));
			}
		}
		// 申込明細登録マップ.同一設備再申込コード → 同一設備再申込コード のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.SAME_EQUIP_RE_MSKM_CD_ERR)) {
			if (!inHash.containsKey("same_equip_re_mskm_cd_err")) {
				inHash.put("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 (!inHash.containsKey("hnin_cfm_aticle_sbt_cd_err")) {
				inHash.put("hnin_cfm_aticle_sbt_cd_err", template.getString(EKK0021D010CBSMsg.HNIN_CFM_ATICLE_SBT_CD_ERR));
			}
		}
		// 申込明細登録マップ.申込書種別コード → 申込書種別コード のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.MSKMSHO_SBT_CD_ERR)) {
			if (!inHash.containsKey("mskmsho_sbt_cd_err")) {
				inHash.put("mskmsho_sbt_cd_err", template.getString(EKK0021D010CBSMsg.MSKMSHO_SBT_CD_ERR));
			}
		}
		// 申込明細登録マップ.地図添付有無 → 地図添付有無 のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.MAP_TEMP_UM_ERR)) {
			if (!inHash.containsKey("map_temp_um_err")) {
				inHash.put("map_temp_um_err", template.getString(EKK0021D010CBSMsg.MAP_TEMP_UM_ERR));
			}
		}
		// 申込明細登録マップ.KCNSTB申込台数 → KCNSTB申込台数 のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.KCN_STB_MSKM_CNT_ERR)) {
			if (!inHash.containsKey("kcn_stb_mskm_cnt_err")) {
				inHash.put("kcn_stb_mskm_cnt_err", template.getString(EKK0021D010CBSMsg.KCN_STB_MSKM_CNT_ERR));
			}
		}
		// 申込明細登録マップ.KCNSTB種類コード → KCNSTB種類コード のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.KCN_STB_KIND_CD_ERR)) {
			if (!inHash.containsKey("kcn_stb_kind_cd_err")) {
				inHash.put("kcn_stb_kind_cd_err", template.getString(EKK0021D010CBSMsg.KCN_STB_KIND_CD_ERR));
			}
		}
		// 申込明細登録マップ.更新年月日時分秒 → 更新年月日時分秒(更新前) のエラー情報返却
		if (!template.isNull(EKK0021D010CBSMsg.UPD_DTM_BF_ERR)) {
			if (!inHash.containsKey("upd_dtm_err")) {
				inHash.put("upd_dtm_err", template.getString(EKK0021D010CBSMsg.UPD_DTM_BF_ERR));
			}
		}
		return param;
	}
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービス契約回線内訳一覧照会S-IF実行実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得・書込用I/F
	 * @param templates (I) CAANMsgクラス配列
	 * @param returnCode (I) リターンコード
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.04
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editEKK0021C060ErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, 
			String fixedText) throws RequestParameterException 
			{
		
		CAANMsg template = templates[0];
		// エラー共通部の設定
		setControlMap(param, templates, returnCode, EKK0021C060CBSMsg.STATUS);

		HashMap inHash = null;

		/* ユーザデータ情報 */
		inHash = (HashMap)param.getData(fixedText);
		if (inHash == null) 
		{
			inHash = new HashMap();
			param.setData(fixedText, inHash);
		}


		// 申込明細照査・後続業務依頼マップ.申込明細番号 → 申込明細番号 のエラー情報返却
		if (!template.isNull(EKK0021C060CBSMsg.MSKM_DTL_NO_ERR)) {
			if (!inHash.containsKey("mskm_dtl_no_err")) {
				inHash.put("mskm_dtl_no_err", template.getString(EKK0021C060CBSMsg.MSKM_DTL_NO_ERR));
			}
		}
		// 申込明細照査・後続業務依頼マップ.連絡事項登録年月日時分秒 → 連絡事項登録年月日時分秒 のエラー情報返却
		if (!template.isNull(EKK0021C060CBSMsg.RRK_JIKO_ADD_DTM_ERR)) {
			if (!inHash.containsKey("rrk_jiko_add_dtm_err")) {
				inHash.put("rrk_jiko_add_dtm_err", template.getString(EKK0021C060CBSMsg.RRK_JIKO_ADD_DTM_ERR));
			}
		}
		// 申込明細照査・後続業務依頼マップ.運用年月日 → 後続業務依頼年月日 のエラー情報返却
		if (!template.isNull(EKK0021C060CBSMsg.KZKWRK_REQYMD_ERR)) {
			if (!inHash.containsKey("unyo_ymd_err")) {
				inHash.put("unyo_ymd_err", template.getString(EKK0021C060CBSMsg.KZKWRK_REQYMD_ERR));
			}
		}
		// 申込明細照査・後続業務依頼マップ.連絡事項 → 連絡事項 のエラー情報返却
		if (!template.isNull(EKK0021C060CBSMsg.RRK_JIKO_ERR)) {
			if (!inHash.containsKey("rrk_jiko_err")) {
				inHash.put("rrk_jiko_err", template.getString(EKK0021C060CBSMsg.RRK_JIKO_ERR));
			}
		}
		// 申込明細照査・後続業務依頼マップ.更新年月日時分秒 → 更新年月日時分秒(更新前) のエラー情報返却
		if (!template.isNull(EKK0021C060CBSMsg.UPD_DTM_BF_ERR)) {
			if (!inHash.containsKey("upd_dtm_err")) {
				inHash.put("upd_dtm_err", template.getString(EKK0021C060CBSMsg.UPD_DTM_BF_ERR));
			}
		}
		// 申込明細照査・後続業務依頼マップ.異動区分 → 異動区分 のエラー情報返却
		if (!template.isNull(EKK0021C060CBSMsg.IDO_DIV_ERR)) {
			if (!inHash.containsKey("ido_div_err")) {
				inHash.put("ido_div_err", template.getString(EKK0021C060CBSMsg.IDO_DIV_ERR));
			}
		}
		// 申込明細照査・後続業務依頼マップ.電話番号 → 電話番号 のエラー情報返却
		if (!template.isNull(EKK0021C060CBSMsg.TELNO_ERR)) {
			if (!inHash.containsKey("telno_err")) {
				inHash.put("telno_err", template.getString(EKK0021C060CBSMsg.TELNO_ERR));
			}
		}
		// 申込明細照査・後続業務依頼マップ.代表電話番号 → 代表電話番号 のエラー情報返却
		if (!template.isNull(EKK0021C060CBSMsg.DAIHYO_TELNO_ERR)) {
			if (!inHash.containsKey("daihyo_telno_err")) {
				inHash.put("daihyo_telno_err", template.getString(EKK0021C060CBSMsg.DAIHYO_TELNO_ERR));
			}
		}
		// 申込明細照査・後続業務依頼マップ.電話番号使用場所番号 → 電話番号使用場所番号 のエラー情報返却
		if (!template.isNull(EKK0021C060CBSMsg.TELNO_USE_PLACE_NO_ERR)) {
			if (!inHash.containsKey("telno_use_place_no_err")) {
				inHash.put("telno_use_place_no_err", template.getString(EKK0021C060CBSMsg.TELNO_USE_PLACE_NO_ERR));
			}
		}
		// 申込明細照査・後続業務依頼マップ.SIPユーザーID消去済フラグ → SIPユーザーID消去済フラグ のエラー情報返却
		if (!template.isNull(EKK0021C060CBSMsg.SIP_USER_ID_DEL_ZUMI_FLG_ERR)) {
			if (!inHash.containsKey("sip_user_id_del_zumi_flg_err")) {
				inHash.put("sip_user_id_del_zumi_flg_err", template.getString(EKK0021C060CBSMsg.SIP_USER_ID_DEL_ZUMI_FLG_ERR));
			}
		}
		// 申込明細照査・後続業務依頼マップ.電話BASホストID → 電話BASホストID のエラー情報返却
		if (!template.isNull(EKK0021C060CBSMsg.TEL_BAS_HOST_ID_ERR)) {
			if (!inHash.containsKey("tel_bas_host_id_err")) {
				inHash.put("tel_bas_host_id_err", template.getString(EKK0021C060CBSMsg.TEL_BAS_HOST_ID_ERR));
			}
		}
		// 申込明細照査・後続業務依頼マップ.050オプション電話番号 → 050オプション電話番号 のエラー情報返却
		if (!template.isNull(EKK0021C060CBSMsg.N_050_OP_TELNO_ERR)) {
			if (!inHash.containsKey("n_050_op_telno_err")) {
				inHash.put("n_050_op_telno_err", template.getString(EKK0021C060CBSMsg.N_050_OP_TELNO_ERR));
			}
		}
		// 申込明細照査・後続業務依頼マップ.機器認証ID → 機器認証ID のエラー情報返却
		if (!template.isNull(EKK0021C060CBSMsg.KIKI_NINSHO_ID_ERR)) {
			if (!inHash.containsKey("kiki_ninsho_id_err")) {
				inHash.put("kiki_ninsho_id_err", template.getString(EKK0021C060CBSMsg.KIKI_NINSHO_ID_ERR));
			}
		}
		// 申込明細照査・後続業務依頼マップ.機器認証IDパスワード → 機器認証IDパスワード のエラー情報返却
		if (!template.isNull(EKK0021C060CBSMsg.KIKI_NINSHO_ID_PWD_ERR)) {
			if (!inHash.containsKey("kiki_ninsho_id_pwd_err")) {
				inHash.put("kiki_ninsho_id_pwd_err", template.getString(EKK0021C060CBSMsg.KIKI_NINSHO_ID_PWD_ERR));
			}
		}
		return param;
	}
	
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービス契約回線内訳一覧照会S-IF実行実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得・書込用I/F
	 * @param templates (I) CAANMsgクラス配列
	 * @param returnCode (I) リターンコード
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.04
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editEKK0361D010ErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, 
			String fixedText) throws RequestParameterException 
			{
		
		CAANMsg template = templates[0];
		// エラー共通部の設定
		setControlMap(param, templates, returnCode, EKK0361D010CBSMsg.STATUS);

		HashMap inHash = null;

		/* ユーザデータ情報 */
		inHash = (HashMap)param.getData(fixedText);
		if (inHash == null) 
		{
			inHash = new HashMap();
			param.setData(fixedText, inHash);
		}

		// オプションサービス契約<ISP>登録マップ.オプションサービスコード → オプションサービスコード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.OP_SVC_CD_ERR)) {
			if (!inHash.containsKey("op_svc_cd_err")) {
				inHash.put("op_svc_cd_err", template.getString(EKK0361D010CBSMsg.OP_SVC_CD_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.料金コースコード → 料金コースコード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.PCRS_CD_ERR)) {
			if (!inHash.containsKey("pcrs_cd_err")) {
				inHash.put("pcrs_cd_err", template.getString(EKK0361D010CBSMsg.PCRS_CD_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.料金プランコード → 料金プランコード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.PPLAN_CD_ERR)) {
			if (!inHash.containsKey("pplan_cd_err")) {
				inHash.put("pplan_cd_err", template.getString(EKK0361D010CBSMsg.PPLAN_CD_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.親契約識別コード → 親契約識別コード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.OYA_KEI_SKBT_CD_ERR)) {
			if (!inHash.containsKey("oya_kei_skbt_cd_err")) {
				inHash.put("oya_kei_skbt_cd_err", template.getString(EKK0361D010CBSMsg.OYA_KEI_SKBT_CD_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.サービス契約番号 → サービス契約番号 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.SVC_KEI_NO_ERR)) {
			if (!inHash.containsKey("svc_kei_no_err")) {
				inHash.put("svc_kei_no_err", template.getString(EKK0361D010CBSMsg.SVC_KEI_NO_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.サービス契約内訳番号 → サービス契約内訳番号 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.SVC_KEI_UCWK_NO_ERR)) {
			if (!inHash.containsKey("svc_kei_ucwk_no_err")) {
				inHash.put("svc_kei_ucwk_no_err", template.getString(EKK0361D010CBSMsg.SVC_KEI_UCWK_NO_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.SYSID → SYSID のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.SYSID_ERR)) {
			if (!inHash.containsKey("sysid_err")) {
				inHash.put("sysid_err", template.getString(EKK0361D010CBSMsg.SYSID_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.申込明細番号 → 申込明細番号 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MSKM_DTL_NO_ERR)) {
			if (!inHash.containsKey("mskm_dtl_no_err")) {
				inHash.put("mskm_dtl_no_err", template.getString(EKK0361D010CBSMsg.MSKM_DTL_NO_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.試用加入年月日 → 試用加入年月日 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.FTRIAL_KANYU_YMD_ERR)) {
			if (!inHash.containsKey("ftrial_kanyu_ymd_err")) {
				inHash.put("ftrial_kanyu_ymd_err", template.getString(EKK0361D010CBSMsg.FTRIAL_KANYU_YMD_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.試用期間終了年月日 → 試用期間終了年月日 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR)) {
			if (!inHash.containsKey("ftrial_prd_endymd_err")) {
				inHash.put("ftrial_prd_endymd_err", template.getString(EKK0361D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.本加入年月日 → 本加入年月日 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.HONKANYU_YMD_ERR)) {
			if (!inHash.containsKey("honkanyu_ymd_err")) {
				inHash.put("honkanyu_ymd_err", template.getString(EKK0361D010CBSMsg.HONKANYU_YMD_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.本加入移行期限年月日 → 本加入移行期限年月日 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR)) {
			if (!inHash.containsKey("honkanyu_iko_kigen_ymd_err")) {
				inHash.put("honkanyu_iko_kigen_ymd_err", template.getString(EKK0361D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.サービス利用開始希望年月日 → サービス利用開始希望年月日 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR)) {
			if (!inHash.containsKey("svc_use_sta_kibo_ymd_err")) {
				inHash.put("svc_use_sta_kibo_ymd_err", template.getString(EKK0361D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.予約適用開始希望年月日 → 予約適用開始希望年月日 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR)) {
			if (!inHash.containsKey("rsv_tsta_kibo_ymd_err")) {
				inHash.put("rsv_tsta_kibo_ymd_err", template.getString(EKK0361D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.違約金発生コード → 違約金発生コード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.PNLTY_HASSEI_CD_ERR)) {
			if (!inHash.containsKey("pnlty_hassei_cd_err")) {
				inHash.put("pnlty_hassei_cd_err", template.getString(EKK0361D010CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.異動区分 → 異動区分 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.IDO_DIV_ERR)) {
			if (!inHash.containsKey("ido_div_err")) {
				inHash.put("ido_div_err", template.getString(EKK0361D010CBSMsg.IDO_DIV_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.希望メールアカウント1 → 希望メールアカウント1 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_1_ERR)) {
			if (!inHash.containsKey("kibo_ml_account_1_err")) {
				inHash.put("kibo_ml_account_1_err", template.getString(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_1_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.希望メールアカウント2 → 希望メールアカウント2 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_2_ERR)) {
			if (!inHash.containsKey("kibo_ml_account_2_err")) {
				inHash.put("kibo_ml_account_2_err", template.getString(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_2_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.希望メールアカウント3 → 希望メールアカウント3 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_3_ERR)) {
			if (!inHash.containsKey("kibo_ml_account_3_err")) {
				inHash.put("kibo_ml_account_3_err", template.getString(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_3_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.マルチセッション用セッション数 → マルチセッション用セッション数 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MLTISE_SESSION_CNT_ERR)) {
			if (!inHash.containsKey("mltise_session_cnt_err")) {
				inHash.put("mltise_session_cnt_err", template.getString(EKK0361D010CBSMsg.MLTISE_SESSION_CNT_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.マルチセッション用初期認証IDパスワード → マルチセッション用初期認証IDパスワード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MLTISE_SHK_NINSHO_ID_PWD_ERR)) {
			if (!inHash.containsKey("mltise_shk_ninsho_id_pwd_err")) {
				inHash.put("mltise_shk_ninsho_id_pwd_err", template.getString(EKK0361D010CBSMsg.MLTISE_SHK_NINSHO_ID_PWD_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.マルチセッション用認証ID → マルチセッション用認証ID のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_ERR)) {
			if (!inHash.containsKey("mltise_ninsho_id_err")) {
				inHash.put("mltise_ninsho_id_err", template.getString(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.マルチセッション用認証IDパスワード → マルチセッション用認証IDパスワード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_PWD_ERR)) {
			if (!inHash.containsKey("mltise_ninsho_id_pwd_err")) {
				inHash.put("mltise_ninsho_id_pwd_err", template.getString(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_PWD_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.IPv6アドレス → IPv6アドレス のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.IPV6_AD_IFID_ERR)) {
			if (!inHash.containsKey("ipv6_ad_err")) {
				inHash.put("ipv6_ad_err", template.getString(EKK0361D010CBSMsg.IPV6_AD_IFID_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.固定IPアドレス → 固定IPアドレス のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.KOTEI_IP_AD_ERR)) {
			if (!inHash.containsKey("kotei_ip_ad_err")) {
				inHash.put("kotei_ip_ad_err", template.getString(EKK0361D010CBSMsg.KOTEI_IP_AD_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.ネットマスク → ネットマスク のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.NETMASK_ERR)) {
			if (!inHash.containsKey("netmask_err")) {
				inHash.put("netmask_err", template.getString(EKK0361D010CBSMsg.NETMASK_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.容量 → 容量 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.CAPA_ERR)) {
			if (!inHash.containsKey("capa_err")) {
				inHash.put("capa_err", template.getString(EKK0361D010CBSMsg.CAPA_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.URL(ドメイン) → URL(ドメイン) のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.URL_DOMAIN_ERR)) {
			if (!inHash.containsKey("url_domain_err")) {
				inHash.put("url_domain_err", template.getString(EKK0361D010CBSMsg.URL_DOMAIN_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.URL(アカウント) → URL(アカウント) のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.URL_ACCOUNT_ERR)) {
			if (!inHash.containsKey("url_account_err")) {
				inHash.put("url_account_err", template.getString(EKK0361D010CBSMsg.URL_ACCOUNT_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.メーリングリスト名 → メーリングリスト名 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MLLIST_NM_ERR)) {
			if (!inHash.containsKey("mllist_nm_err")) {
				inHash.put("mllist_nm_err", template.getString(EKK0361D010CBSMsg.MLLIST_NM_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.メーリングリスト呼称 → メーリングリスト呼称 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MLLIST_KOSHO_ERR)) {
			if (!inHash.containsKey("mllist_kosho_err")) {
				inHash.put("mllist_kosho_err", template.getString(EKK0361D010CBSMsg.MLLIST_KOSHO_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.メーリングリスト公開要否 → メーリングリスト公開要否 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MLLIST_KOKAI_YH_ERR)) {
			if (!inHash.containsKey("mllist_kokai_yh_err")) {
				inHash.put("mllist_kokai_yh_err", template.getString(EKK0361D010CBSMsg.MLLIST_KOKAI_YH_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.メーリングリスト最大ユーザー数 → メーリングリスト最大ユーザー数 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MLLIST_MAX_USER_CNT_ERR)) {
			if (!inHash.containsKey("mllist_max_user_cnt_err")) {
				inHash.put("mllist_max_user_cnt_err", template.getString(EKK0361D010CBSMsg.MLLIST_MAX_USER_CNT_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.メーリングリスト管理者メールアドレス → メーリングリスト管理者メールアドレス のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.MLLIST_KRISHA_MLAD_ERR)) {
			if (!inHash.containsKey("mllist_krisha_mlad_err")) {
				inHash.put("mllist_krisha_mlad_err", template.getString(EKK0361D010CBSMsg.MLLIST_KRISHA_MLAD_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.独自ドメイン名 → 独自ドメイン名 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.DOKUJI_DOMAIN_NM_ERR)) {
			if (!inHash.containsKey("dokuji_domain_nm_err")) {
				inHash.put("dokuji_domain_nm_err", template.getString(EKK0361D010CBSMsg.DOKUJI_DOMAIN_NM_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.ホスティングメールアカウント数 → ホスティングメールアカウント数 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.HOSML_ACCOUNT_CNT_ERR)) {
			if (!inHash.containsKey("hosml_account_cnt_err")) {
				inHash.put("hosml_account_cnt_err", template.getString(EKK0361D010CBSMsg.HOSML_ACCOUNT_CNT_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.ホスティングメールボックス総容量 → ホスティングメールボックス総容量 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.HOSML_BOX_CAPA_ERR)) {
			if (!inHash.containsKey("hosml_box_capa_err")) {
				inHash.put("hosml_box_capa_err", template.getString(EKK0361D010CBSMsg.HOSML_BOX_CAPA_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.ダイヤルパッドPIN → ダイヤルパッドPIN のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.DPAD_PIN_ERR)) {
			if (!inHash.containsKey("dpad_pin_err")) {
				inHash.put("dpad_pin_err", template.getString(EKK0361D010CBSMsg.DPAD_PIN_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.ダイヤルパッドID公開要否 → ダイヤルパッドID公開要否 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.DPAD_ID_KOKAI_YH_ERR)) {
			if (!inHash.containsKey("dpad_id_kokai_yh_err")) {
				inHash.put("dpad_id_kokai_yh_err", template.getString(EKK0361D010CBSMsg.DPAD_ID_KOKAI_YH_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.ダイヤルアップ接続用認証ID → ダイヤルアップ接続用認証ID のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.DUPCON_NINSHO_ID_ERR)) {
			if (!inHash.containsKey("dupcon_ninsho_id_err")) {
				inHash.put("dupcon_ninsho_id_err", template.getString(EKK0361D010CBSMsg.DUPCON_NINSHO_ID_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.DNS設定コード → DNS設定コード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.DNS_SETTE_CD_ERR)) {
			if (!inHash.containsKey("dns_sette_cd_err")) {
				inHash.put("dns_sette_cd_err", template.getString(EKK0361D010CBSMsg.DNS_SETTE_CD_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.スポット有害サイトブロック対象SYSID → スポット有害サイトブロック対象SYSID のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.SPOT_YGSITEBLCK_TRGT_SYSID_ERR)) {
			if (!inHash.containsKey("spot_ygsiteblck_trgt_sysid_err")) {
				inHash.put("spot_ygsiteblck_trgt_sysid_err", template.getString(EKK0361D010CBSMsg.SPOT_YGSITEBLCK_TRGT_SYSID_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.サービス個別設定連絡先メールアドレス → サービス個別設定連絡先メールアドレス のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.SVC_KBT_SET_RRKS_MLAD_ERR)) {
			if (!inHash.containsKey("svc_kbt_set_rrks_mlad_err")) {
				inHash.put("svc_kbt_set_rrks_mlad_err", template.getString(EKK0361D010CBSMsg.SVC_KBT_SET_RRKS_MLAD_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.通話明細公開要否 → 通話明細公開要否 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.TUWA_DTL_KOKAI_YH_ERR)) {
			if (!inHash.containsKey("tuwa_dtl_kokai_yh_err")) {
				inHash.put("tuwa_dtl_kokai_yh_err", template.getString(EKK0361D010CBSMsg.TUWA_DTL_KOKAI_YH_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.請求契約番号 → 請求契約番号 のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.SEIKY_KEI_NO_ERR)) {
			if (!inHash.containsKey("seiky_kei_no_err")) {
				inHash.put("seiky_kei_no_err", template.getString(EKK0361D010CBSMsg.SEIKY_KEI_NO_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.料金項目コード → 料金項目コード のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.PRC_KMK_CD_ERR)) {
			if (!inHash.containsKey("prc_kmk_cd_err")) {
				inHash.put("prc_kmk_cd_err", template.getString(EKK0361D010CBSMsg.PRC_KMK_CD_ERR));
			}
		}
		// オプションサービス契約<ISP>登録マップ.更新年月日時分秒 → 更新年月日時分秒(更新前) のエラー情報返却
		if (!template.isNull(EKK0361D010CBSMsg.UPD_DTM_BF_ERR)) {
			if (!inHash.containsKey("upd_dtm_err")) {
				inHash.put("upd_dtm_err", template.getString(EKK0361D010CBSMsg.UPD_DTM_BF_ERR));
			}
		}
		return param;
	}
	
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービス契約回線内訳一覧照会S-IF実行実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得・書込用I/F
	 * @param templates (I) CAANMsgクラス配列
	 * @param returnCode (I) リターンコード
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.04
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editEKK0361C010ErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, 
			String fixedText) throws RequestParameterException 
			{
		
		CAANMsg template = templates[0];
		// エラー共通部の設定
		setControlMap(param, templates, returnCode, EKK0361C010CBSMsg.STATUS);

		HashMap inHash = null;

		/* ユーザデータ情報 */
		inHash = (HashMap)param.getData(fixedText);
		if (inHash == null) 
		{
			inHash = new HashMap();
			param.setData(fixedText, inHash);
		}

		// オプションサービス契約<ISP>照査マップ.オプションサービス契約番号 → オプションサービス契約番号 のエラー情報返却
		if (!template.isNull(EKK0361C010CBSMsg.OP_SVC_KEI_NO_ERR)) {
			if (!inHash.containsKey("op_svc_kei_no_err")) {
				inHash.put("op_svc_kei_no_err", template.getString(EKK0361C010CBSMsg.OP_SVC_KEI_NO_ERR));
			}
		}
		// オプションサービス契約<ISP>照査マップ.異動区分 → 異動区分 のエラー情報返却
		if (!template.isNull(EKK0361C010CBSMsg.IDO_DIV_ERR)) {
			if (!inHash.containsKey("ido_div_err")) {
				inHash.put("ido_div_err", template.getString(EKK0361C010CBSMsg.IDO_DIV_ERR));
			}
		}
		// オプションサービス契約<ISP>照査マップ.照査解約完了コード → 照査解約完了コード のエラー情報返却
		if (!template.isNull(EKK0361C010CBSMsg.SHOSA_DSL_FIN_CD_ERR)) {
			if (!inHash.containsKey("shosa_dsl_fin_cd_err")) {
				inHash.put("shosa_dsl_fin_cd_err", template.getString(EKK0361C010CBSMsg.SHOSA_DSL_FIN_CD_ERR));
			}
		}
		// オプションサービス契約<ISP>照査マップ.更新年月日時分秒 → 更新年月日時分秒(更新前) のエラー情報返却
		if (!template.isNull(EKK0361C010CBSMsg.UPD_DTM_BF_ERR)) {
			if (!inHash.containsKey("upd_dtm_err")) {
				inHash.put("upd_dtm_err", template.getString(EKK0361C010CBSMsg.UPD_DTM_BF_ERR));
			}
		}
		// オプションサービス契約<ISP>照査マップ.ダイヤルパッドID → ダイヤルパッドID のエラー情報返却
		if (!template.isNull(EKK0361C010CBSMsg.DPAD_ID_ERR)) {
			if (!inHash.containsKey("dpad_id_err")) {
				inHash.put("dpad_id_err", template.getString(EKK0361C010CBSMsg.DPAD_ID_ERR));
			}
		}
		return param;
	}
	
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービス契約回線内訳一覧照会S-IF実行実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得・書込用I/F
	 * @param templates (I) CAANMsgクラス配列
	 * @param returnCode (I) リターンコード
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.04
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editEKK0361C030ErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, 
			String fixedText) throws RequestParameterException 
			{
		
		CAANMsg template = templates[0];
		// エラー共通部の設定
		setControlMap(param, templates, returnCode, EKK0361C030CBSMsg.STATUS);

		HashMap inHash = null;

		/* ユーザデータ情報 */
		inHash = (HashMap)param.getData(fixedText);
		if (inHash == null) 
		{
			inHash = new HashMap();
			param.setData(fixedText, inHash);
		}

		// オプションサービス契約<ISP>照査締結マップ.オプションサービス契約番号 → オプションサービス契約番号 のエラー情報返却
		if (!template.isNull(EKK0361C030CBSMsg.OP_SVC_KEI_NO_ERR)) {
			if (!inHash.containsKey("op_svc_kei_no_err")) {
				inHash.put("op_svc_kei_no_err", template.getString(EKK0361C030CBSMsg.OP_SVC_KEI_NO_ERR));
			}
		}
		// オプションサービス契約<ISP>照査締結マップ.異動区分 → 異動区分 のエラー情報返却
		if (!template.isNull(EKK0361C030CBSMsg.IDO_DIV_ERR)) {
			if (!inHash.containsKey("ido_div_err")) {
				inHash.put("ido_div_err", template.getString(EKK0361C030CBSMsg.IDO_DIV_ERR));
			}
		}
		// オプションサービス契約<ISP>照査締結マップ.ダイヤルパッドID → ダイヤルパッドID のエラー情報返却
		if (!template.isNull(EKK0361C030CBSMsg.DPAD_ID_ERR)) {
			if (!inHash.containsKey("dpad_id_err")) {
				inHash.put("dpad_id_err", template.getString(EKK0361C030CBSMsg.DPAD_ID_ERR));
			}
		}
		// オプションサービス契約<ISP>照査締結マップ.更新年月日時分秒 → 更新年月日時分秒(更新前) のエラー情報返却
		if (!template.isNull(EKK0361C030CBSMsg.UPD_DTM_BF_ERR)) {
			if (!inHash.containsKey("upd_dtm_err")) {
				inHash.put("upd_dtm_err", template.getString(EKK0361C030CBSMsg.UPD_DTM_BF_ERR));
			}
		}
		// オプションサービス契約<ISP>照査締結マップ.事務手数料自動適用要否 → 事務手数料自動適用要否 のエラー情報返却
		if (!template.isNull(EKK0361C030CBSMsg.RULE0059_AUTO_APLY_ERR)) {
			if (!inHash.containsKey("rule0059_auto_aply_err")) {
				inHash.put("rule0059_auto_aply_err", template.getString(EKK0361C030CBSMsg.RULE0059_AUTO_APLY_ERR));
			}
		}
		return param;
	}
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービス契約回線内訳一覧照会S-IF実行実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得・書込用I/F
	 * @param templates (I) CAANMsgクラス配列
	 * @param returnCode (I) リターンコード
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.04
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editEKK0361C040ErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, 
			String fixedText) throws RequestParameterException 
			{
		
		CAANMsg template = templates[0];
		// エラー共通部の設定
		setControlMap(param, templates, returnCode, EKK0361C040CBSMsg.STATUS);

		HashMap inHash = null;

		/* ユーザデータ情報 */
		inHash = (HashMap)param.getData(fixedText);
		if (inHash == null) 
		{
			inHash = new HashMap();
			param.setData(fixedText, inHash);
		}

		// オプションサービス契約<ISP>開始マップ.オプションサービス契約番号 → オプションサービス契約番号 のエラー情報返却
		if (!template.isNull(EKK0361C040CBSMsg.OP_SVC_KEI_NO_ERR)) {
			if (!inHash.containsKey("op_svc_kei_no_err")) {
				inHash.put("op_svc_kei_no_err", template.getString(EKK0361C040CBSMsg.OP_SVC_KEI_NO_ERR));
			}
		}
		// オプションサービス契約<ISP>開始マップ.異動区分 → 異動区分 のエラー情報返却
		if (!template.isNull(EKK0361C040CBSMsg.IDO_DIV_ERR)) {
			if (!inHash.containsKey("ido_div_err")) {
				inHash.put("ido_div_err", template.getString(EKK0361C040CBSMsg.IDO_DIV_ERR));
			}
		}
		// オプションサービス契約<ISP>開始マップ.マルチセッション用認証ID → マルチセッション用認証ID のエラー情報返却
		if (!template.isNull(EKK0361C040CBSMsg.MLTISE_NINSHO_ID_ERR)) {
			if (!inHash.containsKey("mltise_ninsho_id_err")) {
				inHash.put("mltise_ninsho_id_err", template.getString(EKK0361C040CBSMsg.MLTISE_NINSHO_ID_ERR));
			}
		}
		// オプションサービス契約<ISP>開始マップ.マルチセッション用認証IDパスワード → マルチセッション用認証IDパスワード のエラー情報返却
		if (!template.isNull(EKK0361C040CBSMsg.MLTISE_NINSHO_ID_PWD_ERR)) {
			if (!inHash.containsKey("mltise_ninsho_id_pwd_err")) {
				inHash.put("mltise_ninsho_id_pwd_err", template.getString(EKK0361C040CBSMsg.MLTISE_NINSHO_ID_PWD_ERR));
			}
		}
		// オプションサービス契約<ISP>開始マップ.IPv6アドレス → IPv6アドレス のエラー情報返却
		if (!template.isNull(EKK0361C040CBSMsg.IPV6_AD_IFID_ERR)) {
			if (!inHash.containsKey("ipv6_ad_err")) {
				inHash.put("ipv6_ad_err", template.getString(EKK0361C040CBSMsg.IPV6_AD_IFID_ERR));
			}
		}
		// オプションサービス契約<ISP>開始マップ.固定IPアドレス → 固定IPアドレス のエラー情報返却
		if (!template.isNull(EKK0361C040CBSMsg.KOTEI_IP_AD_ERR)) {
			if (!inHash.containsKey("kotei_ip_ad_err")) {
				inHash.put("kotei_ip_ad_err", template.getString(EKK0361C040CBSMsg.KOTEI_IP_AD_ERR));
			}
		}
		// オプションサービス契約<ISP>開始マップ.ネットマスク → ネットマスク のエラー情報返却
		if (!template.isNull(EKK0361C040CBSMsg.NETMASK_ERR)) {
			if (!inHash.containsKey("netmask_err")) {
				inHash.put("netmask_err", template.getString(EKK0361C040CBSMsg.NETMASK_ERR));
			}
		}
		// オプションサービス契約<ISP>開始マップ.メールアドレス → メールアドレス のエラー情報返却
		if (!template.isNull(EKK0361C040CBSMsg.MLAD_ERR)) {
			if (!inHash.containsKey("mlad_err")) {
				inHash.put("mlad_err", template.getString(EKK0361C040CBSMsg.MLAD_ERR));
			}
		}
		// オプションサービス契約<ISP>開始マップ.容量 → 容量 のエラー情報返却
		if (!template.isNull(EKK0361C040CBSMsg.CAPA_ERR)) {
			if (!inHash.containsKey("capa_err")) {
				inHash.put("capa_err", template.getString(EKK0361C040CBSMsg.CAPA_ERR));
			}
		}
		// オプションサービス契約<ISP>開始マップ.更新年月日時分秒 → 更新年月日時分秒(更新前) のエラー情報返却
		if (!template.isNull(EKK0361C040CBSMsg.UPD_DTM_BF_ERR)) {
			if (!inHash.containsKey("upd_dtm_err")) {
				inHash.put("upd_dtm_err", template.getString(EKK0361C040CBSMsg.UPD_DTM_BF_ERR));
			}
		}
		return param;
	}
	
// 2013/06/13 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD START
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービス契約内訳（予約の最新とカレント）一覧照会S-IF実行実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得・書込用I/F
	 * @param templates (I) CAANMsgクラス配列
	 * @param returnCode (I) リターンコード
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.04
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editEKK1091B001ErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, 
			String fixedText) throws RequestParameterException 
			{
		
		CAANMsg template = templates[0];
		// エラー共通部の設定
		setControlMap(param, templates, returnCode, EKK1091B001CBSMsg.STATUS);

		HashMap inHash = null;

		/* ユーザデータ情報 */
		inHash = (HashMap)param.getData(fixedText);
		if (inHash == null) 
		{
			inHash = new HashMap();
			param.setData(fixedText, inHash);
		}

		// 進捗一覧照会.ＫＥＹ＿サービス契約番号 → ＫＥＹ＿サービス契約番号 のエラー情報返却
		if (!template.isNull(EKK1091B001CBSMsg.KEY_SVC_KEI_NO_ERR)) {
			if (!inHash.containsKey("key_svc_kei_no_err")) {
				inHash.put("key_svc_kei_no_err", template.getString(EKK1091B001CBSMsg.KEY_SVC_KEI_NO_ERR));
			}
		}
		
		// 進捗一覧照会.ＫＥＹ＿異動区分 → ＫＥＹ＿異動区分 のエラー情報返却
		if (!template.isNull(EKK1091B001CBSMsg.KEY_IDO_DIV_ERR)) {
			if (!inHash.containsKey("key_ido_div_err")) {
				inHash.put("key_ido_div_err", template.getString(EKK1091B001CBSMsg.KEY_IDO_DIV_ERR));
			}
		}
		return param;
	}
// 2013/06/13 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD END
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービス契約回線内訳一覧照会S-IF実行実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得・書込用I/F
	 * @param templates (I) CAANMsgクラス配列
	 * @param returnCode (I) リターンコード
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.04
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editEKK1091D010ErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, 
			String fixedText) throws RequestParameterException 
			{
		
		CAANMsg template = templates[0];
		// エラー共通部の設定
		setControlMap(param, templates, returnCode,EKK1091D010CBSMsg.STATUS);

		HashMap inHash = null;

		/* ユーザデータ情報 */
		inHash = (HashMap)param.getData(fixedText);
		if (inHash == null) 
		{
			inHash = new HashMap();
			param.setData(fixedText, inHash);
		}

		// 進捗登録マップ.申込明細番号 → 申込明細番号 のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.MSKM_DTL_NO_ERR)) {
			if (!inHash.containsKey("mskm_dtl_no_err")) {
				inHash.put("mskm_dtl_no_err", template.getString(EKK1091D010CBSMsg.MSKM_DTL_NO_ERR));
			}
		}
		// 進捗登録マップ.請求契約番号 → 請求契約番号 のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.SEIKY_KEI_NO_ERR)) {
			if (!inHash.containsKey("seiky_kei_no_err")) {
				inHash.put("seiky_kei_no_err", template.getString(EKK1091D010CBSMsg.SEIKY_KEI_NO_ERR));
			}
		}
		// 進捗登録マップ.請求方法番号(口座) → 請求方法番号(口座) のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.SEIKY_WAY_NO_KOZA_ERR)) {
			if (!inHash.containsKey("seiky_way_no_koza_err")) {
				inHash.put("seiky_way_no_koza_err", template.getString(EKK1091D010CBSMsg.SEIKY_WAY_NO_KOZA_ERR));
			}
		}
		// 進捗登録マップ.請求方法番号(クレジットカード) → 請求方法番号(クレジットカード) のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.SEIKY_WAY_NO_CRECARD_ERR)) {
			if (!inHash.containsKey("seiky_way_no_crecard_err")) {
				inHash.put("seiky_way_no_crecard_err", template.getString(EKK1091D010CBSMsg.SEIKY_WAY_NO_CRECARD_ERR));
			}
		}
		// 進捗登録マップ.サービス契約番号 → サービス契約番号 のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.SVC_KEI_NO_ERR)) {
			if (!inHash.containsKey("svc_kei_no_err")) {
				inHash.put("svc_kei_no_err", template.getString(EKK1091D010CBSMsg.SVC_KEI_NO_ERR));
			}
		}
		// 進捗登録マップ.サービス契約内訳番号 → サービス契約内訳番号 のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.SVC_KEI_UCWK_NO_ERR)) {
			if (!inHash.containsKey("svc_kei_ucwk_no_err")) {
				inHash.put("svc_kei_ucwk_no_err", template.getString(EKK1091D010CBSMsg.SVC_KEI_UCWK_NO_ERR));
			}
		}
		// 進捗登録マップ.サービス契約回線内訳番号 → サービス契約回線内訳番号 のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR)) {
			if (!inHash.containsKey("svc_kei_kaisen_ucwk_no_err")) {
				inHash.put("svc_kei_kaisen_ucwk_no_err", template.getString(EKK1091D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR));
			}
		}
		// 進捗登録マップ.機器提供サービス契約番号 → 機器提供サービス契約番号 のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.KKTK_SVC_KEI_NO_ERR)) {
			if (!inHash.containsKey("kktk_svc_kei_no_err")) {
				inHash.put("kktk_svc_kei_no_err", template.getString(EKK1091D010CBSMsg.KKTK_SVC_KEI_NO_ERR));
			}
		}
		// 進捗登録マップ.オプションサービス契約番号 → オプションサービス契約番号 のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.OP_SVC_KEI_NO_ERR)) {
			if (!inHash.containsKey("op_svc_kei_no_err")) {
				inHash.put("op_svc_kei_no_err", template.getString(EKK1091D010CBSMsg.OP_SVC_KEI_NO_ERR));
			}
		}
		// 進捗登録マップ.請求オプションサービス契約番号 → 請求オプションサービス契約番号 のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.SEIOPSVC_KEI_NO_ERR)) {
			if (!inHash.containsKey("seiopsvc_kei_no_err")) {
				inHash.put("seiopsvc_kei_no_err", template.getString(EKK1091D010CBSMsg.SEIOPSVC_KEI_NO_ERR));
			}
		}
		// 進捗登録マップ.サブオプションサービス契約番号 → サブオプションサービス契約番号 のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.SBOP_SVC_KEI_NO_ERR)) {
			if (!inHash.containsKey("sbop_svc_kei_no_err")) {
				inHash.put("sbop_svc_kei_no_err", template.getString(EKK1091D010CBSMsg.SBOP_SVC_KEI_NO_ERR));
			}
		}
		// 進捗登録マップ.割引サービス契約番号 → 割引サービス契約番号 のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.WRIB_SVC_KEI_NO_ERR)) {
			if (!inHash.containsKey("wrib_svc_kei_no_err")) {
				inHash.put("wrib_svc_kei_no_err", template.getString(EKK1091D010CBSMsg.WRIB_SVC_KEI_NO_ERR));
			}
		}
		// 進捗登録マップ.異動区分 → 異動区分 のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.IDO_DIV_ERR)) {
			if (!inHash.containsKey("ido_div_err")) {
				inHash.put("ido_div_err", template.getString(EKK1091D010CBSMsg.IDO_DIV_ERR));
			}
		}
		// 進捗登録マップ.運用年月時分秒 → 異動年月日時分秒 のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.IDO_DTM_ERR)) {
			if (!inHash.containsKey("unyo_dtm_err")) {
				inHash.put("unyo_dtm_err", template.getString(EKK1091D010CBSMsg.IDO_DTM_ERR));
			}
		}
		// 進捗登録マップ.進捗ステータス → 進捗ステータス のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.PRG_STAT_ERR)) {
			if (!inHash.containsKey("prg_stat_err")) {
				inHash.put("prg_stat_err", template.getString(EKK1091D010CBSMsg.PRG_STAT_ERR));
			}
		}
		// 進捗登録マップ.進捗メモ → 進捗メモ のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.PRG_MEMO_ERR)) {
			if (!inHash.containsKey("prg_memo_err")) {
				inHash.put("prg_memo_err", template.getString(EKK1091D010CBSMsg.PRG_MEMO_ERR));
			}
		}
		// 進捗登録マップ.進捗特記事項1 → 進捗特記事項1 のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.PRG_TKJK_1_ERR)) {
			if (!inHash.containsKey("prg_tkjk_1_err")) {
				inHash.put("prg_tkjk_1_err", template.getString(EKK1091D010CBSMsg.PRG_TKJK_1_ERR));
			}
		}
		// 進捗登録マップ.進捗特記事項2 → 進捗特記事項2 のエラー情報返却
		if (!template.isNull(EKK1091D010CBSMsg.PRG_TKJK_2_ERR)) {
			if (!inHash.containsKey("prg_tkjk_2_err")) {
				inHash.put("prg_tkjk_2_err", template.getString(EKK1091D010CBSMsg.PRG_TKJK_2_ERR));
			}
		}
		ArrayList inList = (ArrayList)inHash.get("EKK1091D010CBSMsg1List");
		if (inList == null) {
			inList = new ArrayList();
			inHash.put("EKK1091D010CBSMsg1List", inList);
		}

		CAANMsg[] templateArray = template.getCAANMsgList(EKK1091D010CBSMsg.EKK1091D010CBSMSG1LIST);

		if (templateArray != null) {
			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];

				// 進捗登録マップ.異動理由明細.異動理由コード → 異動理由明細.異動理由コード のエラー情報返却
				if (!childTemplate.isNull(EKK1091D010CBSMsg1List.IDO_RSN_CD_ERR)) {
					if (!childMap.containsKey("ido_rsn_cd_err")) {
						childMap.put("ido_rsn_cd_err", childTemplate.getString(EKK1091D010CBSMsg1List.IDO_RSN_CD_ERR));
					}
				}
				// 進捗登録マップ.異動理由明細.異動理由メモ → 異動理由明細.異動理由メモ のエラー情報返却
				if (!childTemplate.isNull(EKK1091D010CBSMsg1List.IDO_RSN_MEMO_ERR)) {
					if (!childMap.containsKey("ido_rsn_memo_err")) {
						childMap.put("ido_rsn_memo_err", childTemplate.getString(EKK1091D010CBSMsg1List.IDO_RSN_MEMO_ERR));
					}
				}
			}
		}
		if (!template.isNull(EKK1091D010CBSMsg.EKK1091D010CBSMSG1LIST_ERR)) {
			if (!inHash.containsKey("EKK1091D010CBSMsg1List_err")) {
				inHash.put("EKK1091D010CBSMsg1List_err", template.getString(EKK1091D010CBSMsg.EKK1091D010CBSMSG1LIST_ERR));
			}
		}
		return param;
	}
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービスコンポーネント実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得・書込用I/F
	 * @param templates (I) CAANMsgクラス配列
	 * @param returnCode (I) リターンコード
	 * @return 業務データ取得・書込用I/F
	 * @since 2011.10.19
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editEKK0341B002ErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, 
			String fixedText) throws RequestParameterException 
			{
		
		CAANMsg template = templates[0];
		CAANMsg[] templateArray = null;
		int templateStatus = template.getInt(EKK0341B002CBSMsg.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;
		ArrayList inList = null;
		
		// 作業項目領域
		Map workMap = (Map)param.getMappingWorkArea();
		if (workMap == null) {
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}
		
		/* ユーザデータ情報 */
		inMap = (HashMap)param.getData("KKSV037203SC");
		if (inMap == null) {
			inMap = new HashMap();
			param.setData("KKSV037203SC", inMap);
		}

		// 機器提供サービス契約一覧照会（サービス契約番号）マップ.ＫＥＹ＿サービス契約番号 → ＫＥＹ＿サービス契約番号 のエラー情報返却
		if (!template.isNull(EKK0341B002CBSMsg.KEY_SVC_KEI_NO_ERR)) {
			if (!inMap.containsKey("key_svc_kei_no_err")) {
				inMap.put("key_svc_kei_no_err", template.getString(EKK0341B002CBSMsg.KEY_SVC_KEI_NO_ERR));
			}
		}
		// 機器提供サービス契約一覧照会（サービス契約番号）マップ.ＫＥＹ＿機器提供サービスコード → ＫＥＹ＿機器提供サービスコード のエラー情報返却
		if (!template.isNull(EKK0341B002CBSMsg.KEY_KKTK_SVC_CD_ERR)) {
			if (!inMap.containsKey("key_kktk_svc_cd_err")) {
				inMap.put("key_kktk_svc_cd_err", template.getString(EKK0341B002CBSMsg.KEY_KKTK_SVC_CD_ERR));
			}
		}
		// 機器提供サービス契約一覧照会（サービス契約番号）マップ.ＫＥＹ＿機器提供サービス契約番号 → ＫＥＹ＿機器提供サービス契約番号 のエラー情報返却
		if (!template.isNull(EKK0341B002CBSMsg.KEY_KKTK_SVC_KEI_NO_ERR)) {
			if (!inMap.containsKey("key_kktk_svc_kei_no_err")) {
				inMap.put("key_kktk_svc_kei_no_err", template.getString(EKK0341B002CBSMsg.KEY_KKTK_SVC_KEI_NO_ERR));
			}
		}
		// 機器提供サービス契約一覧照会（サービス契約番号）マップ.ＫＥＹ＿ソート区分 → ＫＥＹ＿ソート区分 のエラー情報返却
		if (!template.isNull(EKK0341B002CBSMsg.KEY_SORT_KBN_ERR)) {
			if (!inMap.containsKey("key_sort_kbn_err")) {
				inMap.put("key_sort_kbn_err", template.getString(EKK0341B002CBSMsg.KEY_SORT_KBN_ERR));
			}
		}
		return param;
	}

	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービス契約回線内訳一覧照会S-IF実行実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得・書込用I/F
	 * @param templates (I) CAANMsgクラス配列
	 * @param returnCode (I) リターンコード
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.04
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editEKK0341B011ErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, 
			String fixedText) throws RequestParameterException 
			{
		
		CAANMsg template = templates[0];
		// エラー共通部の設定
		setControlMap(param, templates, returnCode, EKK0081A010CBSMsg.STATUS);

		HashMap inHash = null;

		/* ユーザデータ情報 */
		inHash = (HashMap)param.getData(fixedText);
		if (inHash == null) 
		{
			inHash = new HashMap();
			param.setData(fixedText, inHash);
		}

		return param;
	}
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービスコンポーネント実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param param (I) 業務データ取得・書込用I/F
	 * @param templates (I) CAANMsgクラス配列
	 * @param returnCode (I) リターンコード
	 * @return 業務データ取得・書込用I/F
	 * @since 2011.10.28
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editEKK0361A010ErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, 
			String fixedText) throws RequestParameterException 
			{
		CAANMsg template = templates[0];
		CAANMsg[] templateArray = null;
		int templateStatus = template.getInt(EKK0361A010CBSMsg.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;
		ArrayList inList = null;
		
		// 作業項目領域
		Map workMap = (Map)param.getMappingWorkArea();
		if (workMap == null) {
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}
		
		/* ユーザデータ情報 */
		inMap = (HashMap)param.getData("KKSV007102SC");
		if (inMap == null) {
			inMap = new HashMap();
			param.setData("KKSV007102SC", inMap);
		}

		// オプションサービス契約＜ＩＳＰ＞一意照会マップ.ＫＥＹ＿オプションサービス契約番号 → ＫＥＹ＿オプションサービス契約番号 のエラー情報返却
		if (!template.isNull(EKK0361A010CBSMsg.KEY_OP_SVC_KEI_NO_ERR)) {
			if (!inMap.containsKey("key_op_svc_kei_no_err")) {
				inMap.put("key_op_svc_kei_no_err", template.getString(EKK0361A010CBSMsg.KEY_OP_SVC_KEI_NO_ERR));
			}
		}
		
		/* 作業項目情報 */
		inMap = (HashMap)workMap.get("WORK");
		if (inMap == null) {
			inMap = new HashMap();
			workMap.put("WORK", inMap);
		}

		// 作業項目マップ.世代登録年月日時分秒 → ＫＥＹ＿世代登録年月日時分秒 のエラー情報返却
		if (!template.isNull(EKK0361A010CBSMsg.KEY_GENE_ADD_DTM_ERR)) {
			if (!inMap.containsKey("gene_add_dtm_err")) {
				inMap.put("gene_add_dtm_err", template.getString(EKK0361A010CBSMsg.KEY_GENE_ADD_DTM_ERR));
			}
		}
		return param;
	}
	
//	/**
//	 *<DL>
//	 *<DT>処理概要:
//	 *<DD>サービス契約回線内訳一覧照会S-IF実行実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
//	 *<DT>入力パラメータ説明:
//	 *<DD>特になし
//	 *<DT>入力パラメータ説明：
//	 *<DD>特になし
//	 *<DT>出力パラメータ説明:
//	 *<DD>特になし
//	 *</DL>
//	 * @param param (I) 業務データ取得・書込用I/F
//	 * @param templates (I) CAANMsgクラス配列
//	 * @param returnCode (I) リターンコード
//	 * @return 業務データ取得・書込用I/F
//	 * @since 2012.02.04
//	 */
//	@SuppressWarnings("unchecked")
//	public IRequestParameterReadWrite editEZM0111D010ErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, 
//			String fixedText) throws RequestParameterException 
//			{
//		
//		CAANMsg template = templates[0];
//		// エラー共通部の設定
//		setControlMap(param, templates, returnCode,EZM0111D010CBSMsg.STATUS);
//
//		HashMap inHash = null;
//
//		/* ユーザデータ情報 */
//		inHash = (HashMap)param.getData(fixedText);
//		if (inHash == null) 
//		{
//			inHash = new HashMap();
//			param.setData(fixedText, inHash);
//		}
//
//		// エイジング登録マップ.エイジング種別コード → エイジング種別コード のエラー情報返却
//		if (!template.isNull(EZM0111D010CBSMsg.AGING_SBT_CD_ERR)) {
//			if (!inHash.containsKey("aging_sbt_cd_err")) {
//				inHash.put("aging_sbt_cd_err", template.getString(EZM0111D010CBSMsg.AGING_SBT_CD_ERR));
//			}
//		}
//		// エイジング登録マップ.エイジング対象値 → エイジング対象値 のエラー情報返却
//		if (!template.isNull(EZM0111D010CBSMsg.AGING_TG_VALUE_ERR)) {
//			if (!inHash.containsKey("aging_tg_value_err")) {
//				inHash.put("aging_tg_value_err", template.getString(EZM0111D010CBSMsg.AGING_TG_VALUE_ERR));
//			}
//		}
//		// エイジング登録マップ.使用開始年月日時分秒  → 使用開始年月日時分秒  のエラー情報返却
//		if (!template.isNull(EZM0111D010CBSMsg.USE_STA_DTM_ERR)) {
//			if (!inHash.containsKey("use_sta_dtm_err")) {
//				inHash.put("use_sta_dtm_err", template.getString(EZM0111D010CBSMsg.USE_STA_DTM_ERR));
//			}
//		}
//		return param;
//	}
	


	/**
	 * エラー共通部の設定。<br>
	 * <br>
	 * @param param (I) 業務データ取得・書込用I/F
	 * @param templates (I) CAANMsgクラス配列
	 * @param returnCode (I) リターンコード
	 * @param status (I) ステータス
	 * @return 業務データ取得・書込用I/F
	 * @exception RequestParameterExceptionがスローされます。
	 * @since 2011.09.07
	 */
	private IRequestParameterReadWrite setControlMap(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, 
			String status) throws RequestParameterException 
	{
		CAANMsg template = templates[0];
		int templateStatus = template.getInt(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);
		}	
		
		return param;
	}	
	

	
	
	/**
	 * メッセージ共通部の設定。<br>
	 * <br>
	 * @param param (I) 業務データ取得用I/F
	 * @param paramMap (O) メッセージ共通部
	 * @exception RequestParameterExceptionがスローされます。
	 */
	private void setCommonParamMap(IRequestParameterReadOnly 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));

	}

	/**
	 * サービスインターフェイス共通部の設定。<br>
	 * <br>
	 * @param param (I) 業務データ取得用I/F
	 * @param template (O) サービスインターフェイス
	 * @exception RequestParameterExceptionがスローされます。
	 */
	private void setCommonTemplate(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);

	}

	/**
	 * エラーチェック処理
	 * 
	 * @param msgList サービスインタフェース実行結果
	 * return void
	 * @throws SCCallException 
	 */
	private int errChk(Map<?, ?> msgList) 
	throws SCCallException
	{
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];
		
		// リターンコード取得
//		int returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);
		
		// ステータス
		int templateStatus = template.getInt(JCMConstants.STATUS_INT_KEY);
		
		return templateStatus;
		
	}
	
	/**
	 * サービス契約ステータスがサービス提供中以降の場合は<code>true</code>を返却します。
	 * 
	 * @param svcKeiStat
	 *            サービス契約ステータス
	 * @return 照査締結の是非
	 */
	private boolean isTeikyo(String svcKeiStat)
	{
		return SVC_KEI_STAT_TKC.compareTo(svcKeiStat) <= 0;
	}

	/**
	 * IPv6アドレスが払い出されている場合は<code>true</code>を返却します。
	 * 
	 * @param svcKeiStat
	 *            サービス契約ステータス
	 * @return 照査締結の是非
	 */
	@SuppressWarnings("unchecked")
	private boolean isCheckIP(HashMap<String, Object> inHash)
	{
		if(inHash == null ){
			inHash.put(IPV6_AD, new String());
			return false;
		}
//		if(!inHash.containsKey(IPV6_AD)){
			String ipv6_ad = null;
			if(inHash.containsKey(IPV6AD_LIST)){
				ArrayList ipv6_ad_list = (ArrayList)inHash.get(IPV6AD_LIST);
				HashMap<String, Object> hash = (HashMap<String, Object>) ipv6_ad_list.get(0);
				if(hash.containsKey(IPV6_AD)){
					 ipv6_ad = (String) hash.get(IPV6_AD);
				}
				if(ipv6_ad != null && !("").equals(ipv6_ad)){
					inHash.put(IPV6_AD, ipv6_ad);
					return true;
				}
			}
//		}
		return false;
	}
	
	
	
	/**
	 * サービス契約ステータスが締結済以降の場合は<code>true</code>を返却します。
	 * 
	 * @param svcKeiStat
	 *            サービス契約ステータス
	 * @return 照査締結の是非
	 */
	private boolean isTeiketsuzumi(String svcKeiStat)
	{
		return SVC_KEI_STAT_TKZ.compareTo(svcKeiStat) <= 0;
	}

	/**
	 * サービス契約ステータスが照査済以降の場合は<code>true</code>を返却します。
	 * 
	 * @param svcKeiStat
	 *            サービス契約ステータス
	 * @return 照査の是非
	 */
	private boolean isShosazumi(String svcKeiStat)
	{
		return SVC_KEI_STAT_SSZ.compareTo(svcKeiStat) <= 0;
	}

	// TAI-2012-0000080 ADD START
	/**
	 * サービス契約ステータスが受付済の場合は<code>true</code>を返却します。
	 * 
	 * @param svcKeiStat
	 *            サービス契約ステータス
	 * @return 照査の是非
	 */
	private boolean isUketsukezumi(String svcKeiStat)
	{
		return SVC_KEI_STAT_UKZ.compareTo(svcKeiStat) == 0;
	}
	// TAI-2012-0000080 ADD END

	/**
	 * 現在の要素の利用開始年月日を取得します。
	 * @return String
	 */
	private String getStrymd(HashMap<String, Object> workMap)
	{
		String strymd = "";
		try
		{
			String useStrymdYear = workMap.get(USE_STAYMD_YEAR).toString();
			String useStrymdMon = workMap.get(USE_STAYMD_MON).toString();
			String useStrymdDay = workMap.get(USE_STAYMD_DAY).toString();
			
			strymd += useStrymdYear;
			strymd += useStrymdMon;
			strymd += useStrymdDay;
		}
		catch (NullPointerException e) 
		{
			strymd = "";
		}
		
		return strymd;
	}
	
	/**
	 * フィールドにNullマッピングで埋める
	 * @param msg 対象クラス
	 * @param contents 対応クラスのフィールド列挙
	 */
	private 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);
			
		}
		
	}

	
	public HashMap<?, ?> getInvokeCBS(SessionHandle handle,
			IRequestParameterReadWrite param, String fixedText) {
		// TODO 自動生成されたメソッドスタブ
		return null;
	}

	public IRequestParameterReadWrite editErrorInfo(
			IRequestParameterReadWrite param, CAANMsg[] subCAANMsgs,
			Integer returnCode) {
		// TODO 自動生成されたメソッドスタブ
		return null;
	}

// 2013.12.22 OM-2013-0004225 add start
	/**
	 * コース変更後のサービス契約内訳番号、世代を取得します。
	 */
	private int getEKK0161B001CrsHnSod(SessionHandle handle, IRequestParameterReadWrite param,
			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> resultHash) throws Exception
	{
		int statusCode = 0;
		String svc_kei_ucwk_no_0 = null;
		String gene_add_dtm_svc_kei_ucwk_0 = null;
		String svc_kei_ucwk_no_1 = null;
		String gene_add_dtm_svc_kei_ucwk_1 = null;
		
		String svc_kei_ucwk_no_CrsHn = null;
		String gene_add_dtm_svc_kei_ucwk_CrsHn = null;
		
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		// サービス契約内訳(予約の最新とカレント)一覧照会（コース変更用）
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		statusCode = getEKK0161B001CrsHn(handle, param, inHash, fixedText, resultHash);
		if(statusCode != 0)
		{
//				return statusCode;
		}
		//サービス契約内訳(予約の最新とカレント)一覧照会結果取得
		CAANMsg[] ucwkList = (CAANMsg[])resultHash.get(TEMPLATE_ID_EKK0161B001 + "CrsHn");

		// 内訳が１件のときは、特になにもしない（今までとおり）
		if (ucwkList != null && ucwkList.length > 1) {
			
			
			HashMap<String, Object> eKK0161B001_0 = ucwkList[0].getMsgData();
			HashMap<String, Object> eKK0161B001_1 = ucwkList[1].getMsgData();
			
			if (eKK0161B001_0 != null && eKK0161B001_1 != null) {
				
				// サービス契約内訳番号の取得
				svc_kei_ucwk_no_0 = (String)eKK0161B001_0.get(EKK0161B001CBSMsg1List.SVC_KEI_UCWK_NO);
				// 世代登録年月日時分秒（サービス契約内訳）の取得
				gene_add_dtm_svc_kei_ucwk_0 = (String)eKK0161B001_0.get(EKK0161B001CBSMsg1List.GENE_ADD_DTM);
				
				// サービス契約内訳番号の取得
				svc_kei_ucwk_no_1 = (String)eKK0161B001_1.get(EKK0161B001CBSMsg1List.SVC_KEI_UCWK_NO);
				// 世代登録年月日時分秒（サービス契約内訳）の取得
				gene_add_dtm_svc_kei_ucwk_1 = (String)eKK0161B001_1.get(EKK0161B001CBSMsg1List.GENE_ADD_DTM);

				if (!JKKStringUtil.isNullBlank(gene_add_dtm_svc_kei_ucwk_0) &&
						!JKKStringUtil.isNullBlank(gene_add_dtm_svc_kei_ucwk_1)) {
					
					if (gene_add_dtm_svc_kei_ucwk_0.compareTo(gene_add_dtm_svc_kei_ucwk_1) <0 ) {
						gene_add_dtm_svc_kei_ucwk_CrsHn = gene_add_dtm_svc_kei_ucwk_1;
						svc_kei_ucwk_no_CrsHn = svc_kei_ucwk_no_1;
					} else {
						gene_add_dtm_svc_kei_ucwk_CrsHn = gene_add_dtm_svc_kei_ucwk_0;
						svc_kei_ucwk_no_CrsHn = svc_kei_ucwk_no_0;
					}
				}
			}
			
			if (!JKKStringUtil.isNullBlank(svc_kei_ucwk_no_CrsHn) && 
					!JKKStringUtil.isNullBlank(gene_add_dtm_svc_kei_ucwk_CrsHn)) {
				inHash.put(SVC_KEI_UCWK_NO + CRSHN, svc_kei_ucwk_no_CrsHn);
				inHash.put(GENE_ADD_DTM_SVC_KEI_UCWK + CRSHN, gene_add_dtm_svc_kei_ucwk_CrsHn);
			}
		}
		return statusCode;
	}

	/**
	 * サービス契約内訳（予約の最新とカレント）一覧照会S-IF呼出処理。<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param 業務データ取得用I/F
	 * @param fixedText ユーザ定義文字列
	 * @param workMap 作業用マップ
	 * @return 業務データ取得・書込用I/F
	 * @throws Exception 
	 * @exception RequestParameterExceptionがスローされます。
	 */
	private int getEKK0161B001CrsHn(SessionHandle handle, IRequestParameterReadWrite param, 
			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> workMap) throws Exception
	{
		/* ◇上りマッピング処理 */
		// 上りマッピングの処理結果を取得するためのマップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		paramMap = editEKK0161B001InMsg(param, inHash, workMap);
		
		/* ◇ＳＣ呼出実行 */
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, handle);
		
		/* ◇下りマッピング処理 */
		workMap.put(TEMPLATE_ID_EKK0161B001 + "CrsHn", editEKK0161B001ResultRP_List(result, param, fixedText));
		
		// エラーチェック処理
		return errChk(result);
	}
	
	
	/**
	 *<DL>
	 *<DT>処理概要:
	 *<DD>サービス一意照会S-IF実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
	 *<DT>入力パラメータ説明:
	 *<DD>特になし
	 *<DT>入力パラメータ説明：
	 *<DD>特になし
	 *<DT>出力パラメータ説明:
	 *<DD>特になし
	 *</DL>
	 * @param msgList (I) CAANMsgクラス 
	 * @param param (I) 業務データ取得・書込用I/F
	 * @return 業務データ取得・書込用I/F
	 * @since 2012.02.08
	 */
	@SuppressWarnings("unchecked")
	public CAANMsg[] editEKK0161B001ResultRP_List(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception {

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		CAANMsg[] templateArray = null;

		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);
		
		// エラー情報の設定
		param = editEKK0161B001ErrorInfo(param, templates, (Integer)return_code, 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));
		
		/* ◇処理結果の判定 */
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = return_code.toString();
		int status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);

		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
		
		// 結果の取得
		templateArray = (CAANMsg[])parentTemplate.getMsgData().get(EKK0161B001CBSMsg.EKK0161B001CBSMSG1LIST);
		if(templateArray != null && templateArray.length > 0){
			return templateArray;
		}
		return null;
	}
// 2013.12.22 OM-2013-0004225 add end

}
