/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom, 2011
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：JKKMltiseInfoAddCfmCC
 *   ソースファイル名：JKKMltiseInfoAddCfmCC.java
 *   作成者          ：FJ
 *   日付            ：2012年10月18日
 *＜機能概要＞
 *   マルチセッションを登録する。
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v5.00       2013/10/18   FJ)坂東     [OM-2013-0002398]新規作成
 *   v5.01       2013/11/14   FJ)鈴木     [OM-2013-0002398]ISP認証IDの編集方法を修正
 *   v29.00.00   2017/03/13   FJ)江藤     [OM-2016-0002076]マルチセッション用認証IDの設定誤りの対応
 **********************************************************************/
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.JKKHakkoSODConstCC;
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.ejb.cbs.cbsmsg.EKK0011D020CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0011D020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0021C060CBSMsg;
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.EKK0171A010CBSMsg;
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.common.JCCModelCommon;

public class JKKMltiseInfoAddCfmCC extends AbstractCommonComponent
{
	/*********** クラスフィールド ******************/
	
	/** 予約適用年月日 */
	private static final String RSV_APLY_YMD_MAX = "20991231";	// 最大;
	
	/** ----- リクエスト・レスポンス パラメータ ----- **/
//	/** 根元の要素 **/
	private static final String ADDMLTISEINFO = "ADDMLTISEINFO";
	/** 機能コード */
	private static final String FUNC_CODE = "func_code";
	/** サービス契約番号 */
	private static final String SVC_KEI_NO = "svc_kei_no";
	/** 申込種別コード */
	private static final String MSKM_SBT_CD = "mskm_sbt_cd";
	/** 運用年月日 */
	private static final String UNYO_YMD = "unyo_ymd";
	/** 運用年月日時分秒 */
	private static final String UNYO_DTM = "unyo_dtm";
	/** オプションサービスコード */
	private static final String OP_SVC_CD = "op_svc_cd";
	/** SYSID */
	private static final String SYSID = "sysid";
	/** 異動区分 */
	private static final String IDO_DIV = "ido_div";
	/** 親契約識別コード */
	private static final String OYA_KEI_SKBT_CD = "oya_kei_skbt_cd";
	/** 予約適用コード */
	private static final String RSV_APLY_CD = "rsv_aply_cd";
	/** 事務手数料自動適用要否 */
	private static final String RULE0059_AUTO_APLY = "rule0059_auto_aply";
	/** 請求契約番号 */
	private static final String SEIKY_KEI_NO = "seik_kei_no";
	/** 異動理由コード（リスト） */
	private static final String IDO_RSN_LIST = "ido_rsn_list";
	/** 異動理由コード（リストの要素） */
	private static final String IDO_RSN_LIST_ELEMENT = "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 = "consmbsn_mskm_stat_skbt_cd";
	/** 利用開始日（年）*/
	private static final String USE_STAYMD_YEAR = "use_staymd_year";
	/** 利用開始日（月） */ 
	private static final String USE_STAYMD_MON = "use_staymd_mon";
	/** 利用開始日（日） */
	private static final String USE_STAYMD_DAY = "use_staymd_day";
	/** マルチセッション用セッション数カウント */
	private static final String MLTISE_SESSION_CNT = "mltise_session_cnt";
	/** 更新前年月日時分秒 */
	private static final String UPD_DTM_BF = "upd_dtm_bf";
	/** 返却メッセージID */
	private static final String 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";
	/** 初期ISP認証IDパスワード */
	private static final String SHK_ISP_NINSHO_ID_PWD = "shk_isp_ninsho_id_pwd";
	/** ISP認証IDパスワード */
	private static final String ISP_NINSHO_ID_PWD = "isp_ninsho_id_pwd";
	/** ISP認証ID */
	private static final String ISP_NINSHO_ID = "isp_ninsho_id";
	/** 固定IP有無フラグ */
	private static final String KOTEI_IP_UM_FLG = "kotei_ip_um_flg";
	/** エラーフラグ */
	private static final String ERR_FLG = "err_flg";
	
	/** ----- ソート区分値 ----- */
	/** ソート区分値*/
	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";
	
	/** ----- サービス契約ステータス値 ----- */
	/** 受付済 */
	private static final String SVC_KEI_STAT_UKZ = "010";
	/** 照査済 */
	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";
	
	
	/** 料金コースコード：マルチセッション */
	private static final String PCRS_CD_MLTISE = "B15";
	/** 料金プランコード：マルチセッション */
	private static final String PCRS_PLAN_CD_MLTISE = "PB1501";
	
	/** ----- スキーマ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_EKK0011D020 = "EKK0011D020";
	/** 進捗登録 **/
	private static final String TEMPLATE_ID_EKK1091D010 = "EKK1091D010";
	/** 申込明細登録 **/
	private static final String TEMPLATE_ID_EZM0481C010 = "EZM0481C010";
	/** サービス契約内訳(予約の最新とカレント)一覧照会 **/
	private static final String TEMPLATE_ID_EKK0161B001 = "EKK0161B001";

	/** サービス契約内訳＜eo光ネット＞一意照会 **/
	private static final String TEMPLATE_ID_EKK0171A010 = "EKK0171A010";

	/** 進捗一覧照会 **/
	private static final String TEMPLATE_ID_EKK1091B001 = "EKK1091B001";
	
	/** 排他制御用更新日時 */
	private static final String EX_SVC_UPD_DTM = "ex_svc_upd_dtm";
	/** 排他制御用更新日時 */
	private static final String EX_MSKM_UPD_DTM = "ex_mskm_upd_dtm";

	/** 進捗特記事項１：マルチセッション情報登録 */
	private static final String PRG_TKJK_1_VAL_IPV6_INFO_ADD = "マルチセッション情報登録";
	
	/** 異動区分：新規契約 */
	private static final String IDO_DIV_SINKI = "00001";

	/** 異動区分：サービス追加 */
	private static final String IDO_DIV_TSUIKA = "00002";
	
	/**
	 * マルチセッションオプションの登録・開始を行う。<br>
	 * コース変更中は変更前後のサービス契約内訳に対してそれぞれ登録を行う。<br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @return 業務データ取得・書込用I/F
	 * @exception Exceptionがスローされます。
	 */
	public IRequestParameterReadWrite execute(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;
		
		// SODデータリスト
		ArrayList<HashMap<String, Object>> sodDataList = new ArrayList<HashMap<String, Object>>();
		
		int statusCode  = 0;
		// 運用年月日
		String unyoYmd = (String)inHash.get(UNYO_YMD);
		// 利用開始年月日
		String strYmd = getStrymd(inHash);

		// 即時反映フラグ
		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;

		/* 業務データ設定 */
		HashMap<String, Object> dataMap = (HashMap<String, Object>) param.getData(ADDMLTISEINFO);

		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		//（０）サービス契約一意照会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);
		
		//サービス契約内訳ステータスの取得
		String ucwkStat = null;
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		// （１）申込内容承認登録
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		statusCode = getEKK0011D020Map(handle, param, inHash, fixedText, resultHash);
			
		if(statusCode != 0)
		{
			return statusCode;
		}

		// 更新年月日
		inHash.put(EX_MSKM_UPD_DTM, getUpdDtm(resultHash, TEMPLATE_ID_EKK0011D020));
		
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		// （２）サービス契約内訳(予約の最新とカレント)一覧照会
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		statusCode = getEKK0161B001Map(handle, param, inHash, fixedText, resultHash);
		if(statusCode != 0)
		{
			return statusCode;
		}
		//サービス契約内訳(予約の最新とカレント)一覧照会結果取得
		CAANMsg[] ucwkList = (CAANMsg[])resultHash.get(TEMPLATE_ID_EKK0161B001);
		for(int i = 0; i < ucwkList.length || i == 0 ; i++){
			String skjYkgt = null;
			eKK0161B001SCHash = ucwkList[i].getMsgData();
			if(eKK0161B001SCHash == null)
			{
				svc_kei_ucwk_no = "";
				gene_add_dtm_svc_kei_ucwk = "";
				ucwkStat = "";
			}
			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);
				ucwkStat = (String)eKK0161B001SCHash.get(EKK0161B001CBSMsg1List.SVC_KEI_UCWK_STAT);
				if(SVC_KEI_STAT_TKC.equals(ucwkStat) && ucwkList.length == 2){
					skjYkgt = "01";
				}
			}
			inHash.put(SVC_KEI_UCWK_NO, svc_kei_ucwk_no);
			inHash.put(GENE_ADD_DTM_SVC_KEI_UCWK, gene_add_dtm_svc_kei_ucwk);
			
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			// サービス契約内訳番号の件数分、繰り返し
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			//（３）サービス契約内訳＜eo光ネット＞一意照会
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			statusCode = getEKK0171A010Map(handle, param, inHash, fixedText, resultHash);
			if(statusCode != 0)
			{
				return statusCode;
			}
			
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			//（４）オプションサービス契約＜ISP＞登録
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			statusCode = getEKK0361D010Map(handle, param , inHash, fixedText, resultHash);
			if(statusCode != 0)
			{
				return statusCode;
			}

			// 更新年月日
			setSvKeiExUpdDtm(inHash, resultHash, TEMPLATE_ID_EKK0361D010);
			// 世代登録年月日
			setGeneAddDtm(inHash, resultHash, TEMPLATE_ID_EKK0361D010);
			
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			//（５）オプションサービス契約＜ISP＞照査
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			//サービス契約のステータスが「照査済」の場合
			if (equalsShosazumi(ucwkStat))
			{
				statusCode = getEKK0361C010Map(handle, param, inHash, fixedText, resultHash);
				if(statusCode != 0)
				{
					return statusCode;
				}
				// 更新年月日
				setSvKeiExUpdDtm(inHash, resultHash, TEMPLATE_ID_EKK0361C010);
				setGeneAddDtm(inHash, resultHash, TEMPLATE_ID_EKK0361C010);
			}
			
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			//（６）オプションサービス契約＜ISP＞照査締結
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			//サービス契約のステータスが「締結済」「サービス提供中」の場合
			if (isTeiketsuzumi(ucwkStat))
			{
				// オプションサービス契約＜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);
					setGeneAddDtm(inHash, resultHash, TEMPLATE_ID_EKK0361C030);
				}
			}
			
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			//（７）オプションサービス契約＜ISP＞開始
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			// サービス契約ステータスがサービス提供中の場合
			if (isTeikyo(ucwkStat))
			{
				// オプションサービス契約＜ISP＞照査締結
				if(JPCModelConstant.FUNC_CD_1.equals(inHash.get(FUNC_CODE))){
					statusCode = getEKK0361C040Map(handle, param, inHash, fixedText, resultHash, skjYkgt);
					if (statusCode != 0)
					{
						return statusCode;
					}
					// 更新年月日
					setSvKeiExUpdDtm(inHash, resultHash, TEMPLATE_ID_EKK0361C040);
					setGeneAddDtm(inHash, resultHash, TEMPLATE_ID_EKK0361C040);
				}
			}
			
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			//（８）ＳＯＤ発行ＣＣ
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			// 提供中（1件目）の内訳に対して、利用開始＝運用日の場合、SOD発行CCを呼ぶ。
			if(unyoYmd.equals(strYmd)){
				editSODHakko(handle, param, inHash, resultHash, sodDataList);
			}
			
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
			// 繰り返し　終わり
			//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		}
		
		// SOD対象データマップ
		HashMap<String, Object> sodTrgtData = new HashMap<String, Object>();
		// SOD対象データを追加する
		sodTrgtData.put(JKKHakkoSODConstCC.TRGT_DATA_LIST, sodDataList);
		sodTrgtData.put(JCMConstants.FUNC_CODE_KEY, inHash.get(JCMConstants.FUNC_CODE_KEY));
		 // サービスオーダ発行CCを呼び出す
		JKKHakkoSODCC hakkoSODCC = new JKKHakkoSODCC();
		param.setData("sodTrgtData", sodTrgtData);
		hakkoSODCC.hakkoSOD(handle, param, "sodTrgtData");
		
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		//（９）申込明細照査・後続業務依頼
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		if(!(isUketsukezumi(ucwkStat))){

			if(JPCModelConstant.FUNC_CD_1.equals(inHash.get(FUNC_CODE))){
				statusCode = getEKK0021C060Map(handle, param, inHash, fixedText, resultHash);
				if(statusCode != 0)
				{
					return statusCode;
				}
			}

		}
		
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		//（１０）進捗登録
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		addPrg(handle, param, inHash, fixedText, resultHash, eKK0081A010SCHash, isSokuji);
		

		return statusCode;
		
	}
	
	private void editSODHakko(SessionHandle handle, IRequestParameterReadWrite param, HashMap<String, Object> inHash,
			HashMap<String, Object> workMap, ArrayList<HashMap<String, Object>> sodDataList) throws Throwable
	{
		HashMap<String, Object> sodMap = new HashMap<String, Object>();

		// SOD基本情報
		HashMap<String, Object> sodKihonInfo = new HashMap<String, Object>();
		sodKihonInfo.put(JKKHakkoSODConstCC.INFO_SYSID, (String) inHash.get(SYSID));
		sodKihonInfo.put(JKKHakkoSODConstCC.INFO_IDO_DIV, (String) inHash.get(IDO_DIV));
		sodMap.put(JKKHakkoSODConstCC.SOD_KIHON_INFO, sodKihonInfo);
		
		// サービス契約情報
		HashMap<String, Object> svcKeiInfo = new HashMap<String, Object>();
		svcKeiInfo.put(JKKHakkoSODConstCC.INFO_SVC_KEI_NO, (String) inHash.get(SVC_KEI_NO));
		sodMap.put(JKKHakkoSODConstCC.SVC_KEI_INFO, svcKeiInfo);
		
		// サービス契約内訳情報
		HashMap<String, Object> svcKeiUcwkInfo = new HashMap<String, Object>();
		svcKeiUcwkInfo.put(JKKHakkoSODConstCC.INFO_SVC_KEI_UCWK_NO, (String) inHash.get(SVC_KEI_UCWK_NO));
		svcKeiUcwkInfo.put(JKKHakkoSODConstCC.INFO_CHAF_SVC_KEI_UCWK_GENE_ADD_DTM, (String) inHash.get(GENE_ADD_DTM_SVC_KEI_UCWK));
		sodMap.put(JKKHakkoSODConstCC.SVC_KEI_UCWK_INFO, svcKeiUcwkInfo);
		
		// オプションサービス契約情報
		HashMap<String, Object> opSvcKeiInfo = new HashMap<String, Object>();
		// オプションサービス契約＜ISP＞登録の結果取得
		HashMap<String, Object> eKK0361D010Hash = null;
		eKK0361D010Hash = (HashMap<String, Object>)workMap.get(TEMPLATE_ID_EKK0361D010);

		// オプションサービス契約<ISP>照査締結マップ.オプションサービス契約番号 → オプションサービス契約番号
		opSvcKeiInfo.put(JKKHakkoSODConstCC.INFO_CHAF_OPSVKEI_NO, eKK0361D010Hash.get(EKK0361D010CBSMsg.OP_SVC_KEI_NO));
		opSvcKeiInfo.put(JKKHakkoSODConstCC.INFO_CHAF_OPSVKEI_GENE_ADD_DTM, inHash.get("kk0351_gene_add_dtm"));
		sodMap.put(JKKHakkoSODConstCC.OPSVKEI_INFO, opSvcKeiInfo);
		
		// 機器提供サービス契約情報
		HashMap<String, Object> kktsvkeiInfo = new HashMap<String, Object>();
		sodMap.put(JKKHakkoSODConstCC.KKTSVKEI_INFO, kktsvkeiInfo);
		
		sodDataList.add(sodMap);
	}


	private int addPrg(SessionHandle handle, IRequestParameterReadWrite param, HashMap<String, Object> inHash,
			String fixedText, HashMap<String, Object> resultHash, HashMap<String, Object> eKK0081A010SCHash,
			boolean isSokuji) throws Exception
	{
		int statusCode = 0;
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		//（１６）進捗一覧照会S-IF実行
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋

		statusCode = getEKK1091B001Map(handle, param, inHash, fixedText, resultHash);
		
		if(statusCode != 0)
		{
			return statusCode;
		}
		
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
		//（１７）進捗登録S-IF実行
		//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
	
		if(JPCModelConstant.FUNC_CD_1.equals(inHash.get(FUNC_CODE))){
			// オプションに変更する
			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;
			}
		}
		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");
		}
	}
	

	/**
	 * @param param
	 * @param hash
	 * @param templateKey
	 */
	private void setGeneAddDtm(HashMap<String, Object> inHash, HashMap<String, Object> workMap, String templateKey)
	{
		Map<String, Object> map = (HashMap<String, Object>)workMap.get(templateKey);
		inHash.put("kk0351_gene_add_dtm", (String)map.get("kk0351_gene_add_dtm"));
	}
	
	
	/**
	 * リクエストパラメータの取得
	 * @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(ADDMLTISEINFO);

		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(MLTISE_SESSION_CNT)){
			paramData.put(MLTISE_SESSION_CNT,rootData.get(MLTISE_SESSION_CNT));
		}else{
			paramData.put(MLTISE_SESSION_CNT, new String());
		}
		
		if(rootData != null && rootData.containsKey(KOTEI_IP_UM_FLG)){
			paramData.put(KOTEI_IP_UM_FLG,(Boolean)rootData.get(KOTEI_IP_UM_FLG));
		}else{
			paramData.put(KOTEI_IP_UM_FLG,false);
		}
		
		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 getEKK0171A010Map(SessionHandle handle, IRequestParameterReadWrite param, 
			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> workMap) throws Throwable
	{
		/* ◇上りマッピング処理 */
		// 上りマッピングの処理結果を取得するためのマップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		JKKTchishoMapperCC mapper = new JKKTchishoMapperCC();
		HashMap<String, Object> kk0161childMap = new HashMap<String, Object>();
		
		String svcKeiUcwkNo = (String)inHash.get(SVC_KEI_UCWK_NO);
		kk0161childMap.put("svc_kei_ucwk_no", svcKeiUcwkNo);
		
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		paramMap = mapper.editInMsgKK0171(param, inHash, kk0161childMap);
		
		/* ◇ＳＣ呼出実行 */
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, handle);
		
		/* ◇下りマッピング処理 */
		workMap.put(TEMPLATE_ID_EKK0171A010, mapper.editResultRPKK0171(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);
		
		
	}
	/**
	 *オプションサービス契約<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 作業用マップ
	 * @param skjYkgt 即時／翌月
	 * @return 業務データ取得・書込用I/F
	 * @throws Exception 
	 * @exception RequestParameterExceptionがスローされます。
	 */
	private int getEKK0361C040Map(SessionHandle handle, IRequestParameterReadWrite param, 
			HashMap<String, Object> inHash, String fixedText, HashMap<String, Object> workMap ,String skjYkgt) throws Exception
	{
		
		/* ◇上りマッピング処理 */
		// 上りマッピングの処理結果を取得するためのマップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// リクエストパラメータを引数に上りマッピング処理メソッドを実行
		paramMap = editEKK0361C040InMsg(param, inHash, workMap, skjYkgt);

		/* ◇ＳＣ呼出実行 */
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, handle);
		
		/* ◇下りマッピング処理 */
		workMap.put(TEMPLATE_ID_EKK0361C040, editEKK0361C040ResultRP(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 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);
		
	}
	
	/**
	 *進捗登録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);
		
	}
	
	/**
	/**
	 *<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);

		// 予約適用年月日は必要がないが、S-IFのチェックに引っかかるので、最大値を入れる
		template.set(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD , RSV_APLY_YMD_MAX);
		
		// サービスインターフェイス共通部の設定
		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> 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
	 */
	@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_MLTISE);

		// オプションサービス契約<ISP>登録マップ.料金プランコード → 料金プランコード(固定)
		template.set(EKK0361D010CBSMsg.PPLAN_CD, PCRS_PLAN_CD_MLTISE);

		// オプションサービス契約<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));
		// オプションサービス契約<ISP>登録マップ.サービス利用開始希望年月日 → 予約適用開始希望年月日
		template.set(EKK0361D010CBSMsg.RSV_TSTA_KIBO_YMD, getStrymd(inHash));
		
		// オプションサービス契約<ISP>登録マップ.マルチセッション用セッション数カウント → マルチセッション用セッション数カウント
		if (inHash == null || inHash.get(MLTISE_SESSION_CNT) == null || "".equals(inHash.get(MLTISE_SESSION_CNT))) {
			template.setNull(EKK0361D010CBSMsg.MLTISE_SESSION_CNT);
		} else {
			template.set(EKK0361D010CBSMsg.MLTISE_SESSION_CNT, (String) inHash.get(MLTISE_SESSION_CNT));
		}

		// サービス契約内訳＜eo光ネット＞一意照会の結果取得
		HashMap<?, ?> eKK0171A010Msg = (HashMap<?, ?>)workMap.get(TEMPLATE_ID_EKK0171A010);
		ArrayList<?> eKK0171A010MsgList = (ArrayList<?>)eKK0171A010Msg.get(EKK0171A010CBSMsg.EKK0171A010CBSMSG1LIST);
		HashMap<String, Object> eKK0171A010Hash = (HashMap<String, Object>) eKK0171A010MsgList.get(0);
		
		// オプションサービス契約<ISP>登録マップ.初期ISP認証IDパスワード → 初期ISP認証IDパスワード
		if (eKK0171A010Hash == null || eKK0171A010Hash.get(SHK_ISP_NINSHO_ID_PWD) == null || "".equals(eKK0171A010Hash.get(SHK_ISP_NINSHO_ID_PWD))) {
			template.setNull(EKK0361D010CBSMsg.MLTISE_SHK_NINSHO_ID_PWD);
		} else {
			// OM-2016-0002076 認証IDが動的IPアドレスとして提供されている場合、マルチセッション用初期認証IDパスワードは設定しないよう修正 2017/03/11 MOD START
//			template.set(EKK0361D010CBSMsg.MLTISE_SHK_NINSHO_ID_PWD, (String) eKK0171A010Hash.get(SHK_ISP_NINSHO_ID_PWD));
			// 固定IPありの場合
			if((Boolean)inHash.get(KOTEI_IP_UM_FLG))	// 値が保証されているのでNULLチェックはしていない（既存実装に合わせた）
			{
				template.set(EKK0361D010CBSMsg.MLTISE_SHK_NINSHO_ID_PWD, (String) eKK0171A010Hash.get(SHK_ISP_NINSHO_ID_PWD));
			}
			// 固定IPなしの場合
			else
			{
				template.setNull(EKK0361D010CBSMsg.MLTISE_SHK_NINSHO_ID_PWD);
			}
			// OM-2016-0002076 認証IDが動的IPアドレスとして提供されている場合、マルチセッション用初期認証IDパスワードは設定しないよう修正 2017/03/11 MOD END
		}
		
		// オプションサービス契約<ISP>登録マップ.ISP認証ID → ISP認証ID
		if (eKK0171A010Hash == null || eKK0171A010Hash.get(ISP_NINSHO_ID) == null || "".equals(eKK0171A010Hash.get(ISP_NINSHO_ID))) {
			template.setNull(EKK0361D010CBSMsg.MLTISE_NINSHO_ID);
		} else {
			// 固定IP有無フラグの値により末尾にPを付与する
			if((Boolean)inHash.get(KOTEI_IP_UM_FLG)){
				
				String ispNinshoId = (String) eKK0171A010Hash.get(ISP_NINSHO_ID);

				// ISP認証IDに "P"を付与する。
				String ispNinshoIdEdit = editIspNinshoId(ispNinshoId);
				
				template.set(EKK0361D010CBSMsg.MLTISE_NINSHO_ID, ispNinshoIdEdit );
				
			} else {
				// OM-2016-0002076 認証IDが動的IPアドレスとして提供されている場合、マルチセッション用認証IDは設定しないよう修正 2017/03/11 MOD START
//				template.set(EKK0361D010CBSMsg.MLTISE_NINSHO_ID, (String) eKK0171A010Hash.get(ISP_NINSHO_ID));
				template.setNull(EKK0361D010CBSMsg.MLTISE_NINSHO_ID);
				// OM-2016-0002076 認証IDが動的IPアドレスとして提供されている場合、マルチセッション用認証IDは設定しないよう修正 2017/03/11 MOD END
			}
		}

		// オプションサービス契約<ISP>登録マップ.ISP認証IDパスワード → ISP認証IDパスワード
		if (eKK0171A010Hash == null || eKK0171A010Hash.get(ISP_NINSHO_ID_PWD) == null || "".equals(eKK0171A010Hash.get(ISP_NINSHO_ID_PWD))) {
			template.setNull(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_PWD);
		} else {
			// OM-2016-0002076 認証IDが動的IPアドレスとして提供されている場合、マルチセッション用認証IDパスワードは設定しないよう修正 2017/03/11 MOD START
//			template.set(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_PWD, (String) eKK0171A010Hash.get(ISP_NINSHO_ID_PWD));
			// 固定IPありの場合
			if((Boolean)inHash.get(KOTEI_IP_UM_FLG))	// 値が保証されているのでNULLチェックはしていない（既存実装に合わせた）
			{
				template.set(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_PWD, (String) eKK0171A010Hash.get(ISP_NINSHO_ID_PWD));
			}
			// 固定IPなしの場合
			else
			{
				template.setNull(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_PWD);
			}
			// OM-2016-0002076 認証IDが動的IPアドレスとして提供されている場合、マルチセッション用認証IDパスワードは設定しないよう修正 2017/03/11 MOD END
		}

		// オプションサービス契約<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));
		}
		
//		// オプションサービス契約<ISP>登録マップ.請求契約番号 → 請求契約番号
		template.set(EKK0361D010CBSMsg.SEIKY_KEI_NO, (String)inHash.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;
	}


	/**
	 * ISP認証IDを編集します。
	 * "@"を含んでいれば、その直前に"P"を入れます。
	 * そうでなければ、末尾に"P"を付与します。
	 * @param ispNinshoId
	 * @return
	 */
	private String editIspNinshoId(String ispNinshoId) {
		
		String rtrStr = "";
		
		if( !JKKStringUtil.isNullBlank(ispNinshoId) && ispNinshoId.indexOf("@") != -1 ) {
			// @を含む（つまり １Ｇ）の場合、"@"の直前に "P" を入れる。
			
			int idx = ispNinshoId.indexOf("@");
			String ispNinshoIdMae = ispNinshoId.substring(0, idx);  // @以前（@含まない）
			String ispNinshoIdAto = ispNinshoId.substring(idx);     // @以降（@含む）

			rtrStr = ispNinshoIdMae + "P" + ispNinshoIdAto;

		} else {
			// @ を含まない場合、そのまま"P"を付ける
			rtrStr = ispNinshoId + "P";
			
		}
		return rtrStr;
	}
	
	/**
	 *<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>照査締結マップ.オプションサービス契約番号 → オプションサービス契約番号
		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));

		// サービスインターフェイス共通部の設定
		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));
		}

		// サービスインターフェイス共通部の設定
		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, String skjYkgt)
	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));
		}


		// サービス契約内訳＜eo光ネット＞一意照会の結果取得
		HashMap<?, ?> eKK0171A010Msg = (HashMap<?, ?>)workMap.get(TEMPLATE_ID_EKK0171A010);
		ArrayList<?> eKK0171A010MsgList = (ArrayList<?>)eKK0171A010Msg.get(EKK0171A010CBSMsg.EKK0171A010CBSMSG1LIST);
		HashMap<String, Object> eKK0171A010Hash = (HashMap<String, Object>) eKK0171A010MsgList.get(0);
		
		// オプションサービス契約<ISP>登録マップ.ISP認証ID → ISP認証ID
		if (eKK0171A010Hash == null || eKK0171A010Hash.get(ISP_NINSHO_ID) == null || "".equals(eKK0171A010Hash.get(ISP_NINSHO_ID))) {
			template.setNull(EKK0361C040CBSMsg.MLTISE_NINSHO_ID);
		} else {
			// 固定IP有無フラグの値により末尾にPを付与する
			if((Boolean)inHash.get(KOTEI_IP_UM_FLG)){
				
				String ispNinshoId = (String) eKK0171A010Hash.get(ISP_NINSHO_ID);

				// ISP認証IDに "P"を付与する。
				String ispNinshoIdEdit = editIspNinshoId(ispNinshoId);
				
				template.set(EKK0361D010CBSMsg.MLTISE_NINSHO_ID, ispNinshoIdEdit );
				
			} else {
				// OM-2016-0002076 認証IDが動的IPアドレスとして提供されている場合、マルチセッション用認証IDは設定しないよう修正 2017/03/11 MOD START
//				template.set(EKK0361C040CBSMsg.MLTISE_NINSHO_ID, (String) eKK0171A010Hash.get(ISP_NINSHO_ID));
				template.setNull(EKK0361C040CBSMsg.MLTISE_NINSHO_ID);
				// OM-2016-0002076 認証IDが動的IPアドレスとして提供されている場合、マルチセッション用認証IDは設定しないよう修正 2017/03/11 MOD END
			}

		}

		// オプションサービス契約<ISP>登録マップ.ISP認証IDパスワード → ISP認証IDパスワード
		if (eKK0171A010Hash == null || eKK0171A010Hash.get(ISP_NINSHO_ID_PWD) == null || "".equals(eKK0171A010Hash.get(ISP_NINSHO_ID_PWD))) {
			template.setNull(EKK0361C040CBSMsg.MLTISE_NINSHO_ID_PWD);
		} else {
			// OM-2016-0002076 認証IDが動的IPアドレスとして提供されている場合、マルチセッション用認証IDパスワードは設定しないよう修正 2017/03/11 MOD START
//			template.set(EKK0361C040CBSMsg.MLTISE_NINSHO_ID_PWD, (String) eKK0171A010Hash.get(ISP_NINSHO_ID_PWD));
			// 固定IPありの場合
			if((Boolean)inHash.get(KOTEI_IP_UM_FLG))	// 値が保証されているのでNULLチェックはしていない（既存実装に合わせた）
			{
				template.set(EKK0361C040CBSMsg.MLTISE_NINSHO_ID_PWD, (String) eKK0171A010Hash.get(ISP_NINSHO_ID_PWD));
			}
			// 固定IPなしの場合
			else
			{
				template.setNull(EKK0361C040CBSMsg.MLTISE_NINSHO_ID_PWD);
			}
			// OM-2016-0002076 認証IDが動的IPアドレスとして提供されている場合、マルチセッション用認証IDパスワードは設定しないよう修正 2017/03/11 MOD END
		}

		// オプションサービス契約<ISP>開始マップ.更新年月日時分秒 → 更新年月日時分秒(更新前)
		template.set(EKK0361C040CBSMsg.UPD_DTM_BF, (String) inHash.get(EX_SVC_UPD_DTM));

		// 内訳ステータスが提供中の場合は即時反映で依頼を行う
		if (null != skjYkgt) {
			template.set(EKK0361C040CBSMsg.SKJ_YKGT, skjYkgt);
		}
		
		// サービスインターフェイス共通部の設定
		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> 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;
	}
	
	/**
	 *<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));
		}
		//請求契約番号
		template.set(EKK1091D010CBSMsg.SEIKY_KEI_NO, (String)inHash.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));
		}
		
		// 進捗登録マップ.進捗特記事項1 → 進捗特記事項1
		template.set(EKK1091D010CBSMsg.PRG_TKJK_1, PRG_TKJK_1_VAL_IPV6_INFO_ADD);

		//進捗一覧照会の結果を格納する
		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());
		}

		// オプションサービス契約<ISP>照査締結マップ.オプションサービス契約番号 → オプションサービス契約番号
		HashMap<String, Object> eKK0361D010Hash = (HashMap<String, Object>)workMap.get(TEMPLATE_ID_EKK0361D010);
		template.set(EKK1091D010CBSMsg.OP_SVC_KEI_NO, eKK0361D010Hash.get(EKK0361D010CBSMsg.OP_SVC_KEI_NO));
		
		// 申込明細番号
		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(EKK1091D010CBSMsg.MSKM_DTL_NO, mskm_dtl_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());
			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));
			}
			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>承認登録後続処理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);
		
		// オプションサービス契約<ISP>開始マップ.異動区分 → 異動区分
		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));
		}

		// 後続依頼年月日時分秒
		template.set(EKK0021C060CBSMsg.KZKWRK_REQYMD,
				inHash.get(UNYO_YMD));

		// オプションサービス契約<ISP>登録マップ.異動区分 → 異動区分
		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));
		}
		
		// 更新年月日時分秒（更新前）
		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実行後に、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 CAANMsg[] 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;
		}
		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 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を生成してスローする
		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();
	}

	/**
	 *<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;
	}
	
	/**
	 *<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 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 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 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));
			}
		}
		
		// 申込内容承認登録マップ.電話連絡希望日種別コード → 電話連絡希望日種別コード のエラー情報返却
		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));
					}
				}
				
				// 申込内容承認登録マップ.申込内容承認登録明細.宅内調査希望アポ期限年月日 → 申込内容承認登録明細.宅内調査希望アポ期限年月日 のエラー情報返却
				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 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;
	}
	
	/**
	 *<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;
	}
	
	/**
	 *<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;
	}
	
	/**
	 * エラー共通部の設定。<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 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;
	}

	
	/**
	 * サービス契約ステータスが締結済以降の場合は<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 equalsShosazumi(String svcKeiStat)
	{
		return SVC_KEI_STAT_SSZ.compareTo(svcKeiStat) == 0;
	}

	/**
	 * サービス契約ステータスが受付済の場合は<code>true</code>を返却します。
	 * 
	 * @param svcKeiStat
	 *            サービス契約ステータス
	 * @return 照査の是非
	 */
	private boolean isUketsukezumi(String svcKeiStat)
	{
		return SVC_KEI_STAT_UKZ.compareTo(svcKeiStat) == 0;
	}

	/**
	 * 現在の要素の利用開始年月日を取得します。
	 * @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) {
		return null;
	}

	public IRequestParameterReadWrite editErrorInfo(
			IRequestParameterReadWrite param, CAANMsg[] subCAANMsgs,
			Integer returnCode) {
		return null;
	}
	
}
