/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom, 2011
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKSodSendCC
*   ソースファイル名：JKKSodSendCC.java
*   作成者          ：富士通
*   日付            ：2012年06月17日
*＜機能概要＞
*   SOD送信CCクラスです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2012/06/17   FJ）        新規作成
*   v1.00.00    2012/06/17   FJ）山本   【IT1-2012-0000711】IPv6認証ID、IPv6認証IDパスワード追加
*   v3.00.00	2012/07/05   FJ）山本   【ANK-0035-00-00】フェムトセル対応
*	v6.00.00	2013/10/11   FJ)五十嵐	【ANK-1577-00-00】メール機能強化
*   v7.00.00    2013/12/04   FJ)立和名  【ANK-1578-00-00】多機能ルータ対応
*   v8.00.00    2014/05/19   FJ)寺田    【ANK-2113-00-00】【ＮＯ．１４７８】SOD課題対応
*   v8.01.00    2014/05/30   FJ)寺田    【ANK-2113-00-00】【ＮＯ．１４７８】SOD課題対応(追加分)
*  v10.00.00    2014/10/27   FJ)北谷    【ANK-2343-00-00】画面発行時の機器解約&消去SODに優先フラグ付与
*  v26.00.00	2016/07/19   FJ)藤本	【ANK-2765-00-00】認証IDの統一化
*  v48.00.00	2020/03/09   FJ)舘山    【OM-2020-0000318】
*  v49.00.00    2020/03/31   FJ)三原    【ANK-3834-00-00】マルウェアブロッキング
*  v50.00.00    2020/05/26   FJ)澤田	【ANK-3754-00-00】トビラフォン対応
*  v56.00.00    2021/11/11   FJ)三原    【ANK-3876-00-00】【eo定期】PSTNマイグレーションに伴うENUMサーバーへのSOD配信対応
*  v73.00.00    2025/02/10   FJ)橋本    【#86502】SODの送信時の優先度について
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;

import com.fujitsu.futurity.bp.custom.constant.JKKSodSendConstCC;
import com.fujitsu.futurity.bp.custom.constant.JKKSvcConst;
import com.fujitsu.futurity.bp.x21.bpm.ServiceComponentRequestInvoker;
import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadOnly;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.SCCallException;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.common.JSYbpmLog;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.mapping.bp.common.TemplateErrorUtil;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;

import eo.common.constant.JKKSodSendReqConst;
import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1041B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1041B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1041C010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1041D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1081C010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKKA0020003CBSMsg;
import eo.ejb.cbs.cbsmsg.EKKA0020003CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKKA0020003CBSMsg2List;
import eo.ejb.cbs.cbsmsg.ESC0031D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ESC0041D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ESC0051D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0411A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0411A010CBSMsg1List;
// 20140522 ANK-2113-00-00 Add Start
import eo.ejb.cbs.cbsmsg.EKK1081B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1081B001CBSMsg1List;
// 20140522 ANK-2113-00-00 Add End

/**
 * SOD送信CCです。<p>
 * <br>
 * @author FJ
 */
public class JKKSodSendCC extends AbstractCommonComponent
{

	/** SC呼び出し部品 */
	ServiceComponentRequestInvoker scCall = null;
	
	/**
	 * KK1081オーダ発行条件の更新年月日時分秒（最新）を保持する
	 * @since 2012-07-19　ST2-2012-0001384対応
	 */
	private HashMap<String, String> newerUpdDtm = null;



	/**
	 * 初期処理です。
	 * 
	 * <br>
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @return void
	 * @throws Throwable 
	 */
	private void init(IRequestParameterReadWrite param, String fixedText)
	throws Throwable
	{
		// SC呼び出し部品のインスタンス生成
		if (null == this.scCall)
		{
			this.scCall = new ServiceComponentRequestInvoker();
		}

		//↓↓↓2012-07-19追加　ST2-2012-0001384対応↓↓↓
		this.newerUpdDtm = new HashMap<String, String>();
		//↑↑↑2012-07-19追加　ST2-2012-0001384対応↑↑↑

		// コントロールマップのエラー情報を初期化
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, new ArrayList<Object>());
	}

	/**
	 * チェック処理です。<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @return サービスコンポーネント実行用CAANMsg
	 * @throws Throwable 
	 * @exception RequestParameterExceptionがスローされます。
	 */
	public HashMap<String, Object> getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) 
	throws Throwable
	{
		// 初期処理
		init(param, fixedText);

		return null;
	}

	/**
	 *<DL>
	 *<DT>エラー転記処理です。
	 *<DD>サービスコンポーネント実行後に、IRequestParameterReadWriteにエラー情報をマッピングする
	 *</DL>
	 * 
	 * @param param (I) 業務データ取得・書込用I/F
	 * @param templates (I) CAANMsgクラス配列
	 * @param returnCode (I) リターンコード
	 * @param fixedText (I) ユーザ任意文字列
	 * @return 業務データ取得・書込用I/F
	 * @throws Throwable 
	 */
	public IRequestParameterReadWrite editErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, String fixedText)
	throws Throwable
	{
		return null;
	}

	/**
	 * SOD送信処理です。
	 * 
	 * SOD送信処理を実行します。
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @return 業務データ取得・書込用I/F
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite executeSodSend(SessionHandle handle, 	IRequestParameterReadWrite param, String fixedText)
	throws Throwable
	{
//		try {
		// 初期処理
		init(param, fixedText);
		
		// リクエストパラメータの取得処理
		HashMap trgtData = (HashMap)param.getData(fixedText);
		// 対象データリスト取得
		ArrayList<HashMap<String, Object>> trgtDataList = (ArrayList<HashMap<String, Object>>)trgtData.get(JKKSodSendConstCC.TRGT_DATA_LIST);
		
		for (HashMap<String, Object> trgtDataInfo : trgtDataList)
		{
			ArrayList<HashMap<String, Object>> svcOrderInfoList = (ArrayList<HashMap<String, Object>>)trgtDataInfo.get(JKKSodSendConstCC.SVC_ORDER_INFO_LIST);
			ArrayList<HashMap<String, Object>> telSvcOrderInfoList = (ArrayList<HashMap<String, Object>>)trgtDataInfo.get(JKKSodSendConstCC.TEL_SVC_ORDER_INFO_LIST);
			ArrayList<HashMap<String, Object>> mobileOrderInfoList = (ArrayList<HashMap<String, Object>>)trgtDataInfo.get(JKKSodSendConstCC.MOBILE_ORDER_INFO_LIST);
//↓↓↓ANK-1578-00-00 多機能ルータ対応のついでの品質向上（電話サービスオーダと紐付け）↓↓↓
			HashMap<String, Object> odrHakkoJokenInfo = (HashMap<String, Object>)trgtDataInfo.get(JKKSodSendConstCC.ODR_HAKKO_JOKEN_INFO);
//↑↑↑ANK-1578-00-00 多機能ルータ対応のついでの品質向上（電話サービスオーダと紐付け）↑↑↑
			
			// 2012/07/05 TNはサービス側で参照する start
			// 必要であれば宅内機器.MACアドレスを取得
			getMACAdress(param, svcOrderInfoList, handle, fixedText, "net");
			getMACAdress(param, telSvcOrderInfoList, handle, fixedText, "tel");
			getMACAdress(param, mobileOrderInfoList, handle, fixedText, "mobile");
			// 2012/07/05 TNはサービス側で参照する end
//↓↓↓2013-12-04追加　ANK-1578-00-00多機能ルータ↓↓↓
			getMACAdress(param, telSvcOrderInfoList, handle, fixedText, JKKSodSendConstCC.ITS_TKNRT);
//↑↑↑2013-12-04追加　ANK-1578-00-00多機能ルータ↑↑↑
			
			// オーダ発行フラグ
			boolean odrHakkoFlg = false;
			// BBRにOLS機能が無い場合のフラグ
			boolean olsNashiFlg = false;    // ST1-2012-0000319 2012/08/17 add
			
			for (int i = 0; svcOrderInfoList != null && i < svcOrderInfoList.size(); i++)
			{
				HashMap<String, Object> svcOrderInfo = svcOrderInfoList.get(i);
				//↓↓↓2012-07-18追加、ST1-2012-0000120対応↓↓↓
				//オーダ内容コード 147（ルーター向け接続情報・登録）で必須データ欠損の場合サービスオーダ受付をスルー
				if (isIllegalSvcOdr147(svcOrderInfo))
				{
					//continue;
				}
				//↑↑↑2012-07-18追加、ST1-2012-0000120対応↑↑↑
				if (svcOrderInfo != null && !svcOrderInfo.isEmpty())
				{
					// ST1-2012-0000319 2012/08/17 start
					//OLS機能無しの場合はSODを発行せずに、発行したとみなす
					//0Aのときのみ　EZM0411A010を用いてOLS機能有無の取得
					String svc_order_cd = (String)svcOrderInfo.get(JKKSodSendConstCC.SOI_SVC_ORDER_CD);
					if ("0A".equals(svc_order_cd)){
						HashMap<String, Object> inMapEZM0411A010 = editInMsgEZM0411A010(param, svcOrderInfo);
						CAANMsg outMapEZM0411A010 = callSvcInter(handle, param, fixedText, inMapEZM0411A010);
						CAANMsg[] rsltMsgEZM0411A010List = outMapEZM0411A010.getCAANMsgList(EZM0411A010CBSMsg.EZM0411A010CBSMSG1LIST);
						if (rsltMsgEZM0411A010List != null && rsltMsgEZM0411A010List.length > 0){
							CAANMsg rsltMsgEKK1041B001 = rsltMsgEZM0411A010List[0];
							if("0".equals(rsltMsgEKK1041B001.getString(EZM0411A010CBSMsg1List.OLS_KINO_UM))){
								olsNashiFlg = true;
							}
						}
					}
					//　OLS無しの場合は実行しない
					if(!olsNashiFlg){
						// サービスオーダ受付を実施
						HashMap<String, Object> inMapESC0041D010 = editInMsgESC0041D010(param, svcOrderInfo);
//↓↓↓ANK-1578-00-00 多機能ルータ対応のついでの品質向上（サービスオーダと紐付け）↓↓↓
//						callSvcInter(handle, param, fixedText, inMapESC0041D010);
						CAANMsg rsltMsg = callSvcInter(handle, param, fixedText, inMapESC0041D010);
						String ukeDtm = rsltMsg.getString(ESC0041D010CBSMsg.SVC_ORDER_UK_DTM);
						odrHakkoJokenInfo.put(JKKSodSendConstCC.SVC_ODR_UK_DTM, ukeDtm);
					}
					else
					{
						odrHakkoJokenInfo.put(JKKSodSendConstCC.SVC_ODR_UK_DTM, JCCBPCommon.getSysDateTimeStamp());
//↑↑↑ANK-1578-00-00 多機能ルータ対応のついでの品質向上（サービスオーダと紐付け）↑↑↑
					}
					// ST1-2012-0000319 2012/08/17 end
					odrHakkoFlg = true;
				}
			}
			
			for (int i = 0; telSvcOrderInfoList != null && i < telSvcOrderInfoList.size(); i++)
			{
				HashMap<String, Object> telSvcOrderInfo = telSvcOrderInfoList.get(i);
				if (telSvcOrderInfo != null && !telSvcOrderInfo.isEmpty())
				{
					// 電話サービスオーダ受付を実施
// 20140522 ANK-2113-00-00 Mod Start
//					HashMap<String, Object> inMapESC0051D010 = editInMsgESC0051D010(param, telSvcOrderInfo);
					String teSvcOdrCd = (String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_TEL_SVC_ORDER_CD);
					String yokyuSbtCd = (String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_YOKYU_SBT_CD);
// 20140530 ANK-2113-00-00 Mod Start
//					String addTrnId = "";
					String updTrnId = "";
// 20140530 ANK-2113-00-00 Mod End
					// ANK-2343-00-00 2014/10/27 mod start
					// サービスオーダがOLSまたは多機能ルータで、要求種別が新規または変更または解約または消去の場合
					if (("20".equals(teSvcOdrCd) || "26".equals(teSvcOdrCd)) &&
						("02".equals(yokyuSbtCd) || "04".equals(yokyuSbtCd)
						 || "03".equals(yokyuSbtCd) || "08".equals(yokyuSbtCd))
					) {
					// ANK-2343-00-00 2014/10/27 mod end
						HashMap<String, Object> inMapEKK1081B001 = editInMsgEKK1081B001(param, telSvcOrderInfo);
						CAANMsg outMapEKK1081B001 = callSvcInter(handle, param, fixedText, inMapEKK1081B001);
						CAANMsg[] rsltMsgEKK1081B001List = outMapEKK1081B001.getCAANMsgList(EKK1081B001CBSMsg.EKK1081B001CBSMSG1LIST);
						if (rsltMsgEKK1081B001List != null && rsltMsgEKK1081B001List.length > 0) {
							CAANMsg rsltMsgEKK1081B001 = rsltMsgEKK1081B001List[0];
// 20140530 ANK-2113-00-00 Mod Start
//							addTrnId = rsltMsgEKK1081B001.getString(EKK1081B001CBSMsg1List.ADD_TRN_ID);
							updTrnId = rsltMsgEKK1081B001.getString(EKK1081B001CBSMsg1List.UPD_TRN_ID);
// 20140530 ANK-2113-00-00 Mod End
						}
					}
// ▽▽▽ OM-2020-0000318 ADD START
					// 住所変更確定かつ、ネットの
					String updOdrDtlCd = getOdrDtlCdForAdChg( handle, 
							 param, 
							 fixedText, 
							 teSvcOdrCd, 
							 yokyuSbtCd, 
							 updTrnId, 
							 telSvcOrderInfo);
//▲▲▲ OM-2020-0000318 ADD END
// 20140530 ANK-2113-00-00 Mod Start
//					HashMap<String, Object> inMapESC0051D010 = editInMsgESC0051D010(param, telSvcOrderInfo, addTrnId);
					HashMap<String, Object> inMapESC0051D010 = editInMsgESC0051D010(param, telSvcOrderInfo, updTrnId, updOdrDtlCd);
// 20140530 ANK-2113-00-00 Mod End
// 20140522 ANK-2113-00-00 Mod End
//↓↓↓ANK-1578-00-00 多機能ルータ対応のついでの品質向上（電話サービスオーダと紐付け）↓↓↓
//					callSvcInter(handle, param, fixedText, inMapESC0051D010);
					CAANMsg rsltMsg = callSvcInter(handle, param, fixedText, inMapESC0051D010);
					String ukeDtm = rsltMsg.getString(ESC0051D010CBSMsg.TEL_SVC_ORDER_UK_DTM);
					odrHakkoJokenInfo.put(JKKSodSendConstCC.SVC_ODR_UK_DTM, ukeDtm);
//↑↑↑ANK-1578-00-00 多機能ルータ対応のついでの品質向上（電話サービスオーダと紐付け）↑↑↑
					odrHakkoFlg = true;
				}
			}
			
			for (int i = 0; mobileOrderInfoList != null && i < mobileOrderInfoList.size(); i++)
			{
				HashMap<String, Object> mobileOrderInfo = mobileOrderInfoList.get(i);
				if (mobileOrderInfo != null && !mobileOrderInfo.isEmpty())
				{
					// モバイルオーダ受付を実施
					HashMap<String, Object> inMapESC0031D010 = editInMsgESC0031D010(param, mobileOrderInfo);
//↓↓↓ANK-1578-00-00 多機能ルータ対応のついでの品質向上（モバイルオーダと紐付け）↓↓↓
//					callSvcInter(handle, param, fixedText, inMapESC0031D010);
					CAANMsg rsltMsg = callSvcInter(handle, param, fixedText, inMapESC0031D010);
					String ukeDtm = rsltMsg.getString(ESC0031D010CBSMsg.MOBILE_ORDER_UK_DTM);
					odrHakkoJokenInfo.put(JKKSodSendConstCC.SVC_ODR_UK_DTM, ukeDtm);
//↑↑↑ANK-1578-00-00 多機能ルータ対応のついでの品質向上（モバイルオーダと紐付け）↑↑↑
					odrHakkoFlg = true;
				}
			}
			
			if (odrHakkoFlg)
			{
				// オーダ発行フラグがtrueの場合
				// ※サービス制御にオーダ情報を連携した場合にのみ、オーダ設定・オーダ発行条件の更新処理を行う
				
				ArrayList<HashMap<String, Object>> odrSetInfoList = (ArrayList<HashMap<String, Object>>)trgtDataInfo.get(JKKSodSendConstCC.ODR_SET_INFO_LIST);
				for (int i = 0; odrSetInfoList != null && i < odrSetInfoList.size(); i++)
				{
					HashMap<String, Object> odrSetInfo = odrSetInfoList.get(i);
					
					String odrHakkoJokenCd = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_ODR_HAKKO_JOKEN_CD);
					
					if (!(JKKSvcConst.ODR_HAKKO_JOKEN_CD_TEL_SVC_START_JOKEN.equals(odrHakkoJokenCd) ||
							JKKSvcConst.ODR_HAKKO_JOKEN_CD_KKTK_START_JOKEN.equals(odrHakkoJokenCd) ||
							JKKSvcConst.ODR_HAKKO_JOKEN_CD_KKTK_END_JOKEN.equals(odrHakkoJokenCd))
						&& !olsNashiFlg)    // ST1-2012-0000319 2012/08/17 add
					{
						// オーダ発行条件コードが(光電話サービス開始条件、機器提供開始条件、機器提供終了条件)以外の場合
						
						String orderSbtCd = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_ORDER_SBT_CD);
						String svcOrderCd = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_ORDER_CD);
						
						// オーダ設定更新パターン判定
						int ordSetPattern = getOrdSetUpdJdg(orderSbtCd, svcOrderCd);
						
						CAANMsg rsltMsgEKK1041B001 = null;
						
//↓↓↓2013-12-04追加　ANK-1578-00-00 多機能ルータ対応↓↓↓
//						if (ordSetPattern >= 1 && ordSetPattern <= 9)
						if (ordSetPattern >= 1)
//↑↑↑2013-12-04追加　ANK-1578-00-00 多機能ルータ対応↑↑↑
						{
							// オーダ設定一覧照会を実施
							HashMap<String, Object> inMapEKK1041B001 = editInMsgEKK1041B001(param, odrSetInfo, ordSetPattern);
							CAANMsg outMapEKK1041B001 = callSvcInter(handle, param, fixedText, inMapEKK1041B001);
							CAANMsg[] rsltMsgEKK1041B001List = outMapEKK1041B001.getCAANMsgList(EKK1041B001CBSMsg.EKK1041B001CBSMSG1LIST);
							if (rsltMsgEKK1041B001List != null && rsltMsgEKK1041B001List.length > 0)
							{
								rsltMsgEKK1041B001 = rsltMsgEKK1041B001List[0];
							}
						}
						
						if (rsltMsgEKK1041B001 != null)
						{
							// オーダ設定情報変更を実施
							HashMap<String, Object> inMapEKK1041C010 = editInMsgEKK1041C010(param, odrSetInfo, rsltMsgEKK1041B001);
							callSvcInter(handle, param, fixedText, inMapEKK1041C010);
						}
						else
						{
							// オーダ設定登録を実施
							HashMap<String, Object> inMapEKK1041D010 = editInMsgEKK1041D010(param, odrSetInfo);
							callSvcInter(handle, param, fixedText, inMapEKK1041D010);
						}
					}
				}
				
				// オーダ発行条件変更を実施
//				HashMap<String, Object> odrHakkoJokenInfo = (HashMap<String, Object>)trgtDataInfo.get(JKKSodSendConstCC.ODR_HAKKO_JOKEN_INFO);
				HashMap<String, Object> inMapEKK1081C010 = editInMsgEKK1081C010(param, odrHakkoJokenInfo);
				CAANMsg ekk1081c010Msg = callSvcInter(handle, param, fixedText, inMapEKK1081C010);

				//↓↓↓2012-07-19　ST2-2012-0001384対応↓↓↓
				//更新年月日時分秒を保持
				String odrHakkoJokenNo = (String)odrHakkoJokenInfo.get(JKKSodSendConstCC.OHJI_ODR_HAKKO_JOKEN_NO);
				String updDtm = ekk1081c010Msg.getString(EKK1081C010CBSMsg.UPD_DTM);
				this.newerUpdDtm.put(odrHakkoJokenNo, updDtm);
				//↑↑↑2012-07-19　ST2-2012-0001384対応↑↑↑
			}
		}
		
		//↓↓↓2012-07-18追加、ST1-2012-0000120対応↓↓↓
		param.setControlMapData(SCControlMapKeys.RETURN_CODE, "0000");
		//param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, "NORMAL_END");
		//↑↑↑2012-07-18追加、ST1-2012-0000120対応↑↑↑

		return param;
//		}
//		catch (Throwable ex) {
//			JSYbpmLog.println(JSYbpmLog.DataBean_Dump, getClass(), param, JPCOnlineMessageConstant.EKB0400_CE, new String[]{}, null);
//			throw ex;
//		}
	}


	/**
	 * ルーター向け接続情報・登録SODについて、必須データがあるかどうかをチェックします。
	 * <br/>
	 * 要求種別コード：02，サービスオーダコード：0A（オーダ内容コード 147）
	 * 
	 * @param svcOrderInfo ルーター向け接続情報・登録SOD情報
	 * @return 真：必須チェックエラー有り　　偽：サービスオーダ受付ＯＫ
	 * @since 2012-07-18 ST1-2012-0000120対応
	 */
	private boolean isIllegalSvcOdr147(HashMap<String, Object> svcOrderInfo)
	{
		boolean ret = false;
		
		String svc_order_cd = (String)svcOrderInfo.get(JKKSodSendConstCC.SOI_SVC_ORDER_CD);
		String yokyu_sbt_cd = (String)svcOrderInfo.get(JKKSodSendConstCC.SOI_YOKYU_SBT_CD);
		if ("0A".equals(svc_order_cd) && "02".equals(yokyu_sbt_cd))
		{
			String ipv6ProtocolSbt = convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IPV6_PRTCL_SBT_CD));
	
			String[] e1Values = {
				convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_BBR_MACAD))				// BBR-MACアドレス
			,	convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_BBR_NINSHO_KEY))			// BBR-認証キー
			,	convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_NINSHO_ID))				// 認証ID
			,	convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_NINSHO_ID_PWD))			// 認証IDパスワード
			,	convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_CONNECT_MODE_CD))		// 接続モードコード
			,	convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_AUTO_CUT_MODE_CD))		// 自動切断モードコード
			,	convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_AUTO_CUT_TIME))			// 自動切断時間
			,	convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_PPPOE_BRIDGE_SBT_CD))	// PPPoEブリッジ種別コード
			,	convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_PING_RESPONSE_SBT_CD))	// Ping応答種別コード
			,	ipv6ProtocolSbt		// IPv6プロトコル種別コード
			};
			
			for (int i = 0; i < e1Values.length; i++)
			{
				if (JKKBpCommon.isNull(e1Values[i]))
				{
					ret = true;
					
					String[] keys = {
							ESC0041D010CBSMsg.BBR_MACAD, 			// BBR-MACアドレス
							ESC0041D010CBSMsg.BBR_NINSHO_KEY, 		// BBR-認証キー
							ESC0041D010CBSMsg.NINSHO_ID, 			// 認証ID
							ESC0041D010CBSMsg.NINSHO_ID_PWD, 		// 認証IDパスワード
							ESC0041D010CBSMsg.CONNECT_MODE_CD, 		// 接続モードコード
							ESC0041D010CBSMsg.AUTO_CUT_MODE_CD, 	// 自動切断モードコード
							ESC0041D010CBSMsg.AUTO_CUT_TIME, 		// 自動切断時間
							ESC0041D010CBSMsg.PPPOE_BRIDGE_SBT_CD, 	// PPPoEブリッジ種別コード
							ESC0041D010CBSMsg.PING_RESPONSE_SBT_CD, // Ping応答種別コード
							ESC0041D010CBSMsg.IPV6_PRTCL_SBT_CD 	// IPv6プロトコル種別コード
					};
	
					StringBuilder msg = new StringBuilder();
					for (int ii = 0; ii < keys.length; ii++)
					{
						msg.append("[").append(i == ii ? "*" : " ").append("]");
						msg.append(keys[ii]).append("/").append(e1Values[ii]);
						msg.append(ii < keys.length-1 ? ", " : "");
					}
					//警告ログを出力
					JSYbpmLog.println(JSYbpmLog.EXECUTION, getClass(), msg.toString(), "BPMSVSI003", new String[]{keys[i] + "_err"}, null);
	
					break;
				}
			}
	
			//IPv6プロトコル種別コードが"1"(IPv4/v6デュアル)の場合に追加の必須チェック
			if (!ret && "1".equals(ipv6ProtocolSbt))
			{
				String[] ipv6Values = {
					convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IPV6_NINSHO_ID))			// IPv6認証ID
				,	convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IPV6_NINSHO_ID_PWD))		// IPv6認証IDパスワード
				,	convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IPV6_CHUSKK_CD))			// IPv6中心局コード
				,	convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IPV6_AD_IFID))			// IPv6アドレス（インターフェイスID）
				,	convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IPV6_TAKNKIKI_MODEL_CD))	// IPv6宅内機器型式コード
				,	convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IPV6_TYPE_CTRL_CD))		// IPv6タイプ制御コード
				};
	
				for (int i = 0; i < ipv6Values.length; i++)
				{
					if (JKKBpCommon.isNull(ipv6Values[i]))
					{
						ret = true;
						
						String[] keys = {
								ESC0041D010CBSMsg.IPV6_NINSHO_ID, 			// IPv6認証ID
								ESC0041D010CBSMsg.IPV6_NINSHO_ID_PWD, 		// IPv6認証IDパスワード
								ESC0041D010CBSMsg.IPV6_CHUSKK_CD, 			// IPv6中心局コード
								ESC0041D010CBSMsg.IPV6_AD_IFID, 			// IPv6アドレス（インターフェイスID）
								ESC0041D010CBSMsg.IPV6_TAKNKIKI_MODEL_CD, 	// IPv6宅内機器型式コード
								ESC0041D010CBSMsg.IPV6_TYPE_CTRL_CD 		// IPv6タイプ制御コード
						};
	
						StringBuilder msg = new StringBuilder();
						for (int ii = 0; ii < keys.length; ii++)
						{
							msg.append("[").append(i == ii ? "*" : " ").append("]");
							msg.append(keys[ii]).append("/").append(ipv6Values[ii]);
							msg.append(ii < keys.length-1 ? ", " : "");
						}
						//警告ログを出力
						JSYbpmLog.println(JSYbpmLog.EXECUTION, getClass(), msg.toString(), JPCOnlineMessageConstant.EKB0010_TW, new String[]{keys[i] + "_err"}, null);
	
						break;
					}
				}
			}
		}
		return ret;
	}


	/**
	 * オーダ設定更新パターン判定
	 * @param orderSbtCd オーダ種別コード
	 * @param svcOrderCd サービスオーダコード
	 * @return オーダ設定更新パターン
	 */
	private int getOrdSetUpdJdg(String orderSbtCd, String svcOrderCd)
	{
		int ret = 0;
		// ネット
		if(JKKSvcConst.ORDER_SBT_CD_NET.equals(orderSbtCd))
		{
			// メール
			if(JKKSvcConst.SVC_ORDER_CD_MAIL.equals(svcOrderCd))
			{
				ret = 2;
			}
			// WEB
			else if(JKKSvcConst.SVC_ORDER_CD_WEB.equals(svcOrderCd))
			{
				ret = 3;
			}
			// ML
			else if(JKKSvcConst.SVC_ORDER_CD_ML.equals(svcOrderCd))
			{
				ret = 3;
			}
			// FTTH認証
			else if(JKKSvcConst.SVC_ORDER_CD_FTTH.equals(svcOrderCd))
			{
				ret = 1;
			}
			// ダイアルアップ接続
			else if(JKKSvcConst.SVC_ORDER_CD_DUPCON.equals(svcOrderCd))
			{
				ret = 3;
			}
			// ルータ向け情報
			else if(JKKSvcConst.SVC_ORDER_CD_ROUTER.equals(svcOrderCd))
			{
				ret = 4;
			}
			// IPv6
			else if(JKKSvcConst.SVC_ORDER_CD_IPV6.equals(svcOrderCd))
			{
				ret = 5;
			}
		}
		// 電話
		else if(JKKSvcConst.ORDER_SBT_CD_TEL.equals(orderSbtCd))
		{
			// Radius
			if(JKKSvcConst.SVC_ORDER_CD_RADIUS.equals(svcOrderCd))
			{
				ret = 9;
			}
			// OLS
			else if(JKKSvcConst.SVC_ORDER_CD_OLS.equals(svcOrderCd))
			{
				ret = 4;
			}
			// SIP
			else if(JKKSvcConst.SVC_ORDER_CD_SIP.equals(svcOrderCd))
			{
				ret = 1;
			}
			// 番号置換
			else if(JKKSvcConst.SVC_ORDER_CD_NO_TIKAN.equals(svcOrderCd))
			{
				ret = 5;
			}
//↓↓↓2013-12-04追加　ANK-1578-00-00多機能ルータ↓↓↓
			// 番号置換
			else if(JKKSvcConst.SVC_ORDER_CD_NO_TKNORT.equals(svcOrderCd))
			{
				ret = 10;
			}
//↑↑↑2013-12-04追加　ANK-1578-00-00多機能ルータ↑↑↑
		}
		// モバイル
		else if(JKKSvcConst.ORDER_SBT_CD_MOBILE.equals(orderSbtCd))
		{
			// CUI
			if(JKKSvcConst.SVC_ORDER_CD_CUI.equals(svcOrderCd))
			{
				ret = 6;
			}
			// DEV
			else if(JKKSvcConst.SVC_ORDER_CD_DEV.equals(svcOrderCd))
			{
				ret = 6;
			}
			// e-mobile(課金・解約・一時停止・停止解除)
			else if(JKKSvcConst.SVC_ORDER_CD_KAKIN.equals(svcOrderCd)
					|| JKKSvcConst.SVC_ORDER_CD_DSL.equals(svcOrderCd)
					|| JKKSvcConst.SVC_ORDER_CD_PAUSE.equals(svcOrderCd)
					|| JKKSvcConst.SVC_ORDER_CD_PAUSE_RLS.equals(svcOrderCd))
			{
				ret = 8;
			}
			// SPOT認証
			else if(JKKSvcConst.SVC_ORDER_CD_SPOT.equals(svcOrderCd))
			{
				ret = 7;
			}
		}
		// 緊急通報
		else if(JKKSvcConst.ORDER_SBT_CD_RMG.equals(orderSbtCd))
		{
			// 緊急通報
			if(JKKSvcConst.SVC_ORDER_CD_EMG.equals(svcOrderCd))
			{
				ret = 1;
			}
		}
		return ret;
	}
	
	/**
	 * ESC0041D010_サービスオーダ受付
	 * サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 * 
	 * @param param リクエストパラメータ
	 * @param svcOrderInfo サービスオーダ情報
	 * @return S/I上り情報
	 * @throws RequestParameterException
	 */
	public HashMap<String, Object> editInMsgESC0041D010(
			IRequestParameterReadWrite param,
			HashMap<String, Object> svcOrderInfo)
			throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(ESC0041D010CBSMsg.class.getName());
		
		// nullマッピングを実施
		fillCAANMSGNullMapping(template, new ESC0041D010CBSMsg().getContents());

		// 共通部を設定
		editInMsgBasicCmn(param, template);

		// テンプレートID(SIFのID)
		template.set(ESC0041D010CBSMsg.TEMPLATEID, "ESC0041D010");

		// 機能コード
		template.set(ESC0041D010CBSMsg.FUNC_CODE, svcOrderInfo.get(JKKSodSendConstCC.SOI_FUNC_CD));
		
		// サービス契約番号
		template.set(ESC0041D010CBSMsg.SVC_KEI_NO, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_SVC_KEI_NO)));
		// サービス契約内訳番号
		template.set(ESC0041D010CBSMsg.SVC_KEI_UCWK_NO, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_SVC_KEI_UCWK_NO)));
		// オプションサービス契約番号
		template.set(ESC0041D010CBSMsg.OP_SVC_KEI_NO, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OP_SVC_KEI_NO)));
		// サブオプションサービス契約番号
		template.set(ESC0041D010CBSMsg.SBOP_SVC_KEI_NO, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_SBOP_SVC_KEI_NO)));
		// 機器提供サービス契約番号
		template.set(ESC0041D010CBSMsg.KKTK_SVC_KEI_NO, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_KKTK_SVC_KEI_NO)));
		// 法人eo読替サービス契約番号
		template.set(ESC0041D010CBSMsg.HJIN_EO_YKAE_SVKEI_NO, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_HJIN_EO_YKAE_SVKEI_NO)));
		// 要求元アプリ種別コード
		template.set(ESC0041D010CBSMsg.YOKYU_MT_APL_SBT_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_YOKYU_MT_APL_SBT_CD)));
		// サービスオーダコード
		template.set(ESC0041D010CBSMsg.SVC_ORDER_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_SVC_ORDER_CD)));
		// サービスオーダ詳細コード
		template.set(ESC0041D010CBSMsg.SVC_ORDER_DTAIL_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_SVC_ORDER_DTAIL_CD)));
		// 要求種別コード
		template.set(ESC0041D010CBSMsg.YOKYU_SBT_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_YOKYU_SBT_CD)));
		// 削除対象SOD連携通番
		template.set(ESC0041D010CBSMsg.DELTG_SOD_RENKEI_SEQ, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_DELTG_SOD_RENKEI_SEQ)));
		// スケジュール年月日
		template.set(ESC0041D010CBSMsg.SCHEDULE_YMD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_SCHEDULE_YMD)));
		// 旧認証ID
		template.set(ESC0041D010CBSMsg.OLD_NINSHO_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_NINSHO_ID)));
		// 認証ID
		template.set(ESC0041D010CBSMsg.NINSHO_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_NINSHO_ID)));
		// 旧認証IDパスワード
		template.set(ESC0041D010CBSMsg.OLD_NINSHO_ID_PWD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_NINSHO_ID_PWD)));
		// 認証IDパスワード
		template.set(ESC0041D010CBSMsg.NINSHO_ID_PWD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_NINSHO_ID_PWD)));
		// POPID
		template.set(ESC0041D010CBSMsg.POP_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_POP_ID)));
		// 旧POPIDパスワード
		template.set(ESC0041D010CBSMsg.OLD_POP_ID_PWD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_POP_ID_PWD)));
		// POPIDパスワード
		template.set(ESC0041D010CBSMsg.POP_ID_PWD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_POP_ID_PWD)));
		// 旧メールアドレス
		template.set(ESC0041D010CBSMsg.OLD_MLAD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_MLAD)));
		// メールアドレス
		template.set(ESC0041D010CBSMsg.MLAD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_MLAD)));
		// 旧メールエイリアス
		template.set(ESC0041D010CBSMsg.OLD_MAIL_ALIAS, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_MAIL_ALIAS)));
		// メールエイリアス
		template.set(ESC0041D010CBSMsg.MAIL_ALIAS, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_MAIL_ALIAS)));
		// 旧メールボックス容量
		template.set(ESC0041D010CBSMsg.OLD_MLBOX_CAPA, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_MLBOX_CAPA)));
		// メールボックス容量
		template.set(ESC0041D010CBSMsg.MLBOX_CAPA, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_MLBOX_CAPA)));
		// 旧転送メール保持フラグ
		template.set(ESC0041D010CBSMsg.OLD_TENSO_MAIL_HOJI_FLG, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_TENSO_MAIL_HOJI_FLG)));
		// 転送メール保持フラグ
		template.set(ESC0041D010CBSMsg.TENSO_MAIL_HOJI_FLG, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_TENSO_MAIL_HOJI_FLG)));
		// 旧転送先メールアドレス1
		template.set(ESC0041D010CBSMsg.OLD_TENSO_SAKI_MAIL_AD_1, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_TENSO_SAKI_MAIL_AD_1)));
		// 転送先メールアドレス1
		template.set(ESC0041D010CBSMsg.TENSO_SAKI_MAIL_AD_1, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_TENSO_SAKI_MAIL_AD_1)));
		// 旧転送先メールアドレス2
		template.set(ESC0041D010CBSMsg.OLD_TENSO_SAKI_MAIL_AD_2, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_TENSO_SAKI_MAIL_AD_2)));
		// 転送先メールアドレス2
		template.set(ESC0041D010CBSMsg.TENSO_SAKI_MAIL_AD_2, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_TENSO_SAKI_MAIL_AD_2)));
		// 旧転送先メールアドレス3
		template.set(ESC0041D010CBSMsg.OLD_TENSO_SAKI_MAIL_AD_3, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_TENSO_SAKI_MAIL_AD_3)));
		// 転送先メールアドレス3
		template.set(ESC0041D010CBSMsg.TENSO_SAKI_MAIL_AD_3, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_TENSO_SAKI_MAIL_AD_3)));
		// 法人用独自ドメイン
		template.set(ESC0041D010CBSMsg.HOJIN_DOKUJI_DOMAIN, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_HOJIN_DOKUJI_DOMAIN)));
		// 旧メール管理者ID
		template.set(ESC0041D010CBSMsg.OLD_MLKRSHA_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_MLKRSHA_ID)));
		// メール管理者ID
		template.set(ESC0041D010CBSMsg.MLKRSHA_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_MLKRSHA_ID)));
		// 旧メール管理者IDパスワード
		template.set(ESC0041D010CBSMsg.OLD_MLKRSHA_ID_PWD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_MLKRSHA_ID_PWD)));
		// メール管理者IDパスワード
		template.set(ESC0041D010CBSMsg.MLKRSHA_ID_PWD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_MLKRSHA_ID_PWD)));
		// 旧法人ドメインメールボックス容量
		template.set(ESC0041D010CBSMsg.OLD_HJDOMAIN_MLBOX_CAPA, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_HJDOMAIN_MLBOX_CAPA)));
		// 法人ドメインメールボックス容量
		template.set(ESC0041D010CBSMsg.HJDOMAIN_MLBOX_CAPA, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_HJDOMAIN_MLBOX_CAPA)));
		// 旧総アカウント数
		template.set(ESC0041D010CBSMsg.OLD_TOTAL_ACCOUNT_CNT, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_TOTAL_ACCOUNT_CNT)));
		// 総アカウント数
		template.set(ESC0041D010CBSMsg.TOTAL_ACCOUNT_CNT, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_TOTAL_ACCOUNT_CNT)));
		// 旧メール管理者POPID
		template.set(ESC0041D010CBSMsg.OLD_MLKRSHA_POP_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_MLKRSHA_POP_ID)));
		// メール管理者POPID
		template.set(ESC0041D010CBSMsg.MLKRSHA_POP_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_MLKRSHA_POP_ID)));
		// 旧メール管理者POPIDパスワード
		template.set(ESC0041D010CBSMsg.OLD_MLKRSHA_POP_ID_PWD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_MLKRSHA_POP_ID_PWD)));
		// メール管理者POPIDパスワード
		template.set(ESC0041D010CBSMsg.MLKRSHA_POP_ID_PWD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_MLKRSHA_POP_ID_PWD)));
		// 旧メール管理者メールアドレス
		template.set(ESC0041D010CBSMsg.OLD_MLKRSHA_MLAD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_MLKRSHA_MLAD)));
		// メール管理者メールアドレス
		template.set(ESC0041D010CBSMsg.MLKRSHA_MLAD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_MLKRSHA_MLAD)));
		// 旧メール管理者メールボックス容量
		template.set(ESC0041D010CBSMsg.OLD_MLKRSHA_MLBOX_CAPA, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_MLKRSHA_MLBOX_CAPA)));
		// メール管理者メールボックス容量
		template.set(ESC0041D010CBSMsg.MLKRSHA_MLBOX_CAPA, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_MLKRSHA_MLBOX_CAPA)));
		// 旧ウイルスチェック要否
		template.set(ESC0041D010CBSMsg.OLD_VIRUS_CHK_YH, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_VIRUS_CHK_YH)));
		// ウイルスチェック要否
		template.set(ESC0041D010CBSMsg.VIRUS_CHK_YH, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_VIRUS_CHK_YH)));
		// WebID
		template.set(ESC0041D010CBSMsg.WEB_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_WEB_ID)));
		// 旧WebIDパスワード
		template.set(ESC0041D010CBSMsg.OLD_WEB_ID_PWD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_WEB_ID_PWD)));
		// WebIDパスワード
		template.set(ESC0041D010CBSMsg.WEB_ID_PWD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_WEB_ID_PWD)));
		// 旧URL
		template.set(ESC0041D010CBSMsg.OLD_URL, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_URL)));
		// URL
		template.set(ESC0041D010CBSMsg.URL, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_URL)));
		// 旧HP容量
		template.set(ESC0041D010CBSMsg.OLD_HP_CAPA, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_HP_CAPA)));
		// HP容量
		template.set(ESC0041D010CBSMsg.HP_CAPA, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_HP_CAPA)));
		// 旧購入商品コード
		template.set(ESC0041D010CBSMsg.OLD_BUY_GOODS_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_BUY_GOODS_CD)));
		// 購入商品コード
		template.set(ESC0041D010CBSMsg.BUY_GOODS_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_BUY_GOODS_CD)));
		// ML名
		template.set(ESC0041D010CBSMsg.MLLIST_NM, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_MLLIST_NM)));
		// 旧ML管理者用メールアドレス
		template.set(ESC0041D010CBSMsg.OLD_MLLIST_KRISHA_MLAD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_MLLIST_KRISHA_MLAD)));
		// ML管理者用メールアドレス
		template.set(ESC0041D010CBSMsg.MLLIST_KRISHA_MLAD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_MLLIST_KRISHA_MLAD)));
		// 旧ML呼称
		template.set(ESC0041D010CBSMsg.OLD_MLLIST_KOSHO, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_MLLIST_KOSHO)));
		// ML呼称
		template.set(ESC0041D010CBSMsg.MLLIST_KOSHO, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_MLLIST_KOSHO)));
		// 旧ML最大ユーザー数
		template.set(ESC0041D010CBSMsg.OLD_MLLIST_MAX_USER_CNT, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_MLLIST_MAX_USER_CNT)));
		// ML最大ユーザー数
		template.set(ESC0041D010CBSMsg.MLLIST_MAX_USER_CNT, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_MLLIST_MAX_USER_CNT)));
		// 旧ML公開要否
		template.set(ESC0041D010CBSMsg.OLD_MLLIST_KOKAI_YH, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_MLLIST_KOKAI_YH)));
		// ML公開要否
		template.set(ESC0041D010CBSMsg.MLLIST_KOKAI_YH, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_MLLIST_KOKAI_YH)));
// ▼ 2012/07/05 巻取A ANK-0035-00-00 フェムトセル対応
		// フェムトセルオプション有無
		template.set(ESC0041D010CBSMsg.FEMTSEL_OPUM, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_MLLIST_KOKAI_YH)));
// ▲ 2012/07/05 巻取A ANK-0035-00-00 フェムトセル対応
		// 旧IPアドレス
		template.set(ESC0041D010CBSMsg.OLD_IP_AD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_IP_AD)));
		// IPアドレス
		template.set(ESC0041D010CBSMsg.IP_AD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IP_AD)));
		// 旧ネットマスク
		template.set(ESC0041D010CBSMsg.OLD_NETMASK, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_NETMASK)));
		// ネットマスク
		template.set(ESC0041D010CBSMsg.NETMASK, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_NETMASK)));
		// 旧BAS-ID
		template.set(ESC0041D010CBSMsg.OLD_BAS_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_BAS_ID)));
		// BAS-ID
		template.set(ESC0041D010CBSMsg.BAS_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_BAS_ID)));
		// 旧マルチセッション数
		template.set(ESC0041D010CBSMsg.OLD_MLTISE_CNT, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_MLTISE_CNT)));
		// マルチセッション数
		template.set(ESC0041D010CBSMsg.MLTISE_CNT, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_MLTISE_CNT)));
		// 旧BAS-ホストID
		template.set(ESC0041D010CBSMsg.OLD_BAS_HOST_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_BAS_HOST_ID)));
		// BAS-ホストID
		template.set(ESC0041D010CBSMsg.BAS_HOST_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_BAS_HOST_ID)));
		// 旧VLAN-ID
		template.set(ESC0041D010CBSMsg.OLD_VLAN_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_VLAN_ID)));
		// VLAN-ID
		template.set(ESC0041D010CBSMsg.VLAN_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_VLAN_ID)));
		// 旧サービスID
		template.set(ESC0041D010CBSMsg.OLD_SVC_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_SVC_ID)));
		// サービスID
		template.set(ESC0041D010CBSMsg.SVC_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_SVC_ID)));
		// WISHオーナーID
		template.set(ESC0041D010CBSMsg.WISH_OWNR_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_WISH_OWNR_ID)));
		// 旧WISHオーナーIDパスワード
		template.set(ESC0041D010CBSMsg.OLD_WISH_OWNR_ID_PWD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_WISH_OWNR_ID_PWD)));
		// WISHオーナーIDパスワード
		template.set(ESC0041D010CBSMsg.WISH_OWNR_ID_PWD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_WISH_OWNR_ID_PWD)));
		// 旧グループコミュニティディスク容量
		template.set(ESC0041D010CBSMsg.OLD_GRPCOM_DISK_CAPA, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_GRPCOM_DISK_CAPA)));
		// グループコミュニティディスク容量
		template.set(ESC0041D010CBSMsg.GRPCOM_DISK_CAPA, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_GRPCOM_DISK_CAPA)));
		// ダイヤルアップ接続認証ID
		template.set(ESC0041D010CBSMsg.DUPCON_NINSHO_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_DUPCON_NINSHO_ID)));
		// 旧ダイヤルアップ接続認証IDパスワード
		template.set(ESC0041D010CBSMsg.OLD_DUPCON_NINSHO_ID_PWD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_DUPCON_NINSHO_ID_PWD)));
		// ダイヤルアップ接続認証IDパスワード
		template.set(ESC0041D010CBSMsg.DUPCON_NINSHO_ID_PWD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_DUPCON_NINSHO_ID_PWD)));
		// 旧ダイヤルアップ用プラン種別コード
		template.set(ESC0041D010CBSMsg.OLD_DUP_PLAN_SBT_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_DUP_PLAN_SBT_CD)));
		// ダイヤルアップ用プラン種別コード
		template.set(ESC0041D010CBSMsg.DUP_PLAN_SBT_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_DUP_PLAN_SBT_CD)));
		// BBR-MACアドレス
		template.set(ESC0041D010CBSMsg.BBR_MACAD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_BBR_MACAD)));
		// 旧BBR-認証キー
		template.set(ESC0041D010CBSMsg.OLD_BBR_NINSHO_KEY, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_BBR_NINSHO_KEY)));
		// BBR-認証キー
		template.set(ESC0041D010CBSMsg.BBR_NINSHO_KEY, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_BBR_NINSHO_KEY)));
		// 旧接続モードコード
		template.set(ESC0041D010CBSMsg.OLD_CONNECT_MODE_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_CONNECT_MODE_CD)));
		// 接続モードコード
		template.set(ESC0041D010CBSMsg.CONNECT_MODE_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_CONNECT_MODE_CD)));
		// 旧自動切断モードコード
		template.set(ESC0041D010CBSMsg.OLD_AUTO_CUT_MODE_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_AUTO_CUT_MODE_CD)));
		// 自動切断モードコード
		template.set(ESC0041D010CBSMsg.AUTO_CUT_MODE_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_AUTO_CUT_MODE_CD)));
		// 旧自動切断時間
		template.set(ESC0041D010CBSMsg.OLD_AUTO_CUT_TIME, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_AUTO_CUT_TIME)));
		// 自動切断時間
		template.set(ESC0041D010CBSMsg.AUTO_CUT_TIME, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_AUTO_CUT_TIME)));
		// 旧PPPoEブリッジ種別コード
		template.set(ESC0041D010CBSMsg.OLD_PPPOE_BRIDGE_SBT_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_PPPOE_BRIDGE_SBT_CD)));
		// PPPoEブリッジ種別コード
		template.set(ESC0041D010CBSMsg.PPPOE_BRIDGE_SBT_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_PPPOE_BRIDGE_SBT_CD)));
		// 旧Ping応答種別コード
		template.set(ESC0041D010CBSMsg.OLD_PING_RESPONSE_SBT_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_PING_RESPONSE_SBT_CD)));
		// Ping応答種別コード
		template.set(ESC0041D010CBSMsg.PING_RESPONSE_SBT_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_PING_RESPONSE_SBT_CD)));
		// 旧IPv6プロトコル種別コード
		template.set(ESC0041D010CBSMsg.OLD_IPV6_PRTCL_SBT_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_IPV6_PRTCL_SBT_CD)));
		// IPv6プロトコル種別コード
		template.set(ESC0041D010CBSMsg.IPV6_PRTCL_SBT_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IPV6_PRTCL_SBT_CD)));
		// 旧IPv6帯域制御コード
		template.set(ESC0041D010CBSMsg.OLD_IPV6_TAIIKI_CTRL_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_IPV6_TAIIKI_CTRL_CD)));
		// IPv6帯域制御コード
		template.set(ESC0041D010CBSMsg.IPV6_TAIIKI_CTRL_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IPV6_TAIIKI_CTRL_CD)));
// ▼ 2012/06/22 【IT1-2012-0000711】IPv6認証ID、IPv6認証IDパスワード追加
		// 旧IPv6認証ID
		template.set(ESC0041D010CBSMsg.IPV6_OLD_NINSHO_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IPV6_OLD_NINSHO_ID)));
		// IPv6認証ID
		template.set(ESC0041D010CBSMsg.IPV6_NINSHO_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IPV6_NINSHO_ID)));
		// 旧IPv6認証IDパスワード
		template.set(ESC0041D010CBSMsg.IPV6_OLD_NINSHO_ID_PWD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IPV6_OLD_NINSHO_ID_PWD)));
		// IPv6認証IDパスワード
		template.set(ESC0041D010CBSMsg.IPV6_NINSHO_ID_PWD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IPV6_NINSHO_ID_PWD)));
// ▲ 2012/06/22 【IT1-2012-0000711】IPv6認証ID、IPv6認証IDパスワード追加
		// 旧IPv6中心局コード
		template.set(ESC0041D010CBSMsg.OLD_IPV6_CHUSKK_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_IPV6_CHUSKK_CD)));
		// IPv6中心局コード
		template.set(ESC0041D010CBSMsg.IPV6_CHUSKK_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IPV6_CHUSKK_CD)));
		// 旧IPv6アドレス（インターフェイスID）
		template.set(ESC0041D010CBSMsg.OLD_IPV6_AD_IFID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_IPV6_AD_IFID)));
		// IPv6アドレス（インターフェイスID）
		template.set(ESC0041D010CBSMsg.IPV6_AD_IFID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IPV6_AD_IFID)));
		// 旧IPv6L2TP認証ID
		template.set(ESC0041D010CBSMsg.OLD_IPV6_L2TP_NINSHO_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_IPV6_L2TP_NINSHO_ID)));
		// IPv6L2TP認証ID
		template.set(ESC0041D010CBSMsg.IPV6_L2TP_NINSHO_ID, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IPV6_L2TP_NINSHO_ID)));
		// 旧IPv6Ping応答状態コード
		template.set(ESC0041D010CBSMsg.OLD_IPV6_PING_RSP_STAT_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_IPV6_PING_RSP_STAT_CD)));
		// IPv6Ping応答状態コード
		template.set(ESC0041D010CBSMsg.IPV6_PING_RSP_STAT_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IPV6_PING_RSP_STAT_CD)));
		// 旧IPv6宅内機器型式コード
		template.set(ESC0041D010CBSMsg.OLD_IPV6_TAKNKIKI_MODEL_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_IPV6_TAKNKIKI_MODEL_CD)));
		// IPv6宅内機器型式コード
		template.set(ESC0041D010CBSMsg.IPV6_TAKNKIKI_MODEL_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IPV6_TAKNKIKI_MODEL_CD)));
		// 旧IPv6タイプ制御コード
		template.set(ESC0041D010CBSMsg.OLD_IPV6_TYPE_CTRL_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_IPV6_TYPE_CTRL_CD)));
		// IPv6タイプ制御コード
		template.set(ESC0041D010CBSMsg.IPV6_TYPE_CTRL_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_IPV6_TYPE_CTRL_CD)));
// ▼2013/10/10　2013年12月案件　ANK-1577-00-00　メール機能強化
		// 旧変更前メールアドレス
		template.set(ESC0041D010CBSMsg.OLD_CHBF_MLAD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_CHBF_MLAD)));
		// 変更前メールアドレス
		template.set(ESC0041D010CBSMsg.CHBF_MLAD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_CHBF_MLAD)));
		// 旧変更後メールアカウント
		template.set(ESC0041D010CBSMsg.OLD_CHAF_MAIL_ACCOUNT, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_CHAF_MAIL_ACCOUNT)));
		// 変更後メールアカウント
		template.set(ESC0041D010CBSMsg.CHAF_MAIL_ACCOUNT, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_CHAF_MAIL_ACCOUNT)));
		// 旧メールエイリアス引継ぎフラグ
		template.set(ESC0041D010CBSMsg.OLD_MAILALIAS_HKTGI_FLG, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_MAILALIAS_HKTGI_FLG)));
		// メールエイリアス引継ぎフラグ
		template.set(ESC0041D010CBSMsg.MAILALIAS_HKTGI_FLG, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_MAILALIAS_HKTGI_FLG)));
		// 旧メールウイルスチェック引継ぎフラグ
		template.set(ESC0041D010CBSMsg.OLD_MLVIRUSCHK_HKTGI_FLG, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_MLVIRUSCHK_HKTGI_FLG)));
		// メールウイルスチェック引継ぎフラグ
		template.set(ESC0041D010CBSMsg.MLVIRUSCHK_HKTGI_FLG, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_MLVIRUSCHK_HKTGI_FLG)));
		// 旧メール各種設定引継ぎフラグ
		template.set(ESC0041D010CBSMsg.OLD_ML_VRSETTE_HKTGI_FLG, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_ML_VRSETTE_HKTGI_FLG)));
		// メール各種設定引継ぎフラグ
		template.set(ESC0041D010CBSMsg.ML_VRSETTE_HKTGI_FLG, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_ML_VRSETTE_HKTGI_FLG)));
		// 旧メールアドレス変更時メール転送フラグ
		template.set(ESC0041D010CBSMsg.OLD_MLAD_CHGJ_ML_TNS_FLG, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_OLD_MLAD_CHGJ_ML_TNS_FLG)));
		// メールアドレス変更時メール転送フラグ
		template.set(ESC0041D010CBSMsg.MLAD_CHGJ_ML_TNS_FLG, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.SOI_MLAD_CHGJ_ML_TNS_FLG)));
// ▲2013/10/10　2013年12月案件　ANK-1577-00-00　メール機能強化
		// ANK-2765-00-00 ADD START
		// 旧VR識別判定用サービス詳細コード
		template.set(ESC0041D010CBSMsg.OLD_VRSB_JDG_SVC_DTL_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.OLD_VRSB_JDG_SVC_DTL_CD)));
		// ANK-2765-00-00 ADD END
		// ANK-3834-00-00 ADD START
		// 旧旧VR識別判定用サービス詳細コード
		template.set(ESC0041D010CBSMsg.OLD_OLD_VRSB_JDG_SVC_DTL_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.OLD_OLD_VRSB_JDG_SVC_DTL_CD)));
		// 旧DNSオプトアウト選択フラグ
		template.set(ESC0041D010CBSMsg.OLD_DNS_OPTOUT_CHOICEF, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.OLD_DNS_OPTOUT_CHOICEF)));
		// DNSオプトアウト選択フラグ
		template.set(ESC0041D010CBSMsg.DNS_OPTOUT_CHOICEF, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.DNS_OPTOUT_CHOICEF)));
		// ANK-3834-00-00 ADD END

		// 上り情報を生成
		return editInMsgCmn(param, template);
	}
	
	/**
	 * ESC0051D010_電話サービスオーダ受付
	 * サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 * 
	 * @param param リクエストパラメータ
	 * @param telSvcOrderInfo 電話サービスオーダ情報
	 * @param updTrnId 更新ユーザID
	 * @return S/I上り情報
	 * @throws RequestParameterException
	 */
// 20140522 ANK-2113-00-00 Mod Start
//	public HashMap<String, Object> editInMsgESC0051D010(
//			IRequestParameterReadWrite param,
//			HashMap<String, Object> telSvcOrderInfo)
//			throws RequestParameterException
//	{
	public HashMap<String, Object> editInMsgESC0051D010(
			IRequestParameterReadWrite param,
			HashMap<String, Object> telSvcOrderInfo,
			String updTrnId,
			String odrDtlCd)
			throws RequestParameterException
	{
// 20140522 ANK-2113-00-00 Mod End
		CAANMsg template = new CAANMsg(ESC0051D010CBSMsg.class.getName());
		
		// nullマッピングを実施
		fillCAANMSGNullMapping(template, new ESC0051D010CBSMsg().getContents());

		// 共通部を設定
		editInMsgBasicCmn(param, template);

		// テンプレートID(SIFのID)
		template.set(ESC0051D010CBSMsg.TEMPLATEID, "ESC0051D010");

		// 機能コード
		template.set(ESC0051D010CBSMsg.FUNC_CODE, telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_FUNC_CD));
		
		// サービス契約番号
		template.set(ESC0051D010CBSMsg.SVC_KEI_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SVC_KEI_NO)));
		// サービス契約内訳番号
		template.set(ESC0051D010CBSMsg.SVC_KEI_UCWK_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SVC_KEI_UCWK_NO)));
		// オプションサービス契約番号
		template.set(ESC0051D010CBSMsg.OP_SVC_KEI_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OP_SVC_KEI_NO)));
		// 機器提供サービス契約番号
		template.set(ESC0051D010CBSMsg.KKTK_SCV_KEI_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_KKTK_SCV_KEI_NO)));
		// 要求元アプリ種別コード
		template.set(ESC0051D010CBSMsg.YOKYU_MT_APL_SBT_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_YOKYU_MT_APL_SBT_CD)));
		// 電話サービスオーダコード
		template.set(ESC0051D010CBSMsg.TEL_SVC_ORDER_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_TEL_SVC_ORDER_CD)));
		// 要求種別コード
		template.set(ESC0051D010CBSMsg.YOKYU_SBT_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_YOKYU_SBT_CD)));
		// 削除対象電話サービスオーダ番号
		template.set(ESC0051D010CBSMsg.DELTG_TEL_SVC_ORDER_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_DELTG_TEL_SVC_ORDER_NO)));
		// スケジュール年月日
		template.set(ESC0051D010CBSMsg.SCHEDULE_YMD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SCHEDULE_YMD)));
		// 旧認証ID
		template.set(ESC0051D010CBSMsg.OLD_NINSHO_ID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_NINSHO_ID)));
		// 認証ID
		template.set(ESC0051D010CBSMsg.NINSHO_ID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_NINSHO_ID)));
		// 旧認証IDパスワード
		template.set(ESC0051D010CBSMsg.OLD_NINSHO_ID_PWD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_NINSHO_ID_PWD)));
		// 認証IDパスワード
		template.set(ESC0051D010CBSMsg.NINSHO_ID_PWD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_NINSHO_ID_PWD)));
		// 旧IPアドレス
		template.set(ESC0051D010CBSMsg.OLD_IP_AD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_IP_AD)));
		// IPアドレス
		template.set(ESC0051D010CBSMsg.IP_AD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_IP_AD)));
		// 旧ネットマスク
		template.set(ESC0051D010CBSMsg.OLD_NETMASK, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_NETMASK)));
		// ネットマスク
		template.set(ESC0051D010CBSMsg.NETMASK, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_NETMASK)));
		// 旧BAS-ID
		template.set(ESC0051D010CBSMsg.OLD_BAS_ID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_BAS_ID)));
		// BAS-ID
		template.set(ESC0051D010CBSMsg.BAS_ID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_BAS_ID)));
		// 旧マルチセッション数
		template.set(ESC0051D010CBSMsg.OLD_MLTISE_CNT, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_MLTISE_CNT)));
		// マルチセッション数
		template.set(ESC0051D010CBSMsg.MLTISE_CNT, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_MLTISE_CNT)));
		// 旧BAS-ホストID
		template.set(ESC0051D010CBSMsg.OLD_BAS_HOST_ID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_BAS_HOST_ID)));
		// BAS-ホストID
		template.set(ESC0051D010CBSMsg.BAS_HOST_ID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_BAS_HOST_ID)));
		// 旧VLAN-ID
		template.set(ESC0051D010CBSMsg.OLD_VLAN_ID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_VLAN_ID)));
		// VLAN-ID
		template.set(ESC0051D010CBSMsg.VLAN_ID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_VLAN_ID)));
		// 旧サービスID
		template.set(ESC0051D010CBSMsg.OLD_SVC_ID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_SVC_ID)));
		// サービスID
		template.set(ESC0051D010CBSMsg.SVC_ID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SVC_ID)));
		// VAMACアドレス
		template.set(ESC0051D010CBSMsg.VA_MACAD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_VA_MACAD)));
//↓↓↓2013-12-04追加　ANK-1578-00-00多機能ルータ↓↓↓
		String teSvcOdrCd = (String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_TEL_SVC_ORDER_CD);
		String yokyuSbtCd = (String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_YOKYU_SBT_CD);
		if ("26".equals(teSvcOdrCd))			//サービスオーダコードが「多機能ルータ設定」
		{
			editOlsTerms4FatRouterSet(template, yokyuSbtCd, telSvcOrderInfo);
		}
		else
		{
//↑↑↑2013-12-04追加　ANK-1578-00-00多機能ルータ↑↑↑
			// 旧VA認証キー
			template.set(ESC0051D010CBSMsg.OLD_VA_NINSHO_KEY, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_VA_NINSHO_KEY)));
			// VA認証キー
			template.set(ESC0051D010CBSMsg.VA_NINSHO_KEY, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_VA_NINSHO_KEY)));
			// 旧SIPユーザーID#１
			template.set(ESC0051D010CBSMsg.OLD_SIP_USER_ID_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_SIP_USER_ID_1)));
			// SIPユーザーID#１
			template.set(ESC0051D010CBSMsg.SIP_USER_ID_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SIP_USER_ID_1)));
			// 旧SIPユーザーIDパスワード#１
			template.set(ESC0051D010CBSMsg.OLD_SIP_USER_ID_PWD_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_SIP_USER_ID_PWD_1)));
			// SIPユーザーIDパスワード#１
			template.set(ESC0051D010CBSMsg.SIP_USER_ID_PWD_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SIP_USER_ID_PWD_1)));
			// 旧SIPサーバードメイン#１
			template.set(ESC0051D010CBSMsg.OLD_SIP_SERVER_DOMAIN_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_SIP_SERVER_DOMAIN_1)));
			// SIPサーバードメイン#１
			template.set(ESC0051D010CBSMsg.SIP_SERVER_DOMAIN_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SIP_SERVER_DOMAIN_1)));
			// 旧SIPサーバーアドレス#１
			template.set(ESC0051D010CBSMsg.OLD_SIP_SERVER_AD_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_SIP_SERVER_AD_1)));
			// SIPサーバーアドレス#１
			template.set(ESC0051D010CBSMsg.SIP_SERVER_AD_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SIP_SERVER_AD_1)));
			// 旧主電話番号#１
			template.set(ESC0051D010CBSMsg.OLD_MAIN_TELNO_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_MAIN_TELNO_1)));
			// 主電話番号#１
			template.set(ESC0051D010CBSMsg.MAIN_TELNO_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_MAIN_TELNO_1)));
			// 旧副電話番号#１
			template.set(ESC0051D010CBSMsg.OLD_SUB_TELNO_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_SUB_TELNO_1)));
			// 副電話番号#１
			template.set(ESC0051D010CBSMsg.SUB_TELNO_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SUB_TELNO_1)));
			// 旧SIP同時接続数
			template.set(ESC0051D010CBSMsg.OLD_SIP_DOJI_CONNECT_CNT, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_SIP_DOJI_CONNECT_CNT)));
			// SIP同時接続数
			template.set(ESC0051D010CBSMsg.SIP_DOJI_CONNECT_CNT, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SIP_DOJI_CONNECT_CNT)));
			// 旧eo光電話発番号通知設定
			template.set(ESC0051D010CBSMsg.OLD_EOH_TELNO_TCHI_SET, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_EOH_TELNO_TCHI_SET)));
			// eo光電話発番号通知設定
			template.set(ESC0051D010CBSMsg.EOH_TELNO_TCHI_SET, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_EOH_TELNO_TCHI_SET)));
			// 旧SIPユーザーID#２
			template.set(ESC0051D010CBSMsg.OLD_SIP_USER_ID_2, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_SIP_USER_ID_2)));
			// SIPユーザーID#２
			template.set(ESC0051D010CBSMsg.SIP_USER_ID_2, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SIP_USER_ID_2)));
			// 旧SIPユーザーIDパスワード#２
			template.set(ESC0051D010CBSMsg.OLD_SIP_USER_ID_PWD_2, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_SIP_USER_ID_PWD_2)));
			// SIPユーザーIDパスワード#２
			template.set(ESC0051D010CBSMsg.SIP_USER_ID_PWD_2, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SIP_USER_ID_PWD_2)));
			// 旧SIPサーバードメイン#２
			template.set(ESC0051D010CBSMsg.OLD_SIP_SERVER_DOMAIN_2, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_SIP_SERVER_DOMAIN_2)));
			// SIPサーバードメイン#２
			template.set(ESC0051D010CBSMsg.SIP_SERVER_DOMAIN_2, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SIP_SERVER_DOMAIN_2)));
			// 旧SIPサーバーアドレス#２
			template.set(ESC0051D010CBSMsg.OLD_SIP_SERVER_AD_2, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_SIP_SERVER_AD_2)));
			// SIPサーバーアドレス#２
			template.set(ESC0051D010CBSMsg.SIP_SERVER_AD_2, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SIP_SERVER_AD_2)));
			// 旧主電話番号#２
			template.set(ESC0051D010CBSMsg.OLD_MAIN_TELNO_2, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_MAIN_TELNO_2)));
			// 主電話番号#２
			template.set(ESC0051D010CBSMsg.MAIN_TELNO_2, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_MAIN_TELNO_2)));
//↓↓↓2013-12-04追加　ANK-1578-00-00多機能ルータ↓↓↓
		}
//↑↑↑2013-12-04追加　ANK-1578-00-00多機能ルータ↑↑↑
		// 旧主電話番号着信設定#１
		template.set(ESC0051D010CBSMsg.OLD_MAIN_TELNO_INCOMSET_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_MAIN_TELNO_INCOMSET_1)));
		// 主電話番号着信設定#１
		template.set(ESC0051D010CBSMsg.MAIN_TELNO_INCOMSET_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_MAIN_TELNO_INCOMSET_1)));
		// 旧主電話番号着信設定#２
		template.set(ESC0051D010CBSMsg.OLD_MAIN_TELNO_INCOMSET_2, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_MAIN_TELNO_INCOMSET_2)));
		// 主電話番号着信設定#２
		template.set(ESC0051D010CBSMsg.MAIN_TELNO_INCOMSET_2, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_MAIN_TELNO_INCOMSET_2)));
		// 旧電話ポート死活設定
		template.set(ESC0051D010CBSMsg.OLD_TEL_PORT_SKT_SET, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_TEL_PORT_SKT_SET)));
		// 電話ポート死活設定
		template.set(ESC0051D010CBSMsg.TEL_PORT_SKT_SET, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_TEL_PORT_SKT_SET)));
		// 旧チャネル数
		template.set(ESC0051D010CBSMsg.OLD_CHANNEL_CNT, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_CHANNEL_CNT)));
		// チャネル数
		template.set(ESC0051D010CBSMsg.CHANNEL_CNT, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_CHANNEL_CNT)));
		// 旧SIPユーザーID
		template.set(ESC0051D010CBSMsg.OLD_SIP_USER_ID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_SIP_USER_ID)));
		// SIPユーザーID
		template.set(ESC0051D010CBSMsg.SIP_USER_ID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SIP_USER_ID)));
		// 旧SIPユーザーIDパスワード
		template.set(ESC0051D010CBSMsg.OLD_SIP_USER_ID_PWD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_SIP_USER_ID_PWD)));
		// SIPユーザーIDパスワード
		template.set(ESC0051D010CBSMsg.SIP_USER_ID_PWD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SIP_USER_ID_PWD)));
		// 旧代表アドレス
		template.set(ESC0051D010CBSMsg.OLD_DAIHYO_AD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_DAIHYO_AD)));
		// 代表アドレス
		template.set(ESC0051D010CBSMsg.DAIHYO_AD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_DAIHYO_AD)));
		// 旧代表電話番号
		template.set(ESC0051D010CBSMsg.OLD_DAIHYO_TELNO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_DAIHYO_TELNO)));
		// 代表電話番号
		template.set(ESC0051D010CBSMsg.DAIHYO_TELNO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_DAIHYO_TELNO)));
		// 旧端末識別番号
		template.set(ESC0051D010CBSMsg.OLD_TNMT_SKBT_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_TNMT_SKBT_NO)));
		// 端末識別番号
		template.set(ESC0051D010CBSMsg.TNMT_SKBT_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_TNMT_SKBT_NO)));
		// 旧主アドレス
		template.set(ESC0051D010CBSMsg.OLD_MAIN_AD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_MAIN_AD)));
		// 主アドレス
		template.set(ESC0051D010CBSMsg.MAIN_AD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_MAIN_AD)));
		// 旧主電話番号
		template.set(ESC0051D010CBSMsg.OLD_MAIN_TEL_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_MAIN_TEL_NO)));
		// 主電話番号
		template.set(ESC0051D010CBSMsg.MAIN_TEL_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_MAIN_TEL_NO)));
		// 旧端末種別
		template.set(ESC0051D010CBSMsg.OLD_TNMT_SBT, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_TNMT_SBT)));
		// 端末種別
		template.set(ESC0051D010CBSMsg.TNMT_SBT, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_TNMT_SBT)));
		// 旧発番号通知フラグ
		template.set(ESC0051D010CBSMsg.OLD_HTB_TCHI_FLG, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_HTB_TCHI_FLG)));
		// 発番号通知フラグ
		template.set(ESC0051D010CBSMsg.HTB_TCHI_FLG, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_HTB_TCHI_FLG)));
		// 旧地域コード
		template.set(ESC0051D010CBSMsg.OLD_CKI_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_CKI_CD)));
		// 地域コード
		template.set(ESC0051D010CBSMsg.CKI_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_CKI_CD)));
		// 旧天気予報グループID
		template.set(ESC0051D010CBSMsg.OLD_TENKI_YOHO_GRP_ID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_TENKI_YOHO_GRP_ID)));
		// 天気予報グループID
		template.set(ESC0051D010CBSMsg.TENKI_YOHO_GRP_ID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_TENKI_YOHO_GRP_ID)));
		// 旧加入者クラス
		template.set(ESC0051D010CBSMsg.OLD_KNYSHA_CLASS, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_KNYSHA_CLASS)));
		// 加入者クラス
		template.set(ESC0051D010CBSMsg.KNYSHA_CLASS, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_KNYSHA_CLASS)));
		// 旧Webカスコンパスワード
		template.set(ESC0051D010CBSMsg.OLD_WEB_CUSCON_PWD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_WEB_CUSCON_PWD)));
		// Webカスコンパスワード
		template.set(ESC0051D010CBSMsg.WEB_CUSCON_PWD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_WEB_CUSCON_PWD)));
		// 旧リモートカスコンパスワード
		template.set(ESC0051D010CBSMsg.OLD_RMT_CUSCON_PWD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_RMT_CUSCON_PWD)));
		// リモートカスコンパスワード
		template.set(ESC0051D010CBSMsg.RMT_CUSCON_PWD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_RMT_CUSCON_PWD)));
		// 旧ディレクトリ番号
		template.set(ESC0051D010CBSMsg.OLD_DRCTRY_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_DRCTRY_NO)));
		// ディレクトリ番号
		template.set(ESC0051D010CBSMsg.DRCTRY_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_DRCTRY_NO)));
		// 旧ルーティング番号
		template.set(ESC0051D010CBSMsg.OLD_ROUTING_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_ROUTING_NO)));
		// ルーティング番号
		template.set(ESC0051D010CBSMsg.ROUTING_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_ROUTING_NO)));
		// 旧キャッチホン契約フラグ
		template.set(ESC0051D010CBSMsg.OLD_CATPHONE_KEI_FLG, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_CATPHONE_KEI_FLG)));
		// キャッチホン契約フラグ
		template.set(ESC0051D010CBSMsg.CATPHONE_KEI_FLG, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_CATPHONE_KEI_FLG)));
		// 旧転送電話契約フラグ
		template.set(ESC0051D010CBSMsg.OLD_TENSO_TEL_KEI_FLG, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_TENSO_TEL_KEI_FLG)));
		// 転送電話契約フラグ
		template.set(ESC0051D010CBSMsg.TENSO_TEL_KEI_FLG, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_TENSO_TEL_KEI_FLG)));
		// 旧指定呼転送契約フラグ
		template.set(ESC0051D010CBSMsg.OLD_STI_KO_TENSO_KEI_FLG, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_STI_KO_TENSO_KEI_FLG)));
		// 指定呼転送契約フラグ
		template.set(ESC0051D010CBSMsg.STI_KO_TENSO_KEI_FLG, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_STI_KO_TENSO_KEI_FLG)));
		// 旧発番表示契約フラグ
		template.set(ESC0051D010CBSMsg.OLD_HTB_DSP_KEI_FLG, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_HTB_DSP_KEI_FLG)));
		// 発番表示契約フラグ
		template.set(ESC0051D010CBSMsg.HTB_DSP_KEI_FLG, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_HTB_DSP_KEI_FLG)));
		// 旧副アドレス
		template.set(ESC0051D010CBSMsg.OLD_SUB_AD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_SUB_AD)));
		// 副アドレス
		template.set(ESC0051D010CBSMsg.SUB_AD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SUB_AD)));
		// 旧副電話番号
		template.set(ESC0051D010CBSMsg.OLD_SUB_TEL_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_SUB_TEL_NO)));
		// 副電話番号
		template.set(ESC0051D010CBSMsg.SUB_TEL_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SUB_TEL_NO)));
		// 旧非通知拒否契約フラグ
		template.set(ESC0051D010CBSMsg.OLD_HITCHI_KYOHI_KEI_FLG, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_HITCHI_KYOHI_KEI_FLG)));
		// 非通知拒否契約フラグ
		template.set(ESC0051D010CBSMsg.HITCHI_KYOHI_KEI_FLG, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_HITCHI_KYOHI_KEI_FLG)));
		// 旧迷惑電話拒否契約フラグ
		template.set(ESC0051D010CBSMsg.OLD_MWKTEL_KYOHI_KEI_FLG, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_MWKTEL_KYOHI_KEI_FLG)));
		// 迷惑電話拒否契約フラグ
		template.set(ESC0051D010CBSMsg.MWKTEL_KYOHI_KEI_FLG, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_MWKTEL_KYOHI_KEI_FLG)));
		// 旧指定番号着信拒否契約フラグ
		template.set(ESC0051D010CBSMsg.OLD_STINO_INCMHI_KEI_FLG, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_STINO_INCMHI_KEI_FLG)));
		// 指定番号着信拒否契約フラグ
		template.set(ESC0051D010CBSMsg.STINO_INCMHI_KEI_FLG, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_STINO_INCMHI_KEI_FLG)));
		// 旧代表取扱契約方式
		template.set(ESC0051D010CBSMsg.OLD_DAIHYO_TRAT_KEI_HSK, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_DAIHYO_TRAT_KEI_HSK)));
		// 代表取扱契約方式
		template.set(ESC0051D010CBSMsg.DAIHYO_TRAT_KEI_HSK, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_DAIHYO_TRAT_KEI_HSK)));
		// 旧子端末識別番号１
		template.set(ESC0051D010CBSMsg.OLD_KOTNMT_SKBT_NO_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_KOTNMT_SKBT_NO_1)));
		// 子端末識別番号１
		template.set(ESC0051D010CBSMsg.KOTNMT_SKBT_NO_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_KOTNMT_SKBT_NO_1)));
		// 旧子端末識別番号２
		template.set(ESC0051D010CBSMsg.OLD_KOTNMT_SKBT_NO_2, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_KOTNMT_SKBT_NO_2)));
		// 子端末識別番号２
		template.set(ESC0051D010CBSMsg.KOTNMT_SKBT_NO_2, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_KOTNMT_SKBT_NO_2)));
		// 旧子端末識別番号３
		template.set(ESC0051D010CBSMsg.OLD_KOTNMT_SKBT_NO_3, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_KOTNMT_SKBT_NO_3)));
		// 子端末識別番号３
		template.set(ESC0051D010CBSMsg.KOTNMT_SKBT_NO_3, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_KOTNMT_SKBT_NO_3)));
		// 旧子端末識別番号４
		template.set(ESC0051D010CBSMsg.OLD_KOTNMT_SKBT_NO_4, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_KOTNMT_SKBT_NO_4)));
		// 子端末識別番号４
		template.set(ESC0051D010CBSMsg.KOTNMT_SKBT_NO_4, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_KOTNMT_SKBT_NO_4)));
		// 旧子端末識別番号５
		template.set(ESC0051D010CBSMsg.OLD_KOTNMT_SKBT_NO_5, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_KOTNMT_SKBT_NO_5)));
		// 子端末識別番号５
		template.set(ESC0051D010CBSMsg.KOTNMT_SKBT_NO_5, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_KOTNMT_SKBT_NO_5)));
		// 旧子端末識別番号６
		template.set(ESC0051D010CBSMsg.OLD_KOTNMT_SKBT_NO_6, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_KOTNMT_SKBT_NO_6)));
		// 子端末識別番号６
		template.set(ESC0051D010CBSMsg.KOTNMT_SKBT_NO_6, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_KOTNMT_SKBT_NO_6)));
		// 旧子端末識別番号７
		template.set(ESC0051D010CBSMsg.OLD_KOTNMT_SKBT_NO_7, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_KOTNMT_SKBT_NO_7)));
		// 子端末識別番号７
		template.set(ESC0051D010CBSMsg.KOTNMT_SKBT_NO_7, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_KOTNMT_SKBT_NO_7)));
		// 旧子端末識別番号８
		template.set(ESC0051D010CBSMsg.OLD_KOTNMT_SKBT_NO_8, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_KOTNMT_SKBT_NO_8)));
		// 子端末識別番号８
		template.set(ESC0051D010CBSMsg.KOTNMT_SKBT_NO_8, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_KOTNMT_SKBT_NO_8)));
		// 旧子端末識別番号９
		template.set(ESC0051D010CBSMsg.OLD_KOTNMT_SKBT_NO_9, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_KOTNMT_SKBT_NO_9)));
		// 子端末識別番号９
		template.set(ESC0051D010CBSMsg.KOTNMT_SKBT_NO_9, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_KOTNMT_SKBT_NO_9)));
		// 旧子端末識別番号１０
		template.set(ESC0051D010CBSMsg.OLD_KOTNMT_SKBT_NO_10, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_KOTNMT_SKBT_NO_10)));
		// 子端末識別番号１０
		template.set(ESC0051D010CBSMsg.KOTNMT_SKBT_NO_10, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_KOTNMT_SKBT_NO_10)));
		// 旧移転トーキ登録コード
		template.set(ESC0051D010CBSMsg.OLD_ITNTOKI_ADD_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_ITNTOKI_ADD_CD)));
		// 移転トーキ登録コード
		template.set(ESC0051D010CBSMsg.ITNTOKI_ADD_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_ITNTOKI_ADD_CD)));
		// 旧移転トーキ種別コード
		template.set(ESC0051D010CBSMsg.OLD_ITNTOKI_SBT_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_ITNTOKI_SBT_CD)));
		// 移転トーキ種別コード
		template.set(ESC0051D010CBSMsg.ITNTOKI_SBT_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_ITNTOKI_SBT_CD)));
		// 旧移転トーキガイダンス移転元電話番号
		template.set(ESC0051D010CBSMsg.OLD_ITNTOKI_GUIDNS_ITENM_TELNO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_ITNTOKI_GUIDNS_ITENM_TELNO)));
		// 移転トーキガイダンス移転元電話番号
		template.set(ESC0051D010CBSMsg.ITNTOKI_GUIDNS_ITENM_TELNO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_ITNTOKI_GUIDNS_ITENM_TELNO)));
		// 旧移転トーキガイダンス移転先電話番号
		template.set(ESC0051D010CBSMsg.OLD_ITNTOKI_GUIDNS_ITENS_TELNO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_ITNTOKI_GUIDNS_ITENS_TELNO)));
		// 移転トーキガイダンス移転先電話番号
		template.set(ESC0051D010CBSMsg.ITNTOKI_GUIDNS_ITENS_TELNO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_ITNTOKI_GUIDNS_ITENS_TELNO)));
		// 旧N_0ABJ番号
		template.set(ESC0051D010CBSMsg.OLD_N_0ABJ_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_N_0ABJ_NO)));
		// N_0ABJ番号
		template.set(ESC0051D010CBSMsg.N_0ABJ_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_N_0ABJ_NO)));
		// 旧N_050番号
		template.set(ESC0051D010CBSMsg.OLD_N_050_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_N_050_NO)));
		// N_050番号
		template.set(ESC0051D010CBSMsg.N_050_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_N_050_NO)));
		// 緊急通報用電話番号
		template.set(ESC0051D010CBSMsg.EMG_TELNO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_EMG_TELNO)));
		// 緊急通報用氏名
		template.set(ESC0051D010CBSMsg.EMG_NM, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_EMG_NM)));
		// 緊急通報用カナ氏名
		template.set(ESC0051D010CBSMsg.EMG_KANA, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_EMG_KANA)));
		// 緊急通報用住所コード
		template.set(ESC0051D010CBSMsg.EMG_AD_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_EMG_AD_CD)));
		// 緊急通報用住所
		template.set(ESC0051D010CBSMsg.EMG_AD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_EMG_AD)));
		// 緊急通報用番地号
		template.set(ESC0051D010CBSMsg.EMG_BNCHIGO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_EMG_BNCHIGO)));
		// 緊急通報用住所補記
		template.set(ESC0051D010CBSMsg.EMG_AD_HOKI, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_EMG_AD_HOKI)));
		// SIP-DN＃１
		template.set(ESC0051D010CBSMsg.SIP_DN_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SIP_DN_1)));
		// SIP-NRN＃１
		template.set(ESC0051D010CBSMsg.SIP_NRN_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SIP_NRN_1)));
		// SIP-DN＃２
		template.set(ESC0051D010CBSMsg.SIP_DN_2, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SIP_DN_2)));
		// SIP-NRN＃２
		template.set(ESC0051D010CBSMsg.SIP_NRN_2, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SIP_NRN_2)));
		// SIP-DN
		template.set(ESC0051D010CBSMsg.SIP_DN, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SIP_DN)));
		// 旧SIP-NRN
		template.set(ESC0051D010CBSMsg.OLD_SIP_NRN, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_OLD_SIP_NRN)));
		// SIP-NRN
		template.set(ESC0051D010CBSMsg.SIP_NRN, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SIP_NRN)));
		// ポート番号＃１
		template.set(ESC0051D010CBSMsg.PORT_NO_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_PORT_NO_1)));
		// ポート番号＃２
		template.set(ESC0051D010CBSMsg.PORT_NO_2, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_PORT_NO_2)));
		// 発番号通知フラグ＃１
		template.set(ESC0051D010CBSMsg.HTB_TCHI_FLG_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_HTB_TCHI_FLG_1)));
		// 発番号通知フラグ＃２
		template.set(ESC0051D010CBSMsg.HTB_TCHI_FLG_2, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_HTB_TCHI_FLG_2)));
//↓↓↓2013-12-04追加　ANK-1578-00-00多機能ルータ↓↓↓
		// 多機能ルーターMACアドレス
		template.set(ESC0051D010CBSMsg.TAKINORT_MACAD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.TAKINORT_MACAD)));
// 2013/12/28 mod start
		if ("26".equals(teSvcOdrCd) && "02".equals(yokyuSbtCd))
		{
			// 旧多機能ルーター認証キー
			template.set(ESC0051D010CBSMsg.OLD_TAKINORT_NINSHO_KEY, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_TAKINORT_NINSHO_KEY)));
			// 多機能ルーター認証キー
			template.set(ESC0051D010CBSMsg.TAKINORT_NINSHO_KEY, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.TAKINORT_NINSHO_KEY)));
		}
// 2013/12/28 mod end
		// 旧PPPoEセッション終端設定コード
		template.set(ESC0051D010CBSMsg.OLD_PPPOE_SSON_STSET_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_PPPOE_SSON_STSET_CD)));
		// PPPoEセッション終端設定コード
		template.set(ESC0051D010CBSMsg.PPPOE_SSON_STSET_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.PPPOE_SSON_STSET_CD)));
		// 旧DHCP有効無効コード
		template.set(ESC0051D010CBSMsg.OLD_DHCP_YK_MK_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_DHCP_YK_MK_CD)));
		// DHCP有効無効コード
		template.set(ESC0051D010CBSMsg.DHCP_YK_MK_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.DHCP_YK_MK_CD)));
		// 旧有線LAN機能モード識別コード
		template.set(ESC0051D010CBSMsg.OLD_YLAN_KINO_MODE_SKCD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_YLAN_KINO_MODE_SKCD)));
		// 有線LAN機能モード識別コード
		template.set(ESC0051D010CBSMsg.YLAN_KINO_MODE_SKCD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.YLAN_KINO_MODE_SKCD)));
		// 旧無線LAN機能モード識別コード
		template.set(ESC0051D010CBSMsg.OLD_MLAN_KINO_MODE_SKCD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_MLAN_KINO_MODE_SKCD)));
		// 無線LAN機能モード識別コード
		template.set(ESC0051D010CBSMsg.MLAN_KINO_MODE_SKCD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.MLAN_KINO_MODE_SKCD)));
		// 旧VoIP有効無効コード
		template.set(ESC0051D010CBSMsg.OLD_VOIP_YK_MK_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_VOIP_YK_MK_CD)));
		// VoIP有効無効コード
		template.set(ESC0051D010CBSMsg.VOIP_YK_MK_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.VOIP_YK_MK_CD)));
		// 旧B2BUA有効無効コード
		template.set(ESC0051D010CBSMsg.OLD_B2BUA_YK_MK_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_B2BUA_YK_MK_CD)));
		// B2BUA有効無効コード
		template.set(ESC0051D010CBSMsg.B2BUA_YK_MK_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.B2BUA_YK_MK_CD)));
		// 旧提供プロトコル種別コード
		template.set(ESC0051D010CBSMsg.OLD_TK_PRTCL_SBT_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_TK_PRTCL_SBT_CD)));
		// 提供プロトコル種別コード
		template.set(ESC0051D010CBSMsg.TK_PRTCL_SBT_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.TK_PRTCL_SBT_CD)));
		// 旧IPv6帯域制御コード
		template.set(ESC0051D010CBSMsg.OLD_IPV6_TAIIKI_CTRL_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_IPV6_TAIIKI_CTRL_CD)));
		// IPv6帯域制御コード
		template.set(ESC0051D010CBSMsg.IPV6_TAIIKI_CTRL_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.IPV6_TAIIKI_CTRL_CD)));
		// 旧多機能ルータールーター認証ID
		template.set(ESC0051D010CBSMsg.OLD_TKNRT_RTR_NSID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_TKNRT_RTR_NSID)));
		// 多機能ルータールーター認証ID
		template.set(ESC0051D010CBSMsg.TKNRT_RTR_NSID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.TKNRT_RTR_NSID)));
		// 旧多機能ルータールーター認証IDパスワード
		template.set(ESC0051D010CBSMsg.OLD_TKNRT_RTR_NSID_PWD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_TKNRT_RTR_NSID_PWD)));
		// 多機能ルータールーター認証IDパスワード
		template.set(ESC0051D010CBSMsg.TKNRT_RTR_NSID_PWD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.TKNRT_RTR_NSID_PWD)));
		// 旧IPv6認証ID
		template.set(ESC0051D010CBSMsg.OLD_IPV6_NINSHO_ID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_IPV6_NINSHO_ID)));
		// IPv6認証ID
		template.set(ESC0051D010CBSMsg.IPV6_NINSHO_ID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.IPV6_NINSHO_ID)));
		// 旧IPv6認証IDパスワード
		template.set(ESC0051D010CBSMsg.OLD_IPV6_NINSHO_ID_PWD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_IPV6_NINSHO_ID_PWD)));
		// IPv6認証IDパスワード
		template.set(ESC0051D010CBSMsg.IPV6_NINSHO_ID_PWD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.IPV6_NINSHO_ID_PWD)));
		// 旧接続モードコード
		template.set(ESC0051D010CBSMsg.OLD_CONNECT_MODE_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_CONNECT_MODE_CD)));
		// 接続モードコード
		template.set(ESC0051D010CBSMsg.CONNECT_MODE_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.CONNECT_MODE_CD)));
		// 旧自動切断モードコード
		template.set(ESC0051D010CBSMsg.OLD_AUTO_CUT_MODE_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_AUTO_CUT_MODE_CD)));
		// 自動切断モードコード
		template.set(ESC0051D010CBSMsg.AUTO_CUT_MODE_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.AUTO_CUT_MODE_CD)));
		// 旧自動切断時間
		template.set(ESC0051D010CBSMsg.OLD_AUTO_CUT_TIME, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_AUTO_CUT_TIME)));
		// 自動切断時間
		template.set(ESC0051D010CBSMsg.AUTO_CUT_TIME, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.AUTO_CUT_TIME)));
		// 旧L2TP認証ID
		template.set(ESC0051D010CBSMsg.OLD_L2TP_NINSHO_ID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_L2TP_NINSHO_ID)));
		// L2TP認証ID
		template.set(ESC0051D010CBSMsg.L2TP_NINSHO_ID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.L2TP_NINSHO_ID)));
		// 旧L2TP認証ID(セカンダリー)
		template.set(ESC0051D010CBSMsg.OLD_L2TP_NINSHO_ID_SECON, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_L2TP_NINSHO_ID_SECON)));
		// L2TP認証ID(セカンダリー)
		template.set(ESC0051D010CBSMsg.L2TP_NINSHO_ID_SECON, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.L2TP_NINSHO_ID_SECON)));
		// 旧PPPoEブリッジ種別コード
		template.set(ESC0051D010CBSMsg.OLD_PPPOE_BRIDGE_SBT_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_PPPOE_BRIDGE_SBT_CD)));
		// PPPoEブリッジ種別コード
		template.set(ESC0051D010CBSMsg.PPPOE_BRIDGE_SBT_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.PPPOE_BRIDGE_SBT_CD)));
		// 旧Ping応答種別コード
		template.set(ESC0051D010CBSMsg.OLD_PING_RESPONSE_SBT_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_PING_RESPONSE_SBT_CD)));
		// Ping応答種別コード
		template.set(ESC0051D010CBSMsg.PING_RESPONSE_SBT_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.PING_RESPONSE_SBT_CD)));
		// 旧IPv6Ping応答種別コード
		template.set(ESC0051D010CBSMsg.OLD_IPV6_PING_RSP_SBT_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_IPV6_PING_RSP_SBT_CD)));
		// IPv6Ping応答種別コード
		template.set(ESC0051D010CBSMsg.IPV6_PING_RSP_SBT_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.IPV6_PING_RSP_SBT_CD)));
		// 旧多機能ルーターVA認証ID
		template.set(ESC0051D010CBSMsg.OLD_TKNRT_VA_NSID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_TKNRT_VA_NSID)));
		// 多機能ルーターVA認証ID
		template.set(ESC0051D010CBSMsg.TKNRT_VA_NSID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.TKNRT_VA_NSID)));
		// 旧多機能ルーターVA認証IDパスワード
		template.set(ESC0051D010CBSMsg.OLD_TKNRT_VA_NSID_PWD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_TKNRT_VA_NSID_PWD)));
		// 多機能ルーターVA認証IDパスワード
		template.set(ESC0051D010CBSMsg.TKNRT_VA_NSID_PWD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.TKNRT_VA_NSID_PWD)));
		// 旧多機能ルーターOLS契約種別設定コード
		template.set(ESC0051D010CBSMsg.OLD_TKNRT_OLS_KSBT_SETCD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_TKNRT_OLS_KSBT_SETCD)));
		// 多機能ルーターOLS契約種別設定コード
		template.set(ESC0051D010CBSMsg.TKNRT_OLS_KSBT_SETCD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.TKNRT_OLS_KSBT_SETCD)));
		// 旧IPv6中心局コード
		template.set(ESC0051D010CBSMsg.OLD_IPV6_CHUSKK_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_IPV6_CHUSKK_CD)));
		// IPv6中心局コード
		template.set(ESC0051D010CBSMsg.IPV6_CHUSKK_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.IPV6_CHUSKK_CD)));
		// 旧IPv6アドレス(インターフェイスID)
		template.set(ESC0051D010CBSMsg.OLD_IPV6_AD_IFID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_IPV6_AD_IFID)));
		// IPv6アドレス(インターフェイスID)
		template.set(ESC0051D010CBSMsg.IPV6_AD_IFID, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.IPV6_AD_IFID)));
		// 旧IPv6宅内機器型式コード
		template.set(ESC0051D010CBSMsg.OLD_IPV6_TAKNKIKI_MODEL_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_IPV6_TAKNKIKI_MODEL_CD)));
		// IPv6宅内機器型式コード
		template.set(ESC0051D010CBSMsg.IPV6_TAKNKIKI_MODEL_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.IPV6_TAKNKIKI_MODEL_CD)));
		// 旧GE-PON連携対象フラグ
		template.set(ESC0051D010CBSMsg.OLD_GEPON_RNKI_TRGT_FLG, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_GEPON_RNKI_TRGT_FLG)));
		// GE-PON連携対象フラグ
		template.set(ESC0051D010CBSMsg.GEPON_RNKI_TRGT_FLG, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.GEPON_RNKI_TRGT_FLG)));
		// 旧優先呼識別値
		template.set(ESC0051D010CBSMsg.OLD_YUSEN_KO_SKVAL, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.OLD_YUSEN_KO_SKVAL)));
		// 優先呼識別値
		template.set(ESC0051D010CBSMsg.YUSEN_KO_SKVAL, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.YUSEN_KO_SKVAL)));
		// 優先呼フラグ＃１
		template.set(ESC0051D010CBSMsg.YUSEN_KO_FLG_1, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.YUSEN_KO_FLG_1)));
		// 優先呼フラグ＃２
		template.set(ESC0051D010CBSMsg.YUSEN_KO_FLG_2, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendReqConst.YUSEN_KO_FLG_2)));
//↑↑↑2013-12-04追加　ANK-1578-00-00多機能ルータ↑↑↑
// 20140519 ANK-2113-00-00 Add Start
		// サービスオーダがOLSまたは多機能ルータで、要求種別が新規または変更の場合
		if (("20".equals(teSvcOdrCd) || "26".equals(teSvcOdrCd)) &&
			("02".equals(yokyuSbtCd) || "04".equals(yokyuSbtCd))) {
// #86502 2025/02/10 MOD START
//			// ANK-2343-00-00 2014/11/06 mod start
//			// 更新ユーザIDに「EO2B20160J0」(出荷完了時機器開始登録)が含まれる場合
			// 更新ユーザIDに「EO2B20160J0」(出荷完了時機器開始登録)、もしくは「EO2IR0110J0」(乗換完了後機器引継)が含まれる場合
//			//if (updTrnId.indexOf("EO2B20120K0") >= 0) {
//			if (updTrnId.indexOf("EO2B20160J0") >= 0) {
			if (updTrnId.indexOf("EO2B20160J0") >= 0 || updTrnId.indexOf("EO2IR0110J0") >= 0)
			{
//			// ANK-2343-00-00 2014/11/06 mod end
// #86502 2025/02/10 MOD END
				// サービスオーダ詳細コード「低」
				template.set(ESC0051D010CBSMsg.SVC_ORDER_DTAIL_CD, "01");
				
			} else {
// 20140530 ANK-2113-00-00 Mod Start
//				// サービスオーダ詳細コード「高」
//				template.set(ESC0051D010CBSMsg.SVC_ORDER_DTAIL_CD, "02");
				boolean odrChkFlg = (Boolean)telSvcOrderInfo.get(JKKSodSendConstCC.ODR_CHK_FLG);
				// Z1、Z3オーダの時は優先度を下げる(追い越し防止のため)
				if (odrChkFlg) {
					// サービスオーダ詳細コード「低」
					template.set(ESC0051D010CBSMsg.SVC_ORDER_DTAIL_CD, "01");
					
				} else {
					// サービスオーダ詳細コード「高」
					template.set(ESC0051D010CBSMsg.SVC_ORDER_DTAIL_CD, "02");
				}
// 20140530 ANK-2113-00-00 Mod End
			}
		// ANK-2343-00-00 2014/10/27 add start
		// サービスオーダがOLSまたは多機能ルータで、要求種別が解約または消去の場合
		}else if(("20".equals(teSvcOdrCd) || "26".equals(teSvcOdrCd)) &&
				("03".equals(yokyuSbtCd) || "08".equals(yokyuSbtCd))){
			// 更新ユーザIDに返品登録系のIDが含まれる場合
			if(isHenpinToroku(updTrnId)) {
				// サービスオーダ詳細コード「高」
				template.set(ESC0051D010CBSMsg.SVC_ORDER_DTAIL_CD, "02");
// ▽▽▽ OM-2020-0000318 ADD START
			} 
			// オーダ詳細コードが優先的に設定されている場合
			else if ( odrDtlCd != null) {
				
				template.set(ESC0051D010CBSMsg.SVC_ORDER_DTAIL_CD, odrDtlCd);
// △△△ OM-2020-0000318 ADD END
			}else{
				// サービスオーダ詳細コード「低」
				template.set(ESC0051D010CBSMsg.SVC_ORDER_DTAIL_CD, "01");
			}
		// ANK-2343-00-00 2014/10/27 add end
		} else {
			// サービスオーダ詳細コード「低」
			template.set(ESC0051D010CBSMsg.SVC_ORDER_DTAIL_CD, "01");
		}
// 20140519 ANK-2113-00-00 Add End
		// ANK-3754-00-00 ADD START
		if ("26".equals(teSvcOdrCd))			//サービスオーダコードが「多機能ルータ設定」
		{
			// あんしん発着信契約＃１変更有無
			template.set(ESC0051D010CBSMsg.ANSN_HCS_KEI_1_CHGUM, convBlankToNull((String)telSvcOrderInfo.get(ESC0051D010CBSMsg.ANSN_HCS_KEI_1_CHGUM)));
		
			// あんしん発着信契約＃１
			template.set(ESC0051D010CBSMsg.ANSN_HCS_KEI_1, convBlankToNull((String)telSvcOrderInfo.get(ESC0051D010CBSMsg.ANSN_HCS_KEI_1)));
			
			// あんしん発着信ID＃１変更有無
			template.set(ESC0051D010CBSMsg.ANSN_HCS_ID_1_CHGUM, convBlankToNull((String)telSvcOrderInfo.get(ESC0051D010CBSMsg.ANSN_HCS_ID_1_CHGUM)));

			// あんしん発着信ID＃１
			template.set(ESC0051D010CBSMsg.ANSN_HCS_ID_1, convBlankToNull((String)telSvcOrderInfo.get(ESC0051D010CBSMsg.ANSN_HCS_ID_1)));

			// 市外局番＃１変更有無
			template.set(ESC0051D010CBSMsg.AREACD_1_CHGUM, convBlankToNull((String)telSvcOrderInfo.get(ESC0051D010CBSMsg.AREACD_1_CHGUM)));

			// 市外局番＃１
			template.set(ESC0051D010CBSMsg.AREACD_1, convBlankToNull((String)telSvcOrderInfo.get(ESC0051D010CBSMsg.AREACD_1)));

			// あんしん発着信契約＃２変更有無
			template.set(ESC0051D010CBSMsg.ANSN_HCS_KEI_2_CHGUM, convBlankToNull((String)telSvcOrderInfo.get(ESC0051D010CBSMsg.ANSN_HCS_KEI_2_CHGUM)));

			// あんしん発着信契約＃２
			template.set(ESC0051D010CBSMsg.ANSN_HCS_KEI_2, convBlankToNull((String)telSvcOrderInfo.get(ESC0051D010CBSMsg.ANSN_HCS_KEI_2)));

			// あんしん発着信ID＃２変更有無
			template.set(ESC0051D010CBSMsg.ANSN_HCS_ID_2_CHGUM, convBlankToNull((String)telSvcOrderInfo.get(ESC0051D010CBSMsg.ANSN_HCS_ID_2_CHGUM)));

			// あんしん発着信ID＃２
			template.set(ESC0051D010CBSMsg.ANSN_HCS_ID_2, convBlankToNull((String)telSvcOrderInfo.get(ESC0051D010CBSMsg.ANSN_HCS_ID_2)));

			// 市外局番＃２変更有無
			template.set(ESC0051D010CBSMsg.AREACD_2_CHGUM, convBlankToNull((String)telSvcOrderInfo.get(ESC0051D010CBSMsg.AREACD_2_CHGUM)));

			// 市外局番＃２
			template.set(ESC0051D010CBSMsg.AREACD_2, convBlankToNull((String)telSvcOrderInfo.get(ESC0051D010CBSMsg.AREACD_2)));
		}
		// ANK-3754-00-00 ADD END
		
		// ANK-3876-00-00 ADD START
		if ("28".equals(teSvcOdrCd))			//サービスオーダコードが「ENUM設定」
		{
			// 電話番号
			template.set(ESC0051D010CBSMsg.TELNO, convBlankToNull((String)telSvcOrderInfo.get(ESC0051D010CBSMsg.TELNO)));
			// ネットワークルーティング番号
			template.set(ESC0051D010CBSMsg.NW_ROUTING_NO, convBlankToNull((String)telSvcOrderInfo.get(ESC0051D010CBSMsg.NW_ROUTING_NO)));
			// サービス区分
			template.set(ESC0051D010CBSMsg.SVC_DIV, convBlankToNull((String)telSvcOrderInfo.get(ESC0051D010CBSMsg.SVC_DIV)));
			// ドメイン
			template.set(ESC0051D010CBSMsg.DOMAIN, convBlankToNull((String)telSvcOrderInfo.get(ESC0051D010CBSMsg.DOMAIN)));
		}
		// ANK-3876-00-00 ADD END
		
		// 上り情報を生成
		return editInMsgCmn(param, template);
	}
	
	// ANK-2343-00-00 2014/10/27 add start
	private boolean isHenpinToroku(String updTrnId){
		boolean flg = false;
		// 更新ユーザIDに「EO50D0210J0,DKW00303,DKW02902」(返品登録系)が含まれる場合true
		if(updTrnId.indexOf("EO50D0210J0") >= 0
				|| updTrnId.indexOf("DKW00303") >= 0
				|| updTrnId.indexOf("DKW02902") >= 0) {
			flg = true;
		}
		return flg;
	}
	// ANK-2343-00-00 2014/10/27 add end
	/**
	 * 
	 * @param template
	 * @param yokyuSbtCd
	 * @param telSvcOrderInfo 
	 * @since 2013-12-04 ANK-1578-00-00多機能ルータ対応
	 */
	private void editOlsTerms4FatRouterSet(CAANMsg template, String yokyuSbtCd,
			HashMap<String, Object> telSvcOrderInfo)
	{
		String[] oldItems = {
				ESC0051D010CBSMsg.OLD_VA_NINSHO_KEY,
				ESC0051D010CBSMsg.OLD_SIP_USER_ID_1,
				ESC0051D010CBSMsg.OLD_SIP_USER_ID_PWD_1,
				ESC0051D010CBSMsg.OLD_SIP_SERVER_DOMAIN_1,
				ESC0051D010CBSMsg.OLD_SIP_SERVER_AD_1,
				ESC0051D010CBSMsg.OLD_MAIN_TELNO_1,
				ESC0051D010CBSMsg.OLD_SUB_TELNO_1,
				ESC0051D010CBSMsg.OLD_SIP_DOJI_CONNECT_CNT,
				ESC0051D010CBSMsg.OLD_SIP_USER_ID_2,
				ESC0051D010CBSMsg.OLD_SIP_USER_ID_PWD_2,
				ESC0051D010CBSMsg.OLD_SIP_SERVER_DOMAIN_2,
				ESC0051D010CBSMsg.OLD_SIP_SERVER_AD_2,
				ESC0051D010CBSMsg.OLD_MAIN_TELNO_2
		};
		
		String[] newItems = {
				ESC0051D010CBSMsg.VA_NINSHO_KEY,
				ESC0051D010CBSMsg.SIP_USER_ID_1,
				ESC0051D010CBSMsg.SIP_USER_ID_PWD_1,
				ESC0051D010CBSMsg.SIP_SERVER_DOMAIN_1,
				ESC0051D010CBSMsg.SIP_SERVER_AD_1,
				ESC0051D010CBSMsg.MAIN_TELNO_1,
				ESC0051D010CBSMsg.SUB_TELNO_1,
				ESC0051D010CBSMsg.SIP_DOJI_CONNECT_CNT,
				ESC0051D010CBSMsg.SIP_USER_ID_2,
				ESC0051D010CBSMsg.SIP_USER_ID_PWD_2,
				ESC0051D010CBSMsg.SIP_SERVER_DOMAIN_2,
				ESC0051D010CBSMsg.SIP_SERVER_AD_2,
				ESC0051D010CBSMsg.MAIN_TELNO_2
		};
		
		String[] inItems = {
				JKKSodSendConstCC.TSOI_VA_NINSHO_KEY,
				JKKSodSendConstCC.TSOI_SIP_USER_ID_1,
				JKKSodSendConstCC.TSOI_SIP_USER_ID_PWD_1,
				JKKSodSendConstCC.TSOI_SIP_SERVER_DOMAIN_1,
				JKKSodSendConstCC.TSOI_SIP_SERVER_AD_1,
				JKKSodSendConstCC.TSOI_MAIN_TELNO_1,
				JKKSodSendConstCC.TSOI_SUB_TELNO_1,
				JKKSodSendConstCC.TSOI_SIP_DOJI_CONNECT_CNT,
				JKKSodSendConstCC.TSOI_SIP_USER_ID_2,
				JKKSodSendConstCC.TSOI_SIP_USER_ID_PWD_2,
				JKKSodSendConstCC.TSOI_SIP_SERVER_DOMAIN_2,
				JKKSodSendConstCC.TSOI_SIP_SERVER_AD_2,
				JKKSodSendConstCC.TSOI_MAIN_TELNO_2
		};
		
		String[] inItems4Old = {
				JKKSodSendConstCC.TSOI_OLD_VA_NINSHO_KEY,
				JKKSodSendConstCC.TSOI_OLD_SIP_USER_ID_1,
				JKKSodSendConstCC.TSOI_OLD_SIP_USER_ID_PWD_1,
				JKKSodSendConstCC.TSOI_OLD_SIP_SERVER_DOMAIN_1,
				JKKSodSendConstCC.TSOI_OLD_SIP_SERVER_AD_1,
				JKKSodSendConstCC.TSOI_OLD_MAIN_TELNO_1,
				JKKSodSendConstCC.TSOI_OLD_SUB_TELNO_1,
				JKKSodSendConstCC.TSOI_OLD_SIP_DOJI_CONNECT_CNT,
				JKKSodSendConstCC.TSOI_OLD_SIP_USER_ID_2,
				JKKSodSendConstCC.TSOI_OLD_SIP_USER_ID_PWD_2,
				JKKSodSendConstCC.TSOI_OLD_SIP_SERVER_DOMAIN_2,
				JKKSodSendConstCC.TSOI_OLD_SIP_SERVER_AD_2,
				JKKSodSendConstCC.TSOI_OLD_MAIN_TELNO_2
		};
		
		
		if ("02".equals(yokyuSbtCd))		//要求種別が「新規」
		{
			for (int i=0; i<oldItems.length; i++)
			{
				template.setNull(oldItems[i]);
			}
			for (int i=0; i<newItems.length; i++)
			{
				template.set(newItems[i], convNullToBlank((String)telSvcOrderInfo.get(inItems[i])));
			}
		}
		else
		{
			for (int i=0; i<oldItems.length; i++)
			{
				template.set(oldItems[i], convBlankToNull((String)telSvcOrderInfo.get(inItems4Old[i])));
			}
			for (int i=0; i<newItems.length; i++)
			{
				template.set(newItems[i], convBlankToNull((String)telSvcOrderInfo.get(inItems[i])));
			}
			
			//認証キーが‘変更’になるよう旧側を調整
			String ninshoKey = (String)telSvcOrderInfo.get(JKKSodSendReqConst.TAKINORT_NINSHO_KEY);
			telSvcOrderInfo.put(JKKSodSendReqConst.OLD_TAKINORT_NINSHO_KEY, ninshoKey);
			telSvcOrderInfo.put(JKKSodSendConstCC.TSOI_OLD_VA_NINSHO_KEY, ninshoKey);
			template.set(ESC0051D010CBSMsg.OLD_VA_NINSHO_KEY, ninshoKey);	//セットを上書き
		}
		
		// TODO 自動生成されたメソッドスタブ
		
	}


	/**
	 * ESC0031D010_モバイルオーダ受付
	 * サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 * 
	 * @param param リクエストパラメータ
	 * @param mobileOrderInfo モバイルオーダ情報
	 * @return S/I上り情報
	 * @throws RequestParameterException
	 */
	public HashMap<String, Object> editInMsgESC0031D010(
			IRequestParameterReadWrite param,
			HashMap<String, Object> mobileOrderInfo)
			throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(ESC0031D010CBSMsg.class.getName());
		
		// nullマッピングを実施
		fillCAANMSGNullMapping(template, new ESC0031D010CBSMsg().getContents());

		// 共通部を設定
		editInMsgBasicCmn(param, template);

		// テンプレートID(SIFのID)
		template.set(ESC0031D010CBSMsg.TEMPLATEID, "ESC0031D010");

		// 機能コード
		template.set(ESC0031D010CBSMsg.FUNC_CODE, mobileOrderInfo.get(JKKSodSendConstCC.MOI_FUNC_CD));
		
		// サービス契約番号
		template.set(ESC0031D010CBSMsg.SVC_KEI_NO, convBlankToNull((String)mobileOrderInfo.get(JKKSodSendConstCC.MOI_SVC_KEI_NO)));
		// サービス契約内訳番号
		template.set(ESC0031D010CBSMsg.SVC_KEI_UCWK_NO, convBlankToNull((String)mobileOrderInfo.get(JKKSodSendConstCC.MOI_SVC_KEI_UCWK_NO)));
		// 法人eo読替サービス契約番号
		template.set(ESC0031D010CBSMsg.HJIN_EO_YKAE_SVKEI_NO, convBlankToNull((String)mobileOrderInfo.get(JKKSodSendConstCC.MOI_HJIN_EO_YKAE_SVKEI_NO)));
		// 要求元アプリ種別コード
		template.set(ESC0031D010CBSMsg.YOKYU_MT_APL_SBT_CD, convBlankToNull((String)mobileOrderInfo.get(JKKSodSendConstCC.MOI_YOKYU_MT_APL_SBT_CD)));
		// モバイルオーダコード
		template.set(ESC0031D010CBSMsg.MOBILE_ORDER_CD, convBlankToNull((String)mobileOrderInfo.get(JKKSodSendConstCC.MOI_MOBILE_ORDER_CD)));
		// 要求種別コード
		template.set(ESC0031D010CBSMsg.YOKYU_SBT_CD, convBlankToNull((String)mobileOrderInfo.get(JKKSodSendConstCC.MOI_YOKYU_SBT_CD)));
		// スケジュール年月日
		template.set(ESC0031D010CBSMsg.SCHEDULE_YMD, convBlankToNull((String)mobileOrderInfo.get(JKKSodSendConstCC.MOI_SCHEDULE_YMD)));
		// SYSID
		template.set(ESC0031D010CBSMsg.SYSID, convBlankToNull((String)mobileOrderInfo.get(JKKSodSendConstCC.MOI_SYSID)));
		// 旧SPOT_セッション数
		template.set(ESC0031D010CBSMsg.OLD_SPOT_SESSION_CNT, convBlankToNull((String)mobileOrderInfo.get(JKKSodSendConstCC.MOI_OLD_SPOT_SESSION_CNT)));
		// SPOT_セッション数
		template.set(ESC0031D010CBSMsg.SPOT_SESSION_CNT, convBlankToNull((String)mobileOrderInfo.get(JKKSodSendConstCC.MOI_SPOT_SESSION_CNT)));
		// UQ認証ID
		template.set(ESC0031D010CBSMsg.UQ_NINSHO_ID, convBlankToNull((String)mobileOrderInfo.get(JKKSodSendConstCC.MOI_UQ_NINSHO_ID)));
		// UQ認証IDパスワード
		template.set(ESC0031D010CBSMsg.UQ_NINSHO_ID_PWD, convBlankToNull((String)mobileOrderInfo.get(JKKSodSendConstCC.MOI_UQ_NINSHO_ID_PWD)));
		// UQMACアドレス
		template.set(ESC0031D010CBSMsg.UQ_MACAD, convBlankToNull((String)mobileOrderInfo.get(JKKSodSendConstCC.MOI_UQ_MACAD)));
		// UQROM種別コード
		template.set(ESC0031D010CBSMsg.UQ_ROM_SBT_CD, convBlankToNull((String)mobileOrderInfo.get(JKKSodSendConstCC.MOI_UQ_ROM_SBT_CD)));
		// UQ料金プランコード
		template.set(ESC0031D010CBSMsg.UQ_PPLAN_CD, convBlankToNull((String)mobileOrderInfo.get(JKKSodSendConstCC.MOI_UQ_PPLAN_CD)));
		// EM再販事業者様設定課金開始日
		template.set(ESC0031D010CBSMsg.EM_SIJGSHA_SET_CHRG_STAYMD, convBlankToNull((String)mobileOrderInfo.get(JKKSodSendConstCC.MOI_EM_SIJGSHA_SET_CHRG_STAYMD)));
		// EM契約者コード
		template.set(ESC0031D010CBSMsg.EM_KEISHA_CD, convBlankToNull((String)mobileOrderInfo.get(JKKSodSendConstCC.MOI_EM_KEISHA_CD)));
		// EM連携抑止フラグ
		template.set(ESC0031D010CBSMsg.EM_RNKI_STP_FLG, convBlankToNull((String)mobileOrderInfo.get(JKKSodSendConstCC.MOI_EM_RNKI_STP_FLG)));

		// 上り情報を生成
		return editInMsgCmn(param, template);
	}
	
	/**
	 * EKK1081C010_オーダ発行条件変更
	 * サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 * 
	 * @param param リクエストパラメータ
	 * @param odrHakkoJokenInfo オーダ発行条件情報
	 * @return S/I上り情報
	 * @throws RequestParameterException
	 */
	public HashMap<String, Object> editInMsgEKK1081C010(
			IRequestParameterReadWrite param,
			HashMap<String, Object> odrHakkoJokenInfo)
			throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK1081C010CBSMsg.class.getName());
		
		// nullマッピングを実施
		fillCAANMSGNullMapping(template, new EKK1081C010CBSMsg().getContents());

		// 共通部を設定
		editInMsgBasicCmn(param, template);

		// テンプレートID(SIFのID)
		template.set(EKK1081C010CBSMsg.TEMPLATEID, "EKK1081C010");

		// 機能コード
		template.set(EKK1081C010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
		
		// オーダ発行条件番号
		String odrHakkoJokenNo = convBlankToNull((String)odrHakkoJokenInfo.get(JKKSodSendConstCC.OHJI_ODR_HAKKO_JOKEN_NO));
		template.set(EKK1081C010CBSMsg.ODR_HAKKO_JOKEN_NO, odrHakkoJokenNo);
		// オーダ発行条件コード
		template.set(EKK1081C010CBSMsg.ODR_HAKKO_JOKEN_CD, convBlankToNull((String)odrHakkoJokenInfo.get(JKKSodSendConstCC.OHJI_ODR_HAKKO_JOKEN_CD)));
		// 更新年月日時分秒(更新前)
		//↓↓↓2012-07-19変更　ST2-2012-0001384対応↓↓↓
		String updDtmBf = this.newerUpdDtm.get(odrHakkoJokenNo);
		if (null == updDtmBf || 1 > updDtmBf.length())
		{
			updDtmBf = convBlankToNull((String)odrHakkoJokenInfo.get(JKKSodSendConstCC.OHJI_UPD_DTM));
		}
		template.set(EKK1081C010CBSMsg.UPD_DTM_BF, updDtmBf);
		//↑↑↑2012-07-19変更　ST2-2012-0001384対応↑↑↑

		// 送信依頼完了年月日時分秒
//↓↓↓ANK-1578-00-00 多機能ルータ対応のついでの品質向上（サービスオーダ／電話オーダ／モバイルオーダと紐付け）↓↓↓
//		template.set(EKK1081C010CBSMsg.SEND_REQ_FIN_DTM, JCCBPCommon.getSysDateTimeStamp());
		/** サービスオーダ受付の送信依頼受付日時を設定し、サービス制御と紐付けられるようにする */
		String ukeDtm = (String) odrHakkoJokenInfo.get(JKKSodSendConstCC.SVC_ODR_UK_DTM);
		template.set(EKK1081C010CBSMsg.SEND_REQ_FIN_DTM, ukeDtm);
//↑↑↑ANK-1578-00-00 多機能ルータ対応のついでの品質向上（サービスオーダ／電話オーダ／モバイルオーダと紐付け）↑↑↑
		
		// 上り情報を生成
		return editInMsgCmn(param, template);
	}
	
	/**
	 * EKK1041D010_オーダ設定登録
	 * サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 * 
	 * @param param リクエストパラメータ
	 * @param odrSetInfo オーダ設定情報
	 * @return S/I上り情報
	 * @throws RequestParameterException
	 */
	public HashMap<String, Object> editInMsgEKK1041D010(
			IRequestParameterReadWrite param,
			HashMap<String, Object> odrSetInfo)
			throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK1041D010CBSMsg.class.getName());
		
		// nullマッピングを実施
		fillCAANMSGNullMapping(template, new EKK1041D010CBSMsg().getContents());

		// 共通部を設定
		editInMsgBasicCmn(param, template);

		// テンプレートID(SIFのID)
		template.set(EKK1041D010CBSMsg.TEMPLATEID, "EKK1041D010");

		// 機能コード
		template.set(EKK1041D010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
		
		String yokyuSbtCd = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_YOKYU_SBT_CD);
		
		String stpSodSendYmd = null;
		String stpRlsSodSendYmd = null;
		String delSodSendYmd = null;
		String addSodSendYmd = null;
		
		if(JKKSvcConst.YOKYU_SBT_CD_NEW.equals(yokyuSbtCd))
		{
			// 要求種別コードが新規の場合
			addSodSendYmd = JCCBPCommon.getOpeDate(null);
		}
		else if(JKKSvcConst.YOKYU_SBT_CD_KAIHK.equals(yokyuSbtCd))
		{
			// 要求種別コードが回復の場合
			addSodSendYmd = JCCBPCommon.getOpeDate(null);
		}
		else if(JKKSvcConst.YOKYU_SBT_CD_DSL.equals(yokyuSbtCd))
		{
			// 要求種別コードが解約の場合
			// OT-2013-0000663 解約・停止のSOD発行時に停止SOD送信年月日が設定されていない 2013/04/23 START
			stpSodSendYmd = JCCBPCommon.getOpeDate(null);
			// OT-2013-0000663 解約・停止のSOD発行時に停止SOD送信年月日が設定されていない 2013/04/23 END
		}
		else if(JKKSvcConst.YOKYU_SBT_CD_DEL.equals(yokyuSbtCd))
		{
			// 要求種別コードが消去の場合
			delSodSendYmd = JCCBPCommon.getOpeDate(null);
		}
		else if(JKKSvcConst.YOKYU_SBT_CD_STP.equals(yokyuSbtCd))
		{
			// 要求種別コードが一時停止の場合
			stpSodSendYmd = JCCBPCommon.getOpeDate(null);
		}
		else if(JKKSvcConst.YOKYU_SBT_CD_STP_RLS.equals(yokyuSbtCd))
		{
			// 要求種別コードが停止解除の場合
			stpRlsSodSendYmd = JCCBPCommon.getOpeDate(null);
		}
		else if (JKKSvcConst.YOKYU_SBT_CD_TOKI.equals(yokyuSbtCd))
		{
			//要求種別コードがトーキの場合
			addSodSendYmd = JCCBPCommon.getOpeDate(null);
		}
		else
		{
			// ※日付項目を更新しない
		}
		
		// サービス契約番号
		template.set(EKK1041D010CBSMsg.SVC_KEI_NO, convBlankToNull((String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_NO)));
		// サービス契約内訳番号
		template.set(EKK1041D010CBSMsg.SVC_KEI_UCWK_NO, convBlankToNull((String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_UCWK_NO)));
		// 機器提供サービス契約番号
		template.set(EKK1041D010CBSMsg.KKTK_SVC_KEI_NO, convBlankToNull((String)odrSetInfo.get(JKKSodSendConstCC.OSI_KKTK_SVC_KEI_NO)));
		// オプションサービス契約番号
		template.set(EKK1041D010CBSMsg.OP_SVC_KEI_NO, convBlankToNull((String)odrSetInfo.get(JKKSodSendConstCC.OSI_OP_SVC_KEI_NO)));
		// サブオプションサービス契約番号
		template.set(EKK1041D010CBSMsg.SBOP_SVC_KEI_NO, convBlankToNull((String)odrSetInfo.get(JKKSodSendConstCC.OSI_SBOP_SVC_KEI_NO)));
		// 請求オプションサービス契約番号
		template.set(EKK1041D010CBSMsg.SEIOPSVC_KEI_NO, convBlankToNull((String)odrSetInfo.get(JKKSodSendConstCC.OSI_SEIOP_SVC_KEI_NO)));
		// オーダ種別コード
		template.set(EKK1041D010CBSMsg.ORDER_SBT_CD, convBlankToNull((String)odrSetInfo.get(JKKSodSendConstCC.OSI_ORDER_SBT_CD)));
		// サービスオーダコード
		template.set(EKK1041D010CBSMsg.SVC_ORDER_CD, convBlankToNull((String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_ORDER_CD)));
		// 最新要求種別コード
		template.set(EKK1041D010CBSMsg.RCNT_YOKYU_SBT_CD, convBlankToNull(yokyuSbtCd));
		// オーダ設定対象値
		// ※何も登録しない
		template.setNull(EKK1041D010CBSMsg.ODR_SET_TG_VALUE);
		// 宅内機器型式コード
		template.set(EKK1041D010CBSMsg.TAKNKIKI_MODEL_CD, convBlankToNull((String)odrSetInfo.get(JKKSodSendConstCC.OSI_TAKNKIKI_MODEL_CD)));
		// 機器製造番号
		template.set(EKK1041D010CBSMsg.KIKI_SEIZO_NO, convBlankToNull((String)odrSetInfo.get(JKKSodSendConstCC.OSI_KIKI_SEIZO_NO)));
		// メールアドレス
		template.set(EKK1041D010CBSMsg.MLAD, convBlankToNull((String)odrSetInfo.get(JKKSodSendConstCC.OSI_MLAD)));
		// スポットログインSYSID
		template.set(EKK1041D010CBSMsg.SPOT_LOGIN_SYSID, convBlankToNull((String)odrSetInfo.get(JKKSodSendConstCC.OSI_SPOT_LOGIN_SYSID)));
		// 登録SOD送信年月日
		template.set(EKK1041D010CBSMsg.ADD_SOD_SEND_YMD, convBlankToNull(addSodSendYmd));
		// 停止SOD送信年月日
		template.set(EKK1041D010CBSMsg.STP_SOD_SEND_YMD, convBlankToNull(stpSodSendYmd));
		// 停止解除SOD送信年月日
		template.set(EKK1041D010CBSMsg.STP_RLS_SOD_SEND_YMD, convBlankToNull(stpRlsSodSendYmd));
		// 削除SOD送信年月日
		template.set(EKK1041D010CBSMsg.DEL_SOD_SEND_YMD, convBlankToNull(delSodSendYmd));
		//↓↓↓2012-12-27追加　ロット２IT1-2012-0002564対応（の序に内部障害No.307キャッチアップ）↓↓↓
		// サービス契約回線内訳番号
		template.set(EKK1041D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO, convBlankToNull((String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_KAISEN_UCWK_NO)));
		//↑↑↑2012-12-27追加　ロット２IT1-2012-0002564対応（の序に内部障害No.307キャッチアップ）↑↑↑
//↓↓↓2013-12-04追加　ANK-1578-00-00多機能ルータ↓↓↓
		template.set(EKK1041D010CBSMsg.TAKINORT_KINO_CD, convBlankToNull((String)odrSetInfo.get(JKKSodSendConstCC.OSI_TAKINORT_KINO_CD)));
//↑↑↑2013-12-04追加　ANK-1578-00-00多機能ルータ↑↑↑
		
		// 上り情報を生成
		return editInMsgCmn(param, template);
	}
	
	/**
	 * EKK1041C010_オーダ設定情報変更
	 * サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 * 
	 * @param param リクエストパラメータ
	 * @param odrSetInfo オーダ設定情報
	 * @param rsltMsgEKK1041B001 オーダ設定一覧照会取得結果
	 * @return S/I上り情報
	 * @throws RequestParameterException
	 */
	public HashMap<String, Object> editInMsgEKK1041C010(
			IRequestParameterReadWrite param,
			HashMap<String, Object> odrSetInfo,
			CAANMsg rsltMsgEKK1041B001)
			throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK1041C010CBSMsg.class.getName());
		
		// nullマッピングを実施
		fillCAANMSGNullMapping(template, new EKK1041C010CBSMsg().getContents());

		// 共通部を設定
		editInMsgBasicCmn(param, template);

		// テンプレートID(SIFのID)
		template.set(EKK1041C010CBSMsg.TEMPLATEID, "EKK1041C010");

		// 機能コード
		template.set(EKK1041C010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
		
		String yokyuSbtCd = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_YOKYU_SBT_CD);
		
		String stpSodSendYmd = rsltMsgEKK1041B001.getString(EKK1041B001CBSMsg1List.STP_SOD_SEND_YMD);
		String stpRlsSodSendYmd = rsltMsgEKK1041B001.getString(EKK1041B001CBSMsg1List.STP_RLS_SOD_SEND_YMD);
		String delSodSendYmd = rsltMsgEKK1041B001.getString(EKK1041B001CBSMsg1List.DEL_SOD_SEND_YMD);
		String addSodSendYmd = rsltMsgEKK1041B001.getString(EKK1041B001CBSMsg1List.ADD_SOD_SEND_YMD);
		// 20131205 OM-2013-0004684 引越先のZ1オーダの場合、サービス契約回線内訳番号を引越先回線に変更する ADD START
		String svcKeiKaisenUcwkNo = rsltMsgEKK1041B001.getString(EKK1041B001CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO);
		String orderSbtCd = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_ORDER_SBT_CD);
		String svcOrdrSbtCd = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_ORDER_CD);
		// 20131205 OM-2013-0004684 引越先のZ1オーダの場合、サービス契約回線内訳番号を引越先回線に変更する ADD END
		
		if(JKKSvcConst.YOKYU_SBT_CD_NEW.equals(yokyuSbtCd))
		{
			// 要求種別コードが新規の場合
			addSodSendYmd = JCCBPCommon.getOpeDate(null);
			// OT-2013-0000663 解約・停止のSOD発行時に停止SOD送信年月日が設定されていない 2013/04/23 START
			stpSodSendYmd = null;
			stpRlsSodSendYmd = null;
			delSodSendYmd = null;
			// OT-2013-0000663 解約・停止のSOD発行時に停止SOD送信年月日が設定されていない 2013/04/23 END
		}
		else if(JKKSvcConst.YOKYU_SBT_CD_KAIHK.equals(yokyuSbtCd))
		{
			// 要求種別コードが回復の場合
			addSodSendYmd = JCCBPCommon.getOpeDate(null);
			// OT-2013-0000663 解約・停止のSOD発行時に停止SOD送信年月日が設定されていない 2013/04/23 START
			stpSodSendYmd = null;
			stpRlsSodSendYmd = null;
			delSodSendYmd = null;
			// OT-2013-0000663 解約・停止のSOD発行時に停止SOD送信年月日が設定されていない 2013/04/23 END
		}
		else if(JKKSvcConst.YOKYU_SBT_CD_DSL.equals(yokyuSbtCd))
		{
			// 要求種別コードが解約の場合
			// OT-2013-0000663 解約・停止のSOD発行時に停止SOD送信年月日が設定されていない 2013/04/23 START
			stpSodSendYmd = JCCBPCommon.getOpeDate(null);
			// OT-2013-0000663 解約・停止のSOD発行時に停止SOD送信年月日が設定されていない 2013/04/23 END
		}
		else if(JKKSvcConst.YOKYU_SBT_CD_DEL.equals(yokyuSbtCd))
		{
			// 要求種別コードが消去の場合
			delSodSendYmd = JCCBPCommon.getOpeDate(null);
		}
		else if(JKKSvcConst.YOKYU_SBT_CD_STP.equals(yokyuSbtCd))
		{
			// 要求種別コードが一時停止の場合
			stpSodSendYmd = JCCBPCommon.getOpeDate(null);
		}
		else if(JKKSvcConst.YOKYU_SBT_CD_STP_RLS.equals(yokyuSbtCd))
		{
			// 要求種別コードが停止解除の場合
			stpRlsSodSendYmd = JCCBPCommon.getOpeDate(null);
			// OT-2013-0000663 解約・停止のSOD発行時に停止SOD送信年月日が設定されていない 2013/04/23 START
			stpSodSendYmd = null;
			// OT-2013-0000663 解約・停止のSOD発行時に停止SOD送信年月日が設定されていない 2013/04/23 END
		}
		else if (JKKSvcConst.YOKYU_SBT_CD_TOKI.equals(yokyuSbtCd))
		{
			//要求種別コードがトーキの場合
			addSodSendYmd = JCCBPCommon.getOpeDate(null);
			// OT-2013-0000663 解約・停止のSOD発行時に停止SOD送信年月日が設定されていない 2013/04/23 START
			stpSodSendYmd = null;
			stpRlsSodSendYmd = null;
			delSodSendYmd = null;
			// OT-2013-0000663 解約・停止のSOD発行時に停止SOD送信年月日が設定されていない 2013/04/23 END
		}
		else
		{
			// ※日付項目を更新しない
		}
		// 20131205 OM-2013-0004684 引越先のZ1オーダの場合、Radius、OLSのサービス契約回線内訳番号を引越先回線に変更する ADD START
		if(JKKSvcConst.ORDER_SBT_CD_TEL.equals(orderSbtCd)
				&& (JKKSvcConst.SVC_ORDER_CD_OLS.equals(svcOrdrSbtCd) || JKKSvcConst.SVC_ORDER_CD_RADIUS.equals(svcOrdrSbtCd))
				&& (JKKSvcConst.YOKYU_SBT_CD_NEW.equals(yokyuSbtCd) || JKKSvcConst.YOKYU_SBT_CD_KAIHK.equals(yokyuSbtCd))
				&& !isNull((String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_KAISEN_UCWK_NO))
			)
		{
			svcKeiKaisenUcwkNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_KAISEN_UCWK_NO);
		}
		// 20131205 OM-2013-0004684 引越先のZ1オーダの場合、Radius、OLSのサービス契約回線内訳番号を引越先回線に変更する ADD END
		
		// オーダ設定番号
		template.set(EKK1041C010CBSMsg.ODR_SET_NO, convBlankToNull(rsltMsgEKK1041B001.getString(EKK1041B001CBSMsg1List.ODR_SET_NO)));
		// 最新要求種別コード
		template.set(EKK1041C010CBSMsg.RCNT_YOKYU_SBT_CD, convBlankToNull(yokyuSbtCd));
		// 停止SOD送信年月日
		template.set(EKK1041C010CBSMsg.STP_SOD_SEND_YMD, convBlankToNull(stpSodSendYmd));
		// 停止解除SOD送信年月日
		template.set(EKK1041C010CBSMsg.STP_RLS_SOD_SEND_YMD, convBlankToNull(stpRlsSodSendYmd));
		// 削除SOD送信年月日
		template.set(EKK1041C010CBSMsg.DEL_SOD_SEND_YMD, convBlankToNull(delSodSendYmd));
		// 更新年月日時分秒(更新前)
		template.set(EKK1041C010CBSMsg.UPD_DTM_BF, convBlankToNull(rsltMsgEKK1041B001.getString(EKK1041B001CBSMsg1List.UPD_DTM)));
		// 登録SOD送信年月日
		template.set(EKK1041C010CBSMsg.ADD_SOD_SEND_YMD, convBlankToNull(addSodSendYmd));
		// 20131205 OM-2013-0004684 引越先のZ1オーダの場合、サービス契約回線内訳番号を引越先回線に変更する ADD START
		template.set(EKK1041C010CBSMsg.SVC_KEI_KAISEN_UCWK_NO, convBlankToNull(svcKeiKaisenUcwkNo));
		// 20131205 OM-2013-0004684 引越先のZ1オーダの場合、サービス契約回線内訳番号を引越先回線に変更する ADD END
//↓↓↓2013-12-04追加　ANK-1578-00-00多機能ルータ↓↓↓
		template.set(EKK1041C010CBSMsg.TAKINORT_KINO_CD, convBlankToNull((String)odrSetInfo.get(JKKSodSendConstCC.OSI_TAKINORT_KINO_CD)));
//↑↑↑2013-12-04追加　ANK-1578-00-00多機能ルータ↑↑↑
		
		// 上り情報を生成
		return editInMsgCmn(param, template);
	}
	
	/**
	 * EKK1041B001_オーダ設定一覧照会
	 * サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 * 
	 * @param param リクエストパラメータ
	 * @param odrSetInfo オーダ設定情報
	 * @param ordSetPattern オーダ設定更新パターン
	 * @return S/I上り情報
	 * @throws RequestParameterException
	 */
	public HashMap<String, Object> editInMsgEKK1041B001(
			IRequestParameterReadWrite param,
			HashMap<String, Object> odrSetInfo,
			int ordSetPattern)
			throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK1041B001CBSMsg.class.getName());
		
		// nullマッピングを実施
		fillCAANMSGNullMapping(template, new EKK1041B001CBSMsg().getContents());

		// 共通部を設定
		editInMsgBasicCmn(param, template);

		// テンプレートID(SIFのID)
		template.set(EKK1041B001CBSMsg.TEMPLATEID, "EKK1041B001");

		// 機能コード
		template.set(EKK1041B001CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
		
		String orderSbtCd = null;
		String svcOrderCd = null;
		String rcntYokyuSbtCd = null;
		String svcKeiNo = null;
		String svcKeiUcwkNo = null;
		String opSvcKeiNo = null;
		String mlad = null;
		String kktkSvcKeiNo = null;
		String taknkikiModelCd = null;
		String kikiSeizoNo = null;
		String spotLoginSysid = null;
//↓↓↓2013-12-04追加　ANK-1578-00-00多機能ルータ↓↓↓
		String svcKeiKaisenUcwkNo = null;
//↑↑↑2013-12-04追加　ANK-1578-00-00多機能ルータ↑↑↑
		
		// オーダ種別コード
		orderSbtCd = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_ORDER_SBT_CD);
		// サービスオーダコード
		svcOrderCd = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_ORDER_CD);
		
		switch (ordSetPattern)
		{
			case 1:
				
				// FTTH認証はサービス契約+(内訳 or オプション)
				if(isNull(odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_UCWK_NO)))
				{
					// サービス契約番号
					svcKeiNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_NO);
					// オプションサービス契約番号
					opSvcKeiNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_OP_SVC_KEI_NO);
				}
				else
				{
					// サービス契約番号
					svcKeiNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_NO);
					// サービス契約内訳番号
					svcKeiUcwkNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_UCWK_NO);
				}
				
				break;

			case 2:
				// サービス契約番号
				svcKeiNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_NO);
				// サービス契約内訳番号
				svcKeiUcwkNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_UCWK_NO);
				// メールアドレス
				mlad = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_MLAD);
				break;

			case 3:
				// サービス契約番号
				svcKeiNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_NO);
				// オプションサービス契約番号
				opSvcKeiNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_OP_SVC_KEI_NO);
				break;

			case 4:
				// サービス契約番号
				svcKeiNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_NO);
				// 機器提供サービス契約番号
				kktkSvcKeiNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_KKTK_SVC_KEI_NO);
				// 宅内機器型式コード
				taknkikiModelCd = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_TAKNKIKI_MODEL_CD);
				// 機器製造番号
				kikiSeizoNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_KIKI_SEIZO_NO);
				break;

			case 5:
				// サービス契約番号
				svcKeiNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_NO);
				// サービス契約内訳番号
				svcKeiUcwkNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_UCWK_NO);
				// オプションサービス契約番号
				opSvcKeiNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_OP_SVC_KEI_NO);
				break;

			case 6:
				// サービス契約番号
				svcKeiNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_NO);
				// サービス契約内訳番号
				svcKeiUcwkNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_UCWK_NO);
				// 宅内機器型式コード
				taknkikiModelCd = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_TAKNKIKI_MODEL_CD);
				// 機器製造番号
				kikiSeizoNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_KIKI_SEIZO_NO);
				break;

			case 7:
				// スポットログインSYSID
//↓↓↓2013-05-21変更　巻BKT1-2013-0000488（KKSV0193処理時間超過でHTTP500）↓↓↓
//				kikiSeizoNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SPOT_LOGIN_SYSID);
				spotLoginSysid = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SPOT_LOGIN_SYSID);
//↑↑↑2013-05-21変更　巻BKT1-2013-0000488（KKSV0193処理時間超過でHTTP500）↑↑↑
				break;

			case 8:
				// サービス契約番号
				svcKeiNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_NO);
				// サービス契約内訳番号
				svcKeiUcwkNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_UCWK_NO);
				break;
				
			case 9:
				// サービス契約番号
				svcKeiNo = (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_NO);
				break;
				
//↓↓↓2013-12-04追加　ANK-1578-00-00 多機能ルータ対応↓↓↓
			case 10:
// IT2-2014-0000055 2014-01-22 DEL_START
//				//サービス契約回線内訳番号
//				svcKeiKaisenUcwkNo	= (String)odrSetInfo.get(JKKSodSendConstCC.OSI_SVC_KEI_KAISEN_UCWK_NO);
// IT2-2014-0000055 2014-01-22 DEL_END
				// 機器提供サービス契約番号
				kktkSvcKeiNo 		= (String)odrSetInfo.get(JKKSodSendConstCC.OSI_KKTK_SVC_KEI_NO);
				// 宅内機器型式コード
				taknkikiModelCd		= (String)odrSetInfo.get(JKKSodSendConstCC.OSI_TAKNKIKI_MODEL_CD);
				// 機器製造番号
				kikiSeizoNo			= (String)odrSetInfo.get(JKKSodSendConstCC.OSI_KIKI_SEIZO_NO);
				break;
//↑↑↑2013-12-04追加　ANK-1578-00-00 多機能ルータ対応↑↑↑
				
			default:
		}
		
		// ＫＥＹ＿オーダ種別コード
		template.set(EKK1041B001CBSMsg.KEY_ORDER_SBT_CD, orderSbtCd);
		// ＫＥＹ＿サービスオーダコード
		template.set(EKK1041B001CBSMsg.KEY_SVC_ORDER_CD, svcOrderCd);
		// ＫＥＹ＿最新要求種別コード
		template.set(EKK1041B001CBSMsg.KEY_RCNT_YOKYU_SBT_CD, rcntYokyuSbtCd);
		// ＫＥＹ＿サービス契約番号
		template.set(EKK1041B001CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
		// ＫＥＹ＿サービス契約内訳番号
		template.set(EKK1041B001CBSMsg.KEY_SVC_KEI_UCWK_NO, svcKeiUcwkNo);
		// ＫＥＹ＿オプションサービス契約番号
		template.set(EKK1041B001CBSMsg.KEY_OP_SVC_KEI_NO, opSvcKeiNo);
		// ＫＥＹ＿メールアドレス
		template.set(EKK1041B001CBSMsg.KEY_MLAD, mlad);
		// ＫＥＹ＿機器提供サービス契約番号
		template.set(EKK1041B001CBSMsg.KEY_KKTK_SVC_KEI_NO, kktkSvcKeiNo);
		// ＫＥＹ＿宅内機器型式コード
		template.set(EKK1041B001CBSMsg.KEY_TAKNKIKI_MODEL_CD, taknkikiModelCd);
		// ＫＥＹ＿機器製造番号
		template.set(EKK1041B001CBSMsg.KEY_KIKI_SEIZO_NO, kikiSeizoNo);
		// ＫＥＹ＿スポットログインＳＹＳＩＤ
		template.set(EKK1041B001CBSMsg.KEY_SPOT_LOGIN_SYSID, spotLoginSysid);
//↓↓↓2013-12-04追加　ANK-1578-00-00多機能ルータ↓↓↓
		template.set(EKK1041B001CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, svcKeiKaisenUcwkNo);
//↑↑↑2013-12-04追加　ANK-1578-00-00多機能ルータ↑↑↑
		
		// 上り情報を生成
		return editInMsgCmn(param, template);
	}
	
	/*
	 * --------------------------------------------------------------------------------------------
	 *  以下共通で使用するUtil系のメソッド ↓↓↓↓↓
	 * --------------------------------------------------------------------------------------------
	 */
	
	/**
	 * サービスインターフェース呼び出し処理です。
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param siInMap サービスインターフェースの入力マップ
	 * @return 業務データ
	 * @throws Throwable 
	 */
	private CAANMsg callSvcInter(
			SessionHandle handle,
			IRequestParameterReadWrite param,
			String fixedText,
			HashMap<String, Object> siInMap)
			throws Throwable
	{
		
		// サービスインターフェースの呼び出し
		Map<?, ?> rsltMap = this.scCall.run(siInMap, handle);
		// エラーマッピング処理
		editResultRP(rsltMap, param, fixedText);
		// エラーチェック処理
		errChk(rsltMap);
		// 業務データ取得処理
		CAANMsg workData = getWorkCAANMsg(rsltMap);
		
		return workData;
	}
	
	/**
	 * 条件部の共通する項目の設定する
	 * 
	 * @param param リクエストパラメータ
	 * @param template template 条件の設定先
	 * @throws RequestParameterException
	 */
	private void editInMsgBasicCmn(IRequestParameterReadOnly param, CAANMsg template)
	throws RequestParameterException
	{
		
		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);
		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);
		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);
		
	}
	
	/**
	 * サービスI/F実行用の上り情報を生成する
	 * 
	 * @param param リクエストパラメータ
	 * @param template 条件の設定先
	 * @return S/I上り情報
	 * @throws RequestParameterException
	 * @exception RequestParameterException
	 */
	private HashMap<String, Object> editInMsgCmn(IRequestParameterReadOnly param, CAANMsg template)
	throws RequestParameterException 
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		/* SCインプット共通データ */
		// **********************************************
		// 【取得元：電文ヘッダ(ヘッダ)】
		// **********************************************
		// 電文ID
		paramMap.put(JCMConstants.TRANZACTION_ID_KEY, param.getTelegramID());
		// ユースケースID
		paramMap.put(JCMConstants.USECASE_ID_KEY, param.getUsecaseID());
		// オペレーションID
		paramMap.put(JCMConstants.OPERATION_ID_KEY, param.getOperationID());
		// サービス呼び出し区分
		paramMap.put(JCMConstants.CALL_TYPE_KEY, param.getCallType());

		// **********************************************
		// 【取得元：ユーザエリア(コントロールマップ)】
		// **********************************************
		// 依頼先ホスト名
		paramMap.put(JCMConstants.CLIENT_HOST_NAME_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTNAME));
		// 依頼元IPアドレス
		paramMap.put(JCMConstants.CLIENT_IP_ADDRESS_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTIP));
		// 依頼元画面ID
		paramMap.put(JCMConstants.INVOKE_GAMEN_ID_KEY, param.getControlMapData(SCControlMapKeys.REQ_VIEWID));
		// オペレータID
		paramMap.put(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));

		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;

	}
	
	/**
	 * 持ちうるフィールドにNullマッピングで埋める
	 * 
	 * @param msg 対象クラス
	 * @param contents 対応クラスのフィールド列挙
	 */
	private void fillCAANMSGNullMapping(CAANMsg msg, Object[][] contents)
	{
		// 要素ごとのループ
		for(int i = 0 ; i < contents.length ; i++)
		{
			Object element = null;
			// キーに該当する箇所の取得
			element = contents[i][0];
			// Nullでマッピング
			msg.setNull((String)element);
		}
	}
	
	/**
	 * <pre>
	 * サービスコンポーネント実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
	 * 
	 * </pre>
	 * @param msgList CAANMsgクラス
	 * @param param 業務データ取得・書込用I/F
	 * @param fixedText ユーザ任意文字列
	 * @return 業務データ取得・書込用I/F
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editResultRP(
			Map<?, ?> msgList,
			IRequestParameterReadWrite param,
			String fixedText) 
			throws Throwable 
	{

		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Integer returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);

		// テンプレートID、ステータス取得
		String templateId = template.getString(JCMConstants.TEMPLATE_ID_KEY);
		int templateStatus = template.getInt(JCMConstants.STATUS_INT_KEY);
		
		if (returnCode.intValue() != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString("RETURN_MESSAGE_"
				+ String.format("%1$04d", templateStatus)) == null)
		{
			templateStatus = 0;
		}

		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}

		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format("%1$04d", templateStatus);
			String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_"
					+ formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ユーザデータ情報にエラー情報をマッピング
		Object[][] contents = null;
		if ("EKK1041B001".equals(templateId))
		{
			contents = new EKK1041B001CBSMsg().getContents();
		}
		else if ("EKK1041C010".equals(templateId))
		{
			contents = new EKK1041C010CBSMsg().getContents();
		}
		else if ("EKK1041D010".equals(templateId))
		{
			contents = new EKK1041D010CBSMsg().getContents();
		}
		else if ("EKK1081C010".equals(templateId))
		{
			contents = new EKK1081C010CBSMsg().getContents();
		}
		else if ("ESC0041D010".equals(templateId))
		{
			contents = new ESC0041D010CBSMsg().getContents();
		}
		else if ("ESC0051D010".equals(templateId))
		{
			contents = new ESC0051D010CBSMsg().getContents();
		}
		else if ("ESC0031D010".equals(templateId))
		{
			contents = new ESC0031D010CBSMsg().getContents();
		}
		
		for(int i = 0 ; contents != null && i < contents.length ; i++)
		{
			String element = null;
			element = (String)contents[i][0];
			if (element.indexOf("_err") > 0)
			{
				if (!template.isNull(element))
				{
					if (!inMap.containsKey(element))
					{
						inMap.put(element, template.getString(element));
					}
				}
			}
		}
		
		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if(errList == null)
		{
			errList = new ArrayList<Object>();
		}
		
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}
	
	/**
	 * エラーチェック処理です。
	 * <br>
	 * @param msgList サービスインタフェース実行結果
	 * @return void
	 * @throws Exception 
	 */
	private void errChk(Map<?, ?> msgList) throws Exception
	{
		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))
		{
			//↓↓↓2012-07-18追加、ST1-2012-0000120対応↓↓↓
			//運用しやすいエラーメッセージを出力
			StringBuilder msg = new StringBuilder(getClass().getSimpleName());
			msg.append("内S-IF呼び出しで");
			ArrayList<Object> errList = new ArrayList<Object>();
			errList = TemplateErrorUtil.getErrorInfo(msgList, errList);
			JSYbpmLog.println(JSYbpmLog.ERROR, getClass(), errList, "BPX210E009", new String[]{msg.toString()}, null);
			//↑↑↑2012-07-18追加、ST1-2012-0000120対応↑↑↑
			String errMsg = JKKSodSendConstCC.ERR_MSG;
			throw new SCCallException(errMsg, String.valueOf(returnCode), templateStatus);
		}
	}
	
	/**
	 * 業務データの取得処理です。
	 * <br>
	 * @param workMapKey 業務データのマップキー
	 * @param rslt SVIFの実行結果データ
	 * @return 業務データ
	 */
	private CAANMsg getWorkCAANMsg(Map<?, ?> rslt)
	{
		CAANMsg[] templates = (CAANMsg[])rslt.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];

		return parentTemplate;
	}

	/**
	 * オブジェクトに値が設定されているか判定する
	 * 
	 * @param arg0 判定するオブジェクト
	 * @return オブジェクトに値が設定されていない場合はtrue
	 */
	private boolean isNull(Object arg0) 
	{
		if (arg0 == null) 
		{
			return true;
		}

		return 0 == arg0.toString().length();
	}
	
	
	/**
	 * 文字列が空文字ならnullに変換する
	 * 
	 * @param value 判定する文字列
	 * @return 変換後文字列
	 */
	private String convBlankToNull(String value)
	{
		return JKKSvcConst.STRING_BLANK.equals(value) ? null : value;
	}
	
	
	/**
	 * ヌルを空白文字列に変換します
	 * 
	 * @param value 対象文字列
	 * @return 変換後文字列
	 * @since 2013-12-04 ANK-1578-00-00多機能ルータ対応
	 */
	private String convNullToBlank(String value)
	{
		return (null == value ? "" : value);
	}
	
	
	// 2012/07/05 TNはサービス側で参照する start
	/**
	 * 宅内機器からMACアドレスを取得する
	 * 
	 * @param param svcOrderInfo handle fixedText syurui
	 * @return なし
	 */
	private void getMACAdress(IRequestParameterReadWrite param, ArrayList<HashMap<String, Object>> svcOrderInfoList,
			SessionHandle handle, String fixedText, String syurui) throws Throwable{
		
//↓↓↓2013-03-01変更　ロット２KT1-2013-0000268（KKSV0193サービスオーダ送信依頼のOutOfMemoryError対策）↓↓↓
//		ArrayList<CAANMsg> tempList = new ArrayList<CAANMsg>();
//		for (int i = 0; svcOrderInfoList != null && i < svcOrderInfoList.size(); i++){
//			HashMap<String, Object> svcOrderInfo = svcOrderInfoList.get(i);
//			if (svcOrderInfo != null && !svcOrderInfo.isEmpty())
//			{
//				String taknkikiModelCd = (String)svcOrderInfo.get(JKKSodSendConstCC.OSI_TAKNKIKI_MODEL_CD);
//				String kikiSeizoNo = (String)svcOrderInfo.get(JKKSodSendConstCC.OSI_KIKI_SEIZO_NO);
//				if(isNull(taknkikiModelCd) || isNull(kikiSeizoNo)){
//					continue;
//				}
//				
//				CAANMsg childTemplate = new CAANMsg(EKKA0020003CBSMsg1List.class.getName());
//				// 宅内機器型式コード 
//				childTemplate.set(EKKA0020003CBSMsg1List.KEY_TK_MDL_CD, convBlankToNull(taknkikiModelCd));
//				// 機器製造番号
//				childTemplate.set(EKKA0020003CBSMsg1List.KEY_KK_SEIZO_NO, convBlankToNull(kikiSeizoNo));
//				tempList.add(childTemplate);
//			}
//		}
//		
//		if(tempList.size() == 0) return;
/***********************************************************************************************************/
		HashMap<String, CAANMsg> intensiveMap = new HashMap<String, CAANMsg>();
		for (int i = 0; svcOrderInfoList != null && i < svcOrderInfoList.size(); i++)
		{
			HashMap<String, Object> svcOrderInfo = svcOrderInfoList.get(i);
			if (null != svcOrderInfo && !svcOrderInfo.isEmpty())
			{
				String taknkikiModelCd = (String)svcOrderInfo.get(JKKSodSendConstCC.OSI_TAKNKIKI_MODEL_CD);
				String kikiSeizoNo = (String)svcOrderInfo.get(JKKSodSendConstCC.OSI_KIKI_SEIZO_NO);
				if(!isNull(taknkikiModelCd) && !isNull(kikiSeizoNo))
				{
					String tempKey = taknkikiModelCd + ":" + kikiSeizoNo;
					if (!intensiveMap.containsKey(tempKey))
					{
						CAANMsg childTemplate = new CAANMsg(EKKA0020003CBSMsg1List.class.getName());
						// 宅内機器型式コード 
						childTemplate.set(EKKA0020003CBSMsg1List.KEY_TK_MDL_CD, convBlankToNull(taknkikiModelCd));
						// 機器製造番号
						childTemplate.set(EKKA0020003CBSMsg1List.KEY_KK_SEIZO_NO, convBlankToNull(kikiSeizoNo));
						
						intensiveMap.put(tempKey, childTemplate);
					}
				}
			}
		}
		
		if(1 > intensiveMap.size())
		{
			return;
		}
//↑↑↑2013-03-01変更　ロット２KT1-2013-0000268（KKSV0193サービスオーダ送信依頼のOutOfMemoryError対策）↑↑↑
		
		
		//HashMap<String, Object> inMapEKKA0020003 = editInMsgEKKA0020003(param, svcOrderInfo);
		CAANMsg template = new CAANMsg(EKKA0020003CBSMsg.class.getName());
		// nullマッピングを実施
		fillCAANMSGNullMapping(template, new EKKA0020003CBSMsg().getContents());
		// 共通部を設定
		editInMsgBasicCmn(param, template);
		// テンプレートID(SIFのID)
		template.set(EKKA0020003CBSMsg.TEMPLATEID, "EKKA0020003");
		// 機能コード
		template.set(EKKA0020003CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
		
		
//↓↓↓2013-03-01変更　ロット２KT1-2013-0000268（KKSV0193サービスオーダ送信依頼のOutOfMemoryError対策）↓↓↓
//		CAANMsg[] templateArray = template.getCAANMsgList(EKKA0020003CBSMsg.EKKA0020003CBSMSG1LIST);
//		if (templateArray == null) {
//			templateArray = new CAANMsg[tempList.size()];
//		}
//		
//		for(int i=0; i<tempList.size(); i++){
//			templateArray[i] = tempList.get(i);
//		}
/***********************************************************************************************************/
		CAANMsg[] templateArray = new CAANMsg[intensiveMap.size()];
		
		int p = 0;
		for(Entry<String, CAANMsg> e : intensiveMap.entrySet())
		{
			templateArray[(p ++)] = e.getValue();
		}
//↑↑↑2013-03-01変更　ロット２KT1-2013-0000268（KKSV0193サービスオーダ送信依頼のOutOfMemoryError対策）↑↑↑
		
		template.set(EKKA0020003CBSMsg.EKKA0020003CBSMSG1LIST, templateArray);
		
		// サービスIF呼び出し
		CAANMsg result = callSvcInter(handle, param, fixedText, editInMsgCmn(param, template));
		templateArray = result.getCAANMsgList(EKKA0020003CBSMsg.EKKA0020003CBSMSG2LIST);
		
		// 結果のMACアドレスをセット
//↓↓↓2013-03-01変更　ロット２KT1-2013-0000268（KKSV0193サービスオーダ送信依頼のOutOfMemoryError対策）↓↓↓
//		for (int i=0; templateArray != null && i<templateArray.length; i++)
//		{
//			CAANMsg childTemplate = templateArray[i];
//			
//			String retTkMdlCd = childTemplate.getString(EKKA0020003CBSMsg2List.TK_MDL_CD);
//			String retKkSeizoNo = childTemplate.getString(EKKA0020003CBSMsg2List.KK_SEIZO_NO);
//			String retMacAd = childTemplate.getString(EKKA0020003CBSMsg2List.MAC_AD);
//			String retMacNinshoId = childTemplate.getString(EKKA0020003CBSMsg2List.MAC_NINSHO_ID);    // ST1-2012-0000220 2012/08/01 add
//			
//			for (int j=0; svcOrderInfoList != null && j < svcOrderInfoList.size(); j++)
//			{
//				HashMap<String, Object> svcOrderInfo = svcOrderInfoList.get(j);
//				if(retTkMdlCd.equals((String)svcOrderInfo.get(JKKSodSendConstCC.OSI_TAKNKIKI_MODEL_CD))
//						&& retKkSeizoNo.equals((String)svcOrderInfo.get(JKKSodSendConstCC.OSI_KIKI_SEIZO_NO)))
//				{
//					if("net".equals(syurui))
//					{
//						svcOrderInfo.put(JKKSodSendConstCC.SOI_BBR_MACAD, retMacAd);
//						svcOrderInfo.put(JKKSodSendConstCC.SOI_BBR_NINSHO_KEY, retMacNinshoId);    // ST1-2012-0000220 2012/08/01 add
//					}
//					else if("tel".equals(syurui))
//					{
//						svcOrderInfo.put(JKKSodSendConstCC.TSOI_VA_MACAD, retMacAd);
//					}
//					else if("mobile".equals(syurui))
//					{
//						svcOrderInfo.put(JKKSodSendConstCC.MOI_UQ_MACAD, retMacAd);
//					}
//				}
//			}
//		}
/***********************************************************************************************************/
		for (int i=0; svcOrderInfoList != null && i < svcOrderInfoList.size(); i++)
		{
			HashMap<String, Object> svcOrderInfo = svcOrderInfoList.get(i);
			String srcTaknkikiModelCd = (String)svcOrderInfo.get(JKKSodSendConstCC.OSI_TAKNKIKI_MODEL_CD);
			String srcKikiSeizoNo = (String)svcOrderInfo.get(JKKSodSendConstCC.OSI_KIKI_SEIZO_NO);
			if (null == srcTaknkikiModelCd || null == srcKikiSeizoNo)
			{
				continue;
			}
			
			boolean isSet = false;				//2013-03-04追加　ロット２残件対応（ＯＬＳ設定ＳＯＤ編集見直し）
			
			for (int j=0; templateArray != null && j < templateArray.length; j++)
			{
				CAANMsg childTemplate = templateArray[j];
				
				String retTkMdlCd = childTemplate.getString(EKKA0020003CBSMsg2List.TK_MDL_CD);
				String retKkSeizoNo = childTemplate.getString(EKKA0020003CBSMsg2List.KK_SEIZO_NO);
				String retMacAd = childTemplate.getString(EKKA0020003CBSMsg2List.MAC_AD);
				
				if(null != retTkMdlCd && retTkMdlCd.equals(srcTaknkikiModelCd) && 
					null != retKkSeizoNo && retKkSeizoNo.equals(srcKikiSeizoNo))
				{
					if("net".equals(syurui))
					{
						svcOrderInfo.put(JKKSodSendConstCC.SOI_BBR_MACAD, retMacAd);
						//↓↓↓2013-04-05追加　IT1-2013-0000703（BBR認証キーは登録の時だけ設定）↓↓↓
						if ("02".equals(svcOrderInfo.get(JKKSodSendConstCC.OSI_YOKYU_SBT_CD).toString()))
						{
							String retMacNinshoId = childTemplate.getString(EKKA0020003CBSMsg2List.MAC_NINSHO_ID);    // ST1-2012-0000220 2012/08/01 add
						//↑↑↑2013-04-05追加　IT1-2013-0000703（BBR認証キーは登録の時だけ設定）↑↑↑
							svcOrderInfo.put(JKKSodSendConstCC.SOI_BBR_NINSHO_KEY, retMacNinshoId);    // ST1-2012-0000220 2012/08/01 add
						}
						isSet = true;			//2013-03-04追加　ロット２残件対応（ＯＬＳ設定ＳＯＤ編集見直し）
					}
					else if("tel".equals(syurui))
					{
						String retVaNinshoId = childTemplate.getString(EKKA0020003CBSMsg2List.MAC_NINSHO_ID);	// ＶＡ認証ＩＤ
						svcOrderInfo.put(JKKSodSendConstCC.TSOI_VA_NINSHO_KEY, retVaNinshoId);					// 

						svcOrderInfo.put(JKKSodSendConstCC.TSOI_VA_MACAD, retMacAd);
						isSet = true;			//2013-03-04追加　ロット２残件対応（ＯＬＳ設定ＳＯＤ編集見直し）
					}
					else if("mobile".equals(syurui))
					{
						svcOrderInfo.put(JKKSodSendConstCC.MOI_UQ_MACAD, retMacAd);
						isSet = true;			//2013-03-04追加　ロット２残件対応（ＯＬＳ設定ＳＯＤ編集見直し）
					}
//↓↓↓2013-12-04追加　ANK-1578-00-00多機能ルータ↓↓↓
					else if (JKKSodSendConstCC.ITS_TKNRT.equals(syurui))
					{
						String retNinshoId = childTemplate.getString(EKKA0020003CBSMsg2List.MAC_NINSHO_ID);
						svcOrderInfo.put(JKKSodSendReqConst.TAKINORT_NINSHO_KEY, retNinshoId); 
						svcOrderInfo.put(JKKSodSendReqConst.TAKINORT_MACAD, retMacAd);
						isSet = true;
					}
//↑↑↑2013-12-04追加　ANK-1578-00-00多機能ルータ↑↑↑
					
					break;
				}
			}
//↓↓↓2013-03-04追加　ロット２残件対応（ＯＬＳ設定ＳＯＤ編集見直し）↓↓↓
			//S-IFの必須チェックエラーが分かるよう、未設定の場合に空文字を設定する
			if (!isSet)
			{
				if("net".equals(syurui))
				{
					svcOrderInfo.put(JKKSodSendConstCC.SOI_BBR_MACAD, "");
					svcOrderInfo.put(JKKSodSendConstCC.SOI_BBR_NINSHO_KEY, "");    // ST1-2012-0000220 2012/08/01 add
				}
				else if("tel".equals(syurui))
				{
					svcOrderInfo.put(JKKSodSendConstCC.TSOI_VA_MACAD, "");
				}
				else if("mobile".equals(syurui))
				{
					svcOrderInfo.put(JKKSodSendConstCC.MOI_UQ_MACAD, "");
				}
			}
//↑↑↑2013-03-04追加　ロット２残件対応（ＯＬＳ設定ＳＯＤ編集見直し）↑↑↑
		}
//↑↑↑2013-03-01変更　ロット２KT1-2013-0000268（KKSV0193サービスオーダ送信依頼のOutOfMemoryError対策）↑↑↑
	}
	// 2012/07/05 TNはサービス側で参照する end
	
	// ST1-2012-0000319 2012/08/17 start
	/**
	 * EZM0411A010_宅内機器型式一意照会
	 * サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 * 
	 * @param param リクエストパラメータ
	 * @param mobileOrderInfo モバイルオーダ情報
	 * @return S/I上り情報
	 * @throws RequestParameterException
	 */
	public HashMap<String, Object> editInMsgEZM0411A010(
			IRequestParameterReadWrite param,
			HashMap<String, Object> svcOrderInfo)
			throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EZM0411A010CBSMsg.class.getName());
		
		// nullマッピングを実施
		fillCAANMSGNullMapping(template, new EZM0411A010CBSMsg().getContents());

		// 共通部を設定
		editInMsgBasicCmn(param, template);

		// テンプレートID(SIFのID)
		template.set(EZM0411A010CBSMsg.TEMPLATEID, "EZM0411A010");

		// 機能コード
		template.set(EZM0411A010CBSMsg.FUNC_CODE, svcOrderInfo.get(JKKSodSendConstCC.SOI_FUNC_CD));
		
		// ＫＥＹ＿宅内機器型式コード
		template.set(EZM0411A010CBSMsg.KEY_TAKNKIKI_MODEL_CD, convBlankToNull((String)svcOrderInfo.get(JKKSodSendConstCC.OSI_TAKNKIKI_MODEL_CD)));

		// 上り情報を生成
		return editInMsgCmn(param, template);
	}
	// ST1-2012-0000319 2012/08/17 end


	/**
	 * ファイナライズ
	 * 
	 * @since 2013-03-01 ロット２KT1-2013-0000268（KKSV0193サービスオーダ送信依頼のOutOfMemoryError対策）
	 * @see java.lang.Object#finalize()
	 */
	@Override
	protected void finalize() throws Throwable
	{
		//インスタンス変数の利用するヒープを解放します。
		if (null != this.scCall)
		{
			this.scCall = null;
		}
		
		if (null != this.newerUpdDtm)
		{
			this.newerUpdDtm.clear();
			this.newerUpdDtm = null;
		}
		
		super.finalize();
	}

// 20140522 ANK-2113-00-00 Add Start
	/**
	 * EKK1081B001_オーダ発行条件一覧照会
	 * サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 * 
	 * @param param リクエストパラメータ
	 * @param telSvcOrderInfo 電話サービスオーダ情報
	 * @return S/I上り情報
	 * @throws RequestParameterException
	 */
	public HashMap<String, Object> editInMsgEKK1081B001(
			IRequestParameterReadWrite param,
			HashMap<String, Object> telSvcOrderInfo)
			throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK1081B001CBSMsg.class.getName());
		
		// nullマッピングを実施
		fillCAANMSGNullMapping(template, new EKK1081B001CBSMsg().getContents());

		// 共通部を設定
		editInMsgBasicCmn(param, template);

		// テンプレートID(SIFのID)
		template.set(EKK1081B001CBSMsg.TEMPLATEID, "EKK1081B001");

		// 機能コード
		template.set(EKK1081B001CBSMsg.FUNC_CODE, "2");
		
		// ＫＥＹ＿サービス契約番号
		template.set(EKK1081B001CBSMsg.KEY_SVC_KEI_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SVC_KEI_NO)));
		// ＫＥＹ＿要求種別コード
		template.set(EKK1081B001CBSMsg.KEY_YOKYU_SBT_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_YOKYU_SBT_CD)));
		// ＫＥＹ＿サービスオーダコード
		template.set(EKK1081B001CBSMsg.KEY_SVC_ORDER_CD, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_TEL_SVC_ORDER_CD)));
		// ＫＥＹ＿サービス契約内訳番号
		template.set(EKK1081B001CBSMsg.KEY_SVC_KEI_UCWK_NO, convBlankToNull((String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SVC_KEI_UCWK_NO)));

		// 上り情報を生成
		return editInMsgCmn(param, template);
	}
// 20140522 ANK-2113-00-00 Add End
// ▽▽▽ OM-2020-0000318 ADD START
	/**
	 * 住所変更時のサービスオーダ詳細コードを返却する。但し、デフォルト設定以外の場合に値が設定される。
	 */
	private String getOdrDtlCdForAdChg(SessionHandle handle, 
			IRequestParameterReadWrite param, 
			String fixedText, 
			String teSvcOdrCd, 
			String yokyuSbtCd, 
			String updTrnId, 
			HashMap telSvcOrderInfo) throws Throwable
	{
		// 対象は多機能ルータの解約／消去オーダのみ
		if ("26".equals(teSvcOdrCd) && ("03".equals(yokyuSbtCd) || "08".equals(yokyuSbtCd))){
			String svcKeiNo = (String)telSvcOrderInfo.get(JKKSodSendConstCC.TSOI_SVC_KEI_NO);
			// ジョブが住所変更確定
			if (updTrnId.indexOf("EO23I0320J0") >= 0 && !isNull(svcKeiNo))
			{
				HashMap<String, Object> inMapEKK0081A010 = editInMsgEKK0081A010(param, svcKeiNo);
				// サービス契約を検索する
				CAANMsg outMapEKK0081A010 = callSvcInter(handle, param, fixedText, inMapEKK0081A010);
				CAANMsg[] rsltMsgEKK0081A010List = outMapEKK0081A010.getCAANMsgList(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST);
				if (rsltMsgEKK0081A010List != null && rsltMsgEKK0081A010List.length > 0)
				{
					if (JKKStrConst.CD00130_01.equals(rsltMsgEKK0081A010List[0].getString(EKK0081A010CBSMsg1List.SVC_CD)))
					{
						return "02"; // 優先順位高
					}
				}
			}
		}
		return null;
	}
	
	/**
	 * サービス契約一意照会マッピング
	 * @param param
	 * @param svcKeiNo
	 * @return
	 * @throws RequestParameterException
	 */
	private HashMap<String, Object> editInMsgEKK0081A010(
			IRequestParameterReadWrite param,
			String svcKeiNo)
			throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0081A010CBSMsg.class.getName());
		
		// nullマッピングを実施
		fillCAANMSGNullMapping(template, new EKK0081A010CBSMsg().getContents());

		// 共通部を設定
		editInMsgBasicCmn(param, template);

		// テンプレートID(SIFのID)
		template.set(EKK0081A010CBSMsg.TEMPLATEID, "EKK0081A010");

		// 機能コード
		template.set(EKK0081A010CBSMsg.FUNC_CODE, "2");
		
		// ＫＥＹ＿サービス契約番号
		template.set(EKK0081A010CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
		
		// ＫＥＹ＿サービス契約番号
		template.set(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD, JCCBPCommon.getOpeDate(null));


		// 上り情報を生成
		return editInMsgCmn(param, template);
	}
// △△△ OM-2020-0000318 ADD END
}
