/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JSCSV002801CC
*   ソースファイル名：JSCSV002801CC.java
*   作成者          ：FJ) 寺田
*   日付            ：2024年07月08日
*＜機能概要＞
*   電話ＳＯＤ依頼受信（ＥＮＵＭ）（法人）を行います。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v72.00.00	2024/07/08   FJ) 寺田     新規作成 ANK-4494-00-00_【eo定期】 双方向番ポ対応
*   v72.00.00	2024/08/22   FJ) 寺田     ANK-4494-16-00_【eo定期】 双方向番ポ対応 (SCIFE047のチェック仕様の変更)
*
**********************************************************************/

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.JKKTelnoStatJudgeConstCC;
import com.fujitsu.futurity.bp.x21.bpm.BPMLogManager;
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.ErrorLevel;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.bpm.parameter.StatusArea;
import com.fujitsu.futurity.bp.x21.bpm.parameter.StatusInfo;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.common.JSYLogBase;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.ICommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.CCException;
import com.fujitsu.futurity.bp.x21.cc.exception.SCCallException;
import com.fujitsu.futurity.bp.x21.values.OUTBREAK_AREA;
import com.fujitsu.futurity.common.x00.log.BasicLevel;
import com.fujitsu.futurity.common.x00.log.ILogger;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;
import com.fujitsu.futurity.model.common.check.HalfCharCheck;
import com.fujitsu.futurity.model.common.check.LengthCheck;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;

import eo.common.util.JCHStringUtil;
import eo.common.util.JSCCommonUtil;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JSCStrConstant;

import eo.ejb.cbs.cbsmsg.ESC0051D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ETU0011B040CBSMsg;
import eo.ejb.cbs.cbsmsg.ETU0011B040CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ETU0011C070CBSMsg;
import eo.ejb.cbs.cbsmsg.ETU0051B010CBSMsg;
import eo.ejb.cbs.cbsmsg.ETU0051B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ETU0151B040CBSMsg;
import eo.ejb.cbs.cbsmsg.ETU0151B040CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ETU0151C010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0121A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0121A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0121C010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0121E010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0321A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0321A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0541D010CBSMsg;

import eo.common.util.JKKStringUtil;

/**
 * 電話サービスオーダ発行SC（ＥＮＵＭ）（法人）を実行する。 <BR>
 * 
 * @author 富士通
 */
public class JSCSV002801CC extends AbstractCommonComponent implements ICommonComponent
{
	/** エラー用 */
	private static final String SC_ERROR_STRING = "サービスコンポーネントエラー";
	
	/** リクエスト：サービス契約番号 */
	private static final String REQUEST_SVC_KEI_NO = "svcKeiNo";
	/** リクエスト：ENUM要求種別コード */
	private static final String REQUEST_YOKYU_SBT_CD = "enumYokyuSbtCd";
	/** リクエスト：電話番号 */
	private static final String REQUEST_TELNO = "telNo";
	/** リクエスト：ルーティング番号 */
	private static final String REQUEST_NW_ROUTING_NO = "routingNo";
	/** リクエスト：サービス区分 */
	private static final String REQUEST_SVC_DIV = "svcDiv";
	/** リクエスト：ドメイン */
	private static final String REQUEST_DOMAIN = "domain";
	/** リクエスト：番ポ工事番号 */
	private static final String REQUEST_BMP_KOJI_NO = "bmp_koji_no";
	/** リクエスト：ポートアウト番号 */
	private static final String REQUEST_PORT_OUT_NO = "port_out_no";

	/** 必須チェック・任意（NOT NULL ≠ ○） */
	private static final String HISSU_CHECK_NINI = "0";
	/** 必須チェック・必須（NOT NULL ＝ ○） */
	private static final String HISSU_CHECK_HISSU = "1";
	/** 必須チェック・単項目関連必須（NOT NULL ＝ ○） */
	private static final String HISSU_CHECK_KNRN_HISSU = "2";

	/** ドメインチェック・半角数字1 */
	private static final String DOMAIN_CHECK_NUMBER1 = "1";
	/** ドメインチェック・半角英数字1 */
	private static final String DOMAIN_CHECK_ENNUMBER1 = "2";
	/** ドメインチェック・半角英数字2 */
	private static final String DOMAIN_CHECK_ENNUMBER2 = "3";

	/** 桁数チェック・最小値 */
	private static final int LEN_CHECK_MIN = 0;
	/** 桁数チェック・最大値 */
	private static final int LEN_CHECK_MAX = 1;

	/** エラー項目末尾辞 */
	private static final String PREFIX_ERR_ITEM = "_err";


	/** 単項目チェック：必須チェックエラー */
	private static final String TMCK_ERR_E1 = "E1";
	/** 単項目チェック：入力文字種チェックエラー */
	private static final String TMCK_ERR_E2 = "E2";
	/** 単項目チェック：入力文字列長チェックエラー */
	private static final String TMCK_ERR_E3 = "E3";
	/** 関連チェック：電話番号存在チェックエラー */
	private static final String TMCK_ERR_EA = "EA";
	/** 関連チェック：番ポ工事番号整合性チェックエラー */
	private static final String TMCK_ERR_EB = "EB";
	/** 関連チェック：ポートアウト番号整合性チェックエラー */
	private static final String TMCK_ERR_EC = "EC";
	/** 関連チェック：番ポ処理パターンチェックエラー */
	private static final String TMCK_ERR_ED = "ED";

	/** 外部インターフェイスID **/
	private static final String SCIFE047 = "SCIFE047";
	
	/** エラー設定フラグ */
	private String ERR_SET_FLG = "0";

	/** エラーフラグ */
	private static final String ERR_FLG = "1";

	
	/** 番ポ処理パターンフラグ_01_ポートイン切替 */
	private static final String BMP_PROCESS_PATTERN_01 = "01";
	/** 番ポ処理パターンフラグ_02_ポートアウト切替 */
	private static final String BMP_PROCESS_PATTERN_02 = "02";
	/** 番ポ処理パターンフラグ_03_事業者間移転(他社電話番号)切替 */
	private static final String BMP_PROCESS_PATTERN_03 = "03";
	/** 番ポ処理パターンフラグ_04_番号取得事業者戻り切替 */
	private static final String BMP_PROCESS_PATTERN_04 = "04";
	/** 番ポ処理パターンフラグ_05_番ポ廃止(ＯＰＴ受付)切替 */
	private static final String BMP_PROCESS_PATTERN_05 = "05";
	/** 番ポ処理パターンフラグ_06_ポートイン切替・取消 */
	private static final String BMP_PROCESS_PATTERN_06 = "06";
	/** 番ポ処理パターンフラグ_07_ポートアウト切替・取消 */
	private static final String BMP_PROCESS_PATTERN_07 = "07";
	/** 番ポ処理パターンフラグ_08_番号取得事業者戻り切替・取消 */
	private static final String BMP_PROCESS_PATTERN_08 = "08";
	/** 番ポ処理パターンフラグ_09_網内番ポ(ＯＰＴ電話番号)(登録) */
	private static final String BMP_PROCESS_PATTERN_09 = "09";
	/** 番ポ処理パターンフラグ_10_網内番ポ(ＯＰＴ電話番号)(消去) */
	private static final String BMP_PROCESS_PATTERN_10 = "10";
	/** 番ポ処理パターンフラグ_11_網内番ポ(他社電話番号)(登録) */
	private static final String BMP_PROCESS_PATTERN_11 = "11";
	/** 番ポ処理パターンフラグ_12_網内番ポ(他社電話番号)(消去) */
	private static final String BMP_PROCESS_PATTERN_12 = "12";
	/** 番ポ処理パターンフラグ_99_対象外 */
	private static final String BMP_PROCESS_PATTERN_99 = "99";


	/** 検索対象業務パラメータID_ＥＮＵＭ−ＳＯＤ・ドメイン */
	private static final String WORK_PARAM_ID_SC_ENUMSOD_DOMAIN = "SC_ENUMSOD_DOMAIN";
	/** 検索対象業務パラメータID_ＥＮＵＭ−ＳＯＤ・サービス区分（法人０ＡＢＪ） */
	private static final String WORK_PARAM_ID_SC_ENUMSOD_SKBN_HJN = "SC_ENUMSOD_SKBN_HJN";
	/** 検索対象業務パラメータID_ＥＮＵＭ−ＳＯＤ・サービス区分（他事業者） */
	private static final String WORK_PARAM_ID_SC_ENUMSOD_SKBN_TJS = "SC_ENUMSOD_SKBN_TJS";

	/** 要求種別コード：新規：02 */
	private static final String ENUMYOKYUSBTCD_02 = "02";
	/** 要求種別コード：消去：08 */
	private static final String ENUMYOKYUSBTCD_08 = "08";

	/** 個人法人番号帯コード:1(個人) */
	private static final String KOJIN_HOJIN_TLN_TAI_CD_1 = "1";
	/** 個人法人番号帯コード:2(法人) */
	private static final String KOJIN_HOJIN_TLN_TAI_CD_2 = "2";

	/** 注文種類:2(番ポ戻り) */
	private static final String CHUMN_KIND_2 = "2";
	/** 注文種類:4(番ポ廃止) */
	private static final String CHUMN_KIND_4 = "4";

	/** 番ポ工事ステータス:031(工事実施依頼待ち) */
	private static final String BMP_KOJI_STAT_031 = "031";

	/** ポートアウトステータス：030(CSV出力済) */
	private static final String PORT_OUT_STAT_030 = "030";
	/** ポートアウトステータス：050(工事完了) */
	private static final String PORT_OUT_STAT_050 = "050";

	
	/** 可否：否 */
	private static final String KAHI_HI = "0";
	/** 可否：可 */
	private static final String KAHI_KA = "1";
	
	/** 有無フラグ_無 */
	private static final String UM_M = "0";
	/** 有無フラグ_有 */
	private static final String UM_U = "1";

	/** ＥＮＵＭ−ＳＯＤ・ドメイン */
	private String SC_ENUMSOD_DOMAIN = "";
	/** ＥＮＵＭ−ＳＯＤ・サービス区分（法人０ＡＢＪ） */
	private String SC_ENUMSOD_SKBN_HJN = "";
	/** ＥＮＵＭ−ＳＯＤ・サービス区分（他事業者） */
	private String SC_ENUMSOD_SKBN_TJS = "";
	/** 自社事業者コード */
	private String JISHA_TSJGS_CD = "";

	/** リクエスト設定有無：番ポ工事番号有無 */
	private String REQUEST_BMP_KOJI_NO_UM = "0";
	/** リクエスト設定有無：ポートアウト番号有無 */
	private String REQUEST_PORT_OUT_NO_UM = "0";
	
	
	/**
	 * 共通コンポーネント実行
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	public IRequestParameterReadWrite executeMain(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		ILogger logger = BPMLogManager.getLogger(handle.getHandleID(), this.getClass());

		// fixedText は固定値で行う。リクエストがSCSV002801CCのため
		fixedText = "SCSV002801CC";

		// 電話ＳＯＤ依頼受付法人データ取得
		Map<String, Object> ccParam = (Map<String, Object>) param.getData(fixedText);

		// ★リクエスト必須チェック処理を行う。
		// 番ポ工事番号・ポートアウト番号の設定有無フラグを設定する
		needChk(param, ccParam, fixedText);
		if (ERR_FLG.equals(ERR_SET_FLG))
		{
			// チェックエラーの場合、処理を終了する
			return param;
		}

		// ★番ポ処理パターン前の準備を行う
		// 判定に必要なパラメータを取得する
		parametersGet(handle, param, fixedText);

		// 電話番号を設定
		String telno = JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_TELNO));

		// ★電話番号存在チェックをする
		CAANMsg outMapEZM0121A010 = telNoIfChk(handle, param, fixedText, telno);
		if (ERR_FLG.equals(ERR_SET_FLG))
		{
			// チェックエラーの場合、処理を終了する
			return param;
		}

		// ★リクエスト：番ポ工事番号有 の場合、番ポ工事番号整合性チェックを処理する
		CAANMsg outMapETU0011B040 = null;
		if (UM_U.equals(REQUEST_BMP_KOJI_NO_UM))
		{
			outMapETU0011B040 = bmpKojiIfChk(handle, param, fixedText, telno, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_BMP_KOJI_NO)));
		}
		if (ERR_FLG.equals(ERR_SET_FLG))
		{
			// チェックエラーの場合、処理を終了する
			return param;
		}

		// ★リクエスト：ポートアウト番号有 の場合、ポートアウト番号整合性チェックを処理する
		CAANMsg outMapETU0151B040 = null;
		if (UM_U.equals(REQUEST_PORT_OUT_NO_UM))
		{
			outMapETU0151B040 = portOutUkIfChk(handle, param, fixedText, telno, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_PORT_OUT_NO)));
		}
		if (ERR_FLG.equals(ERR_SET_FLG))
		{
			// チェックエラーの場合、処理を終了する
			return param;
		}

		// ★番ポ処理パターンの判定を行い、処理パターンフラグを取得
		String bmpProcessPattern_Flg = bmpProcessPattern(param, fixedText, ccParam, outMapEZM0121A010, outMapETU0011B040, outMapETU0151B040);
		if (ERR_FLG.equals(ERR_SET_FLG))
		{
			// チェックエラーの場合、処理を終了する
			return param;
		}

		// ★★番ポ処理パターンに沿って、SOD発行及びデータ登録・更新・削除する★★
		if (BMP_PROCESS_PATTERN_01.equals(bmpProcessPattern_Flg))
		{
			// ★No1:ポートイン切替
			portIn_Switch(handle, param, fixedText, logger, ccParam, outMapEZM0121A010, outMapETU0011B040);
		}
		else if (BMP_PROCESS_PATTERN_02.equals(bmpProcessPattern_Flg))
		{
			// ★No2:ポートアウト切替
			portOut_Switch(handle, param, fixedText, logger, ccParam, outMapEZM0121A010, outMapETU0151B040);
		}
		else if (BMP_PROCESS_PATTERN_03.equals(bmpProcessPattern_Flg))
		{
			// ★No3:事業者間移転(他社電話番号)切替
			interCompany_OtherTelno_Switch(handle, param, fixedText, logger, ccParam, outMapEZM0121A010, outMapETU0151B040);
		}
		else if (BMP_PROCESS_PATTERN_04.equals(bmpProcessPattern_Flg))
		{
			// ★No4:番号取得事業者戻り切替
			numberAcquirerReturn_Switch(handle, param, fixedText, logger, ccParam, outMapEZM0121A010, outMapETU0011B040);
		}
		else if (BMP_PROCESS_PATTERN_05.equals(bmpProcessPattern_Flg))
		{
			// ★No5:番ポ廃止(ＯＰＴ受付)切替
			bmpAbolition_Opt_Switch(handle, param, fixedText, logger, ccParam, outMapEZM0121A010, outMapETU0011B040);
		}
		else if (BMP_PROCESS_PATTERN_06.equals(bmpProcessPattern_Flg))
		{
			// ★No6:ポートイン切替・取消
			portIn_Switch_Cancel(handle, param, fixedText, logger, ccParam, outMapEZM0121A010, outMapETU0011B040);
		}
		else if (BMP_PROCESS_PATTERN_07.equals(bmpProcessPattern_Flg))
		{
			// ★No7:ポートアウト切替・取消
			portOut_Switch_Cancel(handle, param, fixedText, logger, ccParam, outMapEZM0121A010, outMapETU0151B040);
		}
		else if (BMP_PROCESS_PATTERN_08.equals(bmpProcessPattern_Flg))
		{
			// ★No8:番号取得事業者戻り切替・取消
			numberAcquirerReturn_Switch_Cancel(handle, param, fixedText, logger, ccParam, outMapEZM0121A010, outMapETU0011B040);
		}
		else if (BMP_PROCESS_PATTERN_09.equals(bmpProcessPattern_Flg))
		{
			// ★No9:網内番ポ(ＯＰＴ電話番号)(登録)
			insNetNumPort_OptTelno(handle, param, fixedText, logger, ccParam, outMapEZM0121A010);
		}
		else if (BMP_PROCESS_PATTERN_10.equals(bmpProcessPattern_Flg))
		{
			// ★No10:網内番ポ(ＯＰＴ電話番号)(消去)
			insNetNumPort_OptTelno_Cancel(handle, param, fixedText, logger, ccParam, outMapEZM0121A010);
		}
		else if (BMP_PROCESS_PATTERN_11.equals(bmpProcessPattern_Flg))
		{
			// ★No11:網内番ポ(他社電話番号)(登録)
			insNetNumPort_OtherTelno(handle, param, fixedText, logger, ccParam, outMapEZM0121A010);
		}
		else if (BMP_PROCESS_PATTERN_12.equals(bmpProcessPattern_Flg))
		{
			// ★No12:網内番ポ(他社電話番号)(消去)
			insNetNumPort_OtherTelno_Cancel(handle, param, fixedText, logger, ccParam, outMapEZM0121A010);
		}

		return param;
	}

	
	
	/**
	 * リクエスト必須チェック処理<br>
	 * <br>
	 * @param ccParam リクエストマップ
	 * @return Map<Object, Object>
	 * @throws Throwable 
	 * @exception Exceptionがスローされます。
	 */
	private void needChk(IRequestParameterReadWrite param,Map<String, Object> ccParam, String fixedText) throws Throwable
	{
		// 単項目チェックを行う。
		executeSingleItemChk((HashMap<String, Object>) ccParam);
		if (ERR_FLG.equals(ERR_SET_FLG))
		{
			// 単項目チェックエラー処理を行う
			itemChkErr(param, fixedText, 1000);
			return;
		}

		// 単項目関連チェックを行う。
		executeKnrnChk((HashMap<String, Object>) ccParam);
		if (ERR_FLG.equals(ERR_SET_FLG))
		{
			// 単項目関連チェックエラー処理を行う
			itemChkErr(param, fixedText, 1050);
			return;
		}

		// リクエスト番ポ工事番号設定有無フラグ
		if (!JKKStringUtil.isNullBlank(JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_BMP_KOJI_NO))))
		{
			REQUEST_BMP_KOJI_NO_UM = "1";
		}
		// リクエストポートアウト番号設定有無フラグ
		if (!JKKStringUtil.isNullBlank(JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_PORT_OUT_NO))))
		{
			REQUEST_PORT_OUT_NO_UM = "1";
		}
	}
	
	/**
	 * 単項目チェック処理の呼出を行います。
	 * 
	 * @param ccMsg
	 */
	private void executeSingleItemChk(HashMap<String, Object> ccParam)
	{
		// サービス契約番号 必須ありドメイン：半角英数字1 桁数(文字数)：10
		singleItemChk(ccParam, REQUEST_SVC_KEI_NO, HISSU_CHECK_HISSU, DOMAIN_CHECK_ENNUMBER1, new int[] { 10, 10 });
		// ENUM要求種別コード 必須ありドメイン：半角英数字1 桁数(文字数)：2
		singleItemChk(ccParam, REQUEST_YOKYU_SBT_CD, HISSU_CHECK_HISSU, DOMAIN_CHECK_ENNUMBER1, new int[] { 2, 2 });
		// 電話番号 必須ありドメイン：半角数字1 桁：桁数(文字数)：1-12
		singleItemChk(ccParam, REQUEST_TELNO, HISSU_CHECK_HISSU, DOMAIN_CHECK_NUMBER1, new int[] { 1, 12 });
		// ルーティング番号 任意(※関連必須あり) ドメイン：半角英数字1 桁数(文字数)：1-25
		singleItemChk(ccParam, REQUEST_NW_ROUTING_NO, HISSU_CHECK_NINI, DOMAIN_CHECK_ENNUMBER1, new int[] { 1, 25 });
		// サービス区分 任意(※関連必須あり) ドメイン：半角数字1 桁数(文字数)：1-2
		singleItemChk(ccParam, REQUEST_SVC_DIV, HISSU_CHECK_NINI, DOMAIN_CHECK_NUMBER1, new int[] { 1, 2 });
		// ドメイン 任意(※関連必須あり) ドメイン：半角英数字2 桁数(文字数)：1-256
		singleItemChk(ccParam, REQUEST_DOMAIN, HISSU_CHECK_NINI, DOMAIN_CHECK_ENNUMBER2, new int[] { 1, 256 });
		// 番ポ工事番号 必須なし ドメイン：半角英数字1 桁数(文字数)：12
		singleItemChk(ccParam, REQUEST_BMP_KOJI_NO, HISSU_CHECK_NINI, DOMAIN_CHECK_ENNUMBER1, new int[] { 12, 12 });
		// ポートアウト番号 必須なし ドメイン：半角英数字1 桁数(文字数)：12
		singleItemChk(ccParam, REQUEST_PORT_OUT_NO, HISSU_CHECK_NINI, DOMAIN_CHECK_ENNUMBER1, new int[] { 12, 12 });
	}

	/**
	 * 単項目チェックを行います。
	 * 
	 * @param ccMsg
	 * @param key
	 * @param hissuCheckKbn 1：必須項目 0：任意項目
	 * @param domainCheckKbn 1：半角数字1 2：半角英数字1 3：半角英数字2
	 * @param lenCheckKbn lenCheck[0]：最小値 lenCheck[1]最大値
	 * @return
	 */
	private void singleItemChk(HashMap<String, Object> ccMsg, String key, String hissuCheckKbn, String domainCheckKbn, int lenCheckKbn[])
	{
		// チェック対象の値を取得
		String value = (String) ccMsg.get(key);

		// 必須チェック・値の存在チェック
		if (JCHStringUtil.isNullBlank(value))
		{
			if (HISSU_CHECK_HISSU.equals(hissuCheckKbn))
			{
				// 必須チェック（必須項目の場合必須チェックエラー）
				ccMsg.put(key.concat(PREFIX_ERR_ITEM), TMCK_ERR_E1);

				ERR_SET_FLG = "1";
				return;
			}
			else
			{
				// 任意項目の場合は後続の処理を行わない。
				return;
			}
		}

		// ドメインチェック
		if (DOMAIN_CHECK_NUMBER1.equals(domainCheckKbn))
		{
			// 半角数字1
			if (!HalfCharCheck.isNumber1Check(value))
			{
				// 形式チェックエラー
				ccMsg.put(key.concat(PREFIX_ERR_ITEM), TMCK_ERR_E2);
				ERR_SET_FLG = "1";

				return;
			}
		}
		else if (DOMAIN_CHECK_ENNUMBER1.equals(domainCheckKbn))
		{
			// 半角英数字1
			if (!HalfCharCheck.isEnNumber1Check(value))
			{
				// 形式チェックエラー
				ccMsg.put(key.concat(PREFIX_ERR_ITEM), TMCK_ERR_E2);
				ERR_SET_FLG = "1";

				return;
			}
		}
		else if (DOMAIN_CHECK_ENNUMBER2.equals(domainCheckKbn))
		{
			// 半角英数字２
			if (!HalfCharCheck.isEnNumber2Check(value))
			{
				// 形式チェックエラー
				ccMsg.put(key.concat(PREFIX_ERR_ITEM), TMCK_ERR_E2);
				ERR_SET_FLG = "1";

				return;
			}
		}

		// 桁数チェック
		int min = lenCheckKbn[LEN_CHECK_MIN];
		int max = lenCheckKbn[LEN_CHECK_MAX];

		if (min == max)
		{
			// 桁数1
			if (!LengthCheck.isLength1Check(value, max))
			{
				// 桁数チェックエラー
				ccMsg.put(key.concat(PREFIX_ERR_ITEM), TMCK_ERR_E3);
				ERR_SET_FLG = "1";

				return;
			}
		}
		else
		{
			// 桁数2
			if (!LengthCheck.isLength2Check(value, min, max))
			{
				// 桁数チェックエラー
				ccMsg.put(key.concat(PREFIX_ERR_ITEM), TMCK_ERR_E3);
				ERR_SET_FLG = "1";

				return;
			}
		}
	}

	/**
	 * 単項目チェックエラー処理を行います。
	 * @param ccMsg 
	 * @throws SCCallException 
	 * @throws RequestParameterException 
	 */
	@SuppressWarnings("unchecked")
	private void itemChkErr(IRequestParameterReadWrite param, String fixedText, int errCode) throws SCCallException, RequestParameterException 
	{
		HashMap<String, String> ccMsg = null;

		// ユーザデータ情報
		ccMsg = (HashMap<String, String>) param.getData(fixedText);

		ArrayList<String> listStr = new ArrayList<String>();
		for (String str_01 : ccMsg.keySet())
		{
			listStr.add(str_01);
		}

		for (String str : listStr)
		{
			if (str.endsWith(PREFIX_ERR_ITEM))
			{
				// BPにサービスコンポーネントのステータスを設定する。
				String formatStatus = String.format("%1$04d", errCode);

				String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);

				param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);

				param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);

				String msg1 = SCIFE047;
				String msg2 = ", status = ";
				String msg3 = formatStatus;
				String msg4 = ", ";
				String msg5 = str;
				String msg6 = " = ";
				String msg7 = JKKStringUtil.nullToBlank((String) ccMsg.get(str));
				String msg8 = ", ";
				String msg9 = "returnMessage = ";
				String msg10 = message;

				// 調査用にbusLogに出力する
				StringBuffer buslog = new StringBuffer(msg1 + msg2 + msg3 + msg4 + msg5 + msg6 + msg7 + msg8 + msg9 + msg10);
				JSYejbLog.println(JSYLogBase.EXECUTION, this.getClass(), buslog.toString());

				// エラーレベルに"400"警告を設定する
				setErrLevelWar(param);

			}
		}
	}

	/**
	 * 単項目関連チェック処理の呼出を行います。
	 * 
	 * @param ccMsg
	 */
	private void executeKnrnChk(HashMap<String, Object> ccParam)
	{
		// ルーティング番号 関連必須あり
		knrnItemChk(ccParam, REQUEST_NW_ROUTING_NO, HISSU_CHECK_KNRN_HISSU, REQUEST_YOKYU_SBT_CD);
		// サービス区分 関連必須あり
		knrnItemChk(ccParam, REQUEST_SVC_DIV, HISSU_CHECK_KNRN_HISSU, REQUEST_YOKYU_SBT_CD);
		// ドメイン 関連必須あり
		knrnItemChk(ccParam, REQUEST_DOMAIN, HISSU_CHECK_KNRN_HISSU, REQUEST_YOKYU_SBT_CD);
	}

	/**
	 * 単項目関連チェックを行います。
	 * 
	 * @param ccMsg
	 * @param key 対象項目
	 * @param hissuCheckKbn 0：任意項目 1：必須項目 2：関連必須項目
	 * @param domainCheckKbn 関連キー項目
	 * @return
	 */
	private void knrnItemChk(HashMap<String, Object> ccMsg, String key, String hissuCheckKbn, String knrnKey)
	{
		// チェック対象の値を取得
		String value = (String) ccMsg.get(key);
		// 関連チェック対象の値を取得
		String keyValue = (String) ccMsg.get(knrnKey);

		// 必須チェック・値の存在チェック
		if (JCHStringUtil.isNullBlank(value))
		{
			if (HISSU_CHECK_KNRN_HISSU.equals(hissuCheckKbn) && ENUMYOKYUSBTCD_02.equals(keyValue))
			{
				// 必須チェック（関連キーの対象項目値の場合、必須チェックエラー）
				ccMsg.put(key.concat(PREFIX_ERR_ITEM), TMCK_ERR_E1);

				ERR_SET_FLG = "1";
				return;
			}
			else
			{
				// 任意項目の場合は後続の処理を行わない。
				return;
			}
		}
	}

	/**
	 * エラーレベルに"400"警告を設定します。
	 * 
	 * @param param
	 */
	private void setErrLevelWar(IRequestParameterReadWrite param)
	{
		// ステータスエリア編集
		StatusArea sa = param.getStatusArea();

		// エラーレベル
		ErrorLevel errorLevel = ErrorLevel.EL400;
		StatusInfo si = new StatusInfo(errorLevel, OUTBREAK_AREA.CC);
		sa.setCurrent(si);

	}

	/**
	 * パラメータゲット処理<br>
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @throws Throwable 
	 * @exception Exceptionがスローされます。
	 */
	private void parametersGet(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		JSCSV002801MapperCC JSCSV002801Mapper = new JSCSV002801MapperCC();

		// ■業務パラメータ管理一意照会_ドメインを実施
		HashMap<String, Object> inMapEZM0321A010_domain = JSCSV002801Mapper.editInMsgEZM0321A010(param, WORK_PARAM_ID_SC_ENUMSOD_DOMAIN);
		CAANMsg outMapEZM0321A010_domain = callSvcInter(handle, param, inMapEZM0321A010_domain, fixedText);
		// ＥＮＵＭ−ＳＯＤ・ドメイン を設定する
		SC_ENUMSOD_DOMAIN = getRsltMsgListValue(outMapEZM0321A010_domain, EZM0321A010CBSMsg.EZM0321A010CBSMSG1LIST, EZM0321A010CBSMsg1List.WORK_PARAM_SETTE_VALUE);

		// ■業務パラメータ管理一意照会_サービス区分（法人０ＡＢＪ）を実施
		HashMap<String, Object> inMapEZM0321A010_skbn_hjn = JSCSV002801Mapper.editInMsgEZM0321A010(param, WORK_PARAM_ID_SC_ENUMSOD_SKBN_HJN);
		CAANMsg outMapEZM0321A010_skbn_hjn = callSvcInter(handle, param, inMapEZM0321A010_skbn_hjn, fixedText);
		// ＥＮＵＭ−ＳＯＤ・サービス区分（法人０ＡＢＪ） を設定する
		SC_ENUMSOD_SKBN_HJN = getRsltMsgListValue(outMapEZM0321A010_skbn_hjn, EZM0321A010CBSMsg.EZM0321A010CBSMSG1LIST, EZM0321A010CBSMsg1List.WORK_PARAM_SETTE_VALUE);

		// ■業務パラメータ管理一意照会_サービス区分（他事業者）を実施
		HashMap<String, Object> inMapEZM0321A010_skbn_tjs = JSCSV002801Mapper.editInMsgEZM0321A010(param, WORK_PARAM_ID_SC_ENUMSOD_SKBN_TJS);
		CAANMsg outMapEZM0321A010_skbn_tjs = callSvcInter(handle, param, inMapEZM0321A010_skbn_tjs, fixedText);
		// ＥＮＵＭ−ＳＯＤ・サービス区分（他事業者） を設定する
		SC_ENUMSOD_SKBN_TJS = getRsltMsgListValue(outMapEZM0321A010_skbn_tjs, EZM0321A010CBSMsg.EZM0321A010CBSMSG1LIST, EZM0321A010CBSMsg1List.WORK_PARAM_SETTE_VALUE);

		// ■通信事業者一覧照会_自社他社フラグ1:自社 を実施
		HashMap<String, Object> inMapETU0051B010 = JSCSV002801Mapper.editInMsgETU0051B010(param);
		CAANMsg outMapETU0051B010 = callSvcInter(handle, param, inMapETU0051B010, fixedText);
		// 自社事業者コードを設定
		JISHA_TSJGS_CD = getRsltMsgListValue(outMapETU0051B010, ETU0051B010CBSMsg.ETU0051B010CBSMSG1LIST, ETU0051B010CBSMsg1List.TSJGS_CD);
	}

	/**
	 * 電話番号_存在チェック<br>
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @throws Throwable 
	 * @exception Exceptionがスローされます。
	 */
	private CAANMsg telNoIfChk(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String telno) throws Throwable
	{
		JSCSV002801MapperCC JSCSV002801Mapper = new JSCSV002801MapperCC();

		// ■電話番号一意照会を実施
		HashMap<String, Object> inMapEZM0121A010 = JSCSV002801Mapper.editInMsgEZM0121A010(param, telno);
		CAANMsg outMapEZM0121A010 = callSvcInter(handle, param, inMapEZM0121A010, fixedText);
		CAANMsg[] rsltEZM0121A010List = outMapEZM0121A010.getCAANMsgList(EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST);

		// 電話番号一意照会にて取得出来ない場合、電話番号存在チェックエラー
		if (rsltEZM0121A010List == null || rsltEZM0121A010List.length == 0)
		{
			HashMap<String, String> ccMsg = (HashMap<String, String>) param.getData(fixedText);
			// 電話番号存在チェックエラーのエラーコードを設定
			ccMsg.put(REQUEST_TELNO.concat(PREFIX_ERR_ITEM), TMCK_ERR_EA);
			knrnChkErr(param, fixedText, REQUEST_TELNO.concat(PREFIX_ERR_ITEM));
			ERR_SET_FLG = "1";
		}
		return outMapEZM0121A010;
	}

	/**
	 * 番ポ工事情報_整合性チェック<br>
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @throws Throwable 
	 * @exception Exceptionがスローされます。
	 */
	private CAANMsg bmpKojiIfChk(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String telno, String req_bmp_koji_no) throws Throwable
	{
		JSCSV002801MapperCC JSCSV002801Mapper = new JSCSV002801MapperCC();
		HashMap<String, String> ccMsg = (HashMap<String, String>) param.getData(fixedText);

		// リクエスト：番ポ工事番号有 の場合、下記を処理する
		// ■番ポ工事一覧照会(ＮＴＴ契約電話回線番号)を実施
		HashMap<String, Object> inMapETU0011B040 = JSCSV002801Mapper.editInMsgETU0011B040(param, telno);
		CAANMsg outMapETU0011B040 = callSvcInter(handle, param, inMapETU0011B040, fixedText);
		CAANMsg[] rsltETU0011B040List = outMapETU0011B040.getCAANMsgList(ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST);
		// 番ポ工事一覧照会にて取得出来ない場合、番ポ工事番号整合性チェックエラー
		if (rsltETU0011B040List == null || rsltETU0011B040List.length == 0)
		{
			// 番ポ工事番号整合性チェックエラーのエラーコードを設定
			ccMsg.put(REQUEST_BMP_KOJI_NO.concat(PREFIX_ERR_ITEM), TMCK_ERR_EB);
			knrnChkErr(param, fixedText, REQUEST_BMP_KOJI_NO.concat(PREFIX_ERR_ITEM));
			ERR_SET_FLG = "1";
		}
		else
		{
			// 判定の際は、レコード1行目のみ使用する。
			String bmp_koji_no = getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.BMP_KOJI_NO);

			if (!req_bmp_koji_no.equals(bmp_koji_no))
			{
				// リクエストの番ポ工事番号と最新の番ポ工事情報が一致しない場合、番ポ工事番号整合性チェックエラー
				// 番ポ工事番号整合性チェックエラーのエラーコードを設定
				ccMsg.put(REQUEST_BMP_KOJI_NO.concat(PREFIX_ERR_ITEM), TMCK_ERR_EB);
				knrnChkErr(param, fixedText, REQUEST_BMP_KOJI_NO.concat(PREFIX_ERR_ITEM));
				ERR_SET_FLG = "1";
			}
		}
		return outMapETU0011B040;
	}
	
	/**
	 * ポートアウト受付情報_整合性チェック<br>
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @throws Throwable 
	 * @exception Exceptionがスローされます。
	 */
	private CAANMsg portOutUkIfChk(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String telno, String req_port_out_no) throws Throwable
	{
		JSCSV002801MapperCC JSCSV002801Mapper = new JSCSV002801MapperCC();
		HashMap<String, String> ccMsg = (HashMap<String, String>) param.getData(fixedText);

		// ■ポートアウト受付情報一覧照会（電話番号）を実施
		HashMap<String, Object> inMapETU0151B040 = JSCSV002801Mapper.editInMsgETU0151B040(param, telno);
		CAANMsg outMapETU0151B040 = callSvcInter(handle, param, inMapETU0151B040, fixedText);

		CAANMsg[] rsltETU0151B040List = outMapETU0151B040.getCAANMsgList(ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST);
		// ポートアウト受付情報一覧照会（電話番号）にて取得出来ない場合、ポートアウト番号整合性チェックエラー
		if (rsltETU0151B040List == null || rsltETU0151B040List.length == 0)
		{
			// ポートアウト番号整合性チェックエラーのエラーコードを設定
			ccMsg.put(REQUEST_PORT_OUT_NO.concat(PREFIX_ERR_ITEM), TMCK_ERR_EC);
			knrnChkErr(param, fixedText, REQUEST_PORT_OUT_NO.concat(PREFIX_ERR_ITEM));
			ERR_SET_FLG = "1";
		}
		else
		{
			// 判定の際は、レコード1行目のみ使用する。
			String port_out_no = getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PORT_OUT_NO);
			String port_out_stat = getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PORT_OUT_STAT);
			String tk_kh = getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.TK_KH);
			String odkh_judge_tk_kh = getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.ODKH_JUDGE_TK_KH);
			String cancel_skbt = getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.CANCEL_SKBT);
			String cl_skbt = getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.CL_SKBT);

			if (!req_port_out_no.equals(port_out_no)
					|| !(
						(PORT_OUT_STAT_030.equals(port_out_stat) || PORT_OUT_STAT_050.equals(port_out_stat))
						&& KAHI_KA.equals(tk_kh)
						&& (JKKStringUtil.isNullBlank(odkh_judge_tk_kh) || KAHI_KA.equals(odkh_judge_tk_kh))
						&& UM_M.equals(cancel_skbt)
						&& UM_M.equals(cl_skbt))
					)
			{
				// リクエストのポートアウト番号と最新のポートアウト番号が一致しない、
				// または、下記に一致しない
				// 「ポートアウトステータス」が"030"(CSV出力済)、又は"050"(工事完了)
				// 「提供可否」が"1"(可)
				// 「オーダ可否判定提供可否」がNULLor空、又は"1"(可)
				// 「キャンセル識別」が"0"(キャンセルでない)
				// 「取消識別」が"0"(取消でない)
				// 上記の場合、ポートアウト番号整合性チェックエラー
				// ポートアウト番号整合性チェックエラーのエラーコードを設定
				ccMsg.put(REQUEST_PORT_OUT_NO.concat(PREFIX_ERR_ITEM), TMCK_ERR_EC);
				knrnChkErr(param, fixedText, REQUEST_PORT_OUT_NO.concat(PREFIX_ERR_ITEM));
				ERR_SET_FLG = "1";
			}
		}
		return outMapETU0151B040;
	}

	/**
	 * 番ポ処理パターン判定<br>
	 * <br>
	 * @param ccParam リクエストパラメータマップ
	 * @param outMapEZM0121A010 電話番号一意照会
	 * @param outMapETU0011B040 番ポ工事一覧照会(ＮＴＴ契約電話回線番号)
	 * @param outMapETU0151B040 ポートアウト受付情報一覧照会(電話番号)
	 * @throws Throwable 
	 * @exception Exceptionがスローされます。
	 */
	private String bmpProcessPattern(IRequestParameterReadWrite param, String fixedText, Map<String, Object> ccParam, CAANMsg outMapEZM0121A010, CAANMsg outMapETU0011B040, CAANMsg outMapETU0151B040) throws Throwable
	{
		HashMap<String, String> ccMsg = (HashMap<String, String>) param.getData(fixedText);

		// 番ポ処理パターンフラグ
		String bmpProcessPattern_Flg = BMP_PROCESS_PATTERN_99;

		// リクエスト要求種別コードを設定
		String reqEnumYokyuSbtCd = JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_YOKYU_SBT_CD));
		// リクエストサービス区分を設定
		String reqSvcDiv = JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_DIV));
		// リクエストドメインを設定
		String reqDomain = JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_DOMAIN));

		// ★電話番号情報設定
		// 番号取得事業者コードを設定
		String tln_stku_tsjgs_cd = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.TLN_STKU_TSJGS_CD);
		// 初期個人法人番号帯コードを設定
		String shk_kojin_hojin_tln_tai_cd = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.SHK_KOJIN_HOJIN_TLN_TAI_CD);
		// 個人法人番号帯コードを設定
		String kojin_hojin_tln_tai_cd = getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.KOJIN_HOJIN_TLN_TAI_CD);

		// ★番ポ工事情報設定
		// 注文種類を設定
		String chumn_kind_BMP = "";
// ANK-4494-16-00 DEL START
//		// 番ポ工事ステータスを設定
//		String stat_BMP = "";
// ANK-4494-16-00 DEL END
		if (UM_U.equals(REQUEST_BMP_KOJI_NO_UM))
		{
			chumn_kind_BMP = getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.CHUMN_KIND);
// ANK-4494-16-00 DEL START
//			stat_BMP = getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.BMP_KOJI_STAT);
// ANK-4494-16-00 DEL END
		}
		
		// ★ポートアウト受付情報設定
		// 注文種類を設定
		String chumn_kind_PORT = "";
		// ポートアウトステータスを設定
		String stat_PORT = "";
		if (UM_U.equals(REQUEST_PORT_OUT_NO_UM))
		{
			chumn_kind_PORT = getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.CHUMN_KIND);
			stat_PORT = getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PORT_OUT_STAT);
		}
		
		// ★番ポ処理パターン判定
		if (ENUMYOKYUSBTCD_02.equals(reqEnumYokyuSbtCd) 
				&& SC_ENUMSOD_SKBN_HJN.equals(reqSvcDiv) 
				&& SC_ENUMSOD_DOMAIN.equals(reqDomain)
				&& UM_U.equals(REQUEST_BMP_KOJI_NO_UM)
				&& UM_M.equals(REQUEST_PORT_OUT_NO_UM))
		{
			// ENUM要求種別コード:02(新規)
			// サービス区分:ＥＮＵＭ−ＳＯＤ・サービス区分（法人０ＡＢＪ）:SC_ENUMSOD_SKBN_HJN
			// ドメイン:ＥＮＵＭ−ＳＯＤ・ドメイン:SC_ENUMSOD_DOMAIN
			// 番ポ工事番号:設定あり
			// ポートアウト番号:未設定

			// ★No1:ポートイン切替 判定
			if(!JISHA_TSJGS_CD.equals(tln_stku_tsjgs_cd)
				&& KOJIN_HOJIN_TLN_TAI_CD_2.equals(kojin_hojin_tln_tai_cd)
				&& !JKKStringUtil.isNullBlank(chumn_kind_BMP) && !CHUMN_KIND_4.equals(chumn_kind_BMP)
// ANK-4494-16-00 DEL START
//				&& BMP_KOJI_STAT_031.equals(stat_BMP)
// ANK-4494-16-00 DEL END
			)
			{
				// 番号取得事業者コードが自社事業者コードではない
				// 個人法人番号帯コードが2(法人)
				// 注文種類がnullor空ではなく4(番ポ廃止)以外
				// ★No1:ポートイン切替 フラグを設定
				bmpProcessPattern_Flg = BMP_PROCESS_PATTERN_01;
			}
		}
		else if (ENUMYOKYUSBTCD_02.equals(reqEnumYokyuSbtCd) 
				&& SC_ENUMSOD_SKBN_HJN.equals(reqSvcDiv) 
				&& SC_ENUMSOD_DOMAIN.equals(reqDomain)
				&& UM_M.equals(REQUEST_BMP_KOJI_NO_UM)
				&& UM_M.equals(REQUEST_PORT_OUT_NO_UM))
		{
			// ENUM要求種別コード:02(新規)
			// サービス区分:ＥＮＵＭ−ＳＯＤ・サービス区分（法人０ＡＢＪ）:SC_ENUMSOD_SKBN_HJN
			// ドメイン:ＥＮＵＭ−ＳＯＤ・ドメイン:SC_ENUMSOD_DOMAIN
			// 番ポ工事番号:未設定
			// ポートアウト番号:未設定

			// ★No9:網内番ポ(ＯＰＴ電話番号)(登録) 判定
			// ★No11:網内番ポ(他社電話番号)(登録) 判定
			if(JISHA_TSJGS_CD.equals(tln_stku_tsjgs_cd)
				&& KOJIN_HOJIN_TLN_TAI_CD_1.equals(shk_kojin_hojin_tln_tai_cd))
			{
				// 番号取得事業者コードが自社事業者コード
				// 初期個人法人番号帯コードが1(個人)
				// ★No9:網内番ポ(ＯＰＴ電話番号)(登録) フラグを設定
				bmpProcessPattern_Flg = BMP_PROCESS_PATTERN_09;
			}
			else if(!JISHA_TSJGS_CD.equals(tln_stku_tsjgs_cd)
				&& KOJIN_HOJIN_TLN_TAI_CD_1.equals(shk_kojin_hojin_tln_tai_cd))
			{
				// 番号取得事業者コードが自社事業者コードではない
				// 初期個人法人番号帯コードが1(個人)
				// ★No11:網内番ポ(他社電話番号)(登録) フラグを設定
				bmpProcessPattern_Flg = BMP_PROCESS_PATTERN_11;
			}
		}
		else if (ENUMYOKYUSBTCD_02.equals(reqEnumYokyuSbtCd) 
				&& SC_ENUMSOD_SKBN_TJS.equals(reqSvcDiv) 
				&& !SC_ENUMSOD_DOMAIN.equals(reqDomain)
				&& UM_U.equals(REQUEST_BMP_KOJI_NO_UM)
				&& UM_M.equals(REQUEST_PORT_OUT_NO_UM))
		{
			// ENUM要求種別コード:02(新規)
			// サービス区分:ＥＮＵＭ−ＳＯＤ・サービス区分（他事業者） :SC_ENUMSOD_SKBN_TJS
			// ドメイン:ＥＮＵＭ−ＳＯＤ・ドメイン:SC_ENUMSOD_DOMAIN 以外
			// 番ポ工事番号:設定あり
			// ポートアウト番号:未設定

			// ★No8:番号取得事業者戻り切替・取消 判定
			if(JISHA_TSJGS_CD.equals(tln_stku_tsjgs_cd)
					&& CHUMN_KIND_2.equals(chumn_kind_BMP)
// ANK-4494-16-00 DEL START
//					&& BMP_KOJI_STAT_031.equals(stat_BMP)
// ANK-4494-16-00 DEL END
			)
				{
					// 番号取得事業者コードが自社事業者コード
					// 注文種類が2(番ポ戻り)
					// ★No8:番号取得事業者戻り切替・取消 フラグを設定
					bmpProcessPattern_Flg = BMP_PROCESS_PATTERN_08;
				}
		}
		else if (ENUMYOKYUSBTCD_02.equals(reqEnumYokyuSbtCd) 
				&& SC_ENUMSOD_SKBN_TJS.equals(reqSvcDiv) 
				&& !SC_ENUMSOD_DOMAIN.equals(reqDomain)
				&& UM_M.equals(REQUEST_BMP_KOJI_NO_UM)
				&& UM_U.equals(REQUEST_PORT_OUT_NO_UM))
		{
			// ENUM要求種別コード:02(新規)
			// サービス区分:ＥＮＵＭ−ＳＯＤ・サービス区分（他事業者） :SC_ENUMSOD_SKBN_TJS
			// ドメイン:ＥＮＵＭ−ＳＯＤ・ドメイン:SC_ENUMSOD_DOMAIN 以外
			// 番ポ工事番号:未設定
			// ポートアウト番号:設定あり

			// ★No2:ポートアウト切替 判定
			if(JISHA_TSJGS_CD.equals(tln_stku_tsjgs_cd)
					&& !JKKStringUtil.isNullBlank(chumn_kind_PORT) && !CHUMN_KIND_4.equals(chumn_kind_PORT)
					&& PORT_OUT_STAT_030.equals(stat_PORT))
				{
					// 番号取得事業者コードが自社事業者コード
					// 注文種類がnullor空ではなく4(番ポ廃止)以外
					// ポートアウトステータスが030:(CSV出力済)
					// ★No2:ポートアウト切替 フラグを設定
					bmpProcessPattern_Flg = BMP_PROCESS_PATTERN_02;
				}
		}
		else if (ENUMYOKYUSBTCD_08.equals(reqEnumYokyuSbtCd) 
				&& UM_M.equals(REQUEST_BMP_KOJI_NO_UM)
				&& UM_M.equals(REQUEST_PORT_OUT_NO_UM))
		{
			// ENUM要求種別コード:08(消去)
			// 番ポ工事番号:未設定
			// ポートアウト番号:未設定

			// ★No10:網内番ポ(ＯＰＴ電話番号)(消去) 判定
			// ★No12:網内番ポ(他社電話番号)(消去) 判定

			if(JISHA_TSJGS_CD.equals(tln_stku_tsjgs_cd)
				&& KOJIN_HOJIN_TLN_TAI_CD_1.equals(shk_kojin_hojin_tln_tai_cd))
			{
				// 番号取得事業者コードが自社事業者コード
				// 初期個人法人番号帯コードが1(個人)
				// ★No10:網内番ポ(ＯＰＴ電話番号)(消去) フラグを設定
				bmpProcessPattern_Flg = BMP_PROCESS_PATTERN_10;
			}
			else if(!JISHA_TSJGS_CD.equals(tln_stku_tsjgs_cd)
				&& KOJIN_HOJIN_TLN_TAI_CD_1.equals(shk_kojin_hojin_tln_tai_cd))
			{
				// 番号取得事業者コードが自社事業者コードではない
				// 初期個人法人番号帯コードが1(個人)
				// ★No12:網内番ポ(他社電話番号)(消去) フラグを設定
				bmpProcessPattern_Flg = BMP_PROCESS_PATTERN_12;
			}
		}
		else if (ENUMYOKYUSBTCD_08.equals(reqEnumYokyuSbtCd) 
				&& UM_U.equals(REQUEST_BMP_KOJI_NO_UM)
				&& UM_M.equals(REQUEST_PORT_OUT_NO_UM))
		{
			// ENUM要求種別コード:08(消去)
			// 番ポ工事番号:設定あり
			// ポートアウト番号:未設定
			
			// ★No4:番号取得事業者戻り切替 判定
			// ★No5:番ポ廃止(ＯＰＴ受付)切替 判定
			// ★No6:ポートイン切替・取消 判定
			if(JISHA_TSJGS_CD.equals(tln_stku_tsjgs_cd)
					&& CHUMN_KIND_2.equals(chumn_kind_BMP)
// ANK-4494-16-00 DEL START
//					&& BMP_KOJI_STAT_031.equals(stat_BMP)
// ANK-4494-16-00 DEL END
			)
				{
					// 番号取得事業者コードが自社事業者コード
					// 注文種類が2(番ポ戻り)
					// ★No4:番号取得事業者戻り切替 フラグを設定
					bmpProcessPattern_Flg = BMP_PROCESS_PATTERN_04;
				}
			else if(!JISHA_TSJGS_CD.equals(tln_stku_tsjgs_cd)
					&& KOJIN_HOJIN_TLN_TAI_CD_2.equals(kojin_hojin_tln_tai_cd)
					&& CHUMN_KIND_4.equals(chumn_kind_BMP)
// ANK-4494-16-00 DEL START
//					&& BMP_KOJI_STAT_031.equals(stat_BMP)
// ANK-4494-16-00 DEL END
			)
				{
					// 番号取得事業者コードが自社事業者コードではない
					// 個人法人番号帯コードが2(法人)
					// 注文種類が4(番ポ廃止)
					// ★No5:番ポ廃止(ＯＰＴ受付)切替 フラグを設定
					bmpProcessPattern_Flg = BMP_PROCESS_PATTERN_05;
				}
			else if(!JISHA_TSJGS_CD.equals(tln_stku_tsjgs_cd)
					&& KOJIN_HOJIN_TLN_TAI_CD_2.equals(kojin_hojin_tln_tai_cd)
					&& !JKKStringUtil.isNullBlank(chumn_kind_BMP) && !CHUMN_KIND_4.equals(chumn_kind_BMP)
// ANK-4494-16-00 DEL START
//					&& BMP_KOJI_STAT_031.equals(stat_BMP)
// ANK-4494-16-00 DEL END
					)
				{
					// 番号取得事業者コードが自社事業者コードではない
					// 個人法人番号帯コードが2(法人)
					// 注文種類がnullor空ではなく4(番ポ廃止)以外
					// ★No6:ポートイン切替・取消 フラグを設定
					bmpProcessPattern_Flg = BMP_PROCESS_PATTERN_06;
				}
		}
		else if (ENUMYOKYUSBTCD_08.equals(reqEnumYokyuSbtCd) 
				&& UM_M.equals(REQUEST_BMP_KOJI_NO_UM)
				&& UM_U.equals(REQUEST_PORT_OUT_NO_UM))
		{
			// ENUM要求種別コード:08(消去)
			// 番ポ工事番号:未設定
			// ポートアウト番号:設定あり
			
			// ★No3:事業者間移転(他社電話番号)切替 判定
			// ★No7:ポートアウト切替・取消 判定
			if(!JISHA_TSJGS_CD.equals(tln_stku_tsjgs_cd)
					&& KOJIN_HOJIN_TLN_TAI_CD_2.equals(kojin_hojin_tln_tai_cd)
					&& !JKKStringUtil.isNullBlank(chumn_kind_PORT) && !CHUMN_KIND_4.equals(chumn_kind_PORT)
					&& PORT_OUT_STAT_030.equals(stat_PORT))
				{
					// 番号取得事業者コードが自社事業者コードではない
					// 個人法人番号帯コードが2(法人)
					// 注文種類がnullor空ではなく4(番ポ廃止)以外
					// ポートアウトステータスが030(CSV出力済)
					// ★No3:事業者間移転(他社電話番号)切替 フラグを設定
					bmpProcessPattern_Flg = BMP_PROCESS_PATTERN_03;
				}
			else if(JISHA_TSJGS_CD.equals(tln_stku_tsjgs_cd)
					&& !JKKStringUtil.isNullBlank(chumn_kind_PORT) && !CHUMN_KIND_4.equals(chumn_kind_PORT)
					&& PORT_OUT_STAT_050.equals(stat_PORT))
				{
					// 番号取得事業者コードが自社事業者コード
					// 注文種類がnullor空ではなく4(番ポ廃止)以外
					// ポートアウトステータスが050(工事完了)
					// ★No7:ポートアウト切替・取消 フラグを設定
					bmpProcessPattern_Flg = BMP_PROCESS_PATTERN_07;
				}
		}

		if (BMP_PROCESS_PATTERN_99.equals(bmpProcessPattern_Flg))
		{
			// 番ポ判定処理にて各パターンに該当しない場合、番ポ処理パターンチェックエラー
			ccMsg.put(REQUEST_TELNO.concat(PREFIX_ERR_ITEM), TMCK_ERR_ED);
			knrnChkErr(param, fixedText, REQUEST_TELNO.concat(PREFIX_ERR_ITEM));
			ERR_SET_FLG = "1";
		}
		return bmpProcessPattern_Flg;
	}
	
	/**
	 * 関連チェックエラー処理を行います。
	 * @param ccMsg 
	 * @throws SCCallException 
	 * @throws RequestParameterException 
	 */
	@SuppressWarnings("unchecked")
	private void knrnChkErr(IRequestParameterReadWrite param, String fixedText,String str) throws SCCallException, RequestParameterException 
	{
		HashMap<String, String> ccMsg = null;

		// ユーザデータ情報
		ccMsg = (HashMap<String, String>) param.getData(fixedText);
		// BPにサービスコンポーネントのステータスを設定する。
		String formatStatus = String.format("%1$04d", 1100);

		String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);

		param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);

		param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);

		String msg1 = SCIFE047;
		String msg2 = ", status = ";
		String msg3 = formatStatus;
		String msg4 = ", ";
		String msg5 = str;
		String msg6 = " = ";
		String msg7 = JKKStringUtil.nullToBlank((String) ccMsg.get(str));
		String msg8 = ", ";
		String msg9 = "returnMessage = ";
		String msg10 = message;

		// 調査用にbusLogに出力する
		StringBuffer buslog = new StringBuffer(msg1 + msg2 + msg3 + msg4 + msg5 + msg6 + msg7 + msg8 + msg9 + msg10);
		JSYejbLog.println(JSYLogBase.EXECUTION, this.getClass(), buslog.toString());

		// エラーレベルに"400"警告を設定する
		setErrLevelWar(param);
	}

	
	/**
	 * パターン1:ポートイン切替処理 <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param funcCd 業務コード
	 * @param ccParam パラメータMAP
	 * @param outMapEZM0121A010 電話番号一意照会
	 * @param outMapETU0011B040 番ポ工事情報一覧照会
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	private IRequestParameterReadWrite portIn_Switch(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, ILogger logger, Map<String, Object> ccParam, CAANMsg outMapEZM0121A010, CAANMsg outMapETU0011B040) throws Throwable
	{
		// ★ENUM登録SOD★
		callESC0051D010(handle, param, logger, ccParam);

		Map<Object, Object> inZM0541D010Map = new HashMap<Object, Object>();

		// ★--ENUM切替履歴登録処理用のMAPを設定する--★
		// 電話番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.TELNO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_TELNO)));
		// サービス契約番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.SVC_KEI_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_KEI_NO)));
		// 要求種別コード
		inZM0541D010Map.put(EZM0541D010CBSMsg.YOKYU_SBT_CD, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_YOKYU_SBT_CD)));
		// ネットワークルーティング番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.NW_ROUTING_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_NW_ROUTING_NO)));
		// サービス区分
		inZM0541D010Map.put(EZM0541D010CBSMsg.SVC_DIV, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_DIV)));
		// ドメイン
		inZM0541D010Map.put(EZM0541D010CBSMsg.DOMAIN, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_DOMAIN)));
		// 個人法人電話番号帯コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、電話番号を更新しないのでそのまま)
		inZM0541D010Map.put(EZM0541D010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.KOJIN_HOJIN_TLN_TAI_CD));
		// 移転元通信事業者コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、電話番号を更新しないのでそのまま)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNM_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNM_TSJGS_CD));
		// 移転先通信事業者コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、電話番号を更新しないのでそのまま)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNS_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNS_TSJGS_CD));
		// 番ポ工事番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.BMP_KOJI_NO, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.BMP_KOJI_NO));
		// ポートアウト番号 は設定しない
		// 注文種類(番ポ)
		inZM0541D010Map.put(EZM0541D010CBSMsg.CHUMN_KIND, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.CHUMN_KIND));

		// ★ENUM切替履歴登録★
		callEZM0541D010(handle, param, fixedText, "1", inZM0541D010Map);

		// ★本処理パターンは、電話番号の更新削除を行わない★

		Map<Object, Object> inETU0011C070Map = new HashMap<Object, Object>();
		// ★--番ポ工事_ 切替SOD発行年月日時分秒更新処理用のMAPを設定する--★
		// 番ポ工事番号
		inETU0011C070Map.put(ETU0011C070CBSMsg.BMP_KOJI_NO, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.BMP_KOJI_NO));
		// 世代登録年月日時分秒
		inETU0011C070Map.put(ETU0011C070CBSMsg.GENE_ADD_DTM, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.GENE_ADD_DTM));
		// 更新前更新年月日時分秒
		inETU0011C070Map.put(ETU0011C070CBSMsg.UPD_DTM_BF, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.UPD_DTM));
		// 切替SOD発行年月日時分秒 オンライン運用日時+システム日時
		inETU0011C070Map.put(ETU0011C070CBSMsg.SWITCH_SOD_HAKKO_DTM, JCCBPCommon.getOnlineOpeDateTimeStamp(null));

		// ★番ポ工事 切替SOD発行年月日時分秒 更新★
		callETU0011C070(handle, param, fixedText, "1", inETU0011C070Map);
		
		return param;
	}
	
	/**
	 * パターン2:ポートアウト切替処理 <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param funcCd 業務コード
	 * @param ccParam パラメータMAP
	 * @param outMapEZM0121A010 電話番号一意照会
	 * @param outMapETU0151B040 ポートアウト受付情報照会
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	private IRequestParameterReadWrite portOut_Switch(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, ILogger logger, Map<String, Object> ccParam, CAANMsg outMapEZM0121A010, CAANMsg outMapETU0151B040) throws Throwable
	{
		// ★ENUM登録SOD★
		callESC0051D010(handle, param, logger, ccParam);

		Map<Object, Object> inZM0541D010Map = new HashMap<Object, Object>();

		// ★--ENUM切替履歴登録処理用のMAPを設定する--★
		// 電話番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.TELNO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_TELNO)));
		// サービス契約番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.SVC_KEI_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_KEI_NO)));
		// 要求種別コード
		inZM0541D010Map.put(EZM0541D010CBSMsg.YOKYU_SBT_CD, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_YOKYU_SBT_CD)));
		// ネットワークルーティング番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.NW_ROUTING_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_NW_ROUTING_NO)));
		// サービス区分
		inZM0541D010Map.put(EZM0541D010CBSMsg.SVC_DIV, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_DIV)));
		// ドメイン
		inZM0541D010Map.put(EZM0541D010CBSMsg.DOMAIN, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_DOMAIN)));
		// 個人法人電話番号帯コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、個人法人電話番号帯コードを更新しないのでそのまま)
		inZM0541D010Map.put(EZM0541D010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.KOJIN_HOJIN_TLN_TAI_CD));
		// 移転元通信事業者コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、更新後の内容を設定)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNM_TSJGS_CD, JISHA_TSJGS_CD);
		// 移転先通信事業者コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、更新後の内容を設定)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNS_TSJGS_CD, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.ITENS_JIGYOSHA_NO));
		// 番ポ工事番号 は設定しない
		// ポートアウト番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.PORT_OUT_NO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PORT_OUT_NO));
		// 注文種類(番ポ)
		inZM0541D010Map.put(EZM0541D010CBSMsg.CHUMN_KIND, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.CHUMN_KIND));

		// ★ENUM切替履歴登録★
		callEZM0541D010(handle, param, fixedText, "1", inZM0541D010Map);

		Map<Object, Object> inEZM0121C010Map = new HashMap<Object, Object>();
		// ★--電話番号更新処理用のMAPを設定する--★

		// 共通の項目設定を行う。
		inEZM0121C010Map = settingEZM0121C010(inEZM0121C010Map, outMapEZM0121A010);

		// 個人法人番号帯コード(電話番号_個人法人番号帯コード)(本パターンの処理は、個人法人電話番号帯コードを更新しないのでそのまま)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.KOJIN_HOJIN_TLN_TAI_CD));
		// 移転元事業者コード(自社事業者コードを設定)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.ITNM_TSJGS_CD, JISHA_TSJGS_CD);
		// 移転先事業者コード(ポートアウト受付情報_移転先事業者番号)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.ITNS_TSJGS_CD, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.ITENS_JIGYOSHA_NO));

		// ★電話番号 更新★
		callEZM0121C010(handle, param, fixedText, "1", inEZM0121C010Map);

		Map<Object, Object> inETU0151C010Map = new HashMap<Object, Object>();
		// ★--ポートアウト受付情報更新処理用のMAPを設定する--★

		// 共通の項目設定を行う。
		inETU0151C010Map = settingETU0151C010(inETU0151C010Map, outMapETU0151B040);

		// ポートアウトステータス
		inETU0151C010Map.put(ETU0151C010CBSMsg.PORT_OUT_STAT, PORT_OUT_STAT_050);
		// 切替SOD発行年月日時分秒 オンライン運用日時+システム日時
		inETU0151C010Map.put(ETU0151C010CBSMsg.SWITCH_SOD_HAKKO_DTM, JCCBPCommon.getOnlineOpeDateTimeStamp(null));

		// ★ポートアウト情報 更新★
		callETU0151C010(handle, param, fixedText, "1", inETU0151C010Map);

		return param;
	}
	
	/**
	 * パターン3:事業者間移転(他社電話番号)切替 <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param funcCd 業務コード
	 * @param ccParam パラメータMAP
	 * @param outMapEZM0121A010 電話番号一意照会
	 * @param outMapETU0151B040 ポートアウト受付情報一覧照会
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	private IRequestParameterReadWrite interCompany_OtherTelno_Switch(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, ILogger logger, Map<String, Object> ccParam, CAANMsg outMapEZM0121A010, CAANMsg outMapETU0151B040) throws Throwable
	{
		// ★ENUM消去SOD★
		callESC0051D010(handle, param, logger, ccParam);

		Map<Object, Object> inZM0541D010Map = new HashMap<Object, Object>();

		// ★--ENUM切替履歴登録処理用のMAPを設定する--★
		// 電話番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.TELNO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_TELNO)));
		// サービス契約番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.SVC_KEI_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_KEI_NO)));
		// 要求種別コード
		inZM0541D010Map.put(EZM0541D010CBSMsg.YOKYU_SBT_CD, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_YOKYU_SBT_CD)));
		// ネットワークルーティング番号 設定しない
		// サービス区分 設定しない
		// ドメイン 設定しない
		// 個人法人電話番号帯コード
		inZM0541D010Map.put(EZM0541D010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.KOJIN_HOJIN_TLN_TAI_CD));
		// 移転元通信事業者コード(電話番号削除 かつ リクエストのポートアウト番号設定されているため、自社事業者コード)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNM_TSJGS_CD, JISHA_TSJGS_CD);
		// 移転先通信事業者コード(電話番号削除 かつ リクエストのポートアウト番号設定されているため、ポートアウト受付情報．移転先事業者番号)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNS_TSJGS_CD, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.ITENS_JIGYOSHA_NO));
		// 番ポ工事番号 は設定しない
		// ポートアウト番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.PORT_OUT_NO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PORT_OUT_NO));
		// 注文種類(番ポ)
		inZM0541D010Map.put(EZM0541D010CBSMsg.CHUMN_KIND, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.CHUMN_KIND));

		// ★ENUM切替履歴登録★
		callEZM0541D010(handle, param, fixedText, "1", inZM0541D010Map);

		Map<Object, Object> inEZM0121E011Map = new HashMap<Object, Object>();
		// ★--電話番号削除処理用のMAPを設定する--★

		// 電話番号
		inEZM0121E011Map.put(EZM0121E010CBSMsg.TELNO, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.TELNO));
		// 更新前最終年月日時分秒
		inEZM0121E011Map.put(EZM0121E010CBSMsg.LAST_UPD_DTM_BF, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.UPD_DTM));

		// ★電話番号 削除★
		callEZM0121E011(handle, param, fixedText, "1", inEZM0121E011Map);

		Map<Object, Object> inETU0151C010Map = new HashMap<Object, Object>();
		// ★--ポートアウト受付情報更新処理用のMAPを設定する--★

		// 共通の項目設定を行う。
		inETU0151C010Map = settingETU0151C010(inETU0151C010Map, outMapETU0151B040);

		// ポートアウトステータス
		inETU0151C010Map.put(ETU0151C010CBSMsg.PORT_OUT_STAT, PORT_OUT_STAT_050);
		// 切替SOD発行年月日時分秒 オンライン運用日時+システム日時
		inETU0151C010Map.put(ETU0151C010CBSMsg.SWITCH_SOD_HAKKO_DTM, JCCBPCommon.getOnlineOpeDateTimeStamp(null));

		// ★ポートアウト情報 更新★
		callETU0151C010(handle, param, fixedText, "1", inETU0151C010Map);

		return param;
	}

	/**
	 * パターン4:番号取得事業者戻り切替 <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param funcCd 業務コード
	 * @param ccParam パラメータMAP
	 * @param outMapEZM0121A010 電話番号一意照会
	 * @param outMapETU0151B040 ポートアウト受付情報一覧照会
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	private IRequestParameterReadWrite numberAcquirerReturn_Switch(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, ILogger logger, Map<String, Object> ccParam, CAANMsg outMapEZM0121A010, CAANMsg outMapETU0011B040) throws Throwable
	{
		// ★ENUM消去SOD★
		callESC0051D010(handle, param, logger, ccParam);

		Map<Object, Object> inZM0541D010Map = new HashMap<Object, Object>();

		// ★--ENUM切替履歴登録処理用のMAPを設定する--★
		// 電話番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.TELNO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_TELNO)));
		// サービス契約番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.SVC_KEI_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_KEI_NO)));
		// 要求種別コード
		inZM0541D010Map.put(EZM0541D010CBSMsg.YOKYU_SBT_CD, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_YOKYU_SBT_CD)));
		// ネットワークルーティング番号 設定しない
		// サービス区分 設定しない
		// ドメイン 設定しない
		// 個人法人電話番号帯コード
		inZM0541D010Map.put(EZM0541D010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.KOJIN_HOJIN_TLN_TAI_CD));
		// 移転元通信事業者コード(電話番号更新後の電話番号．移転先事業者コードを設定)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNM_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNS_TSJGS_CD));
		// 移転先通信事業者コード(電話番号更新後の自社事業者コード)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNS_TSJGS_CD, JISHA_TSJGS_CD);
		// 番ポ工事番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.BMP_KOJI_NO, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.BMP_KOJI_NO));
		// ポートアウト番号 は設定しない
		// 注文種類(番ポ)
		inZM0541D010Map.put(EZM0541D010CBSMsg.CHUMN_KIND, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.CHUMN_KIND));

		// ★ENUM切替履歴登録★
		callEZM0541D010(handle, param, fixedText, "1", inZM0541D010Map);

		Map<Object, Object> inEZM0121C010Map = new HashMap<Object, Object>();
		// ★--電話番号更新処理用のMAPを設定する--★

		// 共通の項目設定を行う。
		inEZM0121C010Map = settingEZM0121C010(inEZM0121C010Map, outMapEZM0121A010);

		// 個人法人番号帯コード(電話番号_個人法人番号帯コード)(本パターンの処理は、個人法人電話番号帯コードを更新しないのでそのまま)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.KOJIN_HOJIN_TLN_TAI_CD));
		// 移転元事業者コード(電話番号．移転先事業者コードを設定)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.ITNM_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNS_TSJGS_CD));
		// 移転先事業者コード(自社事業者コード)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.ITNS_TSJGS_CD, JISHA_TSJGS_CD);

		// ★電話番号 更新★
		callEZM0121C010(handle, param, fixedText, "1", inEZM0121C010Map);

		Map<Object, Object> inETU0011C070Map = new HashMap<Object, Object>();
		// ★--番ポ工事_ 切替SOD発行年月日時分秒更新処理用のMAPを設定する--★
		// 番ポ工事番号
		inETU0011C070Map.put(ETU0011C070CBSMsg.BMP_KOJI_NO, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.BMP_KOJI_NO));
		// 世代登録年月日時分秒
		inETU0011C070Map.put(ETU0011C070CBSMsg.GENE_ADD_DTM, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.GENE_ADD_DTM));
		// 更新前更新年月日時分秒
		inETU0011C070Map.put(ETU0011C070CBSMsg.UPD_DTM_BF, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.UPD_DTM));
		// 切替SOD発行年月日時分秒 オンライン運用日時+システム日時
		inETU0011C070Map.put(ETU0011C070CBSMsg.SWITCH_SOD_HAKKO_DTM, JCCBPCommon.getOnlineOpeDateTimeStamp(null));

		// ★番ポ工事 切替SOD発行年月日時分秒 更新★
		callETU0011C070(handle, param, fixedText, "1", inETU0011C070Map);

		return param;
	}

	/**
	 * No5:番ポ廃止(ＯＰＴ受付)切替 <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param funcCd 業務コード
	 * @param ccParam パラメータMAP
	 * @param outMapEZM0121A010 電話番号一意照会
	 * @param outMapETU0011B040 番ポ工事情報一覧照会
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	private IRequestParameterReadWrite bmpAbolition_Opt_Switch(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, ILogger logger, Map<String, Object> ccParam, CAANMsg outMapEZM0121A010, CAANMsg outMapETU0011B040) throws Throwable
	{
		// ★ENUM消去SOD★
		callESC0051D010(handle, param, logger, ccParam);

		Map<Object, Object> inZM0541D010Map = new HashMap<Object, Object>();

		// ★--ENUM切替履歴登録処理用のMAPを設定する--★
		// 電話番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.TELNO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_TELNO)));
		// サービス契約番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.SVC_KEI_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_KEI_NO)));
		// 要求種別コード
		inZM0541D010Map.put(EZM0541D010CBSMsg.YOKYU_SBT_CD, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_YOKYU_SBT_CD)));
		// ネットワークルーティング番号 設定しない
		// サービス区分 設定しない
		// ドメイン 設定しない
		// 個人法人電話番号帯コード
		inZM0541D010Map.put(EZM0541D010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.KOJIN_HOJIN_TLN_TAI_CD));
		// 移転元通信事業者コード(電話番号削除 かつ ポートアウト番号設定なしのため、null)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNM_TSJGS_CD, null);
		// 移転先通信事業者コード(電話番号削除 かつ ポートアウト番号設定なしのため、null)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNS_TSJGS_CD, null);
		// 番ポ工事番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.BMP_KOJI_NO, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.BMP_KOJI_NO));
		// ポートアウト番号 は設定しない
		// 注文種類(番ポ)
		inZM0541D010Map.put(EZM0541D010CBSMsg.CHUMN_KIND, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.CHUMN_KIND));

		// ★ENUM切替履歴登録★
		callEZM0541D010(handle, param, fixedText, "1", inZM0541D010Map);

		Map<Object, Object> inEZM0121E011Map = new HashMap<Object, Object>();
		// ★--電話番号削除処理用のMAPを設定する--★

		// 電話番号
		inEZM0121E011Map.put(EZM0121E010CBSMsg.TELNO, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.TELNO));
		// 更新前最終年月日時分秒
		inEZM0121E011Map.put(EZM0121E010CBSMsg.LAST_UPD_DTM_BF, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.UPD_DTM));

		// ★電話番号 削除★
		callEZM0121E011(handle, param, fixedText, "1", inEZM0121E011Map);

		Map<Object, Object> inETU0011C070Map = new HashMap<Object, Object>();
		// ★--番ポ工事_ 切替SOD発行年月日時分秒更新処理用のMAPを設定する--★
		// 番ポ工事番号
		inETU0011C070Map.put(ETU0011C070CBSMsg.BMP_KOJI_NO, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.BMP_KOJI_NO));
		// 世代登録年月日時分秒
		inETU0011C070Map.put(ETU0011C070CBSMsg.GENE_ADD_DTM, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.GENE_ADD_DTM));
		// 更新前更新年月日時分秒
		inETU0011C070Map.put(ETU0011C070CBSMsg.UPD_DTM_BF, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.UPD_DTM));
		// 切替SOD発行年月日時分秒 オンライン運用日時+システム日時
		inETU0011C070Map.put(ETU0011C070CBSMsg.SWITCH_SOD_HAKKO_DTM, JCCBPCommon.getOnlineOpeDateTimeStamp(null));

		// ★番ポ工事 切替SOD発行年月日時分秒 更新★
		callETU0011C070(handle, param, fixedText, "1", inETU0011C070Map);

		return param;
	}
	/**
	 * No6:ポートイン切替・取消 <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param funcCd 業務コード
	 * @param ccParam パラメータMAP
	 * @param outMapEZM0121A010 電話番号一意照会
	 * @param outMapETU0011B040 番ポ工事情報一覧照会
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	private IRequestParameterReadWrite portIn_Switch_Cancel(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, ILogger logger, Map<String, Object> ccParam, CAANMsg outMapEZM0121A010, CAANMsg outMapETU0011B040) throws Throwable
	{
		// ★ENUM消去SOD★
		callESC0051D010(handle, param, logger, ccParam);

		Map<Object, Object> inZM0541D010Map = new HashMap<Object, Object>();

		// ★--ENUM切替履歴登録処理用のMAPを設定する--★
		// 電話番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.TELNO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_TELNO)));
		// サービス契約番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.SVC_KEI_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_KEI_NO)));
		// 要求種別コード
		inZM0541D010Map.put(EZM0541D010CBSMsg.YOKYU_SBT_CD, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_YOKYU_SBT_CD)));
		// ネットワークルーティング番号 設定しない
		// サービス区分 設定しない
		// ドメイン 設定しない
		// 個人法人電話番号帯コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、電話番号を更新しないのでそのまま)
		inZM0541D010Map.put(EZM0541D010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.KOJIN_HOJIN_TLN_TAI_CD));
		// 移転元通信事業者コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、電話番号を更新しないのでそのまま)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNM_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNM_TSJGS_CD));
		// 移転先通信事業者コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、電話番号を更新しないのでそのまま)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNS_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNS_TSJGS_CD));
		// 番ポ工事番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.BMP_KOJI_NO, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.BMP_KOJI_NO));
		// ポートアウト番号 は設定しない
		// 注文種類(番ポ)
		inZM0541D010Map.put(EZM0541D010CBSMsg.CHUMN_KIND, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.CHUMN_KIND));

		// ★ENUM切替履歴登録★
		callEZM0541D010(handle, param, fixedText, "1", inZM0541D010Map);

		// ★本処理パターンは、電話番号の更新削除を行わない★

		Map<Object, Object> inETU0011C070Map = new HashMap<Object, Object>();
		// ★--番ポ工事_ 切替SOD発行年月日時分秒更新処理用のMAPを設定する--★
		// 番ポ工事番号
		inETU0011C070Map.put(ETU0011C070CBSMsg.BMP_KOJI_NO, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.BMP_KOJI_NO));
		// 世代登録年月日時分秒
		inETU0011C070Map.put(ETU0011C070CBSMsg.GENE_ADD_DTM, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.GENE_ADD_DTM));
		// 更新前更新年月日時分秒
		inETU0011C070Map.put(ETU0011C070CBSMsg.UPD_DTM_BF, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.UPD_DTM));
		// 切替SOD発行年月日時分秒 オンライン運用日時+システム日時
		inETU0011C070Map.put(ETU0011C070CBSMsg.SWITCH_SOD_HAKKO_DTM, null);

		// ★番ポ工事 切替SOD発行年月日時分秒 更新★
		callETU0011C070(handle, param, fixedText, "1", inETU0011C070Map);

		return param;
	}

	/**
	 * No7:ポートアウト切替・取消 <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param funcCd 業務コード
	 * @param ccParam パラメータMAP
	 * @param outMapEZM0121A010 電話番号一意照会
	 * @param outMapETU0151B040 ポートアウト受付情報照会
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	private IRequestParameterReadWrite portOut_Switch_Cancel(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, ILogger logger, Map<String, Object> ccParam, CAANMsg outMapEZM0121A010, CAANMsg outMapETU0151B040) throws Throwable
	{
		// ★ENUM消去SOD★
		callESC0051D010(handle, param, logger, ccParam);

		Map<Object, Object> inZM0541D010Map = new HashMap<Object, Object>();

		// ★--ENUM切替履歴登録処理用のMAPを設定する--★
		// 電話番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.TELNO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_TELNO)));
		// サービス契約番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.SVC_KEI_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_KEI_NO)));
		// 要求種別コード
		inZM0541D010Map.put(EZM0541D010CBSMsg.YOKYU_SBT_CD, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_YOKYU_SBT_CD)));
		// ネットワークルーティング番号 設定しない
		// サービス区分 設定しない
		// ドメイン 設定しない
		// 個人法人電話番号帯コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、個人法人電話番号帯コードを更新しないのでそのまま)
		inZM0541D010Map.put(EZM0541D010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.KOJIN_HOJIN_TLN_TAI_CD));
		// 移転元通信事業者コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、更新後の内容を設定)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNM_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNS_TSJGS_CD));
		// 移転先通信事業者コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、更新後の内容を設定)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNS_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNM_TSJGS_CD));
		// 番ポ工事番号 は設定しない
		// ポートアウト番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.PORT_OUT_NO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PORT_OUT_NO));
		// 注文種類(番ポ)
		inZM0541D010Map.put(EZM0541D010CBSMsg.CHUMN_KIND, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.CHUMN_KIND));

		// ★ENUM切替履歴登録★
		callEZM0541D010(handle, param, fixedText, "1", inZM0541D010Map);

		Map<Object, Object> inEZM0121C010Map = new HashMap<Object, Object>();
		// ★--電話番号更新処理用のMAPを設定する--★

		// 共通の項目設定を行う。
		inEZM0121C010Map = settingEZM0121C010(inEZM0121C010Map, outMapEZM0121A010);

		// 個人法人番号帯コード(電話番号_個人法人番号帯コード)(本パターンの処理は、個人法人電話番号帯コードを更新しないのでそのまま)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.KOJIN_HOJIN_TLN_TAI_CD));
		// 移転元事業者コード(更新前の電話番号．移転先事業者コード)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.ITNM_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNS_TSJGS_CD));
		// 移転先事業者コード(更新前の電話番号．移転元事業者コード)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.ITNS_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNM_TSJGS_CD));

		// ★電話番号 更新★
		callEZM0121C010(handle, param, fixedText, "1", inEZM0121C010Map);

		Map<Object, Object> inETU0151C010Map = new HashMap<Object, Object>();
		// ★--ポートアウト受付情報更新処理用のMAPを設定する--★

		// 共通の項目設定を行う。
		inETU0151C010Map = settingETU0151C010(inETU0151C010Map, outMapETU0151B040);

		// ポートアウトステータス
		inETU0151C010Map.put(ETU0151C010CBSMsg.PORT_OUT_STAT, PORT_OUT_STAT_030);
		// 切替SOD発行年月日時分秒 クリア
		inETU0151C010Map.put(ETU0151C010CBSMsg.SWITCH_SOD_HAKKO_DTM, null);

		// ★ポートアウト情報 更新★
		callETU0151C010(handle, param, fixedText, "1", inETU0151C010Map);

		return param;
	}

	/**
	 * No8:番号取得事業者戻り切替・取消 <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param funcCd 業務コード
	 * @param ccParam パラメータMAP
	 * @param outMapEZM0121A010 電話番号一意照会
	 * @param outMapETU0011B040 番ポ工事情報一覧照会
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	private IRequestParameterReadWrite numberAcquirerReturn_Switch_Cancel(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, ILogger logger, Map<String, Object> ccParam, CAANMsg outMapEZM0121A010, CAANMsg outMapETU0011B040) throws Throwable
	{

		// ★ENUM登録SOD★
		callESC0051D010(handle, param, logger, ccParam);

		Map<Object, Object> inZM0541D010Map = new HashMap<Object, Object>();

		// ★--ENUM切替履歴登録処理用のMAPを設定する--★
		// 電話番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.TELNO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_TELNO)));
		// サービス契約番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.SVC_KEI_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_KEI_NO)));
		// 要求種別コード
		inZM0541D010Map.put(EZM0541D010CBSMsg.YOKYU_SBT_CD, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_YOKYU_SBT_CD)));
		// ネットワークルーティング番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.NW_ROUTING_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_NW_ROUTING_NO)));
		// サービス区分
		inZM0541D010Map.put(EZM0541D010CBSMsg.SVC_DIV, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_DIV)));
		// ドメイン
		inZM0541D010Map.put(EZM0541D010CBSMsg.DOMAIN, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_DOMAIN)));
		// 個人法人電話番号帯コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、個人法人電話番号帯コードを初期個人法人電話番号帯コードの値で更新)
		inZM0541D010Map.put(EZM0541D010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.SHK_KOJIN_HOJIN_TLN_TAI_CD));
		// 移転元通信事業者コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、更新後の内容を設定)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNM_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNS_TSJGS_CD));
		// 移転先通信事業者コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、更新後の内容を設定)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNS_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNM_TSJGS_CD));
		// 番ポ工事番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.BMP_KOJI_NO, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.BMP_KOJI_NO));
		// ポートアウト番号 は設定しない
		// 注文種類(番ポ)
		inZM0541D010Map.put(EZM0541D010CBSMsg.CHUMN_KIND, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.CHUMN_KIND));

		// ★ENUM切替履歴登録★
		callEZM0541D010(handle, param, fixedText, "1", inZM0541D010Map);

		Map<Object, Object> inEZM0121C010Map = new HashMap<Object, Object>();
		// ★--電話番号更新処理用のMAPを設定する--★

		// 共通の項目設定を行う。
		inEZM0121C010Map = settingEZM0121C010(inEZM0121C010Map, outMapEZM0121A010);

		// 個人法人番号帯コード(電話番号_初期個人法人番号帯コード)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.SHK_KOJIN_HOJIN_TLN_TAI_CD));
		// 移転元事業者コード(更新前の電話番号．移転先事業者コード)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.ITNM_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNS_TSJGS_CD));
		// 移転先事業者コード(更新前の電話番号．移転元事業者コード)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.ITNS_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNM_TSJGS_CD));

		// ★電話番号 更新★
		callEZM0121C010(handle, param, fixedText, "1", inEZM0121C010Map);

		Map<Object, Object> inETU0011C070Map = new HashMap<Object, Object>();
		// ★--番ポ工事_ 切替SOD発行年月日時分秒更新処理用のMAPを設定する--★
		// 番ポ工事番号
		inETU0011C070Map.put(ETU0011C070CBSMsg.BMP_KOJI_NO, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.BMP_KOJI_NO));
		// 世代登録年月日時分秒
		inETU0011C070Map.put(ETU0011C070CBSMsg.GENE_ADD_DTM, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.GENE_ADD_DTM));
		// 更新前更新年月日時分秒
		inETU0011C070Map.put(ETU0011C070CBSMsg.UPD_DTM_BF, getRsltMsgListValue(outMapETU0011B040, ETU0011B040CBSMsg.ETU0011B040CBSMSG1LIST, ETU0011B040CBSMsg1List.UPD_DTM));
		// 切替SOD発行年月日時分秒 オンライン運用日時+システム日時
		inETU0011C070Map.put(ETU0011C070CBSMsg.SWITCH_SOD_HAKKO_DTM, null);

		// ★番ポ工事 切替SOD発行年月日時分秒 更新★
		callETU0011C070(handle, param, fixedText, "1", inETU0011C070Map);

		return param;
	}

	/**
	 * No9:網内番ポ(ＯＰＴ電話番号)(登録) <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param funcCd 業務コード
	 * @param ccParam パラメータMAP
	 * @param outMapEZM0121A010 電話番号一意照会
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	private IRequestParameterReadWrite insNetNumPort_OptTelno(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, ILogger logger, Map<String, Object> ccParam, CAANMsg outMapEZM0121A010) throws Throwable
	{
		// ★ENUM登録SOD★
		callESC0051D010(handle, param, logger, ccParam);

		Map<Object, Object> inZM0541D010Map = new HashMap<Object, Object>();

		// ★--ENUM切替履歴登録処理用のMAPを設定する--★
		// 電話番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.TELNO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_TELNO)));
		// サービス契約番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.SVC_KEI_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_KEI_NO)));
		// 要求種別コード
		inZM0541D010Map.put(EZM0541D010CBSMsg.YOKYU_SBT_CD, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_YOKYU_SBT_CD)));
		// ネットワークルーティング番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.NW_ROUTING_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_NW_ROUTING_NO)));
		// サービス区分
		inZM0541D010Map.put(EZM0541D010CBSMsg.SVC_DIV, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_DIV)));
		// ドメイン
		inZM0541D010Map.put(EZM0541D010CBSMsg.DOMAIN, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_DOMAIN)));
		// 個人法人電話番号帯コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、個人法人電話番号帯コードを2:法人で更新)
		inZM0541D010Map.put(EZM0541D010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, KOJIN_HOJIN_TLN_TAI_CD_2);
		// 移転元通信事業者コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、移転元通信事業者コードを更新しないのでそのまま)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNM_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNM_TSJGS_CD));
		// 移転先通信事業者コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、移転先通信事業者コードを更新しないのでそのまま)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNS_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNS_TSJGS_CD));
		// 番ポ工事番号 は設定しない
		// ポートアウト番号 は設定しない
		// 注文種類(番ポ) は設定しない

		// ★ENUM切替履歴登録★
		callEZM0541D010(handle, param, fixedText, "1", inZM0541D010Map);

		Map<Object, Object> inEZM0121C010Map = new HashMap<Object, Object>();
		// ★--電話番号更新処理用のMAPを設定する--★

		// 共通の項目設定を行う。
		inEZM0121C010Map = settingEZM0121C010(inEZM0121C010Map, outMapEZM0121A010);

		// 個人法人番号帯コード(2:法人)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, KOJIN_HOJIN_TLN_TAI_CD_2);
		// 移転元事業者コード(更新前の電話番号．移転元事業者コード_そのまま)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.ITNM_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNM_TSJGS_CD));
		// 移転先事業者コード(更新前の電話番号．移転先事業者コード_そのまま)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.ITNS_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNS_TSJGS_CD));

		// ★電話番号 更新★
		callEZM0121C010(handle, param, fixedText, "1", inEZM0121C010Map);

		return param;
	}

	/**
	 * No10:網内番ポ(ＯＰＴ電話番号)(消去) <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param funcCd 業務コード
	 * @param ccParam パラメータMAP
	 * @param outMapEZM0121A010 電話番号一意照会
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	private IRequestParameterReadWrite insNetNumPort_OptTelno_Cancel(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, ILogger logger, Map<String, Object> ccParam, CAANMsg outMapEZM0121A010) throws Throwable
	{
		// ★ENUM消去SOD★
		callESC0051D010(handle, param, logger, ccParam);

		Map<Object, Object> inZM0541D010Map = new HashMap<Object, Object>();

		// ★--ENUM切替履歴登録処理用のMAPを設定する--★
		// 電話番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.TELNO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_TELNO)));
		// サービス契約番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.SVC_KEI_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_KEI_NO)));
		// 要求種別コード
		inZM0541D010Map.put(EZM0541D010CBSMsg.YOKYU_SBT_CD, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_YOKYU_SBT_CD)));
		// ネットワークルーティング番号 設定しない
		// サービス区分 設定しない
		// ドメイン 設定しない
		// 個人法人電話番号帯コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、個人法人電話番号帯コードを1:個人で更新)
		inZM0541D010Map.put(EZM0541D010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, KOJIN_HOJIN_TLN_TAI_CD_1);
		// 移転元通信事業者コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、移転元通信事業者コードを更新しないのでそのまま)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNM_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNM_TSJGS_CD));
		// 移転先通信事業者コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、移転先通信事業者コードを更新しないのでそのまま)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNS_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNS_TSJGS_CD));
		// 番ポ工事番号 は設定しない
		// ポートアウト番号 は設定しない
		// 注文種類(番ポ) は設定しない

		// ★ENUM切替履歴登録★
		callEZM0541D010(handle, param, fixedText, "1", inZM0541D010Map);

		Map<Object, Object> inEZM0121C010Map = new HashMap<Object, Object>();
		// ★--電話番号更新処理用のMAPを設定する--★

		// 共通の項目設定を行う。
		inEZM0121C010Map = settingEZM0121C010(inEZM0121C010Map, outMapEZM0121A010);

		// 個人法人番号帯コード(1:個人)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, KOJIN_HOJIN_TLN_TAI_CD_1);
		// 移転元事業者コード(更新前の電話番号．移転元事業者コード_そのまま)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.ITNM_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNM_TSJGS_CD));
		// 移転先事業者コード(更新前の電話番号．移転先事業者コード_そのまま)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.ITNS_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNS_TSJGS_CD));

		// ★電話番号 更新★
		callEZM0121C010(handle, param, fixedText, "1", inEZM0121C010Map);

		return param;
	}

	/**
	 * No11:網内番ポ(他社電話番号)(登録) <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param funcCd 業務コード
	 * @param ccParam パラメータMAP
	 * @param outMapEZM0121A010 電話番号一意照会
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	private IRequestParameterReadWrite insNetNumPort_OtherTelno(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, ILogger logger, Map<String, Object> ccParam, CAANMsg outMapEZM0121A010) throws Throwable
	{
		// ★ENUM登録SOD★
		callESC0051D010(handle, param, logger, ccParam);

		Map<Object, Object> inZM0541D010Map = new HashMap<Object, Object>();

		// ★--ENUM切替履歴登録処理用のMAPを設定する--★
		// 電話番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.TELNO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_TELNO)));
		// サービス契約番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.SVC_KEI_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_KEI_NO)));
		// 要求種別コード
		inZM0541D010Map.put(EZM0541D010CBSMsg.YOKYU_SBT_CD, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_YOKYU_SBT_CD)));
		// ネットワークルーティング番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.NW_ROUTING_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_NW_ROUTING_NO)));
		// サービス区分
		inZM0541D010Map.put(EZM0541D010CBSMsg.SVC_DIV, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_DIV)));
		// ドメイン
		inZM0541D010Map.put(EZM0541D010CBSMsg.DOMAIN, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_DOMAIN)));
		// 個人法人電話番号帯コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、個人法人電話番号帯コードを2:法人で更新)
		inZM0541D010Map.put(EZM0541D010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, KOJIN_HOJIN_TLN_TAI_CD_2);
		// 移転元通信事業者コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、移転元通信事業者コードを更新しないのでそのまま)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNM_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNM_TSJGS_CD));
		// 移転先通信事業者コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、移転先通信事業者コードを更新しないのでそのまま)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNS_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNS_TSJGS_CD));
		// 番ポ工事番号 は設定しない
		// ポートアウト番号 は設定しない
		// 注文種類(番ポ) は設定しない

		// ★ENUM切替履歴登録★
		callEZM0541D010(handle, param, fixedText, "1", inZM0541D010Map);

		Map<Object, Object> inEZM0121C010Map = new HashMap<Object, Object>();
		// ★--電話番号更新処理用のMAPを設定する--★

		// 共通の項目設定を行う。
		inEZM0121C010Map = settingEZM0121C010(inEZM0121C010Map, outMapEZM0121A010);

		// 個人法人番号帯コード(2:法人)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, KOJIN_HOJIN_TLN_TAI_CD_2);
		// 移転元事業者コード(更新前の電話番号．移転元事業者コード_そのまま)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.ITNM_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNM_TSJGS_CD));
		// 移転先事業者コード(更新前の電話番号．移転先事業者コード_そのまま)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.ITNS_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNS_TSJGS_CD));

		// ★電話番号 更新★
		callEZM0121C010(handle, param, fixedText, "1", inEZM0121C010Map);

		return param;
	}

	/**
	 * No12:網内番ポ(他社電話番号)(消去) <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param funcCd 業務コード
	 * @param ccParam パラメータMAP
	 * @param outMapEZM0121A010 電話番号一意照会
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	private IRequestParameterReadWrite insNetNumPort_OtherTelno_Cancel(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, ILogger logger, Map<String, Object> ccParam, CAANMsg outMapEZM0121A010) throws Throwable
	{
		// ★ENUM消去SOD★
		callESC0051D010(handle, param, logger, ccParam);

		Map<Object, Object> inZM0541D010Map = new HashMap<Object, Object>();

		// ★--ENUM切替履歴登録処理用のMAPを設定する--★
		// 電話番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.TELNO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_TELNO)));
		// サービス契約番号
		inZM0541D010Map.put(EZM0541D010CBSMsg.SVC_KEI_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_KEI_NO)));
		// 要求種別コード
		inZM0541D010Map.put(EZM0541D010CBSMsg.YOKYU_SBT_CD, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_YOKYU_SBT_CD)));
		// ネットワークルーティング番号 設定しない
		// サービス区分 設定しない
		// ドメイン 設定しない
		// 個人法人電話番号帯コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、個人法人電話番号帯コードを初期個人法人電話番号帯コードの値で更新)
		inZM0541D010Map.put(EZM0541D010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.SHK_KOJIN_HOJIN_TLN_TAI_CD));
		// 移転元通信事業者コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、移転元通信事業者コードを更新しないのでそのまま)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNM_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNM_TSJGS_CD));
		// 移転先通信事業者コード(更新後の電話番号マスタ内容を設定 本パターンの処理は、移転先通信事業者コードを更新しないのでそのまま)
		inZM0541D010Map.put(EZM0541D010CBSMsg.ITNS_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNS_TSJGS_CD));
		// 番ポ工事番号 は設定しない
		// ポートアウト番号 は設定しない
		// 注文種類(番ポ) は設定しない

		// ★ENUM切替履歴登録★
		callEZM0541D010(handle, param, fixedText, "1", inZM0541D010Map);

		Map<Object, Object> inEZM0121C010Map = new HashMap<Object, Object>();
		// ★--電話番号更新処理用のMAPを設定する--★

		// 共通の項目設定を行う。
		inEZM0121C010Map = settingEZM0121C010(inEZM0121C010Map, outMapEZM0121A010);

		// 個人法人番号帯コード(電話番号_初期個人法人番号帯コード)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.SHK_KOJIN_HOJIN_TLN_TAI_CD));
		// 移転元事業者コード(更新前の電話番号．移転元事業者コード_そのまま)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.ITNM_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNM_TSJGS_CD));
		// 移転先事業者コード(更新前の電話番号．移転先事業者コード_そのまま)
		inEZM0121C010Map.put(EZM0121C010CBSMsg.ITNS_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.ITNS_TSJGS_CD));

		// ★電話番号 更新★
		callEZM0121C010(handle, param, fixedText, "1", inEZM0121C010Map);

		return param;
	}

	/**
	 * ESC0051D010:サービスオーダの呼び出しを行います。 <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param logger BPMLogManager
	 * @param enumSodMap ENUMSOD発行用MAP
	 * @throws Exception
	 */
	private IRequestParameterReadWrite  callESC0051D010(SessionHandle handle, IRequestParameterReadWrite param, ILogger logger, Map<String, Object> ccParam) throws Throwable
	{
		Map<Object, Object> enumSodMap = new HashMap<Object, Object>();
		Map userResult = new HashMap();
		String returnCd = "0"; // リターンコード（0:正常終了、1:データなしエラー、9:システムエラー）

		// 要求元アプリ種別コード："C"
		enumSodMap.put(ESC0051D010CBSMsg.YOKYU_MT_APL_SBT_CD, JSCStrConstant.YOKYU_SBT_CD_CLARIS);
		// 電話サービスオーダコード："28" (ENUM)
		enumSodMap.put(ESC0051D010CBSMsg.TEL_SVC_ORDER_CD, JSCStrConstant.TEL_SERVICE_ORD_ENUM);
		// サービスオーダ詳細コード(『01:低』固定)
		enumSodMap.put(ESC0051D010CBSMsg.SVC_ORDER_DTAIL_CD, JSCStrConstant.SVC_ODR_DTAIL_CD_LOW);

		// 要求種別コード02:新規/08:消去の内容に沿ってMAP設定する
		if (ENUMYOKYUSBTCD_02.equals(JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_YOKYU_SBT_CD))))
		{
			// 要求種別コード02:新規
			// リクエストデータを取得、設定
			// サービス契約番号
			enumSodMap.put(ESC0051D010CBSMsg.SVC_KEI_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_KEI_NO)));
			// ENUM要求種別コード
			enumSodMap.put(ESC0051D010CBSMsg.YOKYU_SBT_CD, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_YOKYU_SBT_CD)));
			// 電話番号
			enumSodMap.put(ESC0051D010CBSMsg.TELNO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_TELNO)));
			// ルーティング番号
			enumSodMap.put(ESC0051D010CBSMsg.NW_ROUTING_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_NW_ROUTING_NO)));
			// サービス区分
			enumSodMap.put(ESC0051D010CBSMsg.SVC_DIV, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_DIV)));
			// ドメイン
			enumSodMap.put(ESC0051D010CBSMsg.DOMAIN, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_DOMAIN)));
		}
		else if (ENUMYOKYUSBTCD_08.equals(JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_YOKYU_SBT_CD))))
		{
			// 要求種別コード08:消去
			// リクエストデータを取得、設定
			// サービス契約番号
			enumSodMap.put(ESC0051D010CBSMsg.SVC_KEI_NO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_SVC_KEI_NO)));
			// ENUM要求種別コード
			enumSodMap.put(ESC0051D010CBSMsg.YOKYU_SBT_CD, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_YOKYU_SBT_CD)));
			// 電話番号
			enumSodMap.put(ESC0051D010CBSMsg.TELNO, JKKStringUtil.nullToBlank((String) ccParam.get(REQUEST_TELNO)));
		}

		/***************************************************/
		/** 電話サービスオーダ発行新規登録SC呼び出し処理 */
		/***************************************************/
		Map<?, ?> enuresult = executeTelSvcOrder(handle, param, logger, enumSodMap);

		if (JSCTelSvcScParamHenshu.isSuccess(enuresult))
		{
			// 出力データを取得
			// ENUM電話サービスオーダ番号
			userResult.put("enumTelSvcOrderNo", JSCTelSvcScParamHenshu.getResultString(enuresult, ESC0051D010CBSMsg.TEL_SVC_ORDER_NO));
			// ENUM電話サービスオーダステータス
			userResult.put("enumTelSvcOrderStat", JSCTelSvcScParamHenshu.getResultString(enuresult, ESC0051D010CBSMsg.TEL_SVC_ORDER_STAT));
			// ENUM電話サービスオーダ受付年月日時分秒
			userResult.put("enumTelSvcOrderUkDtm", JSCTelSvcScParamHenshu.getResultString(enuresult, ESC0051D010CBSMsg.TEL_SVC_ORDER_UK_DTM));

			// 登録年月日時分秒
			userResult.put("add_dtm", JSCTelSvcScParamHenshu.getResultString(enuresult, ESC0051D010CBSMsg.ADD_DTM));
			// 登録オペレータアカウント
			userResult.put("add_opeacnt", JSCTelSvcScParamHenshu.getResultString(enuresult, ESC0051D010CBSMsg.ADD_OPEACNT));
			// 更新年月日時分秒
			userResult.put("upd_dtm", JSCTelSvcScParamHenshu.getResultString(enuresult, ESC0051D010CBSMsg.UPD_DTM));
			// 更新オペレータアカウント
			userResult.put("upd_opeacnt", JSCTelSvcScParamHenshu.getResultString(enuresult, ESC0051D010CBSMsg.UPD_OPEACNT));
			// 無効フラグ
			userResult.put("mkFlg", JSCTelSvcScParamHenshu.getResultString(enuresult, ESC0051D010CBSMsg.MK_FLG));
		}
		else
		{
			returnCd = "1"; // リターンコード（データなしエラー）
			logger.log(BasicLevel.ERROR, "電話ＳＯＤ依頼受信（ＥＮＵＭ）（法人）用でエラーが発生しました。");
		}

		/***************************************************/
		/** 下りマッピング処理開始 */
		/***************************************************/
		// 下りコントロールマップのセット
		JSCTelSvcScParamHenshu.setResultCtrlData(param, enuresult, "SCSV002801CC");

		// 下りユーザデータマップのセット
		// (処理結果はユーザ情報のリターンコードで通知する)

		logger.log(BasicLevel.DEBUG, "ENUM用 下りマッピング完了" + param);

		/*************************************************/
		/**
		 * 処理結果の判定 /
		 *************************************************/
		if (!"0".equals(returnCd))
		{
			throw new CCException("電話ＳＯＤ依頼受信（ＥＮＵＭ）（法人）CCの実行で電話サービスオーダ発行新規登録SCエラーが発生しました。", new Exception("電話ＳＯＤ依頼受信（ＥＮＵＭ）（法人）CCの実行で電話サービスオーダ発行新規登録SCエラーが発生しました。"));
		}

		/***************************************************/
		/** 返却データを設定 */
		/***************************************************/
		String strValue = "";
		strValue = JSCCommonUtil.nullToString(userResult.get("enumTelSvcOrderNo"));
		JSCTelSvcScParamHenshu.setUserData(param, "SCSV002801CC", "enumTelSvcOrderNo", strValue);
		strValue = JSCCommonUtil.nullToString(userResult.get("enumTelSvcOrderStat"));
		JSCTelSvcScParamHenshu.setUserData(param, "SCSV002801CC", "enumTelSvcOrderStat", strValue);
		strValue = JSCCommonUtil.nullToString(userResult.get("enumTelSvcOrderUkDtm"));
		JSCTelSvcScParamHenshu.setUserData(param, "SCSV002801CC", "enumTelSvcOrderUkDtm", strValue);
		strValue = JSCCommonUtil.nullToString(userResult.get("add_dtm"));
		JSCTelSvcScParamHenshu.setUserData(param, "SCSV002801CC", "add_dtm", strValue);
		strValue = JSCCommonUtil.nullToString(userResult.get("add_opeacnt"));
		JSCTelSvcScParamHenshu.setUserData(param, "SCSV002801CC", "add_opeacnt", strValue);
		strValue = JSCCommonUtil.nullToString(userResult.get("upd_dtm"));
		JSCTelSvcScParamHenshu.setUserData(param, "SCSV002801CC", "upd_dtm", strValue);
		strValue = JSCCommonUtil.nullToString(userResult.get("upd_opeacnt"));
		JSCTelSvcScParamHenshu.setUserData(param, "SCSV002801CC", "upd_opeacnt", strValue);
		strValue = JSCCommonUtil.nullToString(userResult.get("mkFlg"));
		JSCTelSvcScParamHenshu.setUserData(param, "SCSV002801CC", "mkFlg", strValue);

		return param;
	}

	
	/**
	 * EZM0541D010:ENUM切替履歴登録の呼び出しを行います。 <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws Exception
	 */
	private void callEZM0541D010(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String funcCD, Map<Object, Object> inMap) throws Throwable
	{

		// SC呼び出し用
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		// パラメータマップ用
		HashMap<String, Object> paramMap = setSCInputCommonData(param, new HashMap<String, Object>());
		// SC結果格納用
		Map<?, ?> result = null;
		// マッピング用
		CAANMsg template = null;

		// ENUM切替履歴登録
		JSCSV002801MapperCC JSCSV002801Mapper = new JSCSV002801MapperCC();
		template = JSCSV002801Mapper.editInEZM0541D010Msg(param, fixedText, funcCD, inMap); // 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
		JSCSV002801Mapper.editOutMsg(result, param, fixedText); // 下りマッピング
		checkReturnCode(param);
	}

	/**
	 * ETU0011C070:番ポ工事情報_切替SOD発行年月日時分秒更新の呼び出しを行います。 <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws Exception
	 */
	private void callETU0011C070(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String funcCD, Map<Object, Object> inMap) throws Throwable
	{

		// SC呼び出し用
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		// パラメータマップ用
		HashMap<String, Object> paramMap = setSCInputCommonData(param, new HashMap<String, Object>());
		// SC結果格納用
		Map<?, ?> result = null;
		// マッピング用
		CAANMsg template = null;

		// 番ポ工事情報_切替SOD発行年月日時分秒更新
		JSCSV002801MapperCC JSCSV002801Mapper = new JSCSV002801MapperCC();
		template = JSCSV002801Mapper.editInETU0011C070Msg(param, fixedText, funcCD, inMap); // 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
		JSCSV002801Mapper.editOutMsg(result, param, fixedText); // 下りマッピング
		checkReturnCode(param);
	}

	
	/**
	 * EZM0121C010:電話番号変更の共通項目設定を行います。 <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws Exception
	 */
	private Map<Object, Object> settingEZM0121C010(Map<Object, Object> inEZM0121C010Map, CAANMsg outMapEZM0121A010) throws Throwable
	{
		inEZM0121C010Map.put(EZM0121C010CBSMsg.TELNO, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.TELNO));
		inEZM0121C010Map.put(EZM0121C010CBSMsg.KYOKU_NO, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.KYOKU_NO));
		inEZM0121C010Map.put(EZM0121C010CBSMsg.NO_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.NO_CD));
		inEZM0121C010Map.put(EZM0121C010CBSMsg.WARIATE_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.WARIATE_TSJGS_CD));
		inEZM0121C010Map.put(EZM0121C010CBSMsg.USE_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.USE_TSJGS_CD));
		inEZM0121C010Map.put(EZM0121C010CBSMsg.SVC_DIV, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.SVC_DIV));
		inEZM0121C010Map.put(EZM0121C010CBSMsg.HKAT_SIYK_SBT_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.HKAT_SIYK_SBT_CD));
		inEZM0121C010Map.put(EZM0121C010CBSMsg.HKAT_SIYK_SET_DTM, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.HKAT_SIYK_SET_DTM));
		inEZM0121C010Map.put(EZM0121C010CBSMsg.TLN_SETMEI, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.TLN_SETMEI));
		inEZM0121C010Map.put(EZM0121C010CBSMsg.C5_SERVER_GOKI_SKBT_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.C5_SERVER_GOKI_SKBT_CD));
		inEZM0121C010Map.put(EZM0121C010CBSMsg.TELNO_TSTAYMD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.TELNO_TSTAYMD));
		inEZM0121C010Map.put(EZM0121C010CBSMsg.TELNO_TENDYMD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.TELNO_TENDYMD));
		inEZM0121C010Map.put(EZM0121C010CBSMsg.NRN_NO, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.NRN_NO));
		inEZM0121C010Map.put(EZM0121C010CBSMsg.FIRST_WARIATE_YMD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.FIRST_WARIATE_YMD));
		inEZM0121C010Map.put(EZM0121C010CBSMsg.SHK_KOJIN_HOJIN_TLN_TAI_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.SHK_KOJIN_HOJIN_TLN_TAI_CD));
		inEZM0121C010Map.put(EZM0121C010CBSMsg.TLN_STKU_TSJGS_CD, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.TLN_STKU_TSJGS_CD));
		inEZM0121C010Map.put(EZM0121C010CBSMsg.LAST_UPD_DTM_BF, getRsltMsgListValue(outMapEZM0121A010, EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST, EZM0121A010CBSMsg1List.UPD_DTM));
		return inEZM0121C010Map;
	}
	
	/**
	 * EZM0121C010:電話番号変更の呼び出しを行います。 <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws Exception
	 */
	private void callEZM0121C010(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String funcCD, Map<Object, Object> inMap) throws Throwable
	{
		// SC呼び出し用
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		// パラメータマップ用
		HashMap<String, Object> paramMap = setSCInputCommonData(param, new HashMap<String, Object>());
		// SC結果格納用
		Map<?, ?> result = null;
		// マッピング用
		CAANMsg template = null;

		// 電話番号変更
		JSCSV002801MapperCC JSCSV002801Mapper = new JSCSV002801MapperCC();
		template = JSCSV002801Mapper.editInEZM0121C010Msg(param, fixedText, funcCD, inMap); // 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
		JSCSV002801Mapper.editOutMsg(result, param, fixedText); // 下りマッピング
		checkReturnCode(param);
	}
	
	/**
	 * EZM0121E010:電話番号削除の呼び出しを行います。 <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws Exception
	 */
	private void callEZM0121E011(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String funcCD, Map<Object, Object> inMap) throws Throwable
	{
		// SC呼び出し用
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		// パラメータマップ用
		HashMap<String, Object> paramMap = setSCInputCommonData(param, new HashMap<String, Object>());
		// SC結果格納用
		Map<?, ?> result = null;
		// マッピング用
		CAANMsg template = null;

		// 電話番号削除
		JSCSV002801MapperCC JSCSV002801Mapper = new JSCSV002801MapperCC();
		template = JSCSV002801Mapper.editInEZM0121E011Msg(param, fixedText, funcCD, inMap); // 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
		JSCSV002801Mapper.editOutMsg(result, param, fixedText); // 下りマッピング
		checkReturnCode(param);
	}


	/**
	 * ETU0151C010:ポートアウト受付情報変更の共通項目設定を行います。 <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws Exception
	 */
	private Map<Object, Object> settingETU0151C010(Map<Object, Object> inETU0151C010Map, CAANMsg outMapETU0151B040) throws Throwable
	{

		inETU0151C010Map.put(ETU0151C010CBSMsg.PORT_OUT_NO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PORT_OUT_NO));
		inETU0151C010Map.put(ETU0151C010CBSMsg.SVC_KEI_NO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.SVC_KEI_NO));
		inETU0151C010Map.put(ETU0151C010CBSMsg.SVC_KEI_UCWK_NO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.SVC_KEI_UCWK_NO));
		inETU0151C010Map.put(ETU0151C010CBSMsg.TOGO_ODR_ID, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.TOGO_ODR_ID));
		inETU0151C010Map.put(ETU0151C010CBSMsg.HAISHI_CHUMN_SKBT, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.HAISHI_CHUMN_SKBT));
		inETU0151C010Map.put(ETU0151C010CBSMsg.RE_BMP_MKM_SKBT, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.RE_BMP_MKM_SKBT));
		inETU0151C010Map.put(ETU0151C010CBSMsg.AFT_TONYU_SKBT, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.AFT_TONYU_SKBT));
		inETU0151C010Map.put(ETU0151C010CBSMsg.HUKUSU_NO_UM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.HUKUSU_NO_UM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.BMP_TG_KSSU_BMP_HISTG_KSSU, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.BMP_TG_KSSU_BMP_HISTG_KSSU));
		inETU0151C010Map.put(ETU0151C010CBSMsg.AUTO_HAISHI_RYSHZM_NO_NUM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.AUTO_HAISHI_RYSHZM_NO_NUM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.GRP_ID, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.GRP_ID));
		inETU0151C010Map.put(ETU0151C010CBSMsg.CUST_MSKM_DAY, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.CUST_MSKM_DAY));
		inETU0151C010Map.put(ETU0151C010CBSMsg.ITENS_MSKM_DAY, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.ITENS_MSKM_DAY));
		inETU0151C010Map.put(ETU0151C010CBSMsg.CHBF_MSKM_DAY, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.CHBF_MSKM_DAY));
		inETU0151C010Map.put(ETU0151C010CBSMsg.UK_KYOTEN_NO_TRAT_SVC, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.UK_KYOTEN_NO_TRAT_SVC));
		inETU0151C010Map.put(ETU0151C010CBSMsg.ITENS_JIGYOSHA_NM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.ITENS_JIGYOSHA_NM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.ITENS_JIGYOSHA_NO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.ITENS_JIGYOSHA_NO));
		inETU0151C010Map.put(ETU0151C010CBSMsg.ITENS_JIGYOSHA_DOMAIN, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.ITENS_JIGYOSHA_DOMAIN));
		inETU0151C010Map.put(ETU0151C010CBSMsg.ITENS_JIGYOSHA_TNT_NM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.ITENS_JIGYOSHA_TNT_NM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.ITENS_JIGYOSHA_TELNO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.ITENS_JIGYOSHA_TELNO));
		inETU0151C010Map.put(ETU0151C010CBSMsg.KIJIRAN_1_ITNM_JGSMK, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.KIJIRAN_1_ITNM_JGSMK));
		inETU0151C010Map.put(ETU0151C010CBSMsg.KIJIRAN_2_ITNM_JGSMK, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.KIJIRAN_2_ITNM_JGSMK));
		inETU0151C010Map.put(ETU0151C010CBSMsg.KIJIRAN_1_NOSK_JGSMK, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.KIJIRAN_1_NOSK_JGSMK));
		inETU0151C010Map.put(ETU0151C010CBSMsg.KIJIRAN_2_NOSK_JGSMK, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.KIJIRAN_2_NOSK_JGSMK));
		inETU0151C010Map.put(ETU0151C010CBSMsg.JI_SHANAI_KIJIRAN, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.JI_SHANAI_KIJIRAN));
		inETU0151C010Map.put(ETU0151C010CBSMsg.PORT_OUT_KEISHA_NM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PORT_OUT_KEISHA_NM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.PORT_OUT_KEISHA_KANA, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PORT_OUT_KEISHA_KANA));
		inETU0151C010Map.put(ETU0151C010CBSMsg.SETPLACE_ADCHG_UM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.SETPLACE_ADCHG_UM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.SETPLC_HTNY_SKBT_CITY_NM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.SETPLC_HTNY_SKBT_CITY_NM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.SETPLC_HTNY_SKBT_OAZTSU_NM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.SETPLC_HTNY_SKBT_OAZTSU_NM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.SETPLC_HTNY_SKBT_AZCHO_NM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.SETPLC_HTNY_SKBT_AZCHO_NM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.SETPLACE_PCD, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.SETPLACE_PCD));
		inETU0151C010Map.put(ETU0151C010CBSMsg.SETPLACE_STATE_NM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.SETPLACE_STATE_NM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.SETPLACE_CITY_NM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.SETPLACE_CITY_NM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.SETPLACE_OAZTSU_NM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.SETPLACE_OAZTSU_NM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.SETPLACE_AZCHO_NM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.SETPLACE_AZCHO_NM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.SETPLACE_BNCHIGO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.SETPLACE_BNCHIGO));
		inETU0151C010Map.put(ETU0151C010CBSMsg.SETPLACE_ADRTTM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.SETPLACE_ADRTTM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.CUST_RRKS, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.CUST_RRKS));
		inETU0151C010Map.put(ETU0151C010CBSMsg.KOJI_KIBO_YMD, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.KOJI_KIBO_YMD));
		inETU0151C010Map.put(ETU0151C010CBSMsg.KOJI_JSSI_WAY, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.KOJI_JSSI_WAY));
		inETU0151C010Map.put(ETU0151C010CBSMsg.SOTEI_SWITCH_TIMEZ, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.SOTEI_SWITCH_TIMEZ));
		inETU0151C010Map.put(ETU0151C010CBSMsg.KOJI_TIMEZ_DIV, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.KOJI_TIMEZ_DIV));
		inETU0151C010Map.put(ETU0151C010CBSMsg.ITENM_DAIHYO_JIGYOSHA_NM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.ITENM_DAIHYO_JIGYOSHA_NM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.ITENM_DAIHYO_JIGYOSHA_NO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.ITENM_DAIHYO_JIGYOSHA_NO));
		inETU0151C010Map.put(ETU0151C010CBSMsg.KISAI_CHGE_MSKM_CNT, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.KISAI_CHGE_MSKM_CNT));
		inETU0151C010Map.put(ETU0151C010CBSMsg.KISAI_CHGE_MSKM_DAY, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.KISAI_CHGE_MSKM_DAY));
		inETU0151C010Map.put(ETU0151C010CBSMsg.KISAI_CHGE_MSKM_RSN, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.KISAI_CHGE_MSKM_RSN));
		inETU0151C010Map.put(ETU0151C010CBSMsg.OLD_TOGO_ORDER_ID, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.OLD_TOGO_ORDER_ID));
		inETU0151C010Map.put(ETU0151C010CBSMsg.MSKM_CHOK_NISU, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.MSKM_CHOK_NISU));
		inETU0151C010Map.put(ETU0151C010CBSMsg.CANCEL_DATE, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.CANCEL_DATE));
		inETU0151C010Map.put(ETU0151C010CBSMsg.CANCEL_SKBT, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.CANCEL_SKBT));
		inETU0151C010Map.put(ETU0151C010CBSMsg.CANCEL_OTAI_DAY, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.CANCEL_OTAI_DAY));
		inETU0151C010Map.put(ETU0151C010CBSMsg.CANCEL_TONYU_TNT_NM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.CANCEL_TONYU_TNT_NM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.CANCEL_TONYU_TNT_TELNO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.CANCEL_TONYU_TNT_TELNO));
		inETU0151C010Map.put(ETU0151C010CBSMsg.PORT_OUT_CNRE, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PORT_OUT_CNRE));
		inETU0151C010Map.put(ETU0151C010CBSMsg.CL_DATE, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.CL_DATE));
		inETU0151C010Map.put(ETU0151C010CBSMsg.CL_SKBT, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.CL_SKBT));
		inETU0151C010Map.put(ETU0151C010CBSMsg.UWY_SKBT, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.UWY_SKBT));
		inETU0151C010Map.put(ETU0151C010CBSMsg.SERVER_ARIV_DATE, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.SERVER_ARIV_DATE));
		inETU0151C010Map.put(ETU0151C010CBSMsg.BMP_ORDER_NO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.BMP_ORDER_NO));
		inETU0151C010Map.put(ETU0151C010CBSMsg.KANREN_ORDER_CNT, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.KANREN_ORDER_CNT));
		inETU0151C010Map.put(ETU0151C010CBSMsg.BMP_TG_KISN_CNT_NOSK_GT, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.BMP_TG_KISN_CNT_NOSK_GT));
		inETU0151C010Map.put(ETU0151C010CBSMsg.CHUMN_KIND, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.CHUMN_KIND));
		inETU0151C010Map.put(ETU0151C010CBSMsg.ORDER_STAT, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.ORDER_STAT));
		inETU0151C010Map.put(ETU0151C010CBSMsg.NOSK_DAIHYO_JGS_NM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.NOSK_DAIHYO_JGS_NM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.NOSK_DAIHYO_JGS_NO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.NOSK_DAIHYO_JGS_NO));
		inETU0151C010Map.put(ETU0151C010CBSMsg.KJ_DAY_RE_ADJ_REQ_DATE, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.KJ_DAY_RE_ADJ_REQ_DATE));
		inETU0151C010Map.put(ETU0151C010CBSMsg.KJ_DAY_RE_ADJ_REQ_TNT_NM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.KJ_DAY_RE_ADJ_REQ_TNT_NM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.KJ_DAY_RE_ADJ_REQ_TNT_TLN, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.KJ_DAY_RE_ADJ_REQ_TNT_TLN));
		inETU0151C010Map.put(ETU0151C010CBSMsg.KJ_DAY_RE_ADJ_REQ_KIJIRAN, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.KJ_DAY_RE_ADJ_REQ_KIJIRAN));
		inETU0151C010Map.put(ETU0151C010CBSMsg.TELNO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.TELNO));
		inETU0151C010Map.put(ETU0151C010CBSMsg.SKBT_NO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.SKBT_NO));
		inETU0151C010Map.put(ETU0151C010CBSMsg.NAIBU_SKBT_NO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.NAIBU_SKBT_NO));
		inETU0151C010Map.put(ETU0151C010CBSMsg.PORT_OUT_CHBF_SKBT_NO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PORT_OUT_CHBF_SKBT_NO));
		inETU0151C010Map.put(ETU0151C010CBSMsg.PSTN_KANYKN, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PSTN_KANYKN));
		inETU0151C010Map.put(ETU0151C010CBSMsg.PSTN_DRYCOPPER_USE_UM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PSTN_DRYCOPPER_USE_UM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.PSTN_DRYCOPPER_KISN_ID, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PSTN_DRYCOPPER_KISN_ID));
		inETU0151C010Map.put(ETU0151C010CBSMsg.PSTN_DRYCOPPER_MSKMJIG_NO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PSTN_DRYCOPPER_MSKMJIG_NO));
		inETU0151C010Map.put(ETU0151C010CBSMsg.PSTN_DRYCOPPER_MKM_SKBT_NO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PSTN_DRYCOPPER_MKM_SKBT_NO));
		inETU0151C010Map.put(ETU0151C010CBSMsg.ITNS_JGS_USE_CD, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.ITNS_JGS_USE_CD));
		inETU0151C010Map.put(ETU0151C010CBSMsg.PSTN_PAUSE_HYO_SHS, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PSTN_PAUSE_HYO_SHS));
		inETU0151C010Map.put(ETU0151C010CBSMsg.PSTN_PAUSE_HYO_SHS_OTR_AD, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PSTN_PAUSE_HYO_SHS_OTR_AD));
		inETU0151C010Map.put(ETU0151C010CBSMsg.PSTN_ITENS_JIGYOSHA_CFM_ID, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PSTN_ITENS_JIGYOSHA_CFM_ID));
		inETU0151C010Map.put(ETU0151C010CBSMsg.PSTN_ITENS_KOJI_TYPE_SNAI, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PSTN_ITENS_KOJI_TYPE_SNAI));
		inETU0151C010Map.put(ETU0151C010CBSMsg.PSTN_ITENS_KOJI_TYPE_SGAI, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PSTN_ITENS_KOJI_TYPE_SGAI));
		inETU0151C010Map.put(ETU0151C010CBSMsg.KIJIRAN_ITENS_JGSMK, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.KIJIRAN_ITENS_JGSMK));
		inETU0151C010Map.put(ETU0151C010CBSMsg.ODKH_JUDGE_TK_KH, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.ODKH_JUDGE_TK_KH));
		inETU0151C010Map.put(ETU0151C010CBSMsg.ODKH_JUDGE_TK_FAIL_RSN, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.ODKH_JUDGE_TK_FAIL_RSN));
		inETU0151C010Map.put(ETU0151C010CBSMsg.ODKH_JDGTK_FRSN_OTR_RSN, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.ODKH_JDGTK_FRSN_OTR_RSN));
		inETU0151C010Map.put(ETU0151C010CBSMsg.UK_TNT_ID, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.UK_TNT_ID));
		inETU0151C010Map.put(ETU0151C010CBSMsg.UK_TNT_TELNO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.UK_TNT_TELNO));
		inETU0151C010Map.put(ETU0151C010CBSMsg.KOJI_TNT_NM, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.KOJI_TNT_NM));
		inETU0151C010Map.put(ETU0151C010CBSMsg.KOJI_TNT_TELNO, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.KOJI_TNT_TELNO));
		inETU0151C010Map.put(ETU0151C010CBSMsg.TK_KH, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.TK_KH));
		inETU0151C010Map.put(ETU0151C010CBSMsg.TK_FAIL_RSN, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.TK_FAIL_RSN));
		inETU0151C010Map.put(ETU0151C010CBSMsg.TK_FAIL_RSN_OTR_RSN, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.TK_FAIL_RSN_OTR_RSN));
		inETU0151C010Map.put(ETU0151C010CBSMsg.HOJIN_KOJIN_CD, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.HOJIN_KOJIN_CD));
		inETU0151C010Map.put(ETU0151C010CBSMsg.PORT_OUT_UK_TRKM_YMD, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.PORT_OUT_UK_TRKM_YMD));
		inETU0151C010Map.put(ETU0151C010CBSMsg.UPD_DTM_BF, getRsltMsgListValue(outMapETU0151B040, ETU0151B040CBSMsg.ETU0151B040CBSMSG1LIST, ETU0151B040CBSMsg1List.UPD_DTM));

		return inETU0151C010Map;
	}

	/**
	 * ETU0151C010:ポートアウト受付情報変更の呼び出しを行います。 <br>
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws Exception
	 */
	private void callETU0151C010(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String funcCD, Map<Object, Object> inMap) throws Throwable
	{
		// SC呼び出し用
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		// パラメータマップ用
		HashMap<String, Object> paramMap = setSCInputCommonData(param, new HashMap<String, Object>());
		// SC結果格納用
		Map<?, ?> result = null;
		// マッピング用
		CAANMsg template = null;

		// ポートアウト受付情報変更
		JSCSV002801MapperCC JSCSV002801Mapper = new JSCSV002801MapperCC();
		template = JSCSV002801Mapper.editInETU0151C010Msg(param, fixedText, funcCD, inMap); // 上りマッピング
		result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
		JSCSV002801Mapper.editOutMsg(result, param, fixedText); // 下りマッピング
		checkReturnCode(param);
	}

	
	/**
	 * 電話サービスオーダ発行新規登録SC呼び出し処理
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param logger BPMLogManager
	 * @param paramTelSvcOrd 追加リクエストパラメータ
	 * @return 実行結果
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	private Map<?, ?> executeTelSvcOrder(SessionHandle handle, IRequestParameterReadWrite param, ILogger logger, Map paramTelSvcOrd) throws Throwable
	{

		/***************************************************/
		/** 電話サービスオーダ発行新規登録SCへの上りマッピング */
		/***************************************************/
		String templateId = "ESC0051D010";

		HashMap<String, Object> paramMap = JSCTelSvcScParamHenshu.createScParam(param, templateId, ESC0051D010CBSMsg.class, paramTelSvcOrd, "1");

		/***************************************************/
		/** ＳＣ呼出実行 */
		/***************************************************/
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, handle);
		logger.log(BasicLevel.DEBUG, "電話サービスオーダ発行新規登録SC呼び出し完了" + result);

		return result;
	}

	/**
	 * ＢＰチェック用の入力パラメータを作成する。
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return ＢＰチェック用パラメータ
	 */
	@SuppressWarnings("unchecked")
	public HashMap getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
	{
		// BPチェックは行わない(0件のCAANMsg配列を返却)
		HashMap param4BpChek = new HashMap();
		param4BpChek.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[] {});
		return param4BpChek;
	}

	/**
	 * ＢＰチェック結果を編集する。 <br />
	 * 
	 * @param param リクエストパラメータ
	 * @param caanMsgs サービスインターフェイス用のパラメータ配列
	 * @param returnCode リターンコード
	 * @return リクエストパラメータ
	 */
	public IRequestParameterReadWrite editErrorInfo(IRequestParameterReadWrite param, CAANMsg[] caanMsgs, Integer returnCode)
	{
		// BPチェックを行わない為、チェック結果の編集も不要
		return param;
	}
	

	/**
	 * SCインプット共通データ設定処理を行います。 <br>
	 * 
	 * @param param
	 * @param paramMap
	 * @return パラメータマップ
	 * @throws RequestParameterException
	 */
	private HashMap<String, Object> setSCInputCommonData(IRequestParameterReadWrite param, HashMap<String, Object> paramMap) throws RequestParameterException
	{
		/* SCインプット共通データ */
		// **********************************************
		// 【取得元：電文ヘッダ(ヘッダ)】
		// **********************************************
		// 電文ID
		paramMap.put(JCMConstants.TRANZACTION_ID_KEY, param.getTelegramID());
		// ユースケースID
		paramMap.put(JCMConstants.USECASE_ID_KEY, param.getUsecaseID());
		// オペレーションID
		paramMap.put(JCMConstants.OPERATION_ID_KEY, param.getOperationID());
		// サービス呼び出し区分
		paramMap.put(JCMConstants.CALL_TYPE_KEY, param.getCallType());

		// **********************************************
		// 【取得元：ユーザエリア(コントロールマップ)】
		// **********************************************
		// 依頼先ホスト名
		paramMap.put(JCMConstants.CLIENT_HOST_NAME_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTNAME));
		// 依頼元IPアドレス
		paramMap.put(JCMConstants.CLIENT_IP_ADDRESS_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTIP));
		// 依頼元画面ID
		paramMap.put(JCMConstants.INVOKE_GAMEN_ID_KEY, param.getControlMapData(SCControlMapKeys.REQ_VIEWID));
		// オペレータID
		paramMap.put(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));

		return paramMap;
	}

	/**
	 * サービスインターフェース呼び出し処理です。 <br>
	 * 
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param siInMap サービスインターフェースの入力マップ
	 * @return 業務データ
	 * @throws Throwable
	 */
	private CAANMsg callSvcInter(SessionHandle handle, IRequestParameterReadWrite param, HashMap<String, Object> siInMap, String fixedText) throws Throwable
	{
		// サービスI/F実行するサービスを生成
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		// サービスインターフェースの呼び出し
		Map<?, ?> rsltMap = scCall.run(siInMap, handle);
		// エラーマッピング処理は行わない (レスポンスに記載されてしまうため、ETU0051B010CBSMsg1List type="list"等が記載される)

		// エラーチェック処理
		errChk(rsltMap);
		// 業務データ取得処理
		CAANMsg workData = getWorkCAANMsg(rsltMap);

		return workData;
	}

	/**
	 * 業務データの取得処理です。 <br>
	 * 
	 * @param workMapKey 業務データのマップキー
	 * @param rslt SVIFの実行結果データ
	 * @return 業務データ
	 */
	private CAANMsg getWorkCAANMsg(Map<?, ?> rslt)
	{
		CAANMsg[] templates = (CAANMsg[]) rslt.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];

		return parentTemplate;
	}

	/**
	 * エラーチェック処理です。 <br>
	 * 
	 * @param msgList サービスインタフェース実行結果
	 * @return void
	 * @throws SCCallException
	 */
	private void errChk(Map<?, ?> msgList) throws SCCallException
	{
		CAANMsg[] templates = (CAANMsg[]) msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Integer returnCode = (Integer) msgList.get(JCMConstants.RET_CD_INT_KEY);

		// ステータス取得
		int templateStatus = template.getInt(JCMConstants.STATUS_INT_KEY);

		if ((0 != returnCode.intValue()) || (0 != templateStatus))
		{
			String errMsg = JKKTelnoStatJudgeConstCC.ERR_MSG;
			throw new SCCallException(errMsg, String.valueOf(returnCode), templateStatus);
		}
	}

	/**
	 * S/IFの実行結果から指定されたキーに該当する値を取得する S/IFの実行結果から指定のキー(リスト)で取得できるメッセージリストを取得する。 
	 * メッセージリストが空でなければ、先頭行のメッセージから指定のキー(値)に該当する値を取得し、返却する。
	 * 
	 * @param trgtNMsg 対象メッセージ
	 * @param listKey キー(リスト)
	 * @param valueKey キー(値)
	 * @return 値
	 */
	private String getRsltMsgListValue(CAANMsg trgtNMsg, String listKey, String valueKey)
	{
		String value = null;
		if (trgtNMsg != null)
		{
			CAANMsg[] rsltMsgList = trgtNMsg.getCAANMsgList(listKey);
			if (rsltMsgList != null && rsltMsgList.length > 0)
			{
				CAANMsg rsltMsg = rsltMsgList[0];
				value = rsltMsg.getString(valueKey);
			}
		}
		return value;
	}

	/**
	 * SCのリターンコードをチェックし、正常でない場合は例外を送出します。 <br>
	 * 
	 * @param param リクエストパラメータ
	 * @throws CCException
	 * @throws RequestParameterException
	 */
	private void checkReturnCode(IRequestParameterReadWrite param) throws RequestParameterException, CCException
	{
		if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
		{
			// ステータスが単項目エラー以上であれば例外をスロー
			throw new CCException(SC_ERROR_STRING, new Exception());
		}
	}

	/**
	 * SCの実行ステータスの取得処理を行います。 <br>
	 * 
	 * @param param リクエストパラメータ
	 * @return SCの実行ステータス
	 * @throws RequestParameterException
	 */
	private int getReturnCode(IRequestParameterReadWrite param) throws RequestParameterException
	{
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			return -1;
		}
		else
		{
			return Integer.parseInt((String) param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}
	}

	/**
	 * 単一CAANMsgのマッピング処理を行います。 <br>
	 * 
	 * @param paramMap パラメータマップ
	 * @param template テンプレート
	 * @return パラメータマップ
	 * @throws RequestParameterException
	 */
	private HashMap<String, Object> putParamMap(HashMap<String, Object> paramMap, CAANMsg template) throws RequestParameterException
	{
		CAANMsg[] templates = { template };
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}

	/**
	 * サービスコンポーネント実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 * 
	 * @param param リクエストパラメータ
	 * @param templates テンプレート
	 * @param returnCode リターンコード
	 * @param fixedText
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException RequestParameterException
	 */
	public IRequestParameterReadWrite editErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, String fixedText) throws RequestParameterException
	{
		// BPチェックは行わない
		return param;
	}
	
}
