/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom						 *
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JCKSV905201CC
*	ソースファイル名：JCKSV905201CC.java
*	作成者			：FJ)舩橋
*	日付			：2015年01月09日
*＜機能概要＞
*	お客様仮登録（MVNO用SOAP）実行CCの共通コンポーネント
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v12.00.00	2015/01/09	FJ)舩橋		【ANK-2381-00-00】eoIDなしの新規申込対応
*	v12.00.00	2015/01/30	FJ)窪田		ST-2015-0000005対応
*	v14.00.00	2015/04/28	FJ)宇野		OM-2015-0000844対応
*　 v17.00.00   2015/07/30   FJ) 山岡    【ANK-2557-00-00_PMP再構築対応】eoID形式チェックを追加
*　 v26.00.00   2016/09/20  FJ)森脇		OM-2016-0002054対応
* 	v28.00.00	2017/01/18	FJ)森脇		OM-2016-0001646対応
*	v47.00.00	2019/11/07	FJ)三原		【ANK-3706-00-00】ｅｏＩＤログインのセキュリティ強化対応
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.addStdardContDoi;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.addUpdOptinmRcvSette;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.addUpdRrksMlad;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.addUpdRrksTelno;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.callECH0231B010;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.callECK0011A010;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.callECK0011B050;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.callECK0011B060;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.callECK0011B120;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.callECK0011C090;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.callECK0011C100;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.callECK0021C010;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.callECK0021D010;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.callECK0021D020;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.callECK0031C010;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.callECK0121D010;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.callECK0151D010Map;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.callECKA9020001;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.callECN0131D011ForIspks;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.callEKK0081B523BySvcKeiNo;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.callEZM0111D010;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.callEZM0321A010;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.checkDupEoId;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.checkDupNkName;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.checkEoidErrMoji;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.checkFamilyMmbAddCnt;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.checkGrpJoinCdPwd;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.checkKisnKeiStat;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.checkKyohiMailDomain;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.checkPopId;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.checkSameMmb;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.checkSvcKeiNo;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.checkUpdFailPrd;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.chgEoIdAndAgingEnd;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.getAgeFlg;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.getLastResult;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.printDebugLog;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.printErrorLog;
/*---< ANK-2557-00-00 add start >---*/
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.enNumber11Check;
/*---< ANK-2557-00-00 add end >---*/
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.editResultErrorInfo;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpScParamHenshu.copyMsgToMap;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpScParamHenshu.getResultMsgList;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpScParamHenshu.getResultString;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpScParamHenshu.getReturnCode;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpScParamHenshu.getStatus;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpScParamHenshu.isError;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpScParamHenshu.isSuccess;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpScParamHenshu.setResultCtrlData;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpScParamHenshu.setResultUserData;
import static eo.common.constant.JCKStrConst.ADMIN_SJISHO_PARAM10_HON;
import static eo.common.constant.JCKStrConst.ADMIN_SJISHO_PARAM10_KARI;
import static eo.common.constant.JCKStrConst.ADMIN_SJISHO_PARAM12_DOI;
import static eo.common.constant.JCKStrConst.ADMIN_SJISHO_PARAM12_MIDOI;
import static eo.common.constant.JCKStrConst.ADMIN_SJISHO_PARAM1_NEW;
import static eo.common.constant.JCKStrConst.ADMIN_SJISHO_PARAM1_UPD_PART;
import static eo.common.constant.JCKStrConst.AGING_SBT_CD_EOID;
import static eo.common.constant.JCKStrConst.AGING_SBT_CD_NKNAME;
import static eo.common.constant.JCKStrConst.CONT_AD_CD_DEFAULT;
import static eo.common.constant.JCKStrConst.CONT_ISP_USE_FAIL_FLG_HI;
import static eo.common.constant.JCKStrConst.CUST_NTAIKAI_CD_JOIN;
import static eo.common.constant.JCKStrConst.ISP_KSSAI_STAT_CD_TUJYO;
import static eo.common.constant.JCKStrConst.KEISHA_TYPE_CD_MNT;
import static eo.common.constant.JCKStrConst.MMB_SBT_CD_FAMILY_HOJIN;
import static eo.common.constant.JCKStrConst.MMB_SBT_CD_FAMILY_KOJIN;
import static eo.common.constant.JCKStrConst.MMB_SBT_CD_MASTER_HOJIN;
import static eo.common.constant.JCKStrConst.MMB_SBT_CD_MASTER_KOJIN;
import static eo.common.constant.JCKStrConst.MMB_SBT_CD_OPEN;
import static eo.common.constant.JCKStrConst.MMB_SBT_TOKUT_FLG_TOKUTZUMI;
import static eo.common.constant.JCKStrConst.PMP_ERR_EOID_DUP;
import static eo.common.constant.JCKStrConst.PMP_ERR_EOID_PROHIBITION;
import static eo.common.constant.JCKStrConst.PMP_ERR_EOID_TERM;
import static eo.common.constant.JCKStrConst.PMP_ERR_EXCLUSION;
import static eo.common.constant.JCKStrConst.PMP_ERR_FAMILY_MMB_CNT;
import static eo.common.constant.JCKStrConst.PMP_ERR_MMB_DUP;
import static eo.common.constant.JCKStrConst.PMP_ERR_NKNM_DUP;
import static eo.common.constant.JCKStrConst.PMP_ERR_NODATA;
import static eo.common.constant.JCKStrConst.PMP_ERR_NODATA_SVCKEINO;
import static eo.common.constant.JCKStrConst.PMP_ERR_NO_GRP;
import static eo.common.constant.JCKStrConst.PMP_ERR_PARAM;
import static eo.common.constant.JCKStrConst.PMP_ERR_POPID_AUTH;
import static eo.common.constant.JCKStrConst.PMP_ERR_REJECT_DOMAIN;
import static eo.common.constant.JCKStrConst.PMP_ERR_STAT_KSN_KEI;
import static eo.common.constant.JCKStrConst.PMP_ERR_SYSTEM;
import static eo.common.constant.JCKStrConst.PMP_LOGIN_NINSHO_KH_KA;
import static eo.common.constant.JCKStrConst.PMP_NAME_DELIMITER;
import static eo.common.constant.JCKStrConst.PMP_NORMAL_END;
import static eo.common.constant.JCKStrConst.SJISHO_TRN_CD_ADMIN_API;
import static eo.common.constant.JCKStrConst.SJISHO_TRN_CD_REPLICA_API;
import static eo.common.constant.JCKStrConst.SVC_KEI_NO_RRKS_MLAD;
import static eo.common.constant.JCKStrConst.WORK_PARAM_ID_EOID_CHGFAIL_DAYS;
import static eo.common.constant.JCKStrConst.WORK_PARAM_ID_FAMILY_HJ_MMB_CNT;
import static eo.common.constant.JCKStrConst.WORK_PARAM_ID_FAMILY_KJ_MMB_CNT;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.CKSV9001_CKSV9001OP_CKSV900101CC;
import com.fujitsu.futurity.bp.custom.constant.CKSV9022_CKSV9022OP_CKSV902201CC;
import com.fujitsu.futurity.bp.x21.bpm.ServiceComponentRequestInvoker;
import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.parameter.ErrorLevel;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.bpm.parameter.StatusArea;
import com.fujitsu.futurity.bp.x21.bpm.parameter.StatusInfo;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.CCException;
import com.fujitsu.futurity.bp.x21.values.OUTBREAK_AREA;
import com.fujitsu.futurity.common.JCCSuperComExecUtil;
import com.fujitsu.futurity.common.JCCSyslogFormat;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;

import eo.common.constant.JCKStrConst;
import eo.common.util.JCKLcsCommonUtil;
import eo.ejb.cbs.cbsmsg.ECH0231B010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECH0231B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011B050CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011B050CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011B060CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011B060CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011B120CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011B120CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011C100CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0021C010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0021D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0021D020CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0031C010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0121D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0151B020CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0151B020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0151C010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0151D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0151E010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECKA9010001CBSMsg;
import eo.ejb.cbs.cbsmsg.ECKA9020001CBSMsg;
import eo.ejb.cbs.cbsmsg.ECN0131D011CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B523CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B523CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0321A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0321A010CBSMsg1List;


/**
 * CCの呼び出しを行います。<p>
 * <BR>
 * @author 富士通
 */
public class JCKSV905201CC extends AbstractCommonComponent
{
	/**
	 * 
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @return IRequestParameterReadWrite
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite executeMain(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		String dataMapKey = fixedText;
		
		HashMap<String, Object> ccMsg = (HashMap<String, Object>)param.getData(dataMapKey);
		
		// リターンコードを設定
		ccMsg.put("return_code", JCKStrConst.PMP_NORMAL_END);
		
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		
		// お客様情報仮登録CC呼び出し処理
		if (execJcksv902201Call(handle, scCall, param, dataMapKey, ccMsg))
		{
			// AxM会員情報更新依頼CC呼び出し処理
			execjcksv900101Call(handle, scCall, param, dataMapKey, ccMsg);
		}
		
		// OM-2015-0000844 ADD START
		
		HashMap<String, Object> cksv900101cc = (HashMap<String, Object>)param.getData("CKSV900101CC");
		
		HashMap<String, Object> lcs_last_result = (HashMap<String, Object>)param.getData("LCS_LAST_RESULT");
		
		param.removeData("CKSV900101CC");
		
		param.removeData("LCS_LAST_RESULT");
		
		param.setData("CKSV900101CC",cksv900101cc);
		
		param.setData("LCS_LAST_RESULT",lcs_last_result);
		// OM-2015-0000844 ADD END
		
		
		return param;
	}
	
	/**
	 * お客様情報仮登録CC呼び出し処理<br>
	 * 
	 * 
	 * @param handle
	 * @param scCall
	 * @param param
	 * @param dataMapKey
	 * @param ccMsg
	 * @return boolean 正常終了：true　異常終了：false
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private boolean execJcksv902201Call(SessionHandle handle, 
										ServiceComponentRequestInvoker scCall, 
										IRequestParameterReadWrite param,
										String dataMapKey,
										HashMap<String, Object> ccMsg) throws Throwable
	{
		
		String fixedText = "CKSV902201CC";
		param.setData(fixedText, new HashMap<String, Object>());
		
		
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		
		// WORK_DIV
		inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.WORK_DIV, "2");

		// ST-2015-0000005 MOD SATRT
		// SYSID
		if ((ccMsg.get("sysid") == null) || ("".equals(ccMsg.get("sysid"))))
		{
			// OM-2016-0001646 ADD START
			ccMsg.put("sysid"  + "_err", "E1");
			// OM-2016-0001646 ADD END
			ccMsg.put("return_code", PMP_ERR_PARAM);			// パラメータ不正エラー
		} else
		{
			inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.SYSID, ccMsg.get("sysid"));
		}
		// EOID
		if ((ccMsg.get("eoid") == null) || ("".equals(ccMsg.get("eoid"))))
		{
			// OM-2016-0001646 ADD START
			ccMsg.put("eoid"  + "_err", "E1");
			// OM-2016-0001646 ADD END
			ccMsg.put("return_code", PMP_ERR_PARAM);			// パラメータ不正エラー
		} else
		{
			inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.EOID, ccMsg.get("eoid"));
		}
		// カナ名（姓）
		if ((ccMsg.get("first_name_kana") == null) || ("".equals(ccMsg.get("first_name_kana"))))
		{
			// OM-2016-0001646 ADD START
			ccMsg.put("first_name_kana"  + "_err", "E1");
			// OM-2016-0001646 ADD END
			ccMsg.put("return_code", PMP_ERR_PARAM);			// パラメータ不正エラー
		} else
		{
			inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_SEI, ccMsg.get("first_name_kana"));
		}
		// カナ名（名）
		if ((ccMsg.get("second_name_kana") == null) || ("".equals(ccMsg.get("second_name_kana"))))
		{
			// OM-2016-0001646 ADD START
			ccMsg.put("second_name_kana"  + "_err", "E1");
			// OM-2016-0001646 ADD END
			ccMsg.put("return_code", PMP_ERR_PARAM);			// パラメータ不正エラー
		} else
		{
			inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_NM, ccMsg.get("second_name_kana"));
		}
		// 電話番号
		inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.TELNO, ccMsg.get("tel_number"));
		// 生年月日
		if ((ccMsg.get("date_of_birth") == null) || ("".equals(ccMsg.get("date_of_birth"))))
		{
			// OM-2016-0001646 ADD START
			ccMsg.put("date_of_birth"  + "_err", "E1");
			// OM-2016-0001646 ADD END
			ccMsg.put("return_code", PMP_ERR_PARAM);			// パラメータ不正エラー
		} else
		{
			inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.BIRTHD, ccMsg.get("date_of_birth"));
		}
		// 性別
		if ((ccMsg.get("gender") == null) || ("".equals(ccMsg.get("gender"))))
		{
			// OM-2016-0001646 ADD START
			ccMsg.put("gender"  + "_err", "E1");
			// OM-2016-0001646 ADD END
			ccMsg.put("return_code", PMP_ERR_PARAM);			// パラメータ不正エラー
		} else
		{
			inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.SEX, ccMsg.get("gender"));
		}
		// 連絡先メールアドレス
		if ((ccMsg.get("rrks_mlad") == null) || ("".equals(ccMsg.get("rrks_mlad"))))
		{
			// OM-2016-0001646 ADD START
			ccMsg.put("rrks_mlad"  + "_err", "E1");
			// OM-2016-0001646 ADD END
			ccMsg.put("return_code", PMP_ERR_PARAM);			// パラメータ不正エラー
		} else
		{
			inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.RRKS_MLAD, ccMsg.get("rrks_mlad"));
		}
		// パスワードリマインダ(質問)コード
		if ((ccMsg.get("pwd_reminder_question_code") == null) || ("".equals(ccMsg.get("pwd_reminder_question_code"))))
		{
			// ANK-3706-00-00 DEL START
//			// OM-2016-0001646 ADD START
//			ccMsg.put("pwd_reminder_question_code"  + "_err", "E1");
//			// OM-2016-0001646 ADD END
//			ccMsg.put("return_code", PMP_ERR_PARAM);			// パラメータ不正エラー
			// ANK-3706-00-00 DEL END
		} else
		{
			inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.PWD_REMINDER_QS_CD, ccMsg.get("pwd_reminder_question_code"));
		}
		// パスワードリマインダ(答え)
		if ((ccMsg.get("pwd_reminder_answer") == null) || ("".equals(ccMsg.get("pwd_reminder_answer"))))
		{
			// ANK-3706-00-00 DEL START
//			// OM-2016-0001646 ADD START
//			ccMsg.put("pwd_reminder_answer"  + "_err", "E1");
//			// OM-2016-0001646 ADD END
//			ccMsg.put("return_code", PMP_ERR_PARAM);			// パラメータ不正エラー
			// ANK-3706-00-00 DEL END
		} else
		{
			inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.PWD_REMINDER_ANS, ccMsg.get("pwd_reminder_answer"));
		}
		// ニックネーム
		inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.NKNAME, ccMsg.get("nick_name"));
		// 氏名(姓)
		if ((ccMsg.get("first_name") == null) || ("".equals(ccMsg.get("first_name"))))
		{
			// OM-2016-0001646 ADD START
			ccMsg.put("first_name"  + "_err", "E1");
			// OM-2016-0001646 ADD END
			ccMsg.put("return_code", PMP_ERR_PARAM);			// パラメータ不正エラー
		} else
		{
			inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.SEI, ccMsg.get("first_name"));
		}
		// 氏名(名)
		if ((ccMsg.get("second_name") == null) || ("".equals(ccMsg.get("second_name"))))
		{
			// OM-2016-0001646 ADD START
			ccMsg.put("second_name"  + "_err", "E1");
			// OM-2016-0001646 ADD END
			ccMsg.put("return_code", PMP_ERR_PARAM);			// パラメータ不正エラー
		} else
		{
			inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.NM, ccMsg.get("second_name"));
		}
		// 住所（都道府県/市区町村）
		if ((ccMsg.get("address1") == null) || ("".equals(ccMsg.get("address1"))))
		{
			// OM-2016-0001646 ADD START
			ccMsg.put("address1"  + "_err", "E1");
			// OM-2016-0001646 ADD END
			ccMsg.put("return_code", PMP_ERR_PARAM);			// パラメータ不正エラー
		} else
		{
			inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.AD_STATE_CITY, ccMsg.get("address1"));
		}
		// 住所（上記以外）
		if ((ccMsg.get("address2") == null) || ("".equals(ccMsg.get("address2"))))
		{
			// OM-2016-0001646 ADD START
			ccMsg.put("address2"  + "_err", "E1");
			// OM-2016-0001646 ADD END
			ccMsg.put("return_code", PMP_ERR_PARAM);			// パラメータ不正エラー
		} else
		{
			inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.AD_OTHER, ccMsg.get("address2"));
		}
		// 住所（マンション名等）
		inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.AD_MANSION, ccMsg.get("address3"));
		// eoIDパスワード
		if ((ccMsg.get("eoid_pw") == null) || ("".equals(ccMsg.get("eoid_pw"))))
		{
			// OM-2016-0001646 ADD START
			ccMsg.put("eoid_pw"  + "_err", "E1");
			// OM-2016-0001646 ADD END
			ccMsg.put("return_code", PMP_ERR_PARAM);			// パラメータ不正エラー
		} else
		{
			inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.EOID_PW, ccMsg.get("eoid_pw"));
		}
		// 郵便番号
		if ((ccMsg.get("zip_code") == null) || ("".equals(ccMsg.get("zip_code"))))
		{
			// OM-2016-0001646 ADD START
			ccMsg.put("zip_code"  + "_err", "E1");
			// OM-2016-0001646 ADD END
			ccMsg.put("return_code", PMP_ERR_PARAM);			// パラメータ不正エラー
		} else
		{
			inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.PCD, ccMsg.get("zip_code"));
		}
		// ST-2015-0000005 MOD END

		// MAIL_RCV_SETTE_LIST
		List<Map<String, String>> mailRcvSetteList = (List)ccMsg.get("mailList1");
		List<Map<String, String>> list = null;
		list = new ArrayList<Map<String, String>>();
		MAIN_FOR : for (Map<String, String> mailRcvSetteMap : mailRcvSetteList) {

			// メール受信設定リストの情報を準備
			Map<String, String> childMap = null;
			childMap = new HashMap<String, String>();

			// メール受信設定リストの情報を設定

			// ST-2015-0000005 MOD START
			// オプトインメール番号
			if ((mailRcvSetteMap.get("optinm_no") == null) || ("".equals(mailRcvSetteMap.get("optinm_no"))))
			{
			// OM-2016-0001646 ADD START
				mailRcvSetteMap.put("optinm_no"  + "_err", "E1");
			// OM-2016-0001646 ADD END
				ccMsg.put("return_code", PMP_ERR_PARAM);			// パラメータ不正エラー
			} else
			{
				childMap.put("kmk_number", mailRcvSetteMap.get("optinm_no"));
			}
			// 受信区分
			if ((mailRcvSetteMap.get("rcv_div") == null) || ("".equals(mailRcvSetteMap.get("rcv_div"))))
			{
			// OM-2016-0001646 ADD START
				mailRcvSetteMap.put("rcv_div"  + "_err", "E1");
			// OM-2016-0001646 ADD END
				ccMsg.put("return_code", PMP_ERR_PARAM);			// パラメータ不正エラー
			} else
			{
				childMap.put("rcv_div", mailRcvSetteMap.get("rcv_div"));
			}
			// ST-2015-0000005 MOD END

			// リストマップへ追加
			list.add(childMap);
		}
		inMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.MAIL_RCV_SETTE_LIST, list);
		
		if (!JCKStrConst.PMP_NORMAL_END.equals(ccMsg.get("return_code")))
		{
			// OM-2016-0001646 ADD START
			//リターンコード
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, "1000");
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, JCMAPLConstMgr.getString( "RETURN_MESSAGE_1000"));

			//エラーレベル設定
			StatusArea sa = param.getStatusArea();
			StatusInfo si = new StatusInfo(ErrorLevel.EL888, OUTBREAK_AREA.CC);
			sa.setCurrent(si);
			// OM-2016-0001646 ADD END

			return false;
		}
		
// OM-2015-0000844 MOD START
		// お客様情報仮登録CCを実行
//		JCKSV902201CC wJCKSV902201CC = new JCKSV902201CC();
//		wJCKSV902201CC.executeMain(handle, param, fixedText);

		String PMP_ERR_OTHER = "OTHER";
		
		/** OPERATOR-ID */
		String OPE_MNV1 = "MVN1";
		String OPE_MNV2 = "MVN2";
		String OPE_MNV3 = "MVN3";

		// 入力パラメータ取得
		String workDiv = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.WORK_DIV);
		String sysid = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SYSID);
		String eoid = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.EOID);
		String grpJoinCd = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.GRP_JOIN_CD);
		String popid = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.POPID);
		String kanaSeiNm = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_SEI)
							+ PMP_NAME_DELIMITER + (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_NM);
		String telno = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.TELNO);
		String birthd = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.BIRTHD);
		String sex = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SEX);
		String rrksMlad = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.RRKS_MLAD);
		String chgechuMlad = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.CHGECHU_MLAD);
		String pwdReminderQsCd = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PWD_REMINDER_QS_CD);
		String pwdReminderAns = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PWD_REMINDER_ANS);
		String nkname = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.NKNAME);
		String ispKssaiSvcKeiNo = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.ISP_KSSAI_SVC_KEI_NO);
		String rcvSetSvcKeiNo = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SVC_KEI_NO);
		String rcvSetTsyrnSvkeiCdSeq = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.TSYRN_SVKEI_CD_SEQ);
		List mailRcvSetteList2 = (List)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.MAIL_RCV_SETTE_LIST);
		String kkUpdDtm = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KK_UPD_DTM);

		// リターンコード初期化
		String returnCd = PMP_NORMAL_END;

		//***************************************************
		// 内部で使用する変数の初期化
		//***************************************************
		String opeDate = JCCBPCommon.getOpeDate(null);
		Map<String, Object> nowCustMap = new HashMap<String, Object>();
		String funcCd = null;
		boolean chkResult = false;
		String memberSbtCd = null;
		String updDtmSysid = null;
		String workParamId = null;
		String mstSysid = null;
		String mstMemberSbtCd = null;
		String mstKeishaTypeCd = null;
		String mstGrpCd = null;
		String retContCustNm = null;
		String trgtMlad = null;
		String trgtTelno = null;
		String contSvcKeiNo = null;
		boolean isEoidChge = false;
		boolean isSameInitEoid = false;
		boolean isNknmChge = false;
		String kepgKjnifTratDoiUm = null;
		String kepgKjnifTratDoiYmd = null;
		String kepgKjniftFfg = null;
		String kepgKjniftFfgChgYmd = null;
		String kepgKjniftFfgChgUwyCd = null;
		String kepgKjniftJokyoCd = null;
		String kepgKjniftStaYmd = null;
		String kepgKjniftRscd = null;
		String kepgKjniftRscdChgYmd = null;
		// ANK-3706-00-00 ADD START
		String keishaTelno = null;
		// ANK-3706-00-00 ADD END
		
		// オペレーターID
		String ope_id = (String)param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		boolean run_flg = true;

		// MVNO実行判定（SOAP連携）
		if (OPE_MNV1.equals(ope_id) || OPE_MNV2.equals(ope_id) || OPE_MNV3.equals(ope_id)) {
			run_flg = false;
		}

		//***************************************************
		// PMP連携用排他制御
		//***************************************************
		Map result = callECKA9020001(handle, param, sysid, "2");
		if (isSuccess(result))
		{
			String errFlg = getResultString(result, ECKA9020001CBSMsg.LOCK_ERR_FLG);
			if (!"0".equals(errFlg))
			{
				returnCd = PMP_ERR_EXCLUSION;
			}
		}
		else
		{
			returnCd = PMP_ERR_OTHER;
		}
		
		//***************************************************
		// 最終更新日時チェック
		//***************************************************
		String lastCkUpdDtm = null;
		String lastKkUpdDtm = null;
		if (JCKBPCommon.inArray(returnCd, PMP_NORMAL_END, PMP_ERR_EXCLUSION))
		{
			// 業務区分：「3」（マスター会員）の場合
			if ("3".equals(workDiv))
			{
				result = callECK0011B120(handle, param, sysid);
				if (isSuccess(result))
				{
					String mapKeyPre = ECK0011B120CBSMsg.ECK0011B120CBSMSG1LIST + "[0].";
					String chkCkUpdDtm = getResultString(result, mapKeyPre + ECK0011B120CBSMsg1List.CK_UPD_DTM);
					String chkKkUpdDtm = getResultString(result, mapKeyPre + ECK0011B120CBSMsg1List.KK_UPD_DTM);
					updDtmSysid  = chkCkUpdDtm;
					if ((!kkUpdDtm.equals(chkKkUpdDtm)) || (PMP_ERR_EXCLUSION.equals(returnCd)))
					{
						if ((chkCkUpdDtm  != null) && (chkKkUpdDtm != null))
						{
							lastCkUpdDtm = chkCkUpdDtm;
							lastKkUpdDtm = chkKkUpdDtm;
							returnCd = PMP_ERR_EXCLUSION;   // 更新日時が異なる時は排他エラー
						}
						else
						{
							returnCd = PMP_ERR_NODATA;   // 該当データが存在しない場合はデータ無しエラー
						}
					}
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}

		//***************************************************
		// パスワードリマインダ更新チェック
		//***************************************************
		// ANK-3706-00-00 ADD START
		// SCの結果がシステムエラーの場合は、結果に応じてリターンコードを設定
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// パスワードリマインダ(質問)コード
			if (((ccMsg.get("pwd_reminder_question_code") == null) || ("".equals(ccMsg.get("pwd_reminder_question_code"))))
				&& ((ccMsg.get("pwd_reminder_answer") != null)) && (!"".equals(ccMsg.get("pwd_reminder_answer"))))
			{
				ccMsg.put("pwd_reminder_question_code"  + "_err", "E4");
				returnCd = PMP_ERR_PARAM;
			}
			// パスワードリマインダ(答え)
			if (((ccMsg.get("pwd_reminder_answer") == null) || ("".equals(ccMsg.get("pwd_reminder_answer"))))
				&& ((ccMsg.get("pwd_reminder_question_code") != null)) && (!"".equals(ccMsg.get("pwd_reminder_question_code"))))
			{
				ccMsg.put("pwd_reminder_answer"  + "_err", "E4");
				returnCd = PMP_ERR_PARAM;
			}
			
			// 正常終了以外の場合
			if (!JCKStrConst.PMP_NORMAL_END.equals(returnCd))
			{
				//リターンコード
				param.setControlMapData(SCControlMapKeys.RETURN_CODE, "1050");
				param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, JCMAPLConstMgr.getString( "RETURN_MESSAGE_1050"));
	
				//エラーレベル設定
				StatusArea sa = param.getStatusArea();
				StatusInfo si = new StatusInfo(ErrorLevel.EL888, OUTBREAK_AREA.CC);
				sa.setCurrent(si);
	
				return false;
			}
		}
		// ANK-3706-00-00 ADD END
		
		//***************************************************
		// お客様情報取得
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）の場合
			if ("3".equals(workDiv))
			{
				// お客様情報照会(PMP連携用)SC呼出
				result = callECK0011B050(handle, param, "1", sysid);
				if (isSuccess(result))
				{
					CAANMsg[] dataList = getResultMsgList(result, ECK0011B050CBSMsg.ECK0011B050CBSMSG1LIST);
					if (dataList == null || dataList.length == 0)
					{
						returnCd = PMP_ERR_NODATA;   // データなし
					}
					else
					{
						// お客様情報照会(PMP連携用)結果マップを取得
						nowCustMap = copyMsgToMap(dataList[0], ECK0011B050CBSMsg1List.class, ECK0011B050CBSMsg1List.class);
						// eoID変更有無
						isEoidChge = !eoid.equals((String)nowCustMap.get(ECK0011B050CBSMsg1List.EOID));
						// ニックネーム変更有無
						isNknmChge = !nullToEmpty(nkname).equals(nullToEmpty((String)nowCustMap.get(ECK0011B050CBSMsg1List.NKNAME)));
						// 変更前eoIDが初期eoIDと同じか
						isSameInitEoid = ((String)nowCustMap.get(ECK0011B050CBSMsg1List.EOID)).equals(((String)nowCustMap.get(ECK0011B050CBSMsg1List.SHK_EOID)));
						//標準コンテンツサービス契約番号
						contSvcKeiNo = (String)nowCustMap.get(ECK0011B050CBSMsg1List.SVC_KEI_NO);
					}
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}

			}
		}

		//***************************************************
		// 標準コンテンツ契約存在チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）
			if ("3".equals(workDiv))
			{
				// 標準コンテンツ契約が設定済みの場合
				if (!JCKBPCommon.isNullOrBlank(contSvcKeiNo))
				{
					returnCd = PMP_ERR_OTHER;	// システムエラー
				}
			}
		}

		//***************************************************
		// グループ入会コード存在チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「0」（ファミリー会員(個人、法人)：グループ入会コード入力）
			if ("0".equals(workDiv))
			{
				// グループ入会コード存在チェック
				chkResult = checkGrpJoinCdPwd(handle, param, "1", grpJoinCd, "");
				if (!chkResult)
				{
					returnCd = PMP_ERR_NO_GRP;	// グループ入会コードなしエラー
				}
			}
		}

		//***************************************************
		// POPID存在チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「1」（ファミリー会員(個人、法人)：POPID入力）
			if ("1".equals(workDiv))
			{
				// POPID存在チェック
				chkResult = checkPopId(handle, param, "1", popid);
				if (!chkResult)
				{
					returnCd = PMP_ERR_POPID_AUTH;	// POPID認証エラー
				}
			}
		}

		//***************************************************
		// マスター会員情報照会
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「0」（ファミリー会員(個人、法人)：グループ入会コード入力）、「1」（ファミリー会員(個人、法人)：POPID入力）
			if ("0".equals(workDiv) || "1".equals(workDiv))
			{
				// 機能コードを設定（"3":グループ入会コード検索、"4":POPID検索）
				funcCd = "0".equals(workDiv) ? "3" : "4";

				// マスター会員情報照会（PMP連携用）SC呼出
				result = callECK0011B060(handle, param, funcCd, null, null, popid, null, null, grpJoinCd, null);
				if (isSuccess(result))
				{
					CAANMsg[] dataList = getResultMsgList(result, ECK0011B060CBSMsg.ECK0011B060CBSMSG1LIST);
					if ((dataList == null) || (dataList.length == 0))
					{
						returnCd = PMP_ERR_NODATA;   // データなし
					}
					else
					{
						String mapKeyPre = ECK0011B060CBSMsg.ECK0011B060CBSMSG1LIST + "[0].";
						mstSysid = getResultString(result, mapKeyPre + ECK0011B060CBSMsg1List.SYSID);
						mstMemberSbtCd = getResultString(result, mapKeyPre + ECK0011B060CBSMsg1List.MEMBER_SBT_CD);
						mstKeishaTypeCd = getResultString(result, mapKeyPre + ECK0011B060CBSMsg1List.KEISHA_TYPE_CD);
						mstGrpCd = getResultString(result, mapKeyPre + ECK0011B060CBSMsg1List.GRP_CD);
					}
				}
			}
		}

		//***************************************************
		// 会員種別コード取得
		//***************************************************
		// 業務区分：「0」（ファミリー会員(個人、法人)：グループ入会コード入力）、「1」（ファミリー会員(個人、法人)：POPID入力）
		if ("0".equals(workDiv) || "1".equals(workDiv))
		{
			// マスター会員（個人）の場合
			if (MMB_SBT_CD_MASTER_KOJIN.equals(mstMemberSbtCd))
			{
				// ファミリー会員（個人）
				memberSbtCd = MMB_SBT_CD_FAMILY_KOJIN;
			}
			// 上記以外の場合
			else
			{
				// ファミリー会員（法人）
				memberSbtCd = MMB_SBT_CD_FAMILY_HOJIN;
			}
		}
		// 業務区分：「2」（オープン会員）の場合
		else if ("2".equals(workDiv))
		{
			memberSbtCd = MMB_SBT_CD_OPEN;
		}
		// 上記以外（業務区分：「3」（マスター会員））の場合
		else
		{
			// 上記「お客様情報照会（PMP連携用）」で取得した会員種別
			memberSbtCd = (String)nowCustMap.get(ECK0011B050CBSMsg1List.MEMBER_SBT_CD);
		
		}

		//***************************************************
		// 必須チェック
		//***************************************************
		// 会員種別コードがマスター会員（法人）の場合、必須項目チェックを行う。
		if (MMB_SBT_CD_MASTER_HOJIN.equals(memberSbtCd))
		{
			String[] chkItem = new String[]{CKSV9022_CKSV9022OP_CKSV902201CC.SEI,
												CKSV9022_CKSV9022OP_CKSV902201CC.NM,
												CKSV9022_CKSV9022OP_CKSV902201CC.KANA_SEI,
												CKSV9022_CKSV9022OP_CKSV902201CC.KANA_NM,
												CKSV9022_CKSV9022OP_CKSV902201CC.SEX,
												CKSV9022_CKSV9022OP_CKSV902201CC.PCD,
												CKSV9022_CKSV9022OP_CKSV902201CC.AD_STATE_CITY,
												CKSV9022_CKSV9022OP_CKSV902201CC.AD_OTHER,
												CKSV9022_CKSV9022OP_CKSV902201CC.BIRTHD};

			for (String itemKey : chkItem)
			{
				String itemValue = (String)inMap.get(itemKey);
				if (JCKBPCommon.isNullOrBlank(itemValue))
				{
					returnCd = PMP_ERR_PARAM;  //パラメータ不正エラー
					break;
				}
			}
		}

		//***************************************************
		// 更新対象メールアドレス取得
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 処理区分：「01」（お客様情報仮登録）かつ業務区分：「3」（マスター会員）
			if ("01".equals(getTrnDiv()) && "3".equals(workDiv))
			{
				// 変更手続き中メールアドレス
				trgtMlad = chgechuMlad;
			}
			else
			{
				// 連絡先メールアドレス
				trgtMlad = rrksMlad;
			}
		}

		//***************************************************
		// 更新対象電話番号取得
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 会員種別がマスター会員(個人)の場合
			if (MMB_SBT_CD_MASTER_KOJIN.equals(memberSbtCd))
			{
				// 契約者電話番号
				trgtTelno = (String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_TELNO);
			}
			else
			{
				// 入力パラメータの電話番号
				trgtTelno = telno;
			}
		}

		//***************************************************
		// ファミリー会員登録件数チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「0」（ファミリー会員(個人、法人)＝グループ入会コード入力）、「1」（ファミリー会員(個人、法人)＝POPID入力）
			if ("0".equals(workDiv) || "1".equals(workDiv))
			{
				// 機能コードを設定（"1":グループ入会コード検索、"2":POPID検索）
				funcCd = "0".equals(workDiv) ? "1" : "2";

				// マスター会員の会員種別コードから業務パラメータIDを決定する。
				workParamId = MMB_SBT_CD_MASTER_KOJIN.equals(mstMemberSbtCd) ? WORK_PARAM_ID_FAMILY_KJ_MMB_CNT : WORK_PARAM_ID_FAMILY_HJ_MMB_CNT;

				// ファミリー会員登録件数チェック
				chkResult = checkFamilyMmbAddCnt(handle, param, funcCd, grpJoinCd, popid, "", "", workParamId);
				if (!chkResult)
				{
					returnCd = PMP_ERR_FAMILY_MMB_CNT;	// ファミリー会員登録件数超過エラー
				}
			}
		}

		//***************************************************
		// eoID更新日チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）、かつeoIDに変更があり、変更前eoID≠初期eoID
			if ("3".equals(workDiv) && isEoidChge && !isSameInitEoid)
			{
				// 変更不可期間チェック
				chkResult = checkUpdFailPrd(handle, param, opeDate, WORK_PARAM_ID_EOID_CHGFAIL_DAYS, (String)nowCustMap.get(ECK0011B050CBSMsg1List.EOID_CHGE_YMD));
				if (!chkResult)
				{
					returnCd = PMP_ERR_EOID_TERM;	// eoID規定の期間以内の更新エラー
				}
			}
		}

		//***************************************************
		// サービス契約番号存在チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）、かつパラメータのメール受信設定.サービス契約番号≠"ZZZZZZZZZZ"
			if ("3".equals(workDiv) && !SVC_KEI_NO_RRKS_MLAD.equals(rcvSetSvcKeiNo))
			{
				// サービス契約番号存在チェック
				chkResult = checkSvcKeiNo(handle, param, sysid, rcvSetSvcKeiNo);
				if (!chkResult)
				{
					returnCd = PMP_ERR_NODATA_SVCKEINO;	// サービス契約番号なしエラー
				}
			}
		}

		//***************************************************
		// 回線契約状態チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）
			if ("3".equals(workDiv))
			{
				// 回線契約状態チェック
				chkResult = checkKisnKeiStat(handle, param, ispKssaiSvcKeiNo);
				if (!chkResult)
				{
					returnCd = PMP_ERR_STAT_KSN_KEI;	// 回線契約状態チェックエラー（会員状態・ステータス）
				}
			}
		}

		//***************************************************
		// eoID重複チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）でeoIDが変更されている場合、または業務区分：「3」（マスター会員）以外
			if (("3".equals(workDiv) && isEoidChge) || (!"3".equals(workDiv)))
			{
				// eoID重複チェック
				chkResult = checkDupEoId(handle, param, eoid);
				if (!chkResult)
				{
					returnCd = PMP_ERR_EOID_DUP;	// eoID重複チェック
				}
			}
		}

		//***************************************************
		// ニックネーム重複チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// ニックネーム≠NULL かつ（業務区分：「3」（マスター会員）でニックネームが変更されている場合、または業務区分：「3」（マスター会員）以外）
			if (!JCKBPCommon.isNullOrBlank(nkname) && ("3".equals(workDiv) && isNknmChge) || (!"3".equals(workDiv)))
			{
				// ニックネーム重複チェック
				chkResult = checkDupNkName(handle, param, nkname);
				if (!chkResult)
				{
					returnCd = PMP_ERR_NKNM_DUP;	// ニックネーム重複エラー
				}
			}
		}

		//***************************************************
		// 拒否メールドメインチェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			String mailDomain = trgtMlad.substring(trgtMlad.indexOf("@") + 1);
			// 拒否メールドメインチェック
			chkResult = checkKyohiMailDomain(handle, param, opeDate, mailDomain);
			if (!chkResult)
			{
				returnCd = PMP_ERR_REJECT_DOMAIN;	// 拒否メールドメインチェックエラー
			}
		}

		//***************************************************
		// eoID禁則文字チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）でeoIDが変更されている場合、または業務区分：「3」（マスター会員）以外
			if (("3".equals(workDiv) && isEoidChge) || (!"3".equals(workDiv)))
			{
				// eoID禁則文字チェック呼出
				chkResult = checkEoidErrMoji(handle, param, eoid);
				if (!chkResult)
				{
					returnCd = PMP_ERR_EOID_PROHIBITION;	// eoID禁則文字チェックエラー
				}
			}
		}
		/*---< ANK-2557-00-00 add start >---*/
		//***************************************************
		// eoID半角英数字11チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）でeoIDが変更されている場合、または業務区分：「3」（マスター会員）以外
			if (("3".equals(workDiv) && isEoidChge) || (!"3".equals(workDiv)))
			{
				// eoID半角英数字チェック呼出
				chkResult = enNumber11Check(handle, param, eoid);
				if (!chkResult)
				{
					returnCd = PMP_ERR_EOID_PROHIBITION;	// eoID半角英数字11チェックエラー
				}
			}
		}
		/*---< ANK-2557-00-00 add end >---*/		
		
		//***************************************************
		// 同一人チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			String chkKanaNm = "";
			String chkBirthd = "";
			// 業務区分＝3 かつ 会員種別が マスター会員（個人）
			if ("3".equals(workDiv) && MMB_SBT_CD_MASTER_KOJIN.equals(memberSbtCd))
			{
				chkKanaNm = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CUST_KANA);
				chkBirthd = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CUST_BIRTHD);
			}
			else
			{
				chkKanaNm = kanaSeiNm;
				chkBirthd = birthd;
			}
			// 同一人チェック
			chkResult = checkSameMmb(handle, param, chkKanaNm, chkBirthd, trgtMlad, sysid);
			if (!chkResult)
			{
				returnCd = PMP_ERR_MMB_DUP;	// フリガナ氏名、生年月日、連絡用アドレス重複エラー
			}
		}

		//***************************************************
		// お客様仮登録
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 処理区分：「01」（お客様情報仮登録）かつ 
			// 業務区分：「0」（ファミリー会員(個人、法人)：グループ入会コード入力）、「1」（ファミリー会員(個人、法人)：POPID入力）、「2」（オープン会員）
			if ("01".equals(getTrnDiv()) && ("0".equals(workDiv) || "1".equals(workDiv) || "2".equals(workDiv)))
			{
				// お客様＜個人＞仮登録SC呼出用マップ取得
				Map custMap = getAddCustMapForKari(inMap, memberSbtCd, opeDate, mstKeishaTypeCd);
				// 返却用お客様名を退避
				retContCustNm = (String)custMap.get(ECK0021D020CBSMsg.CONT_CUST_NM);
				// お客様＜個人＞仮登録SC呼出
				result = callECK0021D020(handle, param, custMap);
				if (isSuccess(result))
				{
					updDtmSysid = getResultString(result, ECK0021D020CBSMsg.UPD_DTM);
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}

		//***************************************************
		// お客様本登録
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 処理区分：「02」（お客様情報本登録）かつ 
			// 業務区分：「0」（ファミリー会員(個人、法人)：グループ入会コード入力）、「1」（ファミリー会員(個人、法人)：POPID入力）
			if ("02".equals(getTrnDiv()) && ("0".equals(workDiv) || "1".equals(workDiv)))
			{
				// お客様＜個人＞登録SC呼出用マップ取得
				Map custMap = getAddCustMapForHon(inMap, memberSbtCd, opeDate, mstKeishaTypeCd);
				// 返却用お客様名を退避
				retContCustNm = (String)custMap.get(ECK0021D010CBSMsg.CONT_CUST_NM);
				// お客様＜個人＞登録SC呼出
				result = callECK0021D010(handle, param, custMap);
				if (isSuccess(result))
				{
					updDtmSysid = getResultString(result, ECK0021D010CBSMsg.UPD_DTM);
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}

		//***************************************************
		//お客様一意照会
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// お客様一意照会SC呼出
			result = callECK0011A010(handle, param, "2", sysid, opeDate);
			if (isSuccess(result))
			{
				String mapKeyPre = ECK0011A010CBSMsg.ECK0011A010CBSMSG1LIST + "[0].";
				// 関電G個人情報取扱同意有無
				kepgKjnifTratDoiUm = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIF_TRAT_DOI_UM);
				// 関電G個人情報取扱同意年月日
				kepgKjnifTratDoiYmd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIF_TRAT_DOI_YMD);
				// 関電G個人情報提供不可フラグ
				kepgKjniftFfg = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_FFG);
				// 関電G個人情報提供不可フラグ変更年月日
				kepgKjniftFfgChgYmd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_FFG_CHG_YMD);
				// 関電G個人情報提供不可フラグ変更受付方法コード
				kepgKjniftFfgChgUwyCd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_FFG_CHG_UWY_CD);
				// 関電G個人情報提供状況コード
				kepgKjniftJokyoCd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_JOKYO_CD);
				// 関電G個人情報提供開始年月日
				kepgKjniftStaYmd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_STAYMD);
				// 関電G個人情報提供連携状態コード
				kepgKjniftRscd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_RSCD);
				// 関電G個人情報提供連携状態コード変更年月日
				kepgKjniftRscdChgYmd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_RSCD_CHG_YMD);
				// ANK-3706-00-00 ADD START
				keishaTelno = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEISHA_TELNO);
				// ANK-3706-00-00 ADD END
			}
			else
			{
				returnCd = PMP_ERR_OTHER;   // その他のエラー
			}
		}
		
		//***************************************************
		// お客様<個人>内容変更
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）、かつ会員種別 マスター会員（個人） 
			if ("3".equals(workDiv) && MMB_SBT_CD_MASTER_KOJIN.equals(memberSbtCd))
			{
				// お客様<個人>内容変更SC呼出用マップ取得
				Map custMap = getUpdCustMapForKojin(inMap, nowCustMap, updDtmSysid, kepgKjnifTratDoiUm,
																					kepgKjnifTratDoiYmd,
																					kepgKjniftFfg,
																					kepgKjniftFfgChgYmd,
																					kepgKjniftFfgChgUwyCd,
																					kepgKjniftJokyoCd,
																					kepgKjniftStaYmd,
																					kepgKjniftRscd,
																					kepgKjniftRscdChgYmd);
				// 返却用お客様名を退避
				retContCustNm = (String)custMap.get(ECK0021C010CBSMsg.CONT_CUST_NM);
				// お客様<個人>内容変更SC呼出
				result = callECK0021C010(handle, param, custMap);
				if (isSuccess(result))
				{
					updDtmSysid = getResultString(result, ECK0021C010CBSMsg.UPD_DTM);
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}

		//***************************************************
		// お客様<法人>内容変更
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）、かつ会員種別が マスター会員（法人） 
			if ("3".equals(workDiv) && MMB_SBT_CD_MASTER_HOJIN.equals(memberSbtCd))
			{
				// お客様<法人>内容変更SC呼出用マップ取得
				Map custMap = getUpdCustMapForHojin(inMap, nowCustMap, updDtmSysid, kepgKjnifTratDoiUm,
																					kepgKjnifTratDoiYmd,
																					kepgKjniftFfg,
																					kepgKjniftFfgChgYmd,
																					kepgKjniftFfgChgUwyCd,
																					kepgKjniftJokyoCd,
																					kepgKjniftStaYmd,
																					kepgKjniftRscd,
																					kepgKjniftRscdChgYmd);
				// 返却用お客様名を退避
				retContCustNm = (String)custMap.get(ECK0031C010CBSMsg.CONT_CUST_NM);
				// お客様<法人>内容変更SC呼出
				result = callECK0031C010(handle, param, custMap);
				if (isSuccess(result))
				{
					updDtmSysid = getResultString(result, ECK0031C010CBSMsg.UPD_DTM);
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}

		//***************************************************
		// eoID変更
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）、かつeoIDに変更あり
			if ("3".equals(workDiv) && isEoidChge)
			{
				boolean agingEndFlg = false;
				// 初期ｅｏＩＤと変更前ｅｏＩＤが異なる場合、変更前ｅｏＩＤをエイジング終了にする。
				if (!isSameInitEoid)
				{
					agingEndFlg = true;
				}
				// eoID変更(エイジング終了実行指定)
				Map tmpResult = chgEoIdAndAgingEnd(handle, param, opeDate, sysid, eoid, (String)nowCustMap.get(ECK0011B050CBSMsg1List.EOID), updDtmSysid, agingEndFlg);
				result = (Map)tmpResult.get("result");
				if (isSuccess(result))
				{
					updDtmSysid = (String)tmpResult.get("upd_dtm_sysid");
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}

		//***************************************************
		// ニックネーム変更
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）でニックネームが変更されている場合
			if ("3".equals(workDiv) && isNknmChge)
			{
				// ニックネーム変更
				result = callECK0011C090(handle, param, opeDate, sysid, nkname, updDtmSysid);
				//result = chgNkNm(handle, param, sysid, nkname, nowNkname, updDtmSysid);
				if (isError(result))
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}

		//***************************************************
		// パスワードリマインダ変更
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）
			// かつ、パスワードリマインダ用質問コードとパスワードリマインダ用回答のいずれかに変更あり
			if ("3".equals(workDiv)
					&& (!pwdReminderQsCd.equals((String)nowCustMap.get(ECK0011B050CBSMsg1List.PWD_REMINDER_QS_CD))
						|| !pwdReminderAns.equals((String)nowCustMap.get(ECK0011B050CBSMsg1List.PWD_REMINDER_ANS))))
			{
				// パスワードリマインダ変更SC呼出
				result = callECK0011C100(handle, param, sysid, pwdReminderQsCd, pwdReminderAns, updDtmSysid);
				if (isSuccess(result))
				{
					updDtmSysid = getResultString(result, ECK0011C100CBSMsg.UPD_DTM);
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}

		//***************************************************
		// 連絡先メールアドレス本登録
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 処理区分：「02」（お客様情報本登録）
			if (("01".equals(getTrnDiv()) && "3".equals(workDiv)) ||  "02".equals(getTrnDiv()))
			{
				// 連絡先(メールアドレス)登録更新
				Map tmpResult = addUpdRrksMlad(handle, param, opeDate, "1", sysid, trgtMlad, updDtmSysid, opeDate);
				result = (Map)tmpResult.get("result");
				if (isError(result))
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}

		//***************************************************
		// 連絡先メールアドレス仮登録
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 処理区分：「01」（お客様情報仮登録）
			if ("01".equals(getTrnDiv()))
			{
				// 連絡先(メールアドレス)登録更新
				Map tmpResult = addUpdRrksMlad(handle, param, opeDate, "2", sysid, trgtMlad, updDtmSysid, opeDate);
				result = (Map)tmpResult.get("result");
				if (isSuccess(result))
				{
					updDtmSysid = (String)tmpResult.get("upd_dtm_sysid");
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
			
		}

		//***************************************************
		// 連絡先（電話番号）登録
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 更新対象電話番号が設定されている
			if (!JCKBPCommon.isNullOrBlank(trgtTelno))
			{
				// 連絡先(電話番号)登録更新
				Map tmpResult = addUpdRrksTelno(handle, param, opeDate, sysid, trgtTelno, updDtmSysid);
				result = (Map)tmpResult.get("result");
				if (isSuccess(result))
				{
					updDtmSysid = (String)tmpResult.get("upd_dtm_sysid");
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}

		//***************************************************
		// お客様グループ設定登録
		//***************************************************
		Map<String, String> grpSetteMap = new HashMap<String, String>();;
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「0」（ファミリー会員(個人、法人)：グループ入会コード入力）、「1」（ファミリー会員(個人、法人)：POPID入力）
			if ("0".equals(workDiv) || "1".equals(workDiv))
			{
				// お客様グループ設定登録SC呼出
				result = callECK0121D010(handle, param, sysid, mstGrpCd, updDtmSysid);
				if (isSuccess(result))
				{
					grpSetteMap.put("mk_flg", getResultString(result, ECK0121D010CBSMsg.MK_FLG));
					grpSetteMap.put("add_dtm", getResultString(result, ECK0121D010CBSMsg.ADD_DTM));
					grpSetteMap.put("add_opeacnt", getResultString(result, ECK0121D010CBSMsg.ADD_OPEACNT));
					grpSetteMap.put("upd_dtm", getResultString(result, ECK0121D010CBSMsg.UPD_DTM));
					grpSetteMap.put("upd_opeacnt", getResultString(result, ECK0121D010CBSMsg.UPD_OPEACNT));
					updDtmSysid = getResultString(result, ECK0121D010CBSMsg.UPD_DTM);
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}

		//***************************************************
		// サービス契約<ホスティング>登録
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			result = addStdardContDoi(handle, param, sysid, opeDate);
			if (isError(result))
			{
				returnCd = PMP_ERR_OTHER;   // その他のエラー
			}
		}

		//***************************************************
		// 支払方法入力支援登録
		//***************************************************
		Map<String, String> paywayInsupMap = new HashMap<String, String>();;
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）
			if ("3".equals(workDiv))
			{
				// 支払方法入力支援登録SC呼出
				result = callECN0131D011ForIspks(handle, param, sysid, ispKssaiSvcKeiNo);
				if (isSuccess(result))
				{
					paywayInsupMap.put("payway_input_shien_cd", getResultString(result, ECN0131D011CBSMsg.PAYWAY_INPUT_SHIEN_CD));
					paywayInsupMap.put("tsyrn_pay_seq", getResultString(result, ECN0131D011CBSMsg.TSYRN_PAY_SEQ));
					paywayInsupMap.put("isp_kssai_svc_kei_no", getResultString(result, ECN0131D011CBSMsg.ISP_KSSAI_SVC_KEI_NO));
					paywayInsupMap.put("crecard_id", getResultString(result, ECN0131D011CBSMsg.CRECARD_ID));
					paywayInsupMap.put("mk_flg", getResultString(result, ECN0131D011CBSMsg.MK_FLG));
					paywayInsupMap.put("add_dtm", getResultString(result, ECN0131D011CBSMsg.ADD_DTM));
					paywayInsupMap.put("add_opeacnt", getResultString(result, ECN0131D011CBSMsg.ADD_OPEACNT));
					paywayInsupMap.put("upd_dtm", getResultString(result, ECN0131D011CBSMsg.UPD_DTM));
					paywayInsupMap.put("upd_opeacnt", getResultString(result, ECN0131D011CBSMsg.UPD_OPEACNT));
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}

		//***************************************************
		// オプトインメール受信設定登録更新
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// オプトインメール受信設定登録更新
			Map tmpResult = addUpdOptinmRcvSette(handle, param, opeDate, sysid,
					memberSbtCd, "", trgtMlad, rcvSetSvcKeiNo,
					rcvSetTsyrnSvkeiCdSeq, mailRcvSetteList2, updDtmSysid);
			result = (Map)tmpResult.get("result");
			if (isSuccess(result))
			{
				updDtmSysid = (String)tmpResult.get("upd_dtm_sysid");
			}
			else
			{
				returnCd = PMP_ERR_OTHER;   // その他のエラー
			}
		}

		//***************************************************
		// eoIDエイジング登録
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）以外
			if (!"3".equals(workDiv))
			{
				// eoIDエイジング登録
				result = callEZM0111D010(handle, param, AGING_SBT_CD_EOID, eoid);
				if (isError(result))
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}

		//***************************************************
		// ニックネームエイジング登録
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// ニックネームが入力されてる場合
			if (!JCKBPCommon.isNullOrBlank(nkname))
			{
				// ニックネームエイジング登録
				result = callEZM0111D010(handle, param, AGING_SBT_CD_NKNAME, nkname);
				if (isError(result))
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}

		//***************************************************
		// AxM連携用督促データ抽出
		//***************************************************
		String tkskst = "";
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）
			if ("3".equals(workDiv))
			{
				// 督促データ抽出SC呼出
				result = callECH0231B010(handle, param, "1", sysid);
				if (isSuccess(result))
				{
					String mapKeyPre = ECH0231B010CBSMsg.ECH0231B010CBSMSG1LIST + "[0].";
					tkskst = getResultString(result, mapKeyPre + ECH0231B010CBSMsg1List.TOKUSOKU_STAT);
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}

		//***************************************************
		// 指示書登録
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）の場合
			if ("3".equals(workDiv))
			{
				String tmpBirthd = null;
				String tmpSex = null;
				if (MMB_SBT_CD_MASTER_KOJIN.equals(memberSbtCd))
				{
					tmpBirthd = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CUST_BIRTHD);
					tmpSex = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CUST_SEX_CD);
				}
				else
				{
					tmpBirthd = birthd;
					tmpSex = sex;
				}
				// AdminAPI部分更新用の指示書パラメータ作成
				// ANK-3706-00-00 MOD START
				//Map sjishoMap = createShijishoParamAdminApiUpd(inMap, tmpBirthd, tmpSex, trgtMlad);
				Map sjishoMap = createShijishoParamAdminApiUpd(inMap, tmpBirthd, tmpSex, trgtMlad, keishaTelno);
				// ANK-3706-00-00 MOD END
				result = callECK0151D010Map(handle, param, sjishoMap);
			}
			else
			{
				// AdminAPI新規登録用の指示書パラメータ作成
				// ANK-3706-00-00 MOD START
				//Map sjishoMap = createShijishoParamAdminApiAdd(workDiv, inMap, memberSbtCd, trgtMlad, mstKeishaTypeCd);
				Map sjishoMap = createShijishoParamAdminApiAdd(workDiv, inMap, memberSbtCd, trgtMlad, mstKeishaTypeCd, keishaTelno);
				// ANK-3706-00-00 MOD END
				result = callECK0151D010Map(handle, param, sjishoMap);
			}

			// グループ情報連携用の指示書作成
			if (isSuccess(result))
			{
				// 業務区分：「0」（ファミリー会員(個人、法人)：グループ入会コード入力）、「1」（ファミリー会員(個人、法人)：POPID入力）
				if ("0".equals(workDiv) || "1".equals(workDiv))
				{
					// グループ情報連携用の指示書パラメータ作成
					Map sjishoMap = createShijishoParamMkGrpSette(sysid, mstSysid, grpSetteMap);
					result = callECK0151D010Map(handle, param, sjishoMap);
				}
			}

			// 支払方法連携用の指示書作成
			if (isSuccess(result))
			{
				// 業務区分：「3」（マスター会員）の場合
				if ("3".equals(workDiv))
				{
					// 支払方法情報連携用の指示書パラメータ作成
					Map sjishoMap = createShijishoParamDelPayway(sysid, paywayInsupMap, tkskst);
					result = callECK0151D010Map(handle, param, sjishoMap);
				}
			}

			if (isError(result))
			{
				returnCd = PMP_ERR_OTHER;   // その他のエラー
			}
		}

		//***************************************************
		// 仮登録者本登録可能日数取得
		//***************************************************
		String kariAddPsbKigen = "";
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「0」（ファミリー会員(個人、法人)：グループ入会コード入力）、「1」（ファミリー会員(個人、法人)：POPID入力）、「2」（オープン会員）
			if ("0".equals(workDiv) || "1".equals(workDiv) || "2".equals(workDiv))
			{
				// 業務パラメータ設定値取得SC呼出
				result = callEZM0321A010(handle, param, "1", "CK_KARI_ADD_PSB_DAYS");
				if (isSuccess(result))
				{
					String mapKeyPre = EZM0321A010CBSMsg.EZM0321A010CBSMSG1LIST + "[0].";
					String workParam = getResultString(result, mapKeyPre + EZM0321A010CBSMsg1List.WORK_PARAM_SETTE_VALUE);
					if (workParam == null || "".equals(workParam))
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
					else
					{
						// 仮登録者本登録可能期限を取得（運用日付＋仮登録者本登録可能日数）
						kariAddPsbKigen = JCCBPCommon.addDay(JCCBPCommon.getOpeDate(null), Integer.parseInt(workParam));
					}
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}

		//***************************************************
		// 返却パラメータ設定
		//***************************************************

		// 最後に実行したSCの実行結果を取得
		result = getLastResult(param);

		// 下りコントロールマップのセット
		setResultCtrlData(param, result, fixedText);

		// SC実行エラーの場合は、結果に応じてリターンコードを設定
		if (PMP_ERR_OTHER.equals(returnCd))
		{
			String scReturnCd = getReturnCode(result).toString();
			String scStatusCd = getStatus(result).toString();
			returnCd = ("0".equals(scReturnCd) && "1000".equals(scStatusCd)) ? PMP_ERR_PARAM : PMP_ERR_SYSTEM;
		}
		// OM-2016-0001646 ADD START
		if (PMP_ERR_PARAM.equals(returnCd))
		{
			if (!run_flg)
			{
				// SCとユーザ情報（CKSV905200SC）のパラメータ対応表
				Object[][] paramTable = {
						{"parameter_3",         "sysid"},                        // S-IF項目 -> CKSV905200SC項目(SYSID)
						{"tran_trgt_sysid",     "sysid"},                        // S-IF項目 -> CKSV905200SC項目(SYSID)
						{"aging_tg_value",      "eoid"},                         // S-IF項目 -> CKSV905200SC項目(eoID)
						{"parameter_2",         "eoid"},                         // S-IF項目 -> CKSV905200SC項目(eoID)
						{"parameter_4",         "eoid_pw"},                      // S-IF項目 -> CKSV905200SC項目(eoIDパスワード)
						{"cont_cust_sex_cd",    "gender"},                       // S-IF項目 -> CKSV905200SC項目(性別)
						{"parameter_9",         "gender"},                       // S-IF項目 -> CKSV905200SC項目(性別)
						{"cont_pcd",            "zip_code"},                     // S-IF項目 -> CKSV905200SC項目(郵便番号)
						{"cont_adrttm",         "address3"},                     // S-IF項目 -> CKSV905200SC項目(住所（マンション名等）)
						{"telno",               "tel_number"},                   // S-IF項目 -> CKSV905200SC項目(電話番号)
						{"cont_cust_birthd",    "date_of_birth"},                // S-IF項目 -> CKSV905200SC項目(生年月日)
						{"parameter_8",         "date_of_birth"},                // S-IF項目 -> CKSV905200SC項目(生年月日)
						{"nkname",              "nick_name"},                    // S-IF項目 -> CKSV905200SC項目(ニックネーム)
						{"aging_tg_value",      "nick_name"},                    // S-IF項目 -> CKSV905200SC項目(ニックネーム)
						{"parameter_5",         "nick_name"},                    // S-IF項目 -> CKSV905200SC項目(ニックネーム)
						{"mlad",                "rrks_mlad"},                    // S-IF項目 -> CKSV905200SC項目(連絡先メールアドレス)
						{"parameter_7",         "rrks_mlad"},                    // S-IF項目 -> CKSV905200SC項目(連絡先メールアドレス)
						{"pwd_reminder_qs_cd",  "pwd_reminder_question_code"},   // S-IF項目 -> CKSV905200SC項目(パスワードリマインダ(質問)コード)
						{"pwd_reminder_ans",    "pwd_reminder_answer"},          // S-IF項目 -> CKSV905200SC項目(パスワードリマインダ(答え))
				};

				// SCの実行結果をユーザー情報に設定する。(CKSV905200SC)
				editResultErrorInfo(result, ccMsg, paramTable, false, "1");
			}
		}
		// OM-2016-0001646 ADD END

		// 下りユーザデータマップのセット
		Map<String, Object> resultMap = new HashMap();
		resultMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.RETURN_CD, returnCd);
		resultMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.CK_UPD_DTM_RES, lastCkUpdDtm);			// 最新更新日時(お客様)
		resultMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.KK_UPD_DTM_RES, lastKkUpdDtm);			// 最新更新日時(サービス契約)
		resultMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.CONT_CUST_NM, retContCustNm);			// コンテンツお客様名
		resultMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.KARI_ADD_PSB_KIGEN, kariAddPsbKigen);	// 仮登録者本登録可能期限
		resultMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.SENDS_MLAD, trgtMlad);					// 送信先メールアドレス

		setResultUserData(param, fixedText, resultMap);

		//*************************************************
		// 処理結果の判定
		//*************************************************
		// OM-2016-0002054 DEL START
//		if (isError(result))
//		{
//			if (run_flg)
//			{
//				String errMsg = getCcName() + "でエラーが発生しました(リターンコード：" + returnCd + ")";
//				throw new CCException(errMsg, new Exception(errMsg));
//			}
//		}
		// OM-2016-0002054 DEL END

// OM-2015-0000844 MOD END
		
		HashMap<String, Object> outMsg = (HashMap<String, Object>)param.getData(fixedText);
		// OM-2016-0002054 ADD START
		if (isError(result))
		{
			// エラー時リターンコードを設定
			ccMsg.put("return_code", outMsg.get(CKSV9022_CKSV9022OP_CKSV902201CC.RETURN_CD));

			String errMsg = getCcName() + "でエラーが発生しました(リターンコード：" + returnCd + ")";
			throw new CCException(errMsg, new Exception(errMsg));
		}
		// OM-2016-0002054 ADD END
		if (!JCKStrConst.PMP_NORMAL_END.equals(outMsg.get(CKSV9022_CKSV9022OP_CKSV902201CC.RETURN_CD)))
		{
			// エラー時リターンコードを設定
			ccMsg.put("return_code", outMsg.get(CKSV9022_CKSV9022OP_CKSV902201CC.RETURN_CD));
			return false;
		}
		
		return true;
	}

// OM-2015-0000844 ADD START
	/**
	 * AdminAPI新規登録用の指示書パラメータ作成
	 * @param workDiv 業務区分
	 * @param paramMap 入力パラメータマップ
	 * @param memberSbtCd 会員種別コード
	 * @param trgtMlad 変更対象連絡先メールアドレス
	 * @param mstKeishaTypeCd 契約者タイプコード
	 * @param keishaTelno 契約者電話番号
	 * @return 指示書登録用パラメータ
	 */
	private Map<String, Object> createShijishoParamAdminApiAdd(String workDiv, Map<String, Object> paramMap,
	// ANK-3706-00-00 MOD START
	//		String memberSbtCd, String trgtMlad, String mstKeishaTypeCd)
			String memberSbtCd, String trgtMlad, String mstKeishaTypeCd, String keishaTelno)
	// ANK-3706-00-00 MOD START
	{
		Map<String, Object> inMap = new HashMap<String, Object>();

		String kariAddDiv = null;
		String contDoiDiv = null;
		String testIdDiv = null;
		String rrksMlad = null;

		String sysid = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SYSID);
		String eoid = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.EOID);
		String eoidPw = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.EOID_PW);
		String nkname = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.NKNAME);
		String birthd = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.BIRTHD);
		String sex = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SEX);

		// 仮登録の場合
		if ("01".equals(getTrnDiv()))
		{
			kariAddDiv = ADMIN_SJISHO_PARAM10_KARI;		// 仮登録
			contDoiDiv = ADMIN_SJISHO_PARAM12_MIDOI;	// 標準コンテンツ未同意
			rrksMlad = trgtMlad;						// 連絡先メールアドレス
		}
		// 本登録の場合
		else
		{
			kariAddDiv = ADMIN_SJISHO_PARAM10_HON;		// 本登録
			contDoiDiv = ADMIN_SJISHO_PARAM12_DOI;		// 標準コンテンツ同意
			rrksMlad = trgtMlad;						// 連絡先メールアドレス
		}

		// 契約者タイプコードが「保守用」の場合、テスト用IDを設定。
		if (("0".equals(workDiv) || "1".equals(workDiv)) && KEISHA_TYPE_CD_MNT.equals(mstKeishaTypeCd))
		{
			testIdDiv = "1";
		}
		else
		{
			testIdDiv = "0";
		}

		inMap.put(ECK0151D010CBSMsg.TRN_CD, SJISHO_TRN_CD_ADMIN_API);
		inMap.put(ECK0151D010CBSMsg.ERR_CNT, "0");
		inMap.put(ECK0151D010CBSMsg.TRAN_TRGT_SYSID, sysid);
		inMap.put(ECK0151D010CBSMsg.RSLT_FLG, "0");
		// ANK-3706-00-00 MOD START
		//inMap.put(ECK0151D010CBSMsg.PARAMETER_YK_CNT, "19");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_YK_CNT, "22");
		// ANK-3706-00-00 MOD END
		inMap.put(ECK0151D010CBSMsg.PARAMETER_1, ADMIN_SJISHO_PARAM1_NEW);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_2, eoid);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_3, sysid);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_4, eoidPw);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_5, nkname);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_6, memberSbtCd);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_7, rrksMlad);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_8, getAgeFlg(birthd, JCCBPCommon.getOpeDate(null)));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_9, sex);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_10, kariAddDiv);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_11, "1");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_12, contDoiDiv);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_13, testIdDiv);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_14, "0");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_15, "0");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_16, "0");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_17, "0");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_18, "1");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_19, JCCBPCommon.getSysDateTime());
		// ANK-3706-00-00 ADD START
		inMap.put(ECK0151D010CBSMsg.PARAMETER_20, keishaTelno);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_21, "");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_22, "");
		// ANK-3706-00-00 ADD END

		return inMap;
	}

	/**
	 * AdminAPI部分更新用の指示書パラメータ作成
	 * @param paramMap 入力パラメータマップ
	 * @param birthd 生年月日
	 * @param sex 性別
	 * @param rrksMlad 連絡先メールアドレス
	 * @param keishaTelno 契約者電話番号
	 * @return 指示書登録用パラメータ
	 */
	private Map<String, Object> createShijishoParamAdminApiUpd(Map<String, Object> paramMap, 
	// ANK-3706-00-00 MOD START
	//															String birthd, String sex, String rrksMlad)
																String birthd, String sex, String rrksMlad, String keishaTelno)
	// ANK-3706-00-00 MOD END
	{
		Map<String, Object> inMap = new HashMap<String, Object>();

		String sysid = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SYSID);
		String eoid = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.EOID);
		String eoidPw = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.EOID_PW);
		String nkname = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.NKNAME);

		inMap.put(ECK0151D010CBSMsg.TRN_CD, SJISHO_TRN_CD_ADMIN_API);
		inMap.put(ECK0151D010CBSMsg.ERR_CNT, "0");
		inMap.put(ECK0151D010CBSMsg.TRAN_TRGT_SYSID, sysid);
		inMap.put(ECK0151D010CBSMsg.RSLT_FLG, "0");
		// ANK-3706-00-00 MOD START
		//inMap.put(ECK0151D010CBSMsg.PARAMETER_YK_CNT, "19");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_YK_CNT, "22");
		// ANK-3706-00-00 MOD END
		inMap.put(ECK0151D010CBSMsg.PARAMETER_1, ADMIN_SJISHO_PARAM1_UPD_PART);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_2, eoid);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_3, sysid);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_4, eoidPw);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_5, nkname);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_7, rrksMlad);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_8, getAgeFlg(birthd, JCCBPCommon.getOpeDate(null)));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_9, sex);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_12, ADMIN_SJISHO_PARAM12_DOI);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_18, "1");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_19, JCCBPCommon.getSysDateTime());
		// ANK-3706-00-00 ADD START
		inMap.put(ECK0151D010CBSMsg.PARAMETER_20, keishaTelno);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_21, "");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_22, "");
		// ANK-3706-00-00 ADD END

		return inMap;
	}

	/**
	 * グループ情報連携用の指示書パラメータ作成
	 * @param sysid SYSID
	 * @param mstSysid マスター会員SYSID
	 * @param grpSetteMap お客様グループ設定マップ
	 * @return 指示書登録用パラメータリスト
	 */
	private Map<String, Object> createShijishoParamMkGrpSette(String sysid, String mstSysid, Map<String, String> grpSetteMap)
	{
		Map<String, Object> inMap = new HashMap<String, Object>();

		inMap.put(ECK0151D010CBSMsg.TRN_CD, SJISHO_TRN_CD_REPLICA_API);
		inMap.put(ECK0151D010CBSMsg.TRGT_TABLE_ID, "TNM00030");
		inMap.put(ECK0151D010CBSMsg.ERR_CNT, "0");
		inMap.put(ECK0151D010CBSMsg.TRAN_TRGT_SYSID, sysid);
		inMap.put(ECK0151D010CBSMsg.RSLT_FLG, "0");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_YK_CNT, "10");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_1, "001");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_2, mstSysid);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_3, sysid);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_4, (String)grpSetteMap.get("mk_flg"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_5, (String)grpSetteMap.get("add_dtm"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_6, (String)grpSetteMap.get("add_opeacnt"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_7, null);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_8, (String)grpSetteMap.get("upd_dtm"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_9, (String)grpSetteMap.get("upd_opeacnt"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_10, null);

		return inMap;
	}

	/**
	 * 支払方法連携用の指示書パラメータ作成。<br />
	 * @param sysid SYSID
	 * @param paywayInsupMap
	 * @param tkskst 督促ステータス
	 * @return 指示書登録用パラメータリスト
	 */
	private Map<String, Object> createShijishoParamDelPayway(String sysid, Map<String, String> paywayInsupMap, String tkskst)
	{
		Map<String, Object> inMap = new HashMap<String, Object>();
		inMap.put(ECK0151D010CBSMsg.TRN_CD, SJISHO_TRN_CD_REPLICA_API);
		inMap.put(ECK0151D010CBSMsg.TRGT_TABLE_ID, "TNM00060");
		inMap.put(ECK0151D010CBSMsg.ERR_CNT, "0");
		inMap.put(ECK0151D010CBSMsg.TRAN_TRGT_SYSID, sysid);
		inMap.put(ECK0151D010CBSMsg.RSLT_FLG, "0");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_YK_CNT, "13");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_1, sysid);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_2, (String)paywayInsupMap.get("payway_input_shien_cd"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_3, (String)paywayInsupMap.get("tsyrn_pay_seq"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_4, (String)paywayInsupMap.get("isp_kssai_svc_kei_no"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_5, (String)paywayInsupMap.get("crecard_id"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_6, (String)paywayInsupMap.get("mk_flg"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_7, (String)paywayInsupMap.get("add_dtm"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_8, (String)paywayInsupMap.get("add_opeacnt"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_9, null);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_10, (String)paywayInsupMap.get("upd_dtm"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_11, (String)paywayInsupMap.get("upd_opeacnt"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_12, null);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_13, tkskst);

		return inMap;
	}

	/**
	 * お客様仮登録用マップを生成します
	 * @param paramMap 入力パラメータマップ
	 * @param memberSbtCd 会員種別コード
	 * @param opeDate 運用日付
	 * @return お客様仮登録用マップ
	 */
	@SuppressWarnings("unchecked")
	private Map getAddCustMapForKari(Map paramMap, String memberSbtCd, String opeDate, String keisyaTypeCd)
	{
		Map custMap = new HashMap();

		String sysid = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SYSID);
		String eoid = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.EOID);
		String sei = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SEI);
		String nm = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.NM);
		String kanaSei = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_SEI);
		String kanaNm = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_NM);
		String sex = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SEX);
		String pcd = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PCD);
		String adStateCity = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_STATE_CITY);
		String adOther = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_OTHER);
		String adMansion = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_MANSION);
		String birthd = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.BIRTHD);
		String pwdReminderQsCd = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PWD_REMINDER_QS_CD);
		String pwdReminderAns = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PWD_REMINDER_ANS);
		String nkname = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.NKNAME);

		custMap.put(ECK0021D020CBSMsg.SYSID, sysid);													// SYSID
		custMap.put(ECK0021D020CBSMsg.EOID, eoid);														// eoID
		custMap.put(ECK0021D020CBSMsg.KEISHA_TYPE_CD_I, keisyaTypeCd);									// 契約者タイプコード
		custMap.put(ECK0021D020CBSMsg.EOID_CHGE_YMD, JCCBPCommon.getOpeDate(null));						// eoID変更年月日
		custMap.put(ECK0021D020CBSMsg.CONT_CUST_NM, sei + PMP_NAME_DELIMITER + nm);						// コンテンツお客様名
		custMap.put(ECK0021D020CBSMsg.CONT_CUST_KANA, kanaSei + PMP_NAME_DELIMITER + kanaNm);			// コンテンツお客様カナ名
		custMap.put(ECK0021D020CBSMsg.CONT_CUST_SEX_CD, sex);											// コンテンツお客様性別コード
		custMap.put(ECK0021D020CBSMsg.CONT_CUST_BIRTHD, birthd);										// コンテンツお客様生年月日
		custMap.put(ECK0021D020CBSMsg.CONT_AD_CD, CONT_AD_CD_DEFAULT);									// コンテンツ住所コード
		custMap.put(ECK0021D020CBSMsg.CONT_PCD, pcd);													// コンテンツ郵便番号
		custMap.put(ECK0021D020CBSMsg.CONT_BNCHIGO, adStateCity + adOther);								// コンテンツ番地号
		custMap.put(ECK0021D020CBSMsg.CONT_ADRTTM, adMansion);											// コンテンツ住所補記・建物名
		custMap.put(ECK0021D020CBSMsg.CONT_AD_BNKT_STA_PST, String.valueOf(adStateCity.length() + 1));	// コンテンツ住所分割開始位置
		custMap.put(ECK0021D020CBSMsg.MEMBER_SBT_CD, memberSbtCd);										// 会員種別コード
		custMap.put(ECK0021D020CBSMsg.CONT_ISP_USE_FAIL_FLG, CONT_ISP_USE_FAIL_FLG_HI);					// コンテンツISP利用不可フラグ
		custMap.put(ECK0021D020CBSMsg.CONT_ISP_USE_STP_YMD, JCCBPCommon.getOpeDate(null));				// コンテンツISP利用停止年月日
		custMap.put(ECK0021D020CBSMsg.PWD_REMINDER_QS_CD, pwdReminderQsCd);								// パスワードリマインダ用質問コード
		custMap.put(ECK0021D020CBSMsg.PWD_REMINDER_ANS, pwdReminderAns);								// パスワードリマインダ用回答
		custMap.put(ECK0021D020CBSMsg.NKNAME, nkname);													// ニックネーム
		if (nkname != null &&  !"".equals(nkname))
		{
			custMap.put(ECK0021D020CBSMsg.NKNAME_CHGE_YMD, JCCBPCommon.getOpeDate(null));				// ニックネーム変更年月日
		}
		custMap.put(ECK0021D020CBSMsg.LOGIN_NINSHO_KH, PMP_LOGIN_NINSHO_KH_KA);							// ログイン認証可否
		custMap.put(ECK0021D020CBSMsg.CUST_NTAIKAI_CD, CUST_NTAIKAI_CD_JOIN);							// お客様入退会コード
		custMap.put(ECK0021D020CBSMsg.MMB_SBT_TOKUT_FLG, MMB_SBT_TOKUT_FLG_TOKUTZUMI);					// 会員種別特定フラグ
		custMap.put(ECK0021D020CBSMsg.MMB_ISP_KSSAI_STAT_CD, ISP_KSSAI_STAT_CD_TUJYO);					// 会員ISP決済状態コード
		custMap.put(ECK0021D020CBSMsg.KARI_ADD_YMD, opeDate);											// 仮登録年月日

		return custMap;
	}
	
	/**
	 * お客様本登録用マップを生成します
	 * @param paramMap 入力パラメータマップ
	 * @param memberSbtCd 会員種別コード
	 * @param opeDate 運用日付
	 * @return お客様本登録用マップ
	 */
	@SuppressWarnings("unchecked")
	private Map getAddCustMapForHon(Map paramMap, String memberSbtCd, String opeDate, String keisyaTypeCd)
	{
		Map custMap = new HashMap();

		String sysid = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SYSID);
		String eoid = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.EOID);
		String sei = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SEI);
		String nm = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.NM);
		String kanaSei = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_SEI);
		String kanaNm = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_NM);
		String sex = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SEX);
		String pcd = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PCD);
		String adStateCity = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_STATE_CITY);
		String adOther = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_OTHER);
		String adMansion = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_MANSION);
		String birthd = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.BIRTHD);
		String pwdReminderQsCd = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PWD_REMINDER_QS_CD);
		String pwdReminderAns = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PWD_REMINDER_ANS);
		String nkname = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.NKNAME);

		custMap.put(ECK0021D010CBSMsg.SYSID, sysid);												// SYSID
		custMap.put(ECK0021D010CBSMsg.KEISHA_TYPE_CD, keisyaTypeCd);								// 契約者タイプコード
		custMap.put(ECK0021D010CBSMsg.EOID, eoid);													// eoID
		custMap.put(ECK0021D010CBSMsg.EOID_CHGE_YMD, JCCBPCommon.getOpeDate(null));					// eoID変更年月日
		custMap.put(ECK0021D010CBSMsg.CONT_CUST_NM, sei + PMP_NAME_DELIMITER + nm);					// コンテンツお客様名
		custMap.put(ECK0021D010CBSMsg.CONT_CUST_KANA, kanaSei + PMP_NAME_DELIMITER + kanaNm);		// コンテンツお客様カナ名
		custMap.put(ECK0021D010CBSMsg.CONT_CUST_SEX_CD, sex);										// コンテンツお客様性別コード
		custMap.put(ECK0021D010CBSMsg.CONT_CUST_BIRTHD, birthd);									// コンテンツお客様生年月日
		custMap.put(ECK0021D010CBSMsg.CONT_AD_CD, CONT_AD_CD_DEFAULT);								// コンテンツ住所コード
		custMap.put(ECK0021D010CBSMsg.CONT_PCD, pcd);												// コンテンツ郵便番号
		custMap.put(ECK0021D010CBSMsg.CONT_BNCHIGO, adStateCity + adOther);							// コンテンツ番地号
		custMap.put(ECK0021D010CBSMsg.CONT_ADRTTM, adMansion);										// コンテンツ住所補記・建物名
		custMap.put(ECK0021D010CBSMsg.CONT_AD_BNKT_STA_PST,
											String.valueOf(adStateCity.length() + 1));				// コンテンツ住所分割開始位置
		custMap.put(ECK0021D010CBSMsg.MEMBER_SBT_CD, memberSbtCd);									// 会員種別コード
		custMap.put(ECK0021D010CBSMsg.CONT_ISP_USE_FAIL_FLG, CONT_ISP_USE_FAIL_FLG_HI);				// コンテンツISP利用不可フラグ
		custMap.put(ECK0021D010CBSMsg.CONT_ISP_USE_STP_YMD, opeDate);								// コンテンツISP利用停止年月日
		custMap.put(ECK0021D010CBSMsg.PWD_REMINDER_QS_CD, pwdReminderQsCd);							// パスワードリマインダ用質問コード
		custMap.put(ECK0021D010CBSMsg.PWD_REMINDER_ANS, pwdReminderAns);							// パスワードリマインダ用回答
		custMap.put(ECK0021D010CBSMsg.NKNAME, nkname);												// ニックネーム
		if (nkname != null &&  !"".equals(nkname))
		{
			custMap.put(ECK0021D010CBSMsg.NKNAME_CHGE_YMD, opeDate);								// ニックネーム変更年月日
		}
		custMap.put(ECK0021D010CBSMsg.LOGIN_NINSHO_KH, PMP_LOGIN_NINSHO_KH_KA);						// ログイン認証可否
		custMap.put(ECK0021D010CBSMsg.CUST_NTAIKAI_CD, CUST_NTAIKAI_CD_JOIN);						// お客様入退会コード
		custMap.put(ECK0021D010CBSMsg.MMB_SBT_TOKUT_FLG, MMB_SBT_TOKUT_FLG_TOKUTZUMI);				// 会員種別特定フラグ
		custMap.put(ECK0021D010CBSMsg.MMB_ISP_KSSAI_STAT_CD, ISP_KSSAI_STAT_CD_TUJYO);				// 会員ISP決済状態コード
		custMap.put(ECK0021D010CBSMsg.JOIN_YMD, opeDate);											// 入会年月日
		
		return custMap;
	}
	
	/**
	 * お客様＜個人＞内容変更用マップを生成します
	 * @param inMap 入力パラメータマップ
	 * @param nowCustMap お客様情報マップ
	 * @param updDtmSysid 更新年月日時分秒（お客様）
	 * @param kepgKjnifTratDoiUm 関電G個人情報取扱同意有無
	 * @param kepgKjnifTratDoiYmd 関電G個人情報取扱同意年月日
	 * @param kepgKjniftFfg 関電G個人情報提供不可フラグ
	 * @param kepgKjniftFfgChgYmd 関電G個人情報提供不可フラグ変更年月日
	 * @param kepgKjniftFfgChgUwyCd 関電G個人情報提供不可フラグ変更受付方法コード
	 * @param kepgKjniftJokyoCd 関電G個人情報提供状況コード
	 * @param kepgKjniftStaYmd 関電G個人情報提供開始年月日
	 * @param kepgKjniftRscd 関電G個人情報提供連携状態コード
	 * @param kepgKjniftRscdChgYmd 関電G個人情報提供連携状態コード変更年月日
	 * @return お客様＜個人＞内容変更用マップ
	 */
	@SuppressWarnings("unchecked")
	private Map getUpdCustMapForKojin(Map inMap, Map<String, Object> nowCustMap, String updDtmSysid, String kepgKjnifTratDoiUm,
																										String kepgKjnifTratDoiYmd,
																										String kepgKjniftFfg,
																										String kepgKjniftFfgChgYmd,
																										String kepgKjniftFfgChgUwyCd,
																										String kepgKjniftJokyoCd,
																										String kepgKjniftStaYmd,
																										String kepgKjniftRscd,
																										String kepgKjniftRscdChgYmd)

	{
		Map custMap = (Map)((HashMap)nowCustMap).clone();

		String sysid = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SYSID);

		String custNm = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CUST_NM);
		String custKana = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CUST_KANA);
		String custSexCd = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CUST_SEX_CD);
		String custBirthd = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CUST_BIRTHD);
		String keishaAdCd = (String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_AD_CD);
		String keishaPcd = (String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_PCD);
		String keishaStateNm = nullToEmpty((String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_STATE_NM));
		String keishaCityNm = nullToEmpty((String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_CITY_NM));
		String keishaOaztsuNm = nullToEmpty((String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_OAZTSU_NM));
		String keishaAzcho = nullToEmpty((String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_AZCHO_NM));
		String keishaBnchigo = nullToEmpty((String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_BNCHIGO));
		String keishaAdrttm = nullToEmpty((String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_ADRTTM));
		String keishaAdrrm = nullToEmpty((String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_ADRRM));

		// 住所編集部品を利用して契約者住所をコンテンツ住所に変換する
		String[] adInfo = JCKLcsCommonUtil.convAdForEo(keishaStateNm, keishaCityNm, keishaOaztsuNm, keishaAzcho, keishaBnchigo, keishaAdrttm, keishaAdrrm);

		// 入力値の設定
		custMap.put(ECK0021C010CBSMsg.SYSID, sysid);											// SYSID
		custMap.put(ECK0021C010CBSMsg.UPD_DTM_BF, updDtmSysid);									// 更新年月日時分秒(更新前)
		custMap.put(ECK0021C010CBSMsg.RSV_APLY_YMD, JCCBPCommon.getOpeDate(null));				// 予約適用年月日

		custMap.put(ECK0021C010CBSMsg.CONT_CUST_NM, custNm);									// コンテンツお客様名
		custMap.put(ECK0021C010CBSMsg.CONT_CUST_KANA, custKana);								// コンテンツお客様カナ名
		custMap.put(ECK0021C010CBSMsg.CONT_CUST_SEX_CD, custSexCd);								// コンテンツお客様性別コード
		custMap.put(ECK0021C010CBSMsg.CONT_CUST_BIRTHD, custBirthd);							// コンテンツお客様生年月日
		custMap.put(ECK0021C010CBSMsg.CONT_AD_CD, keishaAdCd);									// コンテンツ住所コード
		custMap.put(ECK0021C010CBSMsg.CONT_PCD, keishaPcd);										// コンテンツ郵便番号
		custMap.put(ECK0021C010CBSMsg.CONT_STATE_NM, null);										// コンテンツ都道府県名
		custMap.put(ECK0021C010CBSMsg.CONT_CITY_NM, null);										// コンテンツ市区町村名
		custMap.put(ECK0021C010CBSMsg.CONT_OAZTSU_NM, null);									// コンテンツ大字通称名
		custMap.put(ECK0021C010CBSMsg.CONT_AZCHO_NM, null);										// コンテンツ字丁目名
		custMap.put(ECK0021C010CBSMsg.CONT_BNCHIGO, adInfo[0]); 								// コンテンツ番地号
		// OM-2014-0002427 MOD START
		//custMap.put(ECK0021C010CBSMsg.CONT_ADRTTM, adInfo[1]);									// コンテンツ住所補記・建物名
		//custMap.put(ECK0021C010CBSMsg.CONT_ADRRM, adInfo[2]);									// コンテンツ住所補記・部屋番号
		custMap.put(ECK0021C010CBSMsg.CONT_ADRTTM, adInfo[1] + adInfo[2]);						// コンテンツ住所補記・建物名
		custMap.put(ECK0021C010CBSMsg.CONT_ADRRM, null);										// コンテンツ住所補記・部屋番号
		// OM-2014-0002427 MOD END
		custMap.put(ECK0021C010CBSMsg.CONT_AD_BNKT_STA_PST, adInfo[3]);							// コンテンツ住所分割開始位置
		custMap.put(ECK0021C010CBSMsg.MMB_SBT_TOKUT_FLG, MMB_SBT_TOKUT_FLG_TOKUTZUMI);			// 会員種別特定フラグ

		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIF_TRAT_DOI_UM, kepgKjnifTratDoiUm);				// 関電G個人情報取扱同意有無
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIF_TRAT_DOI_YMD, kepgKjnifTratDoiYmd);			// 関電G個人情報取扱同意年月日
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_FFG, kepgKjniftFfg);							// 関電G個人情報提供不可フラグ
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_FFG_CHG_YMD, kepgKjniftFfgChgYmd);			// 関電G個人情報提供不可フラグ変更年月日
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_FFG_CHG_UWY_CD, kepgKjniftFfgChgUwyCd);		// 関電G個人情報提供不可フラグ変更受付方法コード
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_JOKYO_CD, kepgKjniftJokyoCd);					// 関電G個人情報提供状況コード
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_STAYMD, kepgKjniftStaYmd);					// 関電G個人情報提供開始年月日
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_RSCD, kepgKjniftRscd);						// 関電G個人情報提供連携状態コード
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_RSCD_CHG_YMD, kepgKjniftRscdChgYmd);			// 関電G個人情報提供連携状態コード変更年月日

		return custMap;
	}

	/**
	 * お客様＜法人＞内容変更用マップを生成します
	 * @param inMap 入力パラメータマップ
	 * @param nowCustMap お客様情報マップ
	 * @param updDtmSysid 更新年月日時分秒（お客様）
	 * @param kepgKjnifTratDoiUm 関電G個人情報取扱同意有無
	 * @param kepgKjnifTratDoiYmd 関電G個人情報取扱同意年月日
	 * @param kepgKjniftFfg 関電G個人情報提供不可フラグ
	 * @param kepgKjniftFfgChgYmd 関電G個人情報提供不可フラグ変更年月日
	 * @param kepgKjniftFfgChgUwyCd 関電G個人情報提供不可フラグ変更受付方法コード
	 * @param kepgKjniftJokyoCd 関電G個人情報提供状況コード
	 * @param kepgKjniftStaYmd 関電G個人情報提供開始年月日
	 * @param kepgKjniftRscd 関電G個人情報提供連携状態コード
	 * @param kepgKjniftRscdChgYmd 関電G個人情報提供連携状態コード変更年月日
	 * @return お客様＜法人＞内容変更用マップ
	 */
	@SuppressWarnings("unchecked")
	private Map getUpdCustMapForHojin(Map inMap, Map<String, Object> nowCustMap, String updDtmSysid, String kepgKjnifTratDoiUm,
																										String kepgKjnifTratDoiYmd,
																										String kepgKjniftFfg,
																										String kepgKjniftFfgChgYmd,
																										String kepgKjniftFfgChgUwyCd,
																										String kepgKjniftJokyoCd,
																										String kepgKjniftStaYmd,
																										String kepgKjniftRscd,
																										String kepgKjniftRscdChgYmd)
	{
		Map custMap = (Map)((HashMap)nowCustMap).clone();

		String sysid = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SYSID);
		String sei = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SEI);
		String nm = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.NM);
		String kanaSei = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_SEI);
		String kanaNm = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_NM);
		String sex = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SEX);
		String pcd = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PCD);
		String adStateCity = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_STATE_CITY);
		String adOther = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_OTHER);
		String adMansion = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_MANSION);
		String birthd = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.BIRTHD);

		// 入力値の設定
		custMap.put(ECK0031C010CBSMsg.SYSID, sysid);											// SYSID
		custMap.put(ECK0031C010CBSMsg.UPD_DTM_BF, updDtmSysid);									// 更新年月日時分秒(更新前)
		custMap.put(ECK0031C010CBSMsg.RSV_APLY_YMD, JCCBPCommon.getOpeDate(null));				// 予約適用年月日
		custMap.put(ECK0031C010CBSMsg.CONT_CUST_NM, sei + PMP_NAME_DELIMITER + nm);				// コンテンツお客様名
		custMap.put(ECK0031C010CBSMsg.CONT_CUST_KANA, kanaSei + PMP_NAME_DELIMITER + kanaNm);	// コンテンツお客様カナ名
		custMap.put(ECK0031C010CBSMsg.CONT_CUST_SEX_CD, sex);									// コンテンツお客様性別コード
		custMap.put(ECK0031C010CBSMsg.CONT_CUST_BIRTHD, birthd);								// コンテンツお客様生年月日
		custMap.put(ECK0031C010CBSMsg.CONT_AD_CD, CONT_AD_CD_DEFAULT);							// コンテンツ住所コード
		custMap.put(ECK0031C010CBSMsg.CONT_PCD, pcd);											// コンテンツ郵便番号
		custMap.put(ECK0021C010CBSMsg.CONT_STATE_NM, null);										// コンテンツ都道府県名
		custMap.put(ECK0021C010CBSMsg.CONT_CITY_NM, null);										// コンテンツ市区町村名
		custMap.put(ECK0021C010CBSMsg.CONT_OAZTSU_NM, null);									// コンテンツ大字通称名
		custMap.put(ECK0021C010CBSMsg.CONT_AZCHO_NM, null);										// コンテンツ字丁目名
		custMap.put(ECK0031C010CBSMsg.CONT_BNCHIGO, adStateCity + adOther);						// コンテンツ番地号
		custMap.put(ECK0031C010CBSMsg.CONT_ADRTTM, adMansion);									// コンテンツ住所補記・建物名
		custMap.put(ECK0021C010CBSMsg.CONT_ADRRM, null);										// コンテンツ住所補記・部屋番号
		custMap.put(ECK0031C010CBSMsg.CONT_AD_BNKT_STA_PST,
											String.valueOf(adStateCity.length() + 1));			// コンテンツ住所分割開始位置
		custMap.put(ECK0031C010CBSMsg.MMB_SBT_TOKUT_FLG, MMB_SBT_TOKUT_FLG_TOKUTZUMI);			// 会員種別特定フラグ

		custMap.put(ECK0031C010CBSMsg.KEPG_KJNIF_TRAT_DOI_UM, kepgKjnifTratDoiUm);				// 関電G個人情報取扱同意有無
		custMap.put(ECK0031C010CBSMsg.KEPG_KJNIF_TRAT_DOI_YMD, kepgKjnifTratDoiYmd);			// 関電G個人情報取扱同意年月日
		custMap.put(ECK0031C010CBSMsg.KEPG_KJNIFT_FFG, kepgKjniftFfg);							// 関電G個人情報提供不可フラグ
		custMap.put(ECK0031C010CBSMsg.KEPG_KJNIFT_FFG_CHG_YMD, kepgKjniftFfgChgYmd);			// 関電G個人情報提供不可フラグ変更年月日
		custMap.put(ECK0031C010CBSMsg.KEPG_KJNIFT_FFG_CHG_UWY_CD, kepgKjniftFfgChgUwyCd);		// 関電G個人情報提供不可フラグ変更受付方法コード
		custMap.put(ECK0031C010CBSMsg.KEPG_KJNIFT_JOKYO_CD, kepgKjniftJokyoCd);					// 関電G個人情報提供状況コード
		custMap.put(ECK0031C010CBSMsg.KEPG_KJNIFT_STAYMD, kepgKjniftStaYmd);					// 関電G個人情報提供開始年月日
		custMap.put(ECK0031C010CBSMsg.KEPG_KJNIFT_RSCD, kepgKjniftRscd);						// 関電G個人情報提供連携状態コード
		custMap.put(ECK0031C010CBSMsg.KEPG_KJNIFT_RSCD_CHG_YMD, kepgKjniftRscdChgYmd);			// 関電G個人情報提供連携状態コード変更年月日

		return custMap;
	}

	/**
	 * BPチェック用パラメータ作成。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return BPチェック用パラメータ
	 */
	@SuppressWarnings("unchecked")
	public HashMap getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
	{
		// BPチェックはスキップする
		return JCKPmpScParamHenshu.createBpNotCheckParam();
	}

	/**
	 * ＢＰチェック結果を編集する。<br />
	 * @param param リクエストパラメータ
	 * @param caanMsgs サービスインターフェイス用のパラメータ配列
	 * @param returnCode リターンコード
	 * @return リクエストパラメータ
	 * @throws Throwable 
	 */
	public IRequestParameterReadWrite editErrorInfo(IRequestParameterReadWrite param, CAANMsg[] caanMsgs, Integer returnCode) throws Throwable
	{
		return JCKPmpScParamHenshu.editErrorInfo(param, caanMsgs, returnCode);
	}

	/**
	 * 処理区分（仮登録）を返却します。
	 * @return String
	 */
	protected String getTrnDiv()
	{
		return "01";
	}

	/**
	 * CC名を返却します。
	 * @return String
	 */
	protected String getCcName()
	{
		return "お客様情報仮登録CC";
	}

	/**
	 * NULLを空文字に変換する。
	 * @param value
	 * @return 変換後の文字列
	 */
	private String nullToEmpty(String value)
	{
		return (value == null) ? "" : value;
	}
// OM-2015-0000844 ADD END

	/**
	 * AxM会員情報更新依頼CC呼び出し処理<br>
	 * 
	 * 
	 * @param handle
	 * @param scCall
	 * @param param
	 * @param dataMapKey
	 * @param ccMsg
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private void execjcksv900101Call(SessionHandle handle, 
										ServiceComponentRequestInvoker scCall, 
										IRequestParameterReadWrite param,
										String dataMapKey,
										HashMap<String, Object> ccMsg) throws Throwable
	{
		String fixedText = "CKSV900101CC";
		param.setData(fixedText, new HashMap<String, Object>());
		
		
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		
		// UPD_TRGT_SYSID
		inMap.put(CKSV9001_CKSV9001OP_CKSV900101CC.UPD_TRGT_SYSID, ccMsg.get("sysid"));
		
		// AxM会員情報更新依頼CCを実行
// OM-2015-0000844 MOD START
//		JCKSV900101CC jcksv900101CC = new JCKSV900101CC();
//		jcksv900101CC.executeMain(handle, param, fixedText);

		// エラーフラグ(実行判定用)
		String errFlgCc = "0";

		// 入力パラメータの取得
		String trnCd   = (String)inMap.get(CKSV9001_CKSV9001OP_CKSV900101CC.TRN_CD);
		String tableId = (String)inMap.get(CKSV9001_CKSV9001OP_CKSV900101CC.TRGT_TABLE_ID);
		String sysid   = (String)inMap.get(CKSV9001_CKSV9001OP_CKSV900101CC.UPD_TRGT_SYSID);

		/**
		 * 最大指示書更新件数の取得
		 */
		Integer maxCnt = null;
		Map<?, ?> result = callEZM0321A010_Sepa(handle, param, "CK_MAX_UPD_CNT");
		String maxCntStr = null;
		if (JCKPmpScParamHenshu.isSuccess(result))
		{
			String keyPre = EZM0321A010CBSMsg.EZM0321A010CBSMSG1LIST + "[0].";
			maxCntStr = JCKPmpScParamHenshu.getResultString(result, keyPre + EZM0321A010CBSMsg1List.WORK_PARAM_SETTE_VALUE);
			if ((maxCntStr != null)&&(!"".equals(maxCntStr)))
			{
				try
				{
					maxCnt = Integer.parseInt(maxCntStr);
				}
				catch (Exception e)
				{
					errFlgCc = "1";
					printErrorLog("業務パラメータから取得した最大指示書更新件数が数値ではありません。(取得値：" + maxCntStr + ")");
				}
			}
			else
			{
				errFlgCc = "1";
				printErrorLog("業務パラメータから最大指示書更新件数が取得できません。(パラメータID:CK_MAX_UPD_CNT)");
			}
		}

		/**
		 * 最大エラー回数の取得
		 */
		String maxErrCnt = null;
		int maxErrCntInt = 0;
		if ("0".equals(errFlgCc))
		{
			result = callEZM0321A010_Sepa(handle, param, "CK_SJISHO_MAXERR_CNT");
			if (JCKPmpScParamHenshu.isSuccess(result))
			{
				String keyPre = EZM0321A010CBSMsg.EZM0321A010CBSMSG1LIST + "[0].";
				maxErrCnt = JCKPmpScParamHenshu.getResultString(result, keyPre + EZM0321A010CBSMsg1List.WORK_PARAM_SETTE_VALUE);
				if ((maxErrCnt != null)&&(!"".equals(maxErrCnt)))
				{
					try
					{
						// 数値チェック用
						maxErrCntInt = Integer.parseInt(maxErrCnt);
					}
					catch (Exception e)
					{
						errFlgCc = "1";
						printErrorLog("業務パラメータから取得した指示書最大エラー回数が数値ではありません。(取得値：" + maxErrCnt + ")");
					}
				}
				else
				{
					errFlgCc = "1";
					printErrorLog("業務パラメータから指示書最大エラー回数が取得できません。(パラメータID:CK_MAX_ERR_CNT)");
				}
			}
		}

		/**
		 * 指示書データの読込
		 */
		if ("0".equals(errFlgCc))
		{
			result = callECK0151B020(handle, param, trnCd, tableId, sysid, null, maxErrCnt);
			if (!JCKPmpScParamHenshu.isSuccess(result))
			{
				errFlgCc = "1";
				printErrorLog("指示書データの読込に失敗しました。");

			}
		}

		List<String> errSysidList = new ArrayList<String>();

		/**
		 * 会員情報更新依頼
		 */
		if ("0".equals(errFlgCc))
		{
			String preSysId = "";
			int updCnt = 0;
			
			CAANMsg[] templateArray = JCKPmpScParamHenshu.getResultMsgList(result, ECK0151B020CBSMsg.ECK0151B020CBSMSG1LIST);
			for (int i = 0; i < templateArray.length; i++)
			{
				
				// 指示書情報取得
				CAANMsg shijishoRec = templateArray[i];
				String nowSysId        = shijishoRec.getString(ECK0151B020CBSMsg1List.TRAN_TRGT_SYSID);
				String sjishoNo        = shijishoRec.getString(ECK0151B020CBSMsg1List.SJISHO_NO);
				String sjishoNaiyioSeq = shijishoRec.getString(ECK0151B020CBSMsg1List.SJISHO_NAIYO_SEQ);
				String trgtTableId = shijishoRec.getString(ECK0151B020CBSMsg1List.TRGT_TABLE_ID);
				String updDtmBf = shijishoRec.getString(ECK0151B020CBSMsg1List.UPD_DTM);
				String recTrnCd = shijishoRec.getString(ECK0151B020CBSMsg1List.TRN_CD);
				String parameter2 = shijishoRec.getString(ECK0151B020CBSMsg1List.PARAMETER_2);

				// Maxエラー回数を超えたSYSIDの場合はスキップ
				if (errSysidList.contains(nowSysId)){
					continue;
				}

				// 最大指示書更新件数(SYSID毎の最大更新件数)を超えた場合はスキップ
				if (preSysId.equals(nowSysId))
				{
					updCnt += 1;
					if (maxCnt < updCnt)
					{
						continue;
					}
				}
				else
				{
					preSysId = nowSysId;
					updCnt = 1;
				}

				// 認証ID連携の時はサービス契約コード通番を取得
				if("N01".equals(recTrnCd)
					&& ("TNM00050".equals(trgtTableId) || "TNM00050_D".equals(trgtTableId))
					&& "05".equals(parameter2))
				{
					String svcKeiNo = shijishoRec.getString(ECK0151B020CBSMsg1List.PARAMETER_1);
					String ninshoId = shijishoRec.getString(ECK0151B020CBSMsg1List.PARAMETER_4);

					// サービス契約番号に紐付くISP認証ID、ADSL認証IDを全て取得する。
					result = callEKK0081B523BySvcKeiNo(handle, param, "3", svcKeiNo);
					if (isSuccess(result))
					{
						CAANMsg[] dataList = getResultMsgList(result, EKK0081B523CBSMsg.EKK0081B523CBSMSG1LIST);

						if (dataList != null && dataList.length > 0)
						{
							int seq = 0;
							String bfSvcKeiUcwkNo = "";

							// 指示書に登録された認証IDと同じものがあれば、通番をセットする。
							for (int j = 0; j < dataList.length; j++)
							{
								CAANMsg rec = dataList[j];

								// サービス契約内訳番号が変われば、通番をカウントアップ
								if (!bfSvcKeiUcwkNo.equals(rec.getString(EKK0081B523CBSMsg1List.SVC_KEI_UCWK_NO)))
								{
									seq++;
								}

								String recNinshoId = rec.getString(EKK0081B523CBSMsg1List.NINSHO_ID);
								if (!JCKBPCommon.isNullOrBlank(recNinshoId) && recNinshoId.equals(ninshoId))
								{
									// 通番をセット
									shijishoRec.set(ECK0151B020CBSMsg1List.PARAMETER_3, String.valueOf(seq));
									break;
								}

								bfSvcKeiUcwkNo = rec.getString(EKK0081B523CBSMsg1List.SVC_KEI_UCWK_NO);
							}
						}
					}
				}

				/**
				 * AxM会員情報更新依頼
				 */
				trgtTableId = (trgtTableId != null) ? trgtTableId.trim() : trgtTableId;
				shijishoRec.set(ECK0151B020CBSMsg1List.TRGT_TABLE_ID, trgtTableId);
				result = callECKA9010001Msg(handle, param, shijishoRec);
				String resErrFlg = JCKPmpScParamHenshu.getResultString(result, ECKA9010001CBSMsg.RES_ERR_FLG);
				if ((JCKPmpScParamHenshu.isSuccess(result))&&("0".equals(resErrFlg)))
				{
					/**
					 * 指示書削除(連携成功時)
					 */
					result = callECK0151E010(handle, param, sjishoNo, sjishoNaiyioSeq, updDtmBf);
				}
				else
				{
					/**
					 * 指示書エラー回数更新(連携失敗時)
					 */
					result = callECK0151C010(handle, param, sjishoNo, sjishoNaiyioSeq);
					errFlgCc = "1";
					if (JCKPmpScParamHenshu.isSuccess(result))
					{
						// エラーが発生したSYSIDとしてリストに追加
						errSysidList.add(nowSysId);
						// 変更後エラー回数を取得
						String chafErrCnt = JCKPmpScParamHenshu.getResultString(result, ECK0151C010CBSMsg.CHAF_ERR_CNT);
						chafErrCnt = JCKBPCommon.isNullOrBlank(chafErrCnt) ? "0" : chafErrCnt;
						// エラー回数がMaxエラー回数を超えていた場合
						if(maxErrCntInt <= Integer.parseInt(chafErrCnt))
						{
							// シスログ出力
							printSyslog4AxmErr(nowSysId);
						}
					}
				}
			}
		}
		else
		{
			errFlgCc = "1";
		}

		/**
		 * 下りマッピング
		 */
		// 下りコントロールマップのセット(指示書のエラー回数更新結果をコミットする必要がある為、常に正常終了を返却する)
		JCKPmpScParamHenshu.setResultCtrlData(param, result, fixedText);

		// 下りユーザデータマップのセット(当CCではエラー有無はユーザ情報のエラーフラグで通知する)
		Map<String, Object> resultMap = new HashMap();
		resultMap.put("err_flg", errFlgCc);
		JCKPmpScParamHenshu.setResultUserData(param, fixedText, resultMap);

// OM-2015-0000844 MOD END
		
		// エラー時リターンコードを設定
		if ("1".equals(inMap.get("err_flg")))
		{
			// エラー時リターンコードを設定
			ccMsg.put("return_code", JCKStrConst.PMP_ERR_AXM);
		}
	}

// OM-2015-0000844 ADD START
	/**
	 * 業務パラメータ管理一意照会SC呼出(指示書連携用)。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param paramId 業務パラメータID
	 * @return 実行結果
	 * @throws Throwable
	 */
	private Map<?, ?> callEZM0321A010_Sepa(SessionHandle handle, IRequestParameterReadWrite param, String paramId) throws Throwable
	{
		//***************************************************
		//* ＳＣへの上りマッピング
		//***************************************************
		Map<Object, Object> param4serviceIf = new HashMap<Object, Object>();
		param4serviceIf.put(EZM0321A010CBSMsg.KEY_WORK_PARAM_ID, paramId);
		HashMap<String, Object> paramMap = JCKBPCommon.createScParamForSearch(param, EZM0321A010CBSMsg.class , param4serviceIf, "1");

		//***************************************************
		//* ＳＣ呼出実行
		//***************************************************
		printDebugLog("業務パラメータ管理一意照会SC呼び出し開始（ 業務パラメータID：" + paramId + " ）");
		Map<?, ?> result = JCKPmpCommonUtil.scCallRun(param, handle, paramMap);
		printDebugLog("業務パラメータ管理一意照会SC呼び出し完了" + result);

		return result;
	}

	/**
	 * 指示書データ読込用SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param trnCd 処理コード
	 * @param trgtTableId 対象テーブルID
	 * @param updTrgtSysid 更新対象SYSID
	 * @param rsltFlg 結果フラグ
	 * @param maxErrCnt 最大指示書件数
	 * @return ＳＣ実行結果
	 * @throws Throwable
	 */
	private Map<?, ?> callECK0151B020(SessionHandle handle, IRequestParameterReadWrite param, String trnCd, String trgtTableId, String updTrgtSysid,
			String rsltFlg, String maxErrCnt) throws Throwable
	{
		//***************************************************
		//* ＳＣへの上りマッピング
		//***************************************************
		Map<Object, Object> param4serviceIf = new HashMap<Object, Object>();
		param4serviceIf.put(ECK0151B020CBSMsg.KEY_TRN_CD, trnCd);
		param4serviceIf.put(ECK0151B020CBSMsg.KEY_TRGT_TABLE_ID, trgtTableId);
		param4serviceIf.put(ECK0151B020CBSMsg.KEY_TRAN_TRGT_SYSID, updTrgtSysid);
		param4serviceIf.put(ECK0151B020CBSMsg.KEY_ERR_CNT, maxErrCnt);
		param4serviceIf.put(ECK0151B020CBSMsg.KEY_RSLT_FLG, rsltFlg);
		HashMap<String, Object> paramMap = JCKBPCommon.createScParamForSearch(param, ECK0151B020CBSMsg.class , param4serviceIf, "1");

		//***************************************************
		//* ＳＣ呼出実行
		//***************************************************
		printDebugLog("指示書読込SC呼び出し開始");
		Map<?, ?> result = JCKPmpCommonUtil.scCallRun(param, handle, paramMap);
		printDebugLog("指示書読込SC呼び出し完了" + result);

		return result;
	}

	/**
	 * AxM連携API呼出SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param shijishoRec 指示書レコード
	 * @return ＳＣ実行結果
	 * @throws Throwable
	 */
	private Map<?, ?> callECKA9010001Msg(SessionHandle handle, IRequestParameterReadWrite param, CAANMsg shijishoRec) throws Throwable
	{
		//***************************************************
		//* ＳＣへの上りマッピング
		//***************************************************
		Map<String, Object> userData = JCKPmpScParamHenshu.copyMsgToMap(shijishoRec, ECK0151B020CBSMsg1List.class, ECKA9010001CBSMsg.class);
		HashMap<String, Object> paramMap = JCKBPCommon.createScParam(param, ECKA9010001CBSMsg.class , userData, "1");

		//***************************************************
		//* ＳＣ呼出実行
		//***************************************************
		printDebugLog("AxM連携API呼出SC呼び出し開始");
		Map<?, ?> result = JCKPmpCommonUtil.scCallRun(param, handle, paramMap);
		printDebugLog("AxM連携API呼出SC呼び出し完了" + result);

		return result;
	}

	/**
	 * 指示書削除SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sjishoNo 指示書番号
	 * @param sjishoNaiyioSeq 指示書内容枝番
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @return ＳＣ実行結果
	 * @throws Throwable
	 */
	private Map<?, ?> callECK0151E010(SessionHandle handle, IRequestParameterReadWrite param, String sjishoNo, String sjishoNaiyioSeq, String updDtmBf)
			throws Throwable
	{
		//***************************************************
		//* ＳＣへの上りマッピング
		//***************************************************
		Map<Object, Object> userData = new HashMap<Object, Object>();
		userData.put(ECK0151E010CBSMsg.SJISHO_NO, sjishoNo);
		userData.put(ECK0151E010CBSMsg.SJISHO_NAIYO_SEQ, sjishoNaiyioSeq);
		userData.put(ECK0151E010CBSMsg.UPD_DTM_BF, updDtmBf);
		HashMap<String, Object> paramMap = JCKBPCommon.createScParam(param, ECK0151E010CBSMsg.class , userData, "1");

		//***************************************************
		//* ＳＣ呼出実行
		//***************************************************
		printDebugLog("指示書削除SC呼び出し開始");
		Map<?, ?> result = JCKPmpCommonUtil.scCallRun(param, handle, paramMap);
		printDebugLog("指示書削除SC呼び出し完了" + result);

		return result;
	}

	/**
	 * 指示書エラー回数更新SC呼出。<br />
	 * @param sjishoNo 指示書番号
	 * @param sjishoNaiyioSeq 指示書内容枝番
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @return 実行結果
	 * @throws Throwable
	 */
	private Map<?, ?> callECK0151C010(SessionHandle handle, IRequestParameterReadWrite param, String sjishoNo, String sjishoNaiyioSeq)
			throws Throwable
	{

		//***************************************************
		//* ＳＣへの上りマッピング
		//***************************************************
		Map<Object, Object> userData = new HashMap<Object, Object>();
		userData.put(ECK0151C010CBSMsg.SJISHO_NO, sjishoNo);
		userData.put(ECK0151C010CBSMsg.SJISHO_NAIYO_SEQ, sjishoNaiyioSeq);
		userData.put(ECK0151C010CBSMsg.ERR_CNT, null);
		userData.put(ECK0151C010CBSMsg.RSLT_FLG, null);
		HashMap<String, Object> paramMap = JCKBPCommon.createScParam(param, ECK0151C010CBSMsg.class , userData, "1");

		//***************************************************
		//* ＳＣ呼出実行
		//***************************************************
		printDebugLog("指示書エラー回数更新SC呼び出し開始");
		Map<?, ?> result = JCKPmpCommonUtil.scCallRun(param, handle, paramMap);
		printDebugLog("指示書エラー回数更新SC呼び出し完了" + result);

		return result;
	}

	/**
	 * AxM連携に規定回数以上失敗したSYSIDをシスログに出力する。
	 * @param sysid SYSID
	 */
	private void printSyslog4AxmErr(String sysid)
	{
		String proId = "CKSV9001";
		String msgId = "LZC0200-E"; // 現行の指示書除外リスト追加時のメッセージID
		String msg   = "認証サーバーへの連携が規定回数以上失敗したため、連携除外となりました。（SYSID : " + sysid + "）";

		String sysdate = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date(System.currentTimeMillis()));
		HashMap<String, Object> propMap = new HashMap<String, Object>();

		propMap.put(JCCSuperComExecUtil.EXEC_BUFF_SIZE, JCMAPLConstMgr.getString(JCCSuperComExecUtil.EXEC_BUFF_SIZE));
		propMap.put(JCCSuperComExecUtil.EXEC_PERMIT_MEMORY, JCMAPLConstMgr.getString(JCCSuperComExecUtil.EXEC_PERMIT_MEMORY));
		propMap.put(JCCSyslogFormat.SYSLOG_FOMAT_PTN_KEY, JCMAPLConstMgr.getString(JCCSyslogFormat.SYSLOG_FOMAT_PTN_KEY));
		propMap.put(JCCSyslogFormat.SYSLOG_MAILING_ID_KEY, JCMAPLConstMgr.getString(JCCSyslogFormat.SYSLOG_MAILING_ID_KEY));
		propMap.put(JCCSyslogFormat.SYSLOG_OUT_DIR_OPTION, JCMAPLConstMgr.getString(JCCSyslogFormat.SYSLOG_OUT_DIR_OPTION));
		JCCSyslogFormat.logger(proId, msgId, sysdate, msg, null, propMap);
	}
// OM-2015-0000844 ADD END
}
