/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JCKPmpCommonUtil
*   ソースファイル名：JCKPmpCommonUtil.java
*   作成者          ：富士通
*   日付            ：2011年12月06日
*＜機能概要＞
*   標準コンテンツ解約用サービスで使用する共通処理を提供します。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2012/03/21   FJ          新規作成
*   v5.00.00    2013/02/21   FJ）小林    【IT1-2013-0000316】水平展開、CCMGAPIエラーハンドリング対応
*   v15.00.00   2015/08/26   FJ）宇野    【ANK-2634-00-00】２重発番チェック仕様強化
*   v15.00.01   2015/09/01   FJ）宇野    【IT1-2015-0000091】運用監視通知内容変更定義情報を設定する
*   v20.00.03   2015/11/20   FJ) 李擇臣  【ST-2015-0000061】CCログに出力されていない。
*   v65.00.00	2023/12/20   FJ)北村     【ANK-4346-00-00】【eo定期】CCMG再構築対応
*   v65.00.01	2024/01/30	 FJ)張	     【ANK-4346-00-00】【eo定期】CCMG再構築対応
**********************************************************************/

package com.fujitsu.futurity.bp.custom.common;

import static eo.common.constant.JCNStrConst.*;
import static com.fujitsu.futurity.bp.custom.common.JCNDslScParamHenshu.getResultMsgList;
import static com.fujitsu.futurity.bp.custom.common.JCNDslScParamHenshu.getResultString;
import static com.fujitsu.futurity.bp.custom.common.JCNDslScParamHenshu.isError;
import static com.fujitsu.futurity.bp.custom.common.JCNDslScParamHenshu.isSuccess;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.bp.x21.bpm.ServiceComponentRequestInvoker;
import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.sc.exception.SCException;
import com.fujitsu.futurity.bp.x21.values.MessageID;
import com.fujitsu.futurity.common.JCCSuperComExecUtil;
import com.fujitsu.futurity.common.JCCSyslogFormat;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.common.JSYLogBase;
import com.fujitsu.futurity.common.JSYbpmLog;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;

import eo.ejb.cbs.cbsmsg.ECC0021D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECC0021D010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECC0021D010CBSMsg2List;
import eo.ejb.cbs.cbsmsg.ECC0021D010CBSMsg5List;
import eo.ejb.cbs.cbsmsg.ECC0121A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECC0121A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECH0231B010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECH0231B020CBSMsg;
import eo.ejb.cbs.cbsmsg.ECH0231B020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011B050CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011B060CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011B070CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011B070CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011B120CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011C011CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011C020CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011C030CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011C060CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011C080CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011C090CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011C100CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011C120CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011C180CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011C190CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0021C010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0021C020CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0021D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0021D020CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0031C010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0111B020CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0111B020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0111B040CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0121B020CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0121B020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0121B030CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0121B030CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0121C020CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0121D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0131B020CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0131B020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0141A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0141A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0141B020CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0141B020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0141C020CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0141C030CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0141C040CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0141D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0151D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0201B030CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0201B030CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0201C010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0201C020CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0201C030CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0201D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0201E010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECN0021B004CBSMsg;
import eo.ejb.cbs.cbsmsg.ECN0071B002CBSMsg;
import eo.ejb.cbs.cbsmsg.ECN0081B002CBSMsg;
import eo.ejb.cbs.cbsmsg.ECN0131B004CBSMsg;
import eo.ejb.cbs.cbsmsg.ECN0131B005CBSMsg;
import eo.ejb.cbs.cbsmsg.ECN0131B006CBSMsg;
import eo.ejb.cbs.cbsmsg.ECN0131B006CBSMsgList;
import eo.ejb.cbs.cbsmsg.ECN0131C011CBSMsg;
import eo.ejb.cbs.cbsmsg.ECN0131D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECN0131E010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECN0131E011CBSMsg;
import eo.ejb.cbs.cbsmsg.ECNA0010002CBSMsg;
import eo.ejb.cbs.cbsmsg.ECNA0210001CBSMsg;
import eo.ejb.cbs.cbsmsg.ECNA0210001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081B060CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B060CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081B523CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081C180CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081C260CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0151C010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0151C020CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0151C030CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0151D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0361B020CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0361B020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1121C011CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1121D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKU0011C020CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0111B020CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0111B020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0111B030CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0111B030CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0111C010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0111C030CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0111D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0161B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0161B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0321A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0321A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECNA0010003CBSMsg;

/**
 * PMP連携用サービスで使用する共通処理を提供します。
 * <BR>
 * @ author 富士通
 */
public class JCNDslCommonUtil
{
	/** SCの最終実行結果取得用のマップキー(当部品内でのみ使用) */
	public static final String LAST_RESULT_KEY = "LCS_LAST_RESULT";

	/**
	 * SCを実行します。
	 * <br />
	 * SCの実行結果はリクエストパラメータのユーザデータにも設定される。(マップキー：#LCS_LAST_RESULT# )
	 * @param param リクエストパラメータ
	 * @param handle セッションハンドル
	 * @param paramMap パラメータマップ
	 * @return 実行結果
	 * @throws SCException
	 * @throws RequestParameterException
	 */
	public static Map<?, ?> scCallRun(IRequestParameterReadWrite param, SessionHandle handle, HashMap<String, Object> paramMap) throws SCException,
			RequestParameterException
	{
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, handle);
		param.setData(LAST_RESULT_KEY, result);
		return result;
	}

	/**
	 * リクエストパラメータからSCの最終実行結果を取得します。
	 * @param param リクエストパラメータ
	 * @return 最終実行結果
	 * @throws SCException
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public static Map<?, ?> getLastResult(IRequestParameterReadWrite param) throws SCException,
			RequestParameterException
	{
		return (Map)param.getData(LAST_RESULT_KEY);
	}

	/**
	 * コンテンツサービス全解約排他制御SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param lockTables ロック対象テーブル
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException 
	 * @throws SCException 
	 */
	public static Map<?, ?> callECNA0010003(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String funcCd)
			throws RequestParameterException, SCException
	{
		//***************************************************
		// コンテンツサービス全解約排他制御SCへの上りマッピング
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECNA0010003CBSMsg.SYSID, sysid);
		inMap.put(ECNA0010003CBSMsg.FUNC_CODE, funcCd);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECNA0010003CBSMsg.class , inMap, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("コンテンツサービス全解約排他制御SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("コンテンツサービス全解約排他制御SC呼び出し完了" + result);

		return result;
	}

	/**
	 * 最終更新日時取得（PMP連携用）SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException 
	 * @throws SCException 
	 */
	public static Map<?, ?> callECK0011B120(SessionHandle handle, IRequestParameterReadWrite param, String sysid)
	throws RequestParameterException, SCException
	{
		//***************************************************
		// 最終更新日時取得（PMP連携用）SCへの上りマッピング
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECK0011B120CBSMsg.KEY_SYSID, sysid);
		inMap.put(ECK0011B120CBSMsg.FUNC_CODE, "1");
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECK0011B120CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("最終更新日時取得（PMP連携用）SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("最終更新日時取得（PMP連携用）SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * 最終更新日時取得（ECN0021B004）SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException 
	 * @throws SCException 
	 */
	public static Map<?, ?> callECN0021B004(SessionHandle handle, IRequestParameterReadWrite param, String sysid)
	throws RequestParameterException, SCException
	{
		//***************************************************
		// 最終更新日時取得（PMP連携用）SCへの上りマッピング
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECN0021B004CBSMsg.KEY_SYSID, sysid);
		inMap.put(ECN0021B004CBSMsg.KEY_CONT_KEI_END, "0");
		inMap.put(ECN0021B004CBSMsg.KEY_CONT_KEI_IN, "1");
		inMap.put(ECN0021B004CBSMsg.KEY_CONT_KEI_OUT, "0");
		inMap.put(ECN0021B004CBSMsg.DISPLAY_NUM, "1");
		inMap.put(ECN0021B004CBSMsg.MAX_SEARCH_NUM, "1000");
		inMap.put(ECN0021B004CBSMsg.DISPLAY_PAGE_NUM, "1");
		inMap.put(ECN0021B004CBSMsg.FUNC_CODE, "1");
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECN0021B004CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("最終更新日時取得（ECN0021B004）SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("最終更新日時取得（ECN0021B004）SC呼び出し完了" + result);

		return result;
	}

	/**
	 * お客様情報照会(PMP連携用)SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param sysid SYSID
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException 
	 * @throws SCException 
	 */
	public static Map<?, ?> callECK0011B050(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String sysid)
			throws RequestParameterException, SCException
	{
		//***************************************************
		// お客様情報照会(PMP連携用)SCへの上りマッピング
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECK0011B050CBSMsg.KEY_SYSID, sysid);
		inMap.put(ECK0011B050CBSMsg.FUNC_CODE, funcCd);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECK0011B050CBSMsg.class , inMap, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("お客様情報照会(PMP連携用)SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("お客様情報照会(PMP連携用)SC呼び出し完了" + result);

		return result;
	}

	/**
	 * グループ一覧照会(PMP連携用)SC呼出<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param sysid SYSID
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException 
	 */
	public static Map<?, ?> callECK0111B040(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String sysid)
			throws RequestParameterException, SCException
	{
		//***************************************************
		// SCへの上りマッピング
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECK0111B040CBSMsg.KEY_SYSID, sysid);
		inMap.put(ECK0111B040CBSMsg.FUNC_CODE, funcCd);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECK0111B040CBSMsg.class , inMap, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("グループ一覧照会(PMP連携用)SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("グループ一覧照会(PMP連携用)SC呼び出し完了" + result);

		return result;
	}

	/**
	 *  連絡先論理削除SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param rrksNo 連絡先番号
	 * @param geneAddDtm 世代登録年月日時分秒
	 * @param updDtm 更新年月日時分秒(更新前)
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0201E010(SessionHandle handle, IRequestParameterReadWrite param, String rrksNo, String geneAddDtm, String updDtm)
			throws RequestParameterException, SCException
	{
		//***************************************************
		// 連絡先論理削除SCへの上りマッピング
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECK0201E010CBSMsg.RRKS_NO, rrksNo);
		inMap.put(ECK0201E010CBSMsg.GENE_ADD_DTM, geneAddDtm);
		inMap.put(ECK0201E010CBSMsg.UPD_DTM_BF, updDtm);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param, ECK0201E010CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("連絡先論理削除SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("連絡先論理削除SC呼び出し完了" + result);

		return result;
	}

	/**
	 * 連絡先論理削除(全世代)<br />
	 * 連絡先番号をキーに全世代レコードを論理削除する。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param rrksNo 連絡先番号
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> delRrks(SessionHandle handle, IRequestParameterReadWrite param, String rrksNo) throws RequestParameterException,
			SCException
	{
		//***************************************************
		// 連絡先一覧照会(PMP連携用)(全世代)
		//***************************************************
		Map<?, ?> result = callECK0201B030(handle, param, "6" , null, rrksNo);

		//***************************************************
		// 連絡先の全世代を論理削除
		//***************************************************
		if (isSuccess(result))
		{
			CAANMsg[] rrksList = getResultMsgList(result, ECK0201B030CBSMsg.ECK0201B030CBSMSG1LIST);
			if (rrksList != null)
			{
				String WkUupdDtmBf  = getResultString(result, ECK0201B030CBSMsg.ECK0201B030CBSMSG1LIST + "[0]." + ECK0201B030CBSMsg1List.LAST_UPD_DTM);
				for (CAANMsg rrksRec : rrksList)
				{
					String recRrksNo     = rrksRec.getString(ECK0201B030CBSMsg1List.RRKS_NO);
					String recGeneAddDtm = rrksRec.getString(ECK0201B030CBSMsg1List.GENE_ADD_DTM);
					String updDtmBf      = WkUupdDtmBf;
					result = callECK0201E010(handle, param, recRrksNo, recGeneAddDtm, updDtmBf);
					if (isError(result))
					{
						break;
					}
					WkUupdDtmBf          = getResultString(result, ECK0201E010CBSMsg.UPD_DTM);
				}
			}
		}
		return result;
	}

	/**
	 * eoIDエイジング終了
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param eoid eoID
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> chgEoIdAgingStateEnd(SessionHandle handle, IRequestParameterReadWrite param, String eoid)
			throws RequestParameterException, SCException
	{
		return chgAgingStateEnd(handle, param, AGING_SBT_CD_EOID, eoid);
	}

	/**
	 * ニックネームエイジング終了
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param nkname ニックネーム
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> chgNkNameAgingStateEnd(SessionHandle handle, IRequestParameterReadWrite param, String nkname)
			throws RequestParameterException, SCException
	{
		return chgAgingStateEnd(handle, param, AGING_SBT_CD_NKNAME, nkname);
	}

	/**
	 * エイジング終了
	 * @param handle セッションハンドル
	 * @param para リクエストパラメータ
	 * @param agingSbtCd エイジング種別コード
	 * @param agingTgValue エイジング対象値
	 * @return ＳＣ実行結果
	 * @throws SCException 
	 * @throws RequestParameterException 
	 */
	public static Map<?, ?> chgAgingStateEnd(SessionHandle handle, IRequestParameterReadWrite param, String agingSbtCd, String agingTgValue) throws RequestParameterException, SCException
	{
		String agingNo = null;
		String updDtm = null;

		// エイジング番号を取得する
		Map<?, ?> result = callEZM0111B030(handle, param, "1", agingSbtCd, agingTgValue);

		// 使用終了にする
		if (isSuccess(result)) {
			agingNo = getResultString(result, EZM0111B030CBSMsg.EZM0111B030CBSMSG1LIST + "[0]." + EZM0111B030CBSMsg1List.AGING_NO);
			updDtm  = getResultString(result, EZM0111B030CBSMsg.EZM0111B030CBSMSG1LIST + "[0]." + EZM0111B030CBSMsg1List.UPD_DTM);
			result = callEZM0111C010(handle, param, agingNo, updDtm, agingSbtCd, agingTgValue);
		}

		// 回復可能期間終了にする
		if (isSuccess(result)) {
			updDtm  = getResultString(result, EZM0111C010CBSMsg.UPD_DTM);
			result = callEZM0111C030(handle, param, agingNo, updDtm, agingSbtCd, agingTgValue);
		}

		return result;
	}

	/**
	 * エイジング対象一覧照会SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param agingSbtCd エイジング種別コード
	 * @param agingTgValue エイジング対象値
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callEZM0111B030(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String agingSbtCd, String agingTgValue)
			throws RequestParameterException, SCException
	{
		//***************************************************
		// エイジング対象一覧照会SCへの上りマッピング
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EZM0111B030CBSMsg.KEY_AGING_SBT_CD, agingSbtCd);
		inMap.put(EZM0111B030CBSMsg.KEY_AGING_TG_VALUE, agingTgValue);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, EZM0111B030CBSMsg.class , inMap, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("エイジング対象一覧照会SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("エイジング対象一覧照会SC呼び出し完了" + result);

		return result;
	}

	/**
	 * エイジング対象使用終了SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param agingNo エイジング番号
	 * @param updDtm 更新日時
	 * @param agingSbtCd エイジング種別コード
	 * @param agingTgValue エイジング対象値
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException 
	 * @throws SCException 
	 */
	public static Map<?, ?> callEZM0111C010(SessionHandle handle, IRequestParameterReadWrite param, String agingNo, String updDtm, String agingSbtCd,
			String agingTgValue) throws RequestParameterException, SCException
	{
		//***************************************************
		// エイジング対象使用終了SCへの上りマッピング
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EZM0111C010CBSMsg.AGING_NO, agingNo);
		inMap.put(EZM0111C010CBSMsg.AGING_SBT_CD, agingSbtCd);
		inMap.put(EZM0111C010CBSMsg.AGING_TG_VALUE, agingTgValue);
		inMap.put(EZM0111C010CBSMsg.LAST_UPD_DTM_BF, updDtm);
		inMap.put(EZM0111C010CBSMsg.USE_END_DTM, JCCBPCommon.getOpeDateTimeStamp(null));
		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param, EZM0111C010CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("エイジング対象使用終了SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("エイジング対象使用終了SC呼び出し完了" + result);

		return result;
	}

	/**
	 * エイジング回復可能期間終了SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param agingNo エイジング番号
	 * @param updDtm 更新日時
	 * @param agingSbtCd エイジング種別コード
	 * @param agingTgValue エイジング対象値
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException 
	 * @throws SCException 
	 */
	public static Map<?, ?> callEZM0111C030(SessionHandle handle, IRequestParameterReadWrite param, String agingNo, String updDtm, String agingSbtCd,
			String agingTgValue) throws RequestParameterException, SCException
	{
		//***************************************************
		// エイジング対象使用終了SCへの上りマッピング
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EZM0111C030CBSMsg.AGING_NO, agingNo);
		inMap.put(EZM0111C030CBSMsg.AGING_SBT_CD, agingSbtCd);
		inMap.put(EZM0111C030CBSMsg.AGING_TG_VALUE, agingTgValue);
		inMap.put(EZM0111C030CBSMsg.LAST_UPD_DTM_BF, updDtm);
		inMap.put(EZM0111C030CBSMsg.KAIHK_PSB_PRD_END_DTM, JCCBPCommon.getOpeDateTimeStamp(null));
		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param, EZM0111C030CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("エイジング回復可能期間終了SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("エイジング回復可能期間終了SC呼び出し完了" + result);

		return result;
	}

	/**
	 * ニックネーム重複チェック<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param paramId 業務パラメータID
	 * @return チェック結果(true:重複値なし、false:重複値あり)
	 * @throws Throwable
	 */
	public static boolean checkDupNkName(SessionHandle handle, IRequestParameterReadWrite param, String value) throws Throwable
	{
		return checkDupAgingValue(handle, param, "1", value);
	}

	/**
	 * eoID重複チェック<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param paramId 業務パラメータID
	 * @return チェック結果(true:重複値なし、false:重複値あり)
	 * @throws Throwable
	 */
	public static boolean checkDupEoId(SessionHandle handle, IRequestParameterReadWrite param, String value) throws Throwable
	{
		return checkDupAgingValue(handle, param, "2", value);
	}

	/**
	 * エイジング対象値重複チェック<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param paramId 業務パラメータID
	 * @return チェック結果(true:重複値なし、false:重複値あり)
	 * @throws Throwable
	 */
	public static boolean checkDupAgingValue(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String value) throws Throwable
	{
		//***************************************************
		// エイジング対象値重複チェック(PMP連携用)SCへの上りマッピング 
		//***************************************************
		String templateId = "EZM0111B020 ";
		Map<Object, Object> param4serviceIf = new HashMap<Object, Object>();
		param4serviceIf.put(EZM0111B020CBSMsg.KEY_AGING_TG_VALUE, value);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, templateId, EZM0111B020CBSMsg.class , param4serviceIf, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("エイジング対象値重複チェック(PMP連携用)SC呼び出し開始（ エイジング対象値：" + value + " ）");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("エイジング対象値重複チェック(PMP連携用)SC呼び出し完了" + result);
		if (isSuccess(result)) {
			String agingNo = JCNDslScParamHenshu.getResultString(result, EZM0111B020CBSMsg.EZM0111B020CBSMSG1LIST + "[0]."
					+ EZM0111B020CBSMsg1List.AGING_NO);
			if ((agingNo != null)&&(!"".equals(agingNo))) {
				return false;
			}
		} else {
			// return false; // ここでは "重複値の有無" のみをチェックする為、ドメイン・桁数エラーは返却しない。
		}
		return true;
	}

	/**
	 * ニックネームクリア(PMP連携用)SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param updDtm 更新年月日時分秒
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0011C180(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String updDtm)
			throws RequestParameterException, SCException
	{
		//***************************************************
		// ニックネームクリア(PMP連携用)SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> param4serviceIf = new HashMap<Object, Object>();
		param4serviceIf.put(ECK0011C180CBSMsg.SYSID, sysid);
		param4serviceIf.put(ECK0011C180CBSMsg.UPD_DTM_BF, updDtm);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param, ECK0011C180CBSMsg.class , param4serviceIf, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("ニックネームクリア(PMP連携用)SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("ニックネームクリア(PMP連携用)SC呼び出し完了" + result);

		return result;
	}

	/**
	 * コンテンツISP利用情報変更SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param contIspUseFailFlg コンテンツISP利用不可フラグ
	 * @param contIspUseStpYmd コンテンツISP利用停止年月日
	 * @param updDtmBf 変更前更新日時
	 * @return SC実行結果
	 * @throws RequestParameterException 
	 * @throws SCException 
	 */
	public static Map<?, ?> callECK0011C011(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String contIspUseFailFlg,
			String contIspUseStpYmd, String updDtmBf) throws SCException, RequestParameterException
	{
		//***************************************************
		// SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> param4serviceIf = new HashMap<Object, Object>();
		param4serviceIf.put(ECK0011C011CBSMsg.SYSID, sysid);
		param4serviceIf.put(ECK0011C011CBSMsg.CONT_ISP_USE_FAIL_FLG, contIspUseFailFlg);
		param4serviceIf.put(ECK0011C011CBSMsg.CONT_ISP_USE_STP_YMD, contIspUseStpYmd);
		param4serviceIf.put(ECK0011C011CBSMsg.UPD_DTM_BF, updDtmBf);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param, ECK0011C011CBSMsg.class , param4serviceIf, "1");

		//***************************************************
		// SC呼出実行
		//***************************************************
		printDebugLog("コンテンツISP利用情報変更SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("コンテンツISP利用情報変更SC呼び出し完了" + result);

		return result;
	}

	/**
	 * お客様<個人>内容変更SC呼出(コンテンツ情報クリア用)。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param dataMap データマップ
	 * @return ＳＣ実行結果
	 * @throws SCException
	 * @throws RequestParameterException
	 */
	public static Map<?, ?> callECK0021C010ForClearContInfo(SessionHandle handle, IRequestParameterReadWrite param, Map<Object, Object> dataMap)
			throws SCException, RequestParameterException
	{
		//***************************************************
		// SCへの上りマッピング 
		//***************************************************
		dataMap.put(ECK0021C010CBSMsg.RSV_APLY_YMD, JCCBPCommon.getOpeDate(null));
		dataMap.put(ECK0021C010CBSMsg.CONT_CUST_NM, null);
		dataMap.put(ECK0021C010CBSMsg.CONT_CUST_KANA, null);
		dataMap.put(ECK0021C010CBSMsg.CONT_CUST_SEX_CD, null);
		dataMap.put(ECK0021C010CBSMsg.CONT_CUST_BIRTHD, null);
		dataMap.put(ECK0021C010CBSMsg.CONT_AD_CD, null);
		dataMap.put(ECK0021C010CBSMsg.CONT_PCD, null);
		dataMap.put(ECK0021C010CBSMsg.CONT_STATE_NM, null);
		dataMap.put(ECK0021C010CBSMsg.CONT_CITY_NM, null);
		dataMap.put(ECK0021C010CBSMsg.CONT_OAZTSU_NM, null);
		dataMap.put(ECK0021C010CBSMsg.CONT_AZCHO_NM, null);
		dataMap.put(ECK0021C010CBSMsg.CONT_BNCHIGO, null);
		dataMap.put(ECK0021C010CBSMsg.CONT_ADRTTM, null);
		dataMap.put(ECK0021C010CBSMsg.CONT_ADRRM, null);
		dataMap.put(ECK0021C010CBSMsg.CONT_AD_BNKT_STA_PST, null);

		return callECK0021C010(handle, param, dataMap);
	}

	/**
	 * お客様<法人>内容変更SC呼出(コンテンツ情報クリア用)。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param dataMap データマップ
	 * @return ＳＣ実行結果
	 * @throws SCException
	 * @throws RequestParameterException
	 */
	public static Map<?, ?> callECK0031C010ForClearContInfo(SessionHandle handle, IRequestParameterReadWrite param, Map<Object, Object> dataMap)
			throws SCException, RequestParameterException
	{
		//***************************************************
		// SCへの上りマッピング 
		//***************************************************
		dataMap.put(ECK0031C010CBSMsg.RSV_APLY_YMD, JCCBPCommon.getOpeDate(null));
		dataMap.put(ECK0031C010CBSMsg.CONT_CUST_NM, null);
		dataMap.put(ECK0031C010CBSMsg.CONT_CUST_KANA, null);
		dataMap.put(ECK0031C010CBSMsg.CONT_CUST_SEX_CD, null);
		dataMap.put(ECK0031C010CBSMsg.CONT_CUST_BIRTHD, null);
		dataMap.put(ECK0031C010CBSMsg.CONT_AD_CD, null);
		dataMap.put(ECK0031C010CBSMsg.CONT_PCD, null);
		dataMap.put(ECK0031C010CBSMsg.CONT_STATE_NM, null);
		dataMap.put(ECK0031C010CBSMsg.CONT_CITY_NM, null);
		dataMap.put(ECK0031C010CBSMsg.CONT_OAZTSU_NM, null);
		dataMap.put(ECK0031C010CBSMsg.CONT_AZCHO_NM, null);
		dataMap.put(ECK0031C010CBSMsg.CONT_BNCHIGO, null);
		dataMap.put(ECK0031C010CBSMsg.CONT_ADRTTM, null);
		dataMap.put(ECK0031C010CBSMsg.CONT_ADRRM, null);
		dataMap.put(ECK0031C010CBSMsg.CONT_AD_BNKT_STA_PST, null);
		
		return callECK0031C010(handle, param, dataMap);
	}

	/**
	 * オプトインメール受信設定無効(コンテンツ連絡先メールアドレス分)。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @return ＳＣ実行結果
	 * @throws SCException
	 * @throws RequestParameterException
	 */
	public static Map<?, ?> mkOptinmRcvSetteForContMlad(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String updDtmBf)
			throws SCException, RequestParameterException
	{
		// メールアドレスがeoのメールアドレスかどうかを保持するマップ
		// (eoのメールアドレスでない場合はtrue)
		Map<String, Boolean> notEoMlad = new HashMap<String, Boolean>();

		// オプトインメール受信設定一覧の退避用リスト
		CAANMsg[] msgList = null;

		// オプトインメール受信設定を取得する
		Map<?, ?> result = callECK0141B020(handle, param, "3", sysid);
		if (isSuccess(result))
		{
			String mapKeyPre = ECK0141B020CBSMsg.ECK0141B020CBSMSG1LIST + "[0].";
			String mlad = getResultString(result, mapKeyPre + ECK0141B020CBSMsg1List.MLAD);
			notEoMlad.put(mlad, true);
			msgList = getResultMsgList(result, ECK0141B020CBSMsg.ECK0141B020CBSMSG1LIST);
		}
		else
		{
			return result;
		}

		// メールアドレスがeoのものかどうかを判定する
		Iterator<String> it = notEoMlad.keySet().iterator();
		while (it.hasNext())
		{
			String mlad = it.next();
			result = callEKK0361B020(handle, param, "2", null, mlad);
			if (isError(result))
			{
				return result;
			}
			CAANMsg[] list = getResultMsgList(result, EKK0361B020CBSMsg.EKK0361B020CBSMSG1LIST);
			notEoMlad.put(mlad, ((list != null)&&(list.length > 0) ? false : true));
		}


		// 受信設定を無効にする
		if ((msgList != null) && (msgList.length > 0))
		{
			for (CAANMsg msg : msgList)
			{
				String mlad = msg.getString( ECK0141B020CBSMsg1List.MLAD);
				// eoのメールアドレスでない場合
				if (notEoMlad.containsKey(mlad) && notEoMlad.get(mlad))
				{
					String optinMNo = msg.getString( ECK0141B020CBSMsg1List.OPTINM_NO);
					result = callECK0141C030(handle, param, optinMNo, sysid, mlad, updDtmBf);
					if (isSuccess(result)) {
						updDtmBf = getResultString(result, ECK0141C030CBSMsg.UPD_DTM);
					}
					else
					{
						return result;
					}
				}
			}
		}

		return result;
	}

	/**
	 * オプトインメール受信設定一覧照会SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param sysid SYSID
	 * @return ＳＣ実行結果
	 * @throws SCException
	 * @throws RequestParameterException
	 */
	public static Map<?, ?> callECK0141B020(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String sysid)
			throws SCException, RequestParameterException
	{
		//***************************************************
		// オプトインメール受信設定一覧照会SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> param4serviceIf = new HashMap<Object, Object>();
		param4serviceIf.put(ECK0141B020CBSMsg.KEY_SYSID, sysid);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECK0141B020CBSMsg.class , param4serviceIf, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("オプトインメール受信設定一覧照会SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("オプトインメール受信設定一覧照会SC呼び出し完了" + result);

		return result;
	}

	/**
	 * POPID存在チェック(PMP連携用)SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param popId POPID(機能コード=1の時のみ指定)
	 * @param mlad 	メールアドレス(機能コード=2の時のみ指定)
	 * @return ＳＣ実行結果
	 * @throws SCException
	 * @throws RequestParameterException
	 */
	public static Map<?, ?> callEKK0361B020(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String popId, String mlad)
			throws SCException, RequestParameterException
	{
		//***************************************************
		// POPID存在チェック(PMP連携用)SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EKK0361B020CBSMsg.KEY_POPID, popId);
		inMap.put(EKK0361B020CBSMsg.KEY_MLAD, mlad);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, EKK0361B020CBSMsg.class , inMap, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("POPID存在チェック(PMP連携用)SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("POPID存在チェック(PMP連携用)SC呼び出し完了" + result);

		return result;
	}

	/**
	 * オプトインメール受信設定無効SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param optinmNo オプトインメール番号
	 * @param sysid SYSID
	 * @param mlad メールアドレス
	 * @param updDtm 更新年月日時分秒(更新前)
	 * @return ＳＣ実行結果
	 * @throws SCException
	 * @throws RequestParameterException
	 */
	public static Map<?, ?> callECK0141C030(SessionHandle handle, IRequestParameterReadWrite param, String optinmNo, String sysid, String mlad,
			String updDtm) throws SCException, RequestParameterException
	{
		//***************************************************
		// オプトインメール受信設定無効SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECK0141C030CBSMsg.OPTINM_NO, optinmNo);
		inMap.put(ECK0141C030CBSMsg.SYSID, sysid);
		inMap.put(ECK0141C030CBSMsg.MLAD, mlad);
		inMap.put(ECK0141C030CBSMsg.UPD_DTM_BF, updDtm);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param, ECK0141C030CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("オプトインメール受信設定無効SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("オプトインメール受信設定無効SC呼び出し完了" + result);

		return result;
	}

	/**
	 * 標準コンテンツ解約<br />
	 * ※サービス契約解約、サービス契約解約確定を続けて呼び出します。
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param svcKeiNo サービス契約番号
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @param opeDate 運用日付
	 * @return ＳＣ実行結果
	 * @throws SCException
	 * @throws RequestParameterException
	 */
	public static Map<?, ?> stdardContDsl(SessionHandle handle, IRequestParameterReadWrite param, String svcKeiNo, String updDtmBf, String opeDate)
			throws SCException, RequestParameterException
	{
		Map<?, ?> result = callEKK0081C180(handle, param, svcKeiNo, updDtmBf, opeDate);
		if (isSuccess(result))
		{
			updDtmBf = getResultString(result, EKK0081C180CBSMsg.UPD_DTM);
			result = callEKK0081C260(handle, param, svcKeiNo, updDtmBf, opeDate);
		}

		return result;
	}

	/**
	 * サービス契約解約SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param svcKeiNo サービス契約番号
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @param opeDate 運用日付
	 * @return ＳＣ実行結果
	 * @throws SCException
	 * @throws RequestParameterException
	 */
	public static Map<?, ?> callEKK0081C180(SessionHandle handle, IRequestParameterReadWrite param, String svcKeiNo, String updDtmBf, String opeDate)
			throws SCException, RequestParameterException
	{
		//***************************************************
		// サービス契約解約SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EKK0081C180CBSMsg.SVC_KEI_NO, svcKeiNo);
		inMap.put(EKK0081C180CBSMsg.SVC_ENDYMD, opeDate);
		inMap.put(EKK0081C180CBSMsg.UPD_DTM_BF, updDtmBf);
		inMap.put(EKK0081C180CBSMsg.IDO_DIV, IDO_DIV_DSL);                // 解約
		inMap.put(EKK0081C180CBSMsg.SVC_DLRE_CD, SVC_DLRE_CD_TUJYO_DSL);  // 通常解約
		inMap.put(EKK0081C180CBSMsg.NO_KOJI_CHK_FLG, "0");                // 工事なし登録チェック実施フラグ

		// 以下の項目は、顧客(LCS)で扱うデータでは必ずNULLの項目
		inMap.put(EKK0081C180CBSMsg.SVC_CHRG_ENDYMD, opeDate);            // サービス課金終了年月日
		inMap.put(EKK0081C180CBSMsg.PNLTY_HASSEI_CD, null);               // 違約金発生コード
		inMap.put(EKK0081C180CBSMsg.SVC_DLRE_MEMO, null);                 // サービス解約理由メモ
		inMap.put(EKK0081C180CBSMsg.RSV_TSTA_KIBO_YMD, null);             // 予約適用開始希望年月日
		inMap.put(EKK0081C180CBSMsg.MSKM_DTL_NO, null);                   // 申込明細番号
		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param, EKK0081C180CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("サービス契約解約SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("サービス契約解約SC呼び出し完了" + result);

		return result;
	}

	/**
	 * サービス契約解約確定SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param svcKeiNo サービス契約番号
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @param opeDate 運用日付
	 * @return ＳＣ実行結果
	 * @throws SCException
	 * @throws RequestParameterException
	 */
	public static Map<?, ?> callEKK0081C260(SessionHandle handle, IRequestParameterReadWrite param, String svcKeiNo, String updDtmBf, String opeDate)
			throws SCException, RequestParameterException
	{
		//***************************************************
		// サービス契約解約確定SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EKK0081C260CBSMsg.SVC_KEI_NO, svcKeiNo);                 //サービス契約番号
		inMap.put(EKK0081C260CBSMsg.SVC_ENDYMD, opeDate);                  // サービス終了年月日
		inMap.put(EKK0081C260CBSMsg.UPD_DTM_BF, updDtmBf);                 // 更新年月日時分秒(更新前)
		inMap.put(EKK0081C260CBSMsg.SVC_DLRE_CD, SVC_DLRE_CD_TUJYO_DSL);   // サービス解約理由コード(通常解約)
		inMap.put(EKK0081C260CBSMsg.RULE0079_AUTO_APLY, "0");              // 工事費自動適用要否(否)
		inMap.put(EKK0081C260CBSMsg.SVC_DSL_KISAN_YMD, opeDate);           // サービス解約起算年月日
		// 以下の項目は、顧客(LCS)で扱うデータでは必ずNULLの項目
		inMap.put(EKK0081C260CBSMsg.SVC_DLRE_MEMO, null);                 // サービス解約理由メモ
		inMap.put(EKK0081C260CBSMsg.TK_KIBO_EQUIP, null);                 // 撤去希望設備
		//HashMap<String, Object> paramMap = JCKBPCommon.createScParam(param, EKK0081C260CBSMsg.class , inMap, "1");
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, EKK0081C260CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("サービス契約解約確定SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("サービス契約解約確定SC呼び出し完了" + result);

		return result;
	}

	/**
	 * お客様グループ設定無効(メンバSYSID指定)。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @return 処理結果（当メソッド独自の返却データ）<br />
	 * @throws SCException
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public static Map<?, ?> mkCustGrpSetteByMmbSysid(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String updDtmBf)
			throws SCException, RequestParameterException
	{
		List<Map<String, String>> grpSetteList = new ArrayList<Map<String, String>>();
		CAANMsg[] msgList = null;

		// お客様グループ設定一覧取得
		Map<?, ?> result = callECK0121B020(handle, param, "2", sysid);
		if (isSuccess(result)) {
			msgList = getResultMsgList(result, ECK0121B020CBSMsg.ECK0121B020CBSMSG1LIST);
			if (msgList != null) {
				for (CAANMsg msg : msgList) {
					Map<String, String> rec = new HashMap();
					rec.put("cust_grp_sette_no", msg.getString(ECK0121B020CBSMsg1List.CUST_GRP_SETTE_NO));
					rec.put("grp_leader_sysid", msg.getString(ECK0121B020CBSMsg1List.GRP_LEADER_SYSID));
					grpSetteList.add(rec);
				}
			}
		}

		// お客様グループ設定無効
		if (isSuccess(result))
		{
			String opeDate = JCCBPCommon.getOpeDate(null);
			for (Map<String, String> rec : grpSetteList) {
				String custGrpSetteNo = rec.get("cust_grp_sette_no");
				result = callECK0121C020(handle, param, custGrpSetteNo, updDtmBf, opeDate);
				if (isSuccess(result))
				{
					rec.put("mk_flg", getResultString(result, ECK0121C020CBSMsg.MK_FLG));
					rec.put("add_dtm", getResultString(result, ECK0121C020CBSMsg.ADD_DTM));
					rec.put("add_opeacnt", getResultString(result, ECK0121C020CBSMsg.ADD_OPEACNT));
					rec.put("upd_dtm", getResultString(result, ECK0121C020CBSMsg.UPD_DTM));
					rec.put("upd_opeacnt", getResultString(result, ECK0121C020CBSMsg.UPD_OPEACNT));
					updDtmBf = getResultString(result, ECK0121C020CBSMsg.UPD_DTM);
				}
				else
				{
					break;
				}
			}
		}

		Map returnMap = new HashMap();
		returnMap.put("result", result);
		returnMap.put("cust_grp_sette_list", grpSetteList);

		return returnMap;
	}

	/**
	 * お客様グループ設定一覧照会(PMP連携用)SC呼出
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param sysid SYSID
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException 
	 * @throws SCException 
	 */
	public static Map<?, ?> callECK0121B020(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String sysid)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// お客様グループ設定一覧照会(PMP連携用)SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECK0121B020CBSMsg.KEY_SYSID, sysid);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECK0121B020CBSMsg.class , inMap, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("お客様グループ設定一覧照会(PMP連携用)SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("お客様グループ設定一覧照会(PMP連携用)SC呼び出し完了" + result);

		return result;
	}

	/**
	 * お客様グループ設定無効SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param custGrpSetteNo お客様グループ設定番号
	 * @param updDtm 更新年月日時分秒(更新前)
	 * @param mkYmd 無効年月日
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0121C020(SessionHandle handle, IRequestParameterReadWrite param, String custGrpSetteNo, String updDtm, String mkYmd)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// お客様グループ設定無効SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECK0121C020CBSMsg.CUST_GRP_SETTE_NO, custGrpSetteNo);
		inMap.put(ECK0121C020CBSMsg.UPD_DTM_BF, updDtm);
		inMap.put(ECK0121C020CBSMsg.CUST_GRP_SETTE_MK_YMD, mkYmd);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param, ECK0121C020CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("お客様グループ設定無効SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("お客様グループ設定無効SC呼び出し完了" + result);

		return result;
	}

	/**
	 * eoID／パスワード初期化SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param updDtmBf 更新年月日時分秒
	 * @param shkka_sbt_cd 初期化種別コード
	 * @return SC実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0011C020(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String updDtmBf, String str_shkka_sbt_cd)
	throws RequestParameterException, SCException
	{
		//***************************************************
		// SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECK0011C020CBSMsg.SYSID, sysid);
		inMap.put(ECK0011C020CBSMsg.UPD_DTM_BF, updDtmBf);
		inMap.put(ECK0011C020CBSMsg.SHKKA_SBT_CD, str_shkka_sbt_cd);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param, ECK0011C020CBSMsg.class , inMap, "1");

		//***************************************************
		// SC呼出実行
		//***************************************************
		printDebugLog("eoID／パスワード初期化SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("eoID／パスワード初期化SC呼び出し完了" + result);

		return result;
	}

	/**
	 * お客様退会SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param custTaikaiYmd お客様退会年月日
	 * @param custTaikaiRsnCd お客様退会理由コード
	 * @param updDtm 更新年月日時分秒
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0011C060(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String custTaikaiYmd, String custTaikaiRsnCd, String updDtm)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// お客様退会SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECK0011C060CBSMsg.SYSID, sysid);
		inMap.put(ECK0011C060CBSMsg.CUST_NTAIKAI_CD, CUST_NTAIKAI_CD_TAIKAI);
		inMap.put(ECK0011C060CBSMsg.CUST_TAIKAI_YMD, custTaikaiYmd);
		inMap.put(ECK0011C060CBSMsg.CUST_TAIKAI_RSN_CD, custTaikaiRsnCd);
		inMap.put(ECK0011C060CBSMsg.NAYOSE_SAKI_SYSID, null);
		inMap.put(ECK0011C060CBSMsg.UPD_DTM_BF, updDtm);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param, ECK0011C060CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("お客様退会SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("お客様退会SC呼び出し完了" + result);

		return result;
	}

	/**
	 * CCMG連携(コンテンツ全解約API呼出)<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param updId 更新者ID
	 * @param updNm 更新者名
	 * @return 連携結果(true:成功、false:失敗)
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static String requestCcmgApiAllDsl(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String updId, String updNm)
			throws RequestParameterException, SCException
	{
		//***************************************************
		// SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
// ANK-4346-00-00 MOD START		
//		inMap.put(ECNA0010002CBSMsg.SYSID, sysid);
//		inMap.put(ECNA0010002CBSMsg.UPD_USER_ID, updId);
//		inMap.put(ECNA0010002CBSMsg.UPD_USER, updNm);
		inMap.put(ECNA0210001CBSMsg.KEY_SYSID, sysid);
		inMap.put(ECNA0210001CBSMsg.UPDATE_ID, updId);
// ANK-4346-00-00 MOD END 

		// 無関係な項目には自動nullセットを行うために ForSearchを使用
// ANK-4346-00-00 MOD START		
		//HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECNA0010002CBSMsg.class , inMap, "1");
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECNA0210001CBSMsg.class , inMap, "1");
// ANK-4346-00-00 MOD END 

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		// ANK-4346-00-00 MOD START
		//printDebugLog("CCMG連携(コンテンツ全解約API呼出)SC呼び出し開始");
		printDebugLog("CCMG連携(全コンテンツ契約変更API呼出)SC呼び出し開始");
		// ANK-4346-00-00 MOD END
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		// ANK-4346-00-00 MOD START
//		printDebugLog("CCMG連携(コンテンツ全解約API呼出)SC呼び出し完了" + result);
		printDebugLog("CCMG連携(全コンテンツ契約変更API呼出)SC呼び出し完了" + result);
		// ANK-4346-00-00 MOD END
		// ANK-4346-00-00 ADD START
		CAANMsg[] resultMap =(CAANMsg[]) result.get("templates");
		int status = resultMap[0].getInt(ECNA0210001CBSMsg.STATUS);
		// ANK-4346-00-00 ADD END
// ANK-4346-00-00 MOD START		
		//String systemErrFlg = getResultString(result, ECNA0210001CBSMsg.ERR_CD);
		CAANMsg[] ResultList = getResultMsgList(result, ECNA0210001CBSMsg.ECNA0210001CBSMSG1LIST);
		
		String systemErrFlg = "";
		String httpstacd = "";
		if(ResultList != null && ResultList.length != 0)
		{
			systemErrFlg = ResultList[0].getString(ECNA0210001CBSMsg1List.ERR_CD);
			httpstacd = ResultList[0].getString(ECNA0210001CBSMsg1List.HTTPSTATUS);
		}
		// ANK-4346-00-00 MOD START
		//if(!"00000".equals(systemErrFlg))
		if(0 != status)
		{
			String strMessage1 = "CNIFE053_全コンテンツ契約変更";
			String strMessage2 =  "HTTPステータスコード={" + httpstacd
			+ "}、エラーコード={" + systemErrFlg + "}、SYSID={" + sysid + "}";
			String strMessage = strMessage1 + "が異常終了しました。" + strMessage2;
			//JSYbpmLog.println(JSYLogBase.EXECUTION, JCKPmpCommonUtil.class ,strMessage, "",  new String[]{"", ""}, "");
			JSYbpmLog.println(JSYLogBase.EXECUTION, JCKPmpCommonUtil.class, strMessage , "BPCON0E004", new String[]{"", ""}, "");
			// メッセージログ（システムログ）にメッセージID「EKBF880-KW」に該当するメッセージを出力する
			printSyslog4War("CNIFE053","EKBF880-KW",strMessage);
			
		}
// ANK-4346-00-00 MOD END 
		
		// CCMGAPIリターンコードをそのまま返却するよう修正
		return systemErrFlg;
	}

	/**
	 * 指示書登録SC呼出(マップ指定)。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param inMap 入力データマップ
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0151D010Map(SessionHandle handle, IRequestParameterReadWrite param, Map<String, Object> inMap)
			throws RequestParameterException, SCException
	{
		//***************************************************
		// 指示書登録SCへの上りマッピング 
		//***************************************************
		//HashMap<String, Object> paramMap = JCKBPCommon.createScParam(param, ECK0151D010CBSMsg.class, inMap, "1");
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECK0151D010CBSMsg.class, inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("指示書登録SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("指示書登録SC呼び出し完了" + result);

		return result;
	}

	/**
	 * 指示書登録SC呼出(リスト指定)。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param inMap 入力データマップ
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	@SuppressWarnings("unchecked")
	public static Map<?, ?> callECK0151D010List(SessionHandle handle, IRequestParameterReadWrite param, List<Map<String, Object>> inList)
			throws RequestParameterException, SCException
	{
		CAANMsg[] templates = new CAANMsg[inList.size()];
		HashMap<String, Object> paramMap = new HashMap();
		for (int i = 0;  i < inList.size(); i++)
		{
			Map rec = inList.get(i);
			HashMap<String, Object> tmpParamMap = JCNBPCommon.createScParamForSearch(param, ECK0151D010CBSMsg.class, rec, "1");
			CAANMsg[] tmpTemplates = (CAANMsg[])tmpParamMap.get(JCMConstants.TEMPLATE_LIST_KEY);
			CAANMsg template = tmpTemplates[0];
			templates[i] = template;
			if (i == 0) {
				paramMap = tmpParamMap;
			}
		}
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("指示書登録SC呼び出し(複数)開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("指示書登録SC呼び出し(複数)完了" + result);

		return result;
	}

	/**
	 * メール送信登録SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param mailCd メールコード
	 * @param mlad メールアドレス
	 * @param textHtkCkamMoji 置換文字
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException  
	 * @throws SCException 
	 */
	@SuppressWarnings("unchecked")
	public static Map<?, ?> callECC0021D010(SessionHandle handle, IRequestParameterReadWrite param, String mailCd, String mlad,
			String[] textHtkCkamMoji, String mailTitle) throws SCException, RequestParameterException
	{
		//***************************************************
		// ＳＣへの上りマッピング
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECC0021D010CBSMsg.MAIL_CD, mailCd);
		inMap.put(ECC0021D010CBSMsg.MAIL_SEND_PATTERN_CD, "01");
		inMap.put(ECC0021D010CBSMsg.FUNC_CODE, "1");

		// メールアドレスの設定
		Map[] msg1List = new HashMap[1];
		HashMap msg1 = new HashMap();
		msg1List[0] = msg1;
		msg1.put(ECC0021D010CBSMsg1List.MLAD, mlad);
		msg1.put(ECC0021D010CBSMsg1List.MLAD_SET_FIELD_CD, "01");
		JCNBPCommon.setNullColumnForScParam(ECC0021D010CBSMsg1List.class, msg1);
		JCNBPCommon.setNullBlankColumnForScParam(msg1);
		inMap.put(ECC0021D010CBSMsg.ECC0021D010CBSMSG1LIST, msg1List);

		// 埋め込み文字の設定
		if (textHtkCkamMoji != null)
		{
			Map[] msg2List = new HashMap[textHtkCkamMoji.length];
			for (int i = 0;  i < textHtkCkamMoji.length; i++) {
				HashMap msg2 = new HashMap();
				msg2List[i] = msg2;
				msg2.put(ECC0021D010CBSMsg2List.TEXT_HTK_CKAM_MOJI, textHtkCkamMoji[i]);
				JCNBPCommon.setNullColumnForScParam(ECC0021D010CBSMsg2List.class, msg2);
				JCNBPCommon.setNullBlankColumnForScParam(msg2);
			}
			inMap.put(ECC0021D010CBSMsg.ECC0021D010CBSMSG2LIST, msg2List);
		}
		
		// 編集部分追加
		HashMap map = new HashMap();
		
		// メールヘッダー一覧明細.メールヘッダーキー
		map.put("mail_header_key", "subject");
		// メールヘッダー一覧明細.メールヘッダー値
		map.put("mail_header_value", mailTitle);
		
		Map[] msg5List = new HashMap[1];
		HashMap msg5 = new HashMap();
		msg5List[0] = msg5;
		msg5.put("mail_header_key", "subject");
		msg5.put("mail_header_value", mailTitle);
		JCNBPCommon.setNullColumnForScParam(ECC0021D010CBSMsg5List.class, msg5);
		JCNBPCommon.setNullBlankColumnForScParam(msg5);
		
		inMap.put(ECC0021D010CBSMsg.ECC0021D010CBSMSG5LIST, msg5List);
		
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECC0021D010CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("メール送信登録SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("メール送信登録SC呼び出し完了" + result);

		return result;
	}

	/**
	 * メール送信。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param eoId EOID
	 * @param custKana お客様カナ名
	 * @param mailCd メールコード
	 * @param mlad メールアドレス
	 * @param repTextAry 置換文字
	 * @return メール送信結果(true:成功、false:失敗)
	 * @throws SCException
	 * @throws RequestParameterException
	 */
	public static boolean callMailSendSc(SessionHandle handle, IRequestParameterReadWrite param, 
			String sysid, String eoId, String custKana,
			String mailCd, String mlad, String[] repTextAry
	) throws SCException, RequestParameterException
	{
		// メールタイトル
		String editMailTitle = null;
		// メール一意照会から取得するメールタイトル
		String mail_title = null;
		// メール一意照会SC呼び出し
		Map<?, ?> ecc0121A010Result = callECC0121A010(handle, param, mailCd);
		if (isSuccess(ecc0121A010Result)) 
		{
			//mail_title = getResultString(ecc0121A010Result, ECC0121A010CBSMsg1List.MAIL_TITLE);
			
			CAANMsg[] templates = (CAANMsg[])ecc0121A010Result.get(JCMConstants.TEMPLATE_LIST_KEY);
			CAANMsg msg = templates[0];
			CAANMsg[] msgList = msg.getCAANMsgList(ECC0121A010CBSMsg.ECC0121A010CBSMSG1LIST);
			CAANMsg dataMsg = msgList[0];
			mail_title = dataMsg.getString(ECC0121A010CBSMsg1List.MAIL_TITLE);
		} 
		
		else {
			return false;
		}
		
		// メールID采番から取得するメールID
		String mail_id = null;
		// メールID采番SC呼び出し
		Map<?, ?> ekk1121C011Result = callEKK1121C011(handle, param);
		if (isSuccess(ekk1121C011Result))
		{
			mail_id = getResultString(ekk1121C011Result, EKK1121C011CBSMsg.MAIL_ID);
		} 
		
		else {
			return false;
		}
		
		// メールタイトルとメールIDが取得できた場合
		if (mail_title != null && mail_id != null)
		{
			editMailTitle = editMailTitle(mail_title, mail_id);
		} 

		String sendErrFlg = "0";
		
		Map<?, ?> result = callECC0021D010(handle, param, mailCd, mlad, repTextAry, editMailTitle);
		if (isSuccess(result))
		{
// 20120818 メール送信エラーフラグのチェック処理削除(連絡先メールアドレスが不備でも処理結果OK) N.AJIOKA
//			sendErrFlg = getResultString(result, ECC0021D010CBSMsg.MAIL_SEND_ERR_FLG);
			String mailSendStatCd = ("0".equals(sendErrFlg)) ? KK_MAIL_SEND_STAT_CD_ZUMI : KK_MAIL_SEND_STAT_CD_MI;
			String sendDtm    = getResultString(result, ECC0021D010CBSMsg.ADD_DTM);
			String mailText   = getResultString(result, ECC0021D010CBSMsg.MAIL_TEXT);
			String mailTitle  = getResultString(result, ECC0021D010CBSMsg.MAIL_TITLE);
			String mailSendNo = getResultString(result, ECC0021D010CBSMsg.MAIL_SEND_NO);
			result = callEKK1121D010(handle, param, MAIL_SENDM_SYS_CD_EO_TOGO, sysid, eoId, mailSendNo, mailSendStatCd, mailCd, mlad, mailTitle, mailText, custKana, sendDtm, mail_id);
		}

		return ("0".equals(sendErrFlg));
	}

	/**
	 * メール一意照会SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param mailCd メールコード
	 * @return SC実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	@SuppressWarnings("unchecked")
	public static Map callECC0121A010(SessionHandle handle, IRequestParameterReadWrite param, String mailCd) throws RequestParameterException, SCException {
		
		//***************************************************
		// メール一意照会SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		
		inMap.put(ECC0121A010CBSMsg.KEY_MAIL_CD, mailCd); // KEY_メールコード

		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECC0121A010CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("メール一意照会SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("メール一意照会SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * メールID採番SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @return SC実行結果
	 * @throws SCException
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public static Map callEKK1121C011(SessionHandle handle, IRequestParameterReadWrite param) throws SCException, RequestParameterException {
		//***************************************************
		// メールID採番SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		
		inMap.put(EKK1121C011CBSMsg.MAIL_ID_KBN, "3"); // メールID採番区分 "3"固定

		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, EKK1121C011CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("メールID採番SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("メールID採番SC呼び出し完了" + result);

		return result;
	}
	
	
	
	/**
	 * メール情報登録SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param mailSendmSysCd メール送信元システムコード
	 * @param sysid SYSID
	 * @param eoId eoID
	 * @param mailSendNo メール送信番号
	 * @param mailSendStatCd メール送信状態コード
	 * @param mailCd メールコード
	 * @param mlad 送信先メールアドレス
	 * @param mailTitle メールタイトル
	 * @param mailText メール本文
	 * @param custKana 送信先契約者カナ名
	 * @param sendDtm メール送信年月日時分秒
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	@SuppressWarnings("unchecked")
	public static Map callEKK1121D010(SessionHandle handle, IRequestParameterReadWrite param, String mailSendmSysCd, String sysid, String eoId,
			String mailSendNo, String mailSendStatCd, String mailCd, String mlad, String mailTitle, String mailText, String custKana, String sendDtm, String mail_id)
			throws RequestParameterException, SCException
	{
		//***************************************************
		// メール情報登録SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
//		inMap.put(EKK1121D010CBSMsg.MAIL_SENDM_SYS_CD, mailSendmSysCd);  // メール送信元システムコード
		inMap.put(EKK1121D010CBSMsg.MAIL_SEND_NO, mailSendNo);           // メール送信番号
		inMap.put(EKK1121D010CBSMsg.SYSID, sysid);                       // SYSID
		inMap.put(EKK1121D010CBSMsg.MAIL_SEND_DTM, sendDtm);             // メール送信年月日時分秒
		inMap.put(EKK1121D010CBSMsg.MAIL_SEND_STAT_CD, mailSendStatCd);  // メール送信状態コード
		inMap.put(EKK1121D010CBSMsg.SENDS_MLAD, mlad);                   // 送信先メールアドレス
		inMap.put(EKK1121D010CBSMsg.MAIL_TITLE, mailTitle);              // メールタイトル
		inMap.put(EKK1121D010CBSMsg.MAIL_TEXT, mailText);                // メール本文
		inMap.put(EKK1121D010CBSMsg.MAIL_CD, mailCd);                    // メールコード
		inMap.put(EKK1121D010CBSMsg.EOID, eoId);                         // eoID
		inMap.put(EKK1121D010CBSMsg.SENDS_KSH_KANA, custKana);           // 送信先契約者カナ名
		inMap.put(EKK1121D010CBSMsg.CONT_SVC_CD, null);                 // コンテンツサービスコード(顧客LCSから送信するメールはNULLでOK)
		inMap.put(EKK1121D010CBSMsg.MAIL_ID, mail_id);                   // メールID

		//HashMap<String, Object> paramMap = JCKBPCommon.createScParam(param, EKK1121D010CBSMsg.class , inMap, "1");
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, EKK1121D010CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("メール情報登録SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("メール情報登録SC呼び出し完了" + result);

		return result;
	}

	/**
	 * 支払方法入力支援一覧照会SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param sysid SYSID
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECN0131B006(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String sysid)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// 支払方法入力支援一覧照会SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECN0131B006CBSMsg.KEY_SYSID, sysid);

		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECN0131B006CBSMsg.class , inMap, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("支払方法入力支援一覧照会SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("支払方法入力支援一覧照会SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * 支払方法入力支援削除SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param paywayNo 支払方法番号
     * @param updDtm 更新年月日時分秒
	 * @param sysid SYSID
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECN0131E010(SessionHandle handle, IRequestParameterReadWrite param, String paywayNo, String updDtm, String sysid)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// 支払方法入力支援削除SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECN0131E010CBSMsg.KEY_PAYWAY_NO, paywayNo);
		
		//TODO 更新年月日時分秒が正しくないと思われる為コメント化
//		inMap.put(ECN0131E010CBSMsg.KEY_UPD_DTM, updDtm);
//		inMap.put(ECN0131E010CBSMsg.KEY_SYSID, sysid);

		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param, ECN0131E010CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("支払方法入力支援削除SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("支払方法入力支援削除SC呼び出し完了" + result);

		return result;
	}

	/**
	 * 支払方法入力支援削除(PMP連携)SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param paywayNo 支払方法番号
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECN0131E011(SessionHandle handle, IRequestParameterReadWrite param, String paywayNo, String updDtm)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECN0131E011CBSMsg.KEY_PAYWAY_NO, paywayNo);
		inMap.put(ECN0131E011CBSMsg.KEY_UPD_DTM, updDtm);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param, ECN0131E011CBSMsg.class , inMap, "1");

		//***************************************************
		// SC呼出実行
		//***************************************************
		printDebugLog("支払方法入力支援削除(PMP連携)SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("支払方法入力支援削除(PMP連携)SC呼び出し完了" + result);

		return result;
	}

	/**
	 * 督促データ抽出SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param sysid SYSID
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECH0231B010(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String sysid)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// 督促データ抽出SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECH0231B010CBSMsg.KEY_SYSID, sysid);

		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECH0231B010CBSMsg.class , inMap, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("督促データ抽出SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("督促データ抽出SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * ファミリー会員登録件数チェックSC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param grpJoinCd グループ入会コード
	 * @param popId POPID
	 * @param sysid SYSID
	 * @param svcKeiNo サービス契約番号
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0121B030(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String grpJoinCd, String popId, String sysid, String svcKeiNo)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// ファミリー会員登録件数チェックSCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECK0121B030CBSMsg.KEY_FUNC_CODE, funcCd);
		inMap.put(ECK0121B030CBSMsg.KEY_GRP_JOIN_CD, grpJoinCd);
		inMap.put(ECK0121B030CBSMsg.KEY_POP_ID, popId);
		inMap.put(ECK0121B030CBSMsg.KEY_SYSID, sysid);
		inMap.put(ECK0121B030CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
		
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECK0121B030CBSMsg.class , inMap, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("ファミリー会員登録件数チェックSC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("ファミリー会員登録件数チェックSC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * 業務パラメータ設定値取得SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param workParamId 業務パラメータ
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callEZM0321A010(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String workParamId)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// 業務パラメータ設定値取得SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EZM0321A010CBSMsg.KEY_WORK_PARAM_ID, workParamId);

		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, EZM0321A010CBSMsg.class , inMap, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("業務パラメータ設定値取得SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("業務パラメータ設定値取得SC呼び出し完了" + result);

		return result;
	}

	/**
	 * 連絡先一覧照会(PMP連携用)SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param sysid SYSID
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0201B030(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String sysid, String rrksNo)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// 連絡先一覧照会(PMP連携用)SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECK0201B030CBSMsg.KEY_SYSID, sysid);
		inMap.put(ECK0201B030CBSMsg.KEY_RRKS_NO, rrksNo);

		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECK0201B030CBSMsg.class , inMap, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("連絡先一覧照会(PMP連携用)SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("連絡先一覧照会(PMP連携用)SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * 連絡先登録SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param rrksCd 連絡先コード
	 * @param rrkWayCd 連絡方法コード
	 * @param rrksSbtCd 連絡先種別コード
	 * @param rrksBunruiCd 連絡先分類コード
	 * @param mlad メールアドレス
	 * @param telno 電話番号
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0201D010(SessionHandle handle, IRequestParameterReadWrite param, String sysid,
			String rrksCd, String rrkWayCd, String rrksSbtCd, String rrksBunruiCd, String mlad, String telno, String updDtmBf)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// 連絡先登録SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECK0201D010CBSMsg.SYSID, sysid);
		inMap.put(ECK0201D010CBSMsg.RRKS_CD, rrksCd);
		inMap.put(ECK0201D010CBSMsg.RRK_WAY_CD, rrkWayCd);
		inMap.put(ECK0201D010CBSMsg.RRKS_SBT_CD, rrksSbtCd);
		inMap.put(ECK0201D010CBSMsg.RRKS_BUNRUI_CD, rrksBunruiCd);
		inMap.put(ECK0201D010CBSMsg.MLAD, mlad);
		inMap.put(ECK0201D010CBSMsg.TELNO, telno);
		inMap.put(ECK0201D010CBSMsg.UPD_DTM_BF, updDtmBf);

		//HashMap<String, Object> paramMap = JCKBPCommon.createScParam(param, ECK0201D010CBSMsg.class , inMap, "1");
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECK0201D010CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("連絡先登録SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("連絡先登録SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * 連絡先メールアドレス本登録SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param rrksNo 連絡先番号
	 * @param mlad メールアドレス
	 * @param updDtm 更新年月日時分秒
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0201C030(SessionHandle handle, IRequestParameterReadWrite param, String rrksNo, String mlad, String updDtm)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// 連絡先メールアドレス本登録SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECK0201C030CBSMsg.RRKS_NO, rrksNo);
		inMap.put(ECK0201C030CBSMsg.MLAD, mlad);
		inMap.put(ECK0201C030CBSMsg.UPD_DTM_BF, updDtm);
		inMap.put(ECK0201C030CBSMsg.MLAD_CHGE_YMD, JCCBPCommon.getOpeDate(null));
		inMap.put(ECK0201C030CBSMsg.RSV_APLY_YMD, JCCBPCommon.getOpeDate(null));

		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param, ECK0201C030CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("連絡先メールアドレス本登録SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("連絡先メールアドレス本登録SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * 連絡先メールアドレス仮登録SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param rrksNo 連絡先番号
	 * @param mlad メールアドレス
	 * @param updDtm 更新年月日時分秒
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0201C020(SessionHandle handle, IRequestParameterReadWrite param, String rrksNo, String mlad, String updDtm)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// 連絡先メールアドレス仮登録SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECK0201C020CBSMsg.RRKS_NO, rrksNo);
		inMap.put(ECK0201C020CBSMsg.MLAD, mlad);
		inMap.put(ECK0201C020CBSMsg.UPD_DTM_BF, updDtm);
		inMap.put(ECK0201C020CBSMsg.RSV_APLY_YMD, null);

		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param,  ECK0201C020CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("連絡先メールアドレス仮登録SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("連絡先メールアドレス仮登録SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * 連絡先情報変更SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param rrksNo 連絡先番号
	 * @param telno 電話番号
	 * @param updDtm 更新年月日時分秒
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0201C010(SessionHandle handle, IRequestParameterReadWrite param, String rrksNo, String rrksSbtCd, String telno, String updDtm)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// 連絡先情報変更SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECK0201C010CBSMsg.RRKS_NO, rrksNo);
		inMap.put(ECK0201C010CBSMsg.TELNO, telno);
		inMap.put(ECK0201C010CBSMsg.RRKS_SBT_CD, rrksSbtCd);
		inMap.put(ECK0201C010CBSMsg.FAX_NO, null);
		inMap.put(ECK0201C010CBSMsg.NISNNO, null);
		inMap.put(ECK0201C010CBSMsg.UPD_DTM_BF, updDtm);
		inMap.put(ECK0201C010CBSMsg.RSV_APLY_YMD, JCCBPCommon.getOpeDate(null));

		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param,  ECK0201C010CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("連絡先情報変更SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("連絡先情報変更SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * ニックネーム変更SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param nkname ニックネーム
	 * @param custUpdDtmBf 更新年月日時分秒
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0011C090(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String nkname, String custUpdDtmBf)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// ニックネーム変更SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECK0011C090CBSMsg.SYSID, sysid);
		inMap.put(ECK0011C090CBSMsg.NKNAME, nkname);
		inMap.put(ECK0011C090CBSMsg.UPD_DTM_BF, custUpdDtmBf);
		inMap.put(ECK0011C090CBSMsg.NKNAME_CHGE_YMD, JCCBPCommon.getOpeDate(null));

		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param,  ECK0011C090CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("ニックネーム変更SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("ニックネーム変更SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * パスワードリマインダ変更SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param pwdReminderQsCd パスワードリマインダ用質問コード
	 * @param pwdReminderAns パスワードリマインダ用回答
	 * @param custUpdDtmBf 更新年月日時分秒
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0011C100(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String pwdReminderQsCd, String pwdReminderAns, String custUpdDtmBf)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// パスワードリマインダ変更SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECK0011C100CBSMsg.SYSID, sysid);
		inMap.put(ECK0011C100CBSMsg.PWD_REMINDER_QS_CD, pwdReminderQsCd);
		inMap.put(ECK0011C100CBSMsg.PWD_REMINDER_QS_NAIYO, null);
		inMap.put(ECK0011C100CBSMsg.PWD_REMINDER_ANS, pwdReminderAns);
		inMap.put(ECK0011C100CBSMsg.UPD_DTM_BF, custUpdDtmBf);

		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param,  ECK0011C100CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("パスワードリマインダ変更SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("パスワードリマインダ変更SC呼び出し完了" + result);

		return result;
	}
	

	/**
	 * サービス契約<ホスティング>登録SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callEKK0151D010(SessionHandle handle, IRequestParameterReadWrite param, String sysid)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// ＳＣへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EKK0151D010CBSMsg.SYSID, sysid);
		inMap.put(EKK0151D010CBSMsg.SVC_CD, SVC_CD_HOSTING );
		inMap.put(EKK0151D010CBSMsg.PRC_GRP_CD, PRGP_CD_SVC_CD_HOSTING);
		inMap.put(EKK0151D010CBSMsg.PCRS_CD, PCRS_CD_STDARD_CONT_DOI);
		inMap.put(EKK0151D010CBSMsg.PPLAN_CD, PPLAN_CD_STDARD_CONT_DOI);
		inMap.put(EKK0151D010CBSMsg.IDO_DIV, IDO_DIV_NWKE);
		inMap.put(EKK0151D010CBSMsg.AUTO_SHOSA_TRAN_STAT_CD, AUTO_SHOSA_TRAN_STAT_CD_TG);

		//HashMap<String, Object> paramMap = JCKBPCommon.createScParam(param,  EKK0151D010CBSMsg.class , inMap, "1");
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param,  EKK0151D010CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("サービス契約<ホスティング>登録SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("サービス契約<ホスティング>登録SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * サービス契約<ホスティング>照査SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param svcKeiNo サービス契約番号
	 * @param updDtmBf 更新年月日時分秒
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callEKK0151C010(SessionHandle handle, IRequestParameterReadWrite param, String svcKeiNo, String updDtmBf)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// ＳＣへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EKK0151C010CBSMsg.SVC_KEI_NO, svcKeiNo);
		inMap.put(EKK0151C010CBSMsg.IDO_DIV, IDO_DIV_NWKE);
		inMap.put(EKK0151C010CBSMsg.SHOSA_DSL_FIN_CD, null);
		inMap.put(EKK0151C010CBSMsg.UPD_DTM_BF, updDtmBf);

		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param,  EKK0151C010CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("サービス契約<ホスティング>照査SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("サービス契約<ホスティング>照査SC呼び出し完了" + result);

		return result;
	}

	/**
	 * サービス契約<ホスティング>締結SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param svcKeiNo サービス契約番号
	 * @param updDtmBf 更新年月日時分秒
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callEKK0151C020(SessionHandle handle, IRequestParameterReadWrite param, String svcKeiNo, String updDtmBf)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// ＳＣへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EKK0151C020CBSMsg.SVC_KEI_NO, svcKeiNo);
		inMap.put(EKK0151C020CBSMsg.IDO_DIV, IDO_DIV_NWKE);
		inMap.put(EKK0151C020CBSMsg.UPD_DTM_BF, updDtmBf);

		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param,  EKK0151C020CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("サービス契約<ホスティング>締結SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("サービス契約<ホスティング>締結SC呼び出し完了" + result);

		return result;
	}

	/**
	 * サービス契約<ホスティング>開始SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param svcKeiNo サービス契約番号
	 * @param svcStaYmd サービス開始年月日
	 * @param updDtmBf 更新年月日時分秒
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callEKK0151C030(SessionHandle handle, IRequestParameterReadWrite param, String svcKeiNo, String svcStaYmd, String updDtmBf)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// ＳＣへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EKK0151C030CBSMsg.SVC_KEI_NO, svcKeiNo);
		inMap.put(EKK0151C030CBSMsg.SVC_STA_YMD, svcStaYmd);
		inMap.put(EKK0151C030CBSMsg.IDO_DIV, IDO_DIV_NWKE);
		inMap.put(EKK0151C030CBSMsg.UPD_DTM_BF, updDtmBf);

		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param,  EKK0151C030CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("サービス契約<ホスティング>締結SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("サービス契約<ホスティング>締結SC呼び出し完了" + result);

		return result;
	}

	/**
	 * お客様グループ設定登録SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param grpCd グループコード
	 * @param updDtmBf 更新年月日時分秒
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0121D010(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String grpCd, String updDtmBf)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// お客様グループ設定登録SC呼出への上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECK0121D010CBSMsg.SYSID, sysid);
		inMap.put(ECK0121D010CBSMsg.GRP_CD, grpCd);
		inMap.put(ECK0121D010CBSMsg.UPD_DTM_BF, updDtmBf);

		//HashMap<String, Object> paramMap = JCKBPCommon.createScParam(param,  ECK0121D010CBSMsg.class , inMap, "1");
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param,  ECK0121D010CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("お客様グループ設定登録SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("お客様グループ設定登録SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * 支払方法入力支援登録SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param svcKeiNo サービス契約番号
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECN0131D010ForIspks(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String svcKeiNo)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// 支払方法入力支援登録SC呼出への上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECN0131D010CBSMsg.SYSID, sysid);
		inMap.put(ECN0131D010CBSMsg.PAYWAY_INPUT_SHIEN_CD, PAYWAY_INPSUP_CD_ISPKS);
		inMap.put(ECN0131D010CBSMsg.ISP_KSSAI_SVC_KEI_NO, svcKeiNo);

		//HashMap<String, Object> paramMap = JCKBPCommon.createScParam(param,  ECN0131D010CBSMsg.class , inMap, "1");
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param,  ECN0131D010CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("支払方法入力支援登録SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("支払方法入力支援登録SC呼び出し完了" + result);

		return result;
	}

	/**
	 * 
	 * 支払方法入力支援更新(PMP連携用)SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param paywayNo 支払い方法番号
	 * @param updDtm 更新年月日時分秒
	 * @param paywayInputShienCd 支払い方法入力支援コード
	 * @param ispKssaiSvcKeiNo ISP決済サービス契約番号
	 * @param tsyrnPaySeq 他システム連携支払い通番
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECN0131C011(SessionHandle handle, IRequestParameterReadWrite param,
												String paywayNo, String updDtm, String paywayInputShienCd,
												String ispKssaiSvcKeiNo, String tsyrnPaySeq)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// 支払方法入力支援登録SC呼出への上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECN0131C011CBSMsg.KEY_PAYWAY_NO, paywayNo);
		inMap.put(ECN0131C011CBSMsg.KEY_UPD_DTM, updDtm);
		inMap.put(ECN0131C011CBSMsg.PAYWAY_INPUT_SHIEN_CD, paywayInputShienCd);
		inMap.put(ECN0131C011CBSMsg.CRECARD_ID, null);
		inMap.put(ECN0131C011CBSMsg.ISP_KSSAI_SVC_KEI_NO, ispKssaiSvcKeiNo);
		inMap.put(ECN0131C011CBSMsg.TSYRN_PAY_SEQ, tsyrnPaySeq);

		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param,  ECN0131C011CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("支払方法入力支援更新(PMP連携用)SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("支払方法入力支援更新(PMP連携用)SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * エイジング対象登録SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param agingSbtCd エイジング種別コード
	 * @param agingTgValue エイジング対象値
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callEZM0111D010(SessionHandle handle, IRequestParameterReadWrite param, String agingSbtCd, String agingTgValue)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// エイジング対象登録SC呼出への上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EZM0111D010CBSMsg.AGING_SBT_CD, agingSbtCd);
		inMap.put(EZM0111D010CBSMsg.AGING_TG_VALUE,agingTgValue);

		//HashMap<String, Object> paramMap = JCKBPCommon.createScParam(param, EZM0111D010CBSMsg.class , inMap, "1");
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, EZM0111D010CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("エイジング対象登録SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("エイジング対象登録SC呼び出し完了" + result);

		return result;
	}
	
	
	/**
	 * お客様＜個人＞仮登録SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param dataMap マップ
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0021D020(SessionHandle handle, IRequestParameterReadWrite param,  Map<Object, Object> dataMap)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// お客様＜個人＞仮登録SC呼出への上りマッピング 
		//***************************************************
		//HashMap<String, Object> paramMap = JCKBPCommon.createScParam(param,  ECK0021D020CBSMsg.class , dataMap, "1");
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param,  ECK0021D020CBSMsg.class , dataMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("お客様＜個人＞仮登録SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("お客様＜個人＞仮登録SC呼び出し完了" + result);

		return result;
	}

	/**
	 * お客様＜個人＞登録SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param dataMap マップ
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0021D010(SessionHandle handle, IRequestParameterReadWrite param,  Map<Object, Object> dataMap)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// お客様＜個人＞登録SC呼出への上りマッピング 
		//***************************************************
		//HashMap<String, Object> paramMap = JCKBPCommon.createScParam(param,  ECK0021D010CBSMsg.class , dataMap, "1");
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param,  ECK0021D010CBSMsg.class , dataMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("お客様＜個人＞登録SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("お客様＜個人＞登録SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * お客様<個人>内容変更SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param dataMap マップ
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0021C010(SessionHandle handle, IRequestParameterReadWrite param,  Map<Object, Object> dataMap)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// お客様<個人>内容変更SC呼出への上りマッピング 
		//***************************************************
		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param,  ECK0021C010CBSMsg.class , dataMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("お客様<個人>内容変更SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("お客様<個人>内容変更SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * お客様<法人>内容変更SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param dataMap マップ
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0031C010(SessionHandle handle, IRequestParameterReadWrite param,  Map<Object, Object> dataMap)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// お客様<法人>内容変更SC呼出への上りマッピング 
		//***************************************************
		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param,  ECK0031C010CBSMsg.class , dataMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("お客様<法人>内容変更SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("お客様<法人>内容変更SC呼び出し完了" + result);

		return result;
	}

	/**
	 * オプトインメール受信設定登録SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param optinmNo オプトインメール番号
	 * @param mlad メールアドレス
	 * @param rcvDiv 受信区分
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0141D010(SessionHandle handle, IRequestParameterReadWrite param,  String sysid, String optinmNo, String mlad, String rcvDiv,String updDtmBf)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// オプトインメール受信設定登録SC呼出への上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		
		inMap.put(ECK0141D010CBSMsg.OPTINM_NO, optinmNo);
		inMap.put(ECK0141D010CBSMsg.SYSID, sysid);
		inMap.put(ECK0141D010CBSMsg.MLAD, mlad);
		inMap.put(ECK0141D010CBSMsg.RCV_DIV, rcvDiv);
		inMap.put(ECK0141D010CBSMsg.RCV_SETTE_YMD, JCCBPCommon.getOpeDate(null));
		inMap.put(ECK0141D010CBSMsg.UPD_DTM_BF, updDtmBf);

		//HashMap<String, Object> paramMap = JCKBPCommon.createScParam(param,  ECK0141D010CBSMsg.class , inMap, "1");
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param,  ECK0141D010CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("オプトインメール受信設定登録SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("オプトインメール受信設定登録SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * オプトインメール受信設定変更SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param optinmNo オプトインメール番号
	 * @param mlad メールアドレス
	 * @param rcvDiv 受信区分
	 * @param updDtmBf 更新年月日時分秒
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0141C020(SessionHandle handle, IRequestParameterReadWrite param, 
			String sysid, String optinmNo, String mlad, String rcvDiv, String updDtmBf)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// オプトインメール受信設定変更SC呼出への上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		
		inMap.put(ECK0141C020CBSMsg.OPTINM_NO, optinmNo);
		inMap.put(ECK0141C020CBSMsg.SYSID, sysid);
		inMap.put(ECK0141C020CBSMsg.MLAD, mlad);
		inMap.put(ECK0141C020CBSMsg.RCV_DIV, rcvDiv);
		inMap.put(ECK0141D010CBSMsg.RCV_SETTE_YMD, JCCBPCommon.getOpeDate(null));
		inMap.put(ECK0141C020CBSMsg.RCV_RLS_YMD, null);
		inMap.put(ECK0141C020CBSMsg.UPD_DTM_BF, updDtmBf);

		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param,  ECK0141C020CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("オプトインメール受信設定変更SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("オプトインメール受信設定変更SC呼び出し完了" + result);

		return result;
	}

	/**
	 * eoID変更SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param eoid EOID
	 * @param updDtm 更新年月日時分秒
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0011C030(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String eoid, String updDtm)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// eoID変更SC呼出への上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		
		inMap.put(ECK0011C030CBSMsg.SYSID, sysid);
		inMap.put(ECK0011C030CBSMsg.EOID, eoid);
		inMap.put(ECK0011C030CBSMsg.EOID_CHGE_YMD, JCCBPCommon.getOpeDate(null));
		inMap.put(ECK0011C030CBSMsg.UPD_DTM_BF, updDtm);

		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param, ECK0011C030CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("eoID変更SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("eoID変更SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * オプトインメール一覧照会SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0131B020(SessionHandle handle, IRequestParameterReadWrite param, String funcCd)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// オプトインメール一覧照会SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECK0131B020CBSMsg.class , inMap, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("オプトインメール一覧照会SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("オプトインメール一覧照会SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * マスター会員情報照会SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param sysid SYSID
	 * @param eoid EOID
	 * @param popId POPID
	 * @param shkEoid 初期eoID
	 * @param shkEoidPwd 初期eoIDパスワード
	 * @param grpJoinCd グループ入会コード
	 * @param svcKeiNo サービス契約番号
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0011B060(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String sysid, String eoid,
			String popid, String shkEoid, String shkEoidPwd, String grpJoinCd, String svcKeiNo)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// マスター会員情報照会SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		
		inMap.put(ECK0011B060CBSMsg.KEY_FUNC_CODE, funcCd);
		inMap.put(ECK0011B060CBSMsg.KEY_SYSID, sysid);
		inMap.put(ECK0011B060CBSMsg.KEY_EOID, eoid);
		inMap.put(ECK0011B060CBSMsg.KEY_POP_ID, popid);
		inMap.put(ECK0011B060CBSMsg.KEY_SHK_EOID, shkEoid);
		inMap.put(ECK0011B060CBSMsg.KEY_SHK_EOID_PWD, shkEoidPwd);
		inMap.put(ECK0011B060CBSMsg.KEY_GRP_JOIN_CD, grpJoinCd);
		inMap.put(ECK0011B060CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);

		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECK0011B060CBSMsg.class , inMap, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("マスター会員情報照会SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("マスター会員情報照会SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * 回線契約状態(督促ステータス)チェックSC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param svcKeiNo サービス契約番号
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECH0231B020(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String svcKeiNo)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// 回線契約状態(督促ステータス)チェックSCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		
		inMap.put(ECH0231B020CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
		

		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECH0231B020CBSMsg.class , inMap, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("回線契約状態(督促ステータス)チェックSC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("回線契約状態(督促ステータス)チェックSC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * 会員種別変更SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid  SYSID
	 * @param memberSbtCd 会員種別コード
	 * @param updDtm 更新年月日時分秒
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0011C120(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String memberSbtCd, String updDtm)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// 会員種別変更SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		
		inMap.put(ECK0011C120CBSMsg.SYSID, sysid);
		inMap.put(ECK0011C120CBSMsg.MEMBER_SBT_CD, memberSbtCd);
		inMap.put(ECK0011C120CBSMsg.UPD_DTM_BF, updDtm);

		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param, ECK0011C120CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("会員種別変更SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("会員種別変更SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * 支払方法入力支援削除(SYSID指定)。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @return 返却データ(編集された実行結果)<br /><br />
	 *          ◆結果は以下の内容で格納されます。
	 *          <style>table {border-collapse:collapse;} th{background:#999999;} th,td{border:1px solid #000000;padding:8px;}</style><table><tr><th>項目名</th><th>マップキー名</th><th>内容</th></tr><tr><td>サービスインターフェイス実行結果</td><td>result</td><td>最後に実行したサービスインターフェイス実行結果</td></tr><tr><td valign="top">支払方法入力支援情報リスト</td><td valign="top">payway_insuport_list</td><td>削除した支払い方法入力支援のデータ一覧(List)<table><tr><th>添え字</th><th>内容</th></tr><tr><td>0〜n</td><td>削除したレコードの情報(Map)<table><tr><th>項目名</th><th>マップキー名</th></tr><tr><td>支払方法番号</td><td>payway_no</td></tr><tr><td>更新年月日時分秒</td><td>upd_dtm</td></tr><tr><td>他システム連携支払い通番</td><td>tsyrn_pay_seq</td></tr><tr><td>支払方法入力支援コード</td><td>payway_input_shien_cd</td></tr><tr><td>ISP決済サービス契約番号</td><td>isp_kssai_svc_kei_no</td></tr><tr><td>クレジットカードID</td><td>crecard_id</td></tr><tr><td>督促ステータス</td><td>tokusoku_stat</td></tr><tr><td>無効フラグ</td><td>mk_flg</td></tr><tr><td>登録年月日時分秒</td><td>add_dtm</td></tr><tr><td>登録オペレータアカウント</td><td>add_opeacnt</td></tr><tr><td>更新年月日時分秒</td><td>upd_dtm</td></tr><tr><td>更新オペレータアカウント</td><td>upd_opeacnt</td></tr></table></td></tr></table></th></tr></table>
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	@SuppressWarnings("unchecked")
	public static Map<?, ?> delPaywayInsuportInfo(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String sysid)
			throws RequestParameterException, SCException
	{
		Map resMap = new HashMap();

		List paywayInsuportList = new ArrayList();

		Map<?, ?> result = callECN0131B006(handle, param, sysid);
		if (isSuccess(result))
		{
			CAANMsg[] list = getResultMsgList(result, ECN0131B006CBSMsg.ECN0131B006CBSMSGLIST);
			for (int i = 0;  i < list.length; i++)
			{
				CAANMsg rec = list[i];
				String paywayNo = rec.getString(ECN0131B006CBSMsgList.PAYWAY_NO);
				String updDtm = rec.getString(ECN0131B006CBSMsgList.UPD_DTM);
				String tsyrnPaySeq = rec.getString(ECN0131B006CBSMsgList.TSYRN_PAY_SEQ);
				String paywayInputShienCd = rec.getString(ECN0131B006CBSMsgList.PAYWAY_INPUT_SHIEN_CD);
				String ispKssaiSvcKeiNo = rec.getString(ECN0131B006CBSMsgList.ISP_KSSAI_SVC_KEI_NO);
				String crecardId = rec.getString(ECN0131B006CBSMsgList.CRECARD_ID);
				String tokusokuStat = null;
				String addDtm       = rec.getString(ECN0131B006CBSMsgList.ADD_DTM);
				String addOpeacnt   = rec.getString(ECN0131B006CBSMsgList.ADD_OPEACNT);

				// ISP決済の時は督促ステータスの取得
				if (PAYWAY_INPSUP_CD_ISPKS.equals(paywayInputShienCd))
				{
					result = callECH0231B020(handle, param, "1", ispKssaiSvcKeiNo);
					if (isError(result))
					{
						break;
					}
					tokusokuStat = getResultString(result, ECH0231B020CBSMsg.ECH0231B020CBSMSG1LIST + "[0]." + ECH0231B020CBSMsg1List.TOKUSOKU_STAT);
				}

				// 機能コード＝1（全て削除）、又は、機能コード＝2(ISP決済のみ削除) ＆ ISP決済データの場合、削除
				if (("1".equals(funcCd)) || (("2".equals(funcCd)) && (PAYWAY_INPSUP_CD_ISPKS.equals(paywayInputShienCd))))
				{
					result = callECN0131E011(handle, param, paywayNo, updDtm);
					if (isError(result))
					{
						break;
					}

					Map updRes = new HashMap();
					updRes.put("payway_no", paywayNo);
					updRes.put("tsyrn_pay_seq", tsyrnPaySeq);
					updRes.put("payway_input_shien_cd", paywayInputShienCd);
					updRes.put("isp_kssai_svc_kei_no", ispKssaiSvcKeiNo);
					updRes.put("crecard_id", crecardId);
					updRes.put("tokusoku_stat", tokusokuStat);
					updRes.put("mk_flg", getResultString(result, ECN0131E011CBSMsg.MK_FLG));
					updRes.put("add_dtm", addDtm);
					updRes.put("add_opeacnt", addOpeacnt);
					updRes.put("upd_dtm", getResultString(result, ECN0131E011CBSMsg.UPD_DTM));
					updRes.put("upd_opeacnt", getResultString(result, ECN0131E011CBSMsg.UPD_OPEACNT));
					paywayInsuportList.add(updRes);
				}
			}
		}

		resMap.put("result", result);
		resMap.put("payway_insuport_list", paywayInsuportList);

		return resMap;
	}

	/**
	 * 支払方法入力支援一覧照会SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @return ＳＣ実行結果
	 */
	public static Map<?, ?> callECN0131B006(SessionHandle handle, IRequestParameterReadWrite param, String sysid)
			throws RequestParameterException, SCException
	{
		//***************************************************
		// 支払方法入力支援一覧照会SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();

		inMap.put(ECN0131B006CBSMsg.KEY_SYSID, sysid);

		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECN0131B006CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("支払方法入力支援一覧照会SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("支払方法入力支援一覧照会SC呼び出し完了" + result);

		return result;
	}

	/**
	 * お客様名寄せSC呼出<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param inMap 入力パラメータマップ
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0011C080Map(SessionHandle handle, IRequestParameterReadWrite param, Map<Object, Object> inMap)
			throws RequestParameterException, SCException
	{
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECK0011C080CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("お客様名寄せSC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("お客様名寄せSC呼び出し完了" + result);

		return result;
	}

	/**
	 * 工事案件名寄せ変更SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid 名寄せされるSYSID
	 * @param nayoseSakiSysid 名寄せ先SYSID
	 * @return ＳＣ実行結果
	 */
	public static Map<?, ?> callEKU0011C020(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String nayoseSakiSysid)
			throws RequestParameterException, SCException
	{
		//***************************************************
		// SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();

		inMap.put(EKU0011C020CBSMsg.SYSID_BF, sysid);
		inMap.put(EKU0011C020CBSMsg.SYSID, nayoseSakiSysid);
		inMap.put(EKU0011C020CBSMsg.KOJI_UK_OPTNTY_IDO_DTM, JCCBPCommon.getOpeDateTimeStamp(null));

		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, EKU0011C020CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("工事案件名寄せ変更SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("工事案件名寄せ変更SC呼び出し完了" + result);

		return result;
	}

	/**
	 * エラーログ出力
	 * @param errMsg エラーメッセージ
	 */
	@SuppressWarnings("unchecked")
	public static void printErrorLog(String errMsg){
		StackTraceElement[] steAll = Thread.currentThread().getStackTrace();
		String errorInfo = "";
		if (steAll.length >= 3) {
			StackTraceElement ste = steAll[2];
			errorInfo = "\n	at " + ste.getClassName() + "." + ste.getMethodName() + "(" + ste.getFileName() + ":" + ste.getLineNumber()+")"+ "\n";
		}
		Class cls = getTargetClass();
		JSYbpmLog.println(JSYLogBase.ERROR, cls , errorInfo, MessageID.DEB_X21_DEBUG_MSG,  new String[]{"### CCでエラー発生 ###", errMsg } , "");
	}

	/**
	 * デバッグログ出力
	 * @param debugMsg デバッグメッセージ
	 */
	@SuppressWarnings("unchecked")
	public static void printDebugLog(String debugMsg){
		Class cls = getTargetClass();
		JSYbpmLog.println(JSYLogBase.DEBUG, cls , debugMsg, MessageID.DEB_X21_DEBUG_MSG,  new String[]{"", ""}, "");
	}

	/**
	 * オブジェクトダンプログ出力
	 * @param objName オブジェクト名
	 * @param dumpObj ダンプするオブジェクト
	 */
	@SuppressWarnings("unchecked")
	public static void printDumpLog(String objName, Object dumpObj){
		Class cls = getTargetClass();
		JSYbpmLog.println(JSYLogBase.Message_Dump, cls , dumpObj , MessageID.DEB_X21_DEBUG_MSG,  new String[]{"### オブジェクト", objName}, " ###");
	}

	/**
	 * 呼出元のクラスを取得する。
	 * @return クラスClass
	 */
	@SuppressWarnings("unchecked")
	private static Class getTargetClass(){
		StackTraceElement[] steAll = Thread.currentThread().getStackTrace();
		StackTraceElement ste = steAll[3];
		Class cls = null;
		try {
			cls = Class.forName(ste.getClassName());
		} catch (ClassNotFoundException e) {
			// スタックトレースからの参照の為、Classが存在しない事はありえない
		}
		return cls;
	}

	/**
	 * グループ入会コードパスワード存在チェック<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param grpJoinCd グループ入会コード
	 * @param grpJoinCdPwd グループ入会コードパスワード
	 * @return チェック結果(true:該当データ有り、false:該当データ無し)
	 * @throws Throwable
	 */
	public static boolean checkGrpJoinCdPwd(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String grpJoinCd, String grpJoinCdPwd) throws Throwable
	{
		//***************************************************
		// グループ入会コード・パスワード存在チェック（PMP連携用）SCへの上りマッピング 
		//***************************************************
		String templateId = "ECK0111B020";
		Map<Object, Object> param4serviceIf = new HashMap<Object, Object>();
		param4serviceIf.put(ECK0111B020CBSMsg.FUNC_CODE, funcCd);
		param4serviceIf.put(ECK0111B020CBSMsg.KEY_FUNC_CODE, funcCd);
		param4serviceIf.put(ECK0111B020CBSMsg.KEY_GRP_JOIN_CD, grpJoinCd);
		param4serviceIf.put(ECK0111B020CBSMsg.KEY_GRP_JOIN_CD_PWD, grpJoinCdPwd);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, templateId, ECK0111B020CBSMsg.class , param4serviceIf, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("グループ入会コード存在チェック(PMP連携用)SC呼び出し開始（ 機能コード：" + funcCd
				+ "、グループ入会コード" + grpJoinCd + "、グループ入会コードパスワード" + grpJoinCdPwd + " ）");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("グループ入会コード存在チェック(PMP連携用)SC呼び出し完了" + result);
		if (isSuccess(result))
		{
			String grpCd = JCNDslScParamHenshu.getResultString(result,
					ECK0111B020CBSMsg.ECK0111B020CBSMSG1LIST + "[0]."
							+ ECK0111B020CBSMsg1List.GRP_CD);
			if ((grpCd != null) && (!"".equals(grpCd)))
			{
				return true;
			}
		}
		else
		{
			// return false; // ここでは "対象値の存在有無" のみをチェックする為、ドメイン・桁数エラーは返却しない。
		}
		return false;
	}

	/**
	 * POPID存在チェック<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param value 対象値
	 * @return チェック結果(true:該当データ有り、false:該当データ無し)
	 * @throws Throwable
	 */
	public static boolean checkPopId(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String value) throws Throwable
	{
		//***************************************************
		// POPID存在チェック（PMP連携用）SCへの上りマッピング 
		//***************************************************
		String templateId = "EKK0361B020";
		Map<Object, Object> param4serviceIf = new HashMap<Object, Object>();
		param4serviceIf.put(EKK0361B020CBSMsg.FUNC_CODE, funcCd);
		param4serviceIf.put(EKK0361B020CBSMsg.KEY_POPID, value);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, templateId, EKK0361B020CBSMsg.class , param4serviceIf, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("POPID存在チェック(PMP連携用)SC呼び出し開始（ 機能コード：" + funcCd + "、POPID" + value + " ）");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("POPID存在チェック(PMP連携用)SC呼び出し完了" + result);
		if (isSuccess(result))
		{
			String opSvcKeiNo = JCNDslScParamHenshu.getResultString(result,
					EKK0361B020CBSMsg.EKK0361B020CBSMSG1LIST + "[0]."
							+ EKK0361B020CBSMsg1List.OP_SVC_KEI_NO);
			if ((opSvcKeiNo != null) && (!"".equals(opSvcKeiNo)))
			{
				return true;
			}
		}
		else
		{
			// return false; // ここでは "対象値の存在有無" のみをチェックする為、ドメイン・桁数エラーは返却しない。
		}
		return false;
	}

	/**
	 * ファミリー会員登録件数チェック<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param grpJoinCd グループ入会コード
	 * @param popId POPID
	 * @param sysid SYSID
	 * @param svcKeiNo サービス契約番号
	 * @param workParamId 業務パラメータID
	 * @return チェック結果(true:登録件数内、false:登録件数オーバー)
	 * @throws Throwable
	 */
	public static boolean checkFamilyMmbAddCnt(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String grpJoinCd, String popId, String sysid, String svcKeiNo, String workParamId) throws Throwable
	{
		String familyCnt = null;
		String workParamSetteValue = null;

		// ファミリー会員登録件数チェックSC呼出
		Map<?, ?> result = callECK0121B030(handle, param, funcCd, grpJoinCd, popId, sysid, svcKeiNo);

		// 「ファミリー会員登録件数」取得
		if (isSuccess(result)) {
			familyCnt = getResultString(result, ECK0121B030CBSMsg.ECK0121B030CBSMSG1LIST + "[0]." + ECK0121B030CBSMsg1List.FAMILY_CNT);
			familyCnt = (familyCnt == null) ? "0" : familyCnt;
		}

		// 業務パラメータ設定値取得SC呼出
		result = callEZM0321A010(handle, param, "1", workParamId);

		// 「ファミリー会員最大登録件数」取得
		if (isSuccess(result)) {
			workParamSetteValue = getResultString(result, EZM0321A010CBSMsg.EZM0321A010CBSMSG1LIST + "[0]." + EZM0321A010CBSMsg1List.WORK_PARAM_SETTE_VALUE);
		}

		// 値が取得できない場合、trueを返却
		if (familyCnt == null || "".equals(familyCnt) || workParamSetteValue == null || "".equals(workParamSetteValue))
		{
			return true;
		}

		// 登録件数チェック ※「ファミリー会員最大登録件数」<= 「ファミリー会員登録件数」の場合
		if (workParamSetteValue.compareTo(familyCnt) <= 0)
		{
			return false;
		}

		return true;
	}

	/**
	 * eoID禁則文字チェック<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param eoID eoid
	 * @return チェック結果(true:禁則文字チェックOK、false:禁則文字チェックエラー)
	 * @throws Throwable
	 */
	public static boolean checkEoidErrMoji(SessionHandle handle, IRequestParameterReadWrite param, String eoid) throws Throwable
	{
		// 51で始まる12桁の数値 かどうかをチェックする
		if (eoid != null && eoid.matches("51[0-9]{10}"))
		{
			return false;
		}
		
		return true;
	}

	/**
	 * 拒否メールドメインチェック<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param mailDomain メールドメイン
	 * @return チェック結果(true:該当データ無し、false:該当データ有り)
	 * @throws Throwable
	 */
	public static boolean checkKyohiMailDomain(SessionHandle handle, IRequestParameterReadWrite param, String mailDomain) throws Throwable
	{
		String opeDate = JCCBPCommon.getOpeDate(null);
		
		//***************************************************
		// NGワード一覧照会SCへの上りマッピング 
		//***************************************************
		String templateId = "EZM0161B010";
		Map<Object, Object> param4serviceIf = new HashMap<Object, Object>();
		param4serviceIf.put(EZM0161B010CBSMsg.FUNC_CODE, "1");
		param4serviceIf.put(EZM0161B010CBSMsg.KEY_NG_WORD_CD, NG_WORD_CD_MAIL_DOMAIN);
		param4serviceIf.put(EZM0161B010CBSMsg.KEY_NG_WORD_APLY_PRD_STA, opeDate);
		param4serviceIf.put(EZM0161B010CBSMsg.KEY_NG_WORD_APLY_PRD_END, opeDate);
		param4serviceIf.put(EZM0161B010CBSMsg.DISPLAY_NUM, "10000");
		param4serviceIf.put(EZM0161B010CBSMsg.MAX_SEARCH_NUM, "10000");
		param4serviceIf.put(EZM0161B010CBSMsg.DISPLAY_PAGE_NUM, "1");

		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, templateId, EZM0161B010CBSMsg.class , param4serviceIf, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("NGワード一覧照会SC呼び出し開始（ メールドメイン：" + mailDomain + " ）");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("NGワード一覧照会SC呼び出し完了" + result);

		Map<String, String> ngWordMap = new HashMap<String, String>();
		
		if (isSuccess(result))
		{
			// NGワード一覧の結果リストを取得し、Mapにセット
			CAANMsg[] list = getResultMsgList(result, EZM0161B010CBSMsg.EZM0161B010CBSMSG1LIST);
			for (int i = 0;  i < list.length; i++)
			{
				CAANMsg rec = list[i];
				ngWordMap.put(rec.getString(EZM0161B010CBSMsg1List.NG_WORD_NO), rec.getString(EZM0161B010CBSMsg1List.NG_WORD));
			}

			// NGワードMAPに引数のメールドメインが存在するかチェックする。
			int index = 0;
			for (int i = 0; i < mailDomain.split("\\.").length; i++)
			{
				if (ngWordMap.containsValue(mailDomain.substring(index)))
				{
					return false;
				}
				index = mailDomain.indexOf(".", index + 1) + 1;
			}
		
		}
		else
		{
			// return false; // ここでは "対象値の存在有無" のみをチェックする為、ドメイン・桁数エラーは返却しない。
		}


		return true;
	}

	/**
	 * 同一人チェック<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param nmKana 氏名カナ
	 * @param birthd 生年月日
	 * @param mlad メールアドレス
	 * @param sysid SYSID
	 * @return チェック結果(true:該当データ無し、false:該当データ有り)
	 * @throws Throwable
	 */
	public static boolean checkSameMmb(SessionHandle handle, IRequestParameterReadWrite param, String nmKana, String birthd, String mlad, String sysid) throws Throwable
	{
		//***************************************************
		// 同一人チェック(PMP連携用)SCへの上りマッピング 
		//***************************************************
		String templateId = "ECK0011B070";
		Map<Object, Object> param4serviceIf = new HashMap<Object, Object>();
		param4serviceIf.put(ECK0011B070CBSMsg.KEY_FUNC_CODE, "2");
		param4serviceIf.put(ECK0011B070CBSMsg.KEY_CUST_KANA, nmKana);
		param4serviceIf.put(ECK0011B070CBSMsg.KEY_CUST_KANA_CHOKUON, replaceYouonToChokuon(nmKana));
		param4serviceIf.put(ECK0011B070CBSMsg.KEY_CUST_BIRTHD, birthd);
		param4serviceIf.put(ECK0011B070CBSMsg.KEY_MLAD, mlad);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, templateId, ECK0011B070CBSMsg.class , param4serviceIf, "2");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("同一人チェック(PMP連携用)SC呼び出し開始（ 氏名カナ：" + nmKana + "、生年月日：" + birthd +  "、メールアドレス：" + mlad + "、SYSID：" + sysid + " ）");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("同一人チェック(PMP連携用)SC呼び出し完了" + result);
		if (isSuccess(result))
		{
			String retSysid = JCNDslScParamHenshu.getResultString(result,
					ECK0011B070CBSMsg.ECK0011B070CBSMSG1LIST + "[0]."
							+ ECK0011B070CBSMsg1List.SYSID);
			if (retSysid != null && !"".equals(retSysid) && !retSysid.equals(sysid))
			{
				return false;
			}
		}
		else
		{
			// return false; // ここでは "対象値の存在有無" のみをチェックする為、ドメイン・桁数エラーは返却しない。
		}
		return true;
	}

	/**
	 * 変更不可期間チェック<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param workParamId 業務パラメータID
	 * @param chgeYmd 変更年月日
	 * @return チェック結果(true:変更可能、false:変更不可期間内)
	 * @throws Throwable 
	 */
	public static boolean checkUpdFailPrd(SessionHandle handle, IRequestParameterReadWrite param, String workParamId, String chgeYmd) throws Throwable
	{
		String opeDate = JCCBPCommon.getOpeDate(null);

		String workParamSetteValue = null;

		if (JCNBPCommon.isNullOrBlank(chgeYmd))
		{
			return true;
		}
		
		// 業務パラメータ設定値取得SC呼出
		Map<?, ?> result = callEZM0321A010(handle, param, "1", workParamId);

		// 変更不可日数の取得
		if (isSuccess(result)) {
			workParamSetteValue = getResultString(result, EZM0321A010CBSMsg.EZM0321A010CBSMSG1LIST + "[0]." + EZM0321A010CBSMsg1List.WORK_PARAM_SETTE_VALUE);
		}

		// 値が取得できない場合、trueを返却
		if (workParamSetteValue == null || "".equals(workParamSetteValue))
		{
			return true;
		}

		// 変更不可期限(変更不可日数 + パラメータの変更年月日)
		String updFailKigen = JCCBPCommon.addDay(chgeYmd, Integer.parseInt(workParamSetteValue));

		// 変更不可期限 ≧ 運用日付 の場合
		if (updFailKigen.compareTo(opeDate) >= 0)
		{
			return false;
		}

		return true;
	}

	/**
	 * 連絡先(メールアドレス)登録更新<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param rrksFuncCd 連絡先機能コード（1：本登録、2：仮登録）
	 * @param sysid SYSID
	 * @param mlad メールアドレス
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @return ＳＣ実行結果
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public static Map<?, ?> addUpdRrksMlad(SessionHandle handle, IRequestParameterReadWrite param, String rrksFuncCd, String sysid, String mlad, String updDtmBf) throws Throwable
	{
		Map returnMap = new HashMap();
		String rrksNo = null;

		// 連絡先一覧照会(PMP連携用)SC呼出
		Map<?, ?> result = callECK0201B030(handle, param, "5", sysid, null);

		// 実行結果判定
		if (isError(result)) {
			returnMap.put("result", result);
			return returnMap;
		}
		// 連絡先番号
		rrksNo = getResultString(result, ECK0201B030CBSMsg.ECK0201B030CBSMSG1LIST + "[0]." + ECK0201B030CBSMsg1List.RRKS_NO);

		// 連絡先番号が取得できない場合
		if (rrksNo == null || "".equals(rrksNo))
		{
			// 連絡先登録
			result = callECK0201D010(handle, param, sysid, "", RRK_WAY_CD_MLAD, RRKS_SBT_CD_HOME, RRKS_BUNRUI_CD_CONT, mlad, "", updDtmBf);
			// 実行結果判定
			if (isError(result))
			{
				returnMap.put("result", result);
				return returnMap;
			}
			// 連絡先番号
			rrksNo = getResultString(result, ECK0201D010CBSMsg.RRKS_NO);
			// 最終更新年月日時分秒
			updDtmBf = getResultString(result, ECK0201D010CBSMsg.UPD_DTM);
		}
		// 連絡先番号が取得でき、本登録の場合
		else if("1".equals(rrksFuncCd))
		{
			// 連絡先メールアドレス本登録SC呼出
			result = callECK0201C030(handle, param, rrksNo, mlad, updDtmBf);
			// 実行結果判定
			if (isError(result))
			{
				returnMap.put("result", result);
				return returnMap;
			}
			// 最終更新年月日時分秒
			updDtmBf = getResultString(result, ECK0201C030CBSMsg.UPD_DTM);
		}

		// 仮登録の場合
		if("2".equals(rrksFuncCd))
		{
			// 連絡先メールアドレス仮登録SC呼出
			result = callECK0201C020(handle, param, rrksNo, mlad, updDtmBf);
			// 実行結果判定
			if (isError(result))
			{
				returnMap.put("result", result);
				return returnMap;
			}
			// 最終更新年月日時分秒
			updDtmBf = getResultString(result, ECK0201C020CBSMsg.UPD_DTM);
		}

		returnMap.put("result", result);
		returnMap.put("upd_dtm_sysid", updDtmBf);

		return returnMap;
	}

	/**
	 * 連絡先(電話番号)登録更新<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param telno 電話番号
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @return ＳＣ実行結果
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public static Map<?, ?> addUpdRrksTelno(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String telno, String updDtmBf) throws Throwable
	{
		Map returnMap = new HashMap();
		String rrksNo = null;
		String rrksSbtCd = null;

		// 連絡先一覧照会(PMP連携用)SC呼出
		Map<?, ?> result = callECK0201B030(handle, param, "4", sysid, null);

		// 実行結果取得
		if (isSuccess(result)) {
			// 連絡先番号
			rrksNo = getResultString(result, ECK0201B030CBSMsg.ECK0201B030CBSMSG1LIST + "[0]." + ECK0201B030CBSMsg1List.RRKS_NO);
			rrksSbtCd = getResultString(result, ECK0201B030CBSMsg.ECK0201B030CBSMSG1LIST + "[0]." + ECK0201B030CBSMsg1List.RRKS_SBT_CD);
		}

		// 連絡先番号が取得できない場合
		if (rrksNo == null || "".equals(rrksNo))
		{
			// 連絡先登録
			result = callECK0201D010(handle, param, sysid, "", RRK_WAY_CD_TELNO, RRKS_SBT_CD_HOME, RRKS_BUNRUI_CD_CONT, "", telno, updDtmBf);
			// 実行結果判定
			if (isError(result))
			{
				returnMap.put("result", result);
				return returnMap;
			}
			// 最終更新年月日時分秒
			updDtmBf = getResultString(result, ECK0201D010CBSMsg.UPD_DTM);
		}
		// 連絡先番号が取得できた場合
		else
		{
			// 連絡先情報変更
			result = callECK0201C010(handle, param, rrksNo, rrksSbtCd, telno, updDtmBf);
			// 実行結果判定
			if (isError(result))
			{
				returnMap.put("result", result);
				return returnMap;
			}
			// 最終更新年月日時分秒
			updDtmBf = getResultString(result, ECK0201C010CBSMsg.UPD_DTM);
		}

		returnMap.put("result", result);
		returnMap.put("upd_dtm_sysid", updDtmBf);

		return returnMap;
	}

	/**
	 * サービス契約番号存在チェック<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param svcKeiNo サービス契約番号
	 * @return チェック結果(true:該当データ有り、false:該当データ無し)
	 * @throws Throwable
	 */
	public static boolean checkSvcKeiNo(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String svcKeiNo) throws Throwable
	{
		CAANMsg[] msgList = null;

		//***************************************************
		// サービス契約番号存在チェック（PMP連携用）SCへの上りマッピング 
		//***************************************************
		String templateId = "EKK0081B060";
		Map<Object, Object> param4serviceIf = new HashMap<Object, Object>();
		param4serviceIf.put(EKK0081B060CBSMsg.KEY_SYSID, sysid);
		param4serviceIf.put(EKK0081B060CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, templateId, EKK0081B060CBSMsg.class , param4serviceIf, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("サービス契約番号存在チェック(PMP連携用)SC呼び出し開始（ SYSID：" + sysid + " ）");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("サービス契約番号存在チェック(PMP連携用)SC呼び出し完了" + result);
		if (isSuccess(result))
		{
			msgList = getResultMsgList(result, EKK0081B060CBSMsg.EKK0081B060CBSMSG1LIST);
			if (msgList != null) {
				for (CAANMsg msg : msgList) {
					String retSvcKeiNo = msg.getString(EKK0081B060CBSMsg1List.SVC_KEI_NO);
					if (svcKeiNo.equals(retSvcKeiNo))
					{
						// データ有り
						return true;
					}
				}
				// データ無し
				return false;
			}
		}
		else
		{
			// return false; // ここでは "対象値の存在有無" のみをチェックする為、ドメイン・桁数エラーは返却しない。
		}

		// データ無し
		return false;
	}

	/**
	 * 回線契約状態チェック<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param svcKeiNo サービス契約番号
	 * @return チェック結果(true:チェックエラー無し、false:チェックエラー有り)
	 * @throws Throwable
	 */
	public static boolean checkKisnKeiStat(SessionHandle handle, IRequestParameterReadWrite param, String svcKeiNo) throws Throwable
	{
		String ispKssaiStatCd = null;
		String tokusokuStat = null;

		// 業務パラメータ設定値取得SC呼出
		Map<?, ?> result = callECH0231B020(handle, param, "1", svcKeiNo);

		// 回線契約状態の取得
		if (isSuccess(result))
		{
			ispKssaiStatCd = getResultString(result, ECH0231B020CBSMsg.ECH0231B020CBSMSG1LIST + "[0]." + ECH0231B020CBSMsg1List.MMB_ISP_KSSAI_STAT_CD);
			tokusokuStat = getResultString(result, ECH0231B020CBSMsg.ECH0231B020CBSMSG1LIST + "[0]." + ECH0231B020CBSMsg1List.TOKUSOKU_STAT);
		}

		// ISP決済状態コードが「停止中」の場合
		if (ispKssaiStatCd != null && !"".equals(ispKssaiStatCd) && ISP_KSSAI_STAT_CD_STP.equals(ispKssaiStatCd))
		{
			return false;
		}

		// 督促ステータスが「利用停止済」の場合
		if (tokusokuStat != null && !"".equals(tokusokuStat) && TOKUSOKU_STAT_USE_STP.equals(tokusokuStat))
		{
			return false;
		}

		return true;
	}

	/**
	 * eoID変更
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param newEoid 新eoID
	 * @param oldEoid 旧eoID
	 * @param updDtm 更新年月日時分秒
	 * @return ＳＣ実行結果
	 * @throws Throwable
	 */
	public static Map<?, ?> chgEoId(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String newEoid, String oldEoid, String updDtm) throws Throwable
	{
		// eoID変更(エイジング終了実行指定)
		return chgEoIdAndAgingEnd(handle, param, sysid, newEoid, oldEoid, updDtm, true);
	}

	/**
	 * eoID変更(エイジング終了実行指定)<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param newEoid 新eoID
	 * @param oldEoid 旧eoID
	 * @param updDtm 更新年月日時分秒
	 * @param agingEndFlg エイジング終了実行フラグ（true:エイジング終了を実行、false:エイジング終了を実行しない）
	 * @return ＳＣ実行結果
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public static Map<?, ?> chgEoIdAndAgingEnd(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String newEoid, String oldEoid, String updDtm, boolean agingEndFlg) throws Throwable
	{
		Map returnMap = new HashMap();

		// eoID変更（eoID変更SC呼出）
		Map<?, ?> result = callECK0011C030(handle, param, sysid, newEoid, updDtm);

		// eoID変更SC呼出のエラー判定
		if (isError(result))
		{
			returnMap.put("result", result);
			return returnMap;
		}

		// 更新年月日時分秒を取得
		updDtm = getResultString(result, ECK0011C030CBSMsg.UPD_DTM);

		// 新eoIDエイジング登録（エイジング対象登録SC呼出）
		result = callEZM0111D010(handle, param, AGING_SBT_CD_EOID, newEoid);

		// エイジング対象登録SC呼出のエラー判定
		if (isError(result))
		{
			returnMap.put("result", result);
			return returnMap;
		}

		if (agingEndFlg)
		{
			// 旧eoIDエイジング終了
			result = chgEoIdAgingStateEnd(handle, param, oldEoid);

			// エイジング対象登録SC呼出のエラー判定
			if (isError(result))
			{
				returnMap.put("result", result);
				return returnMap;
			}
		}

		returnMap.put("result", result);
		returnMap.put("upd_dtm_sysid", updDtm);

		return returnMap;
	}

	/**
	 * ニックネーム変更<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param newNknm 新ニックネーム
	 * @param oldNknm 旧ニックネーム
	 * @param updDtm 更新年月日時分秒
	 * @return ＳＣ実行結果
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public static Map<?, ?> chgNkNm(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String newNknm, String oldNknm, String updDtm) throws Throwable
	{
		Map returnMap = new HashMap();

		// ニックネーム変更（ニックネーム変更SC呼出）
		Map<?, ?> result = callECK0011C090(handle, param, sysid, newNknm, updDtm);

		// ニックネーム変更SC呼出のエラー判定
		if (isError(result))
		{
			returnMap.put("result", result);
			return returnMap;
		}

		// 更新年月日時分秒を取得
		updDtm = getResultString(result, ECK0011C090CBSMsg.UPD_DTM);

		// 新ニックネームエイジング登録（エイジング対象登録SC呼出）
		result = callEZM0111D010(handle, param, AGING_SBT_CD_NKNAME, newNknm);

		// エイジング対象登録SC呼出のエラー判定
		if (isError(result))
		{
			returnMap.put("result", result);
			return returnMap;
		}

		// 旧ニックネームエイジング終了
		result = chgNkNameAgingStateEnd(handle, param, oldNknm);

		// エイジング対象登録SC呼出のエラー判定
		if (isError(result))
		{
			returnMap.put("result", result);
			return returnMap;
		}

		returnMap.put("result", result);
		returnMap.put("upd_dtm_sysid", updDtm);

		return returnMap;
	}

	/**
	 * 標準コンテンツ同意登録<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param opeDate 運用日付
	 * @return ＳＣ実行結果
	 * @throws Throwable
	 */
	public static Map<?, ?> addStdardContDoi(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String opeDate) throws Throwable
	{
		String svcKeiNo = null;
		String updDtm = null;

		// サービス契約<ホスティング>登録SC呼出
		Map<?, ?> result = callEKK0151D010(handle, param, sysid);

		// エラー判定
		if (isError(result))
		{
			return result;
		}

		// サービス契約番号
		svcKeiNo = getResultString(result, EKK0151D010CBSMsg.SVC_KEI_NO);
		// 更新年月日時分秒
		updDtm = getResultString(result, EKK0151D010CBSMsg.UPD_DTM);

		// サービス契約<ホスティング>照査SC呼出
		result = callEKK0151C010(handle, param, svcKeiNo, updDtm);

		// エラー判定
		if (isError(result))
		{
			return result;
		}

		// 更新年月日時分秒
		updDtm = getResultString(result, EKK0151C010CBSMsg.UPD_DTM);

		// サービス契約<ホスティング>締結SC呼出
		result = callEKK0151C020(handle, param, svcKeiNo, updDtm);

		// エラー判定
		if (isError(result))
		{
			return result;
		}

		// 更新年月日時分秒
		updDtm = getResultString(result, EKK0151C020CBSMsg.UPD_DTM);

		// サービス契約<ホスティング>開始SC呼出
		result = callEKK0151C030(handle, param, svcKeiNo, opeDate, updDtm);

		// エラー判定
		if (isError(result))
		{
			return result;
		}

		return result;
	}

	/**
	 * 非公開オプトインメール受信設定登録<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param mlad メールアドレス
	 * @return ＳＣ実行結果
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public static Map<?, ?> addHikokaiOptinmRcvSette(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String mlad, String updDtmBf) throws Throwable
	{
		Map returnMap = new HashMap();
		Map<?, ?> result = null;				// SC実行結果
		CAANMsg[] msgList = null;

		// オプトインメール一覧照会SC呼出(非公開分を取得)
		result = callECK0131B020(handle, param, "2");

		// エラー判定
		if (isError(result))
		{
			returnMap.put("result", result);
			return returnMap;
		}

		msgList = getResultMsgList(result, ECK0131B020CBSMsg.ECK0131B020CBSMSG1LIST);
		if (msgList != null) {
			for (CAANMsg msg : msgList) {
				String retOptinmNo = msg.getString(ECK0131B020CBSMsg1List.OPTINM_NO);
				String retShkValueFlg = msg.getString(ECK0131B020CBSMsg1List.SHK_VALUE_FLG);

				// オプトインメール受信設定登録(回復考慮)
				Map tmpResult = addOptinmRcvSetteKaihk(handle, param, sysid, retOptinmNo, mlad, retShkValueFlg, updDtmBf);
				// エラー判定
				result = (Map)tmpResult.get("result");
				if (isError(result))
				{
					returnMap.put("result", result);
					return returnMap;
				}

				// 更新年月日時分秒を取得
				updDtmBf = (String)tmpResult.get("upd_dtm_sysid");
			}
		}

		returnMap.put("result", result);
		returnMap.put("upd_dtm_sysid", updDtmBf);

		return returnMap;	}

	/**
	 * オプトインメール受信設定登録更新<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param memberSbtCd 会員種別コード
	 * @param oldRrksMlad 旧連絡先メールアドレス
	 * @param newRrksMlad 新連絡先メールアドレス
	 * @param svcKeiNo サービス契約番号
	 * @param tsyrnSvkeiCdSeq 他システム連携サービス契約コード通番
	 * @param rcvDivList 受信区分リスト
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @return ＳＣ実行結果
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public static Map<?, ?> addUpdOptinmRcvSette(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String memberSbtCd,
			String oldRrksMlad, String newRrksMlad, String svcKeiNo, String tsyrnSvkeiCdSeq, List<Map<String, String>> rcvDivList, String updDtmBf) throws Throwable
	{

		Map returnMap = new HashMap();
		Map<?, ?> result = null;				// SC実行結果
		CAANMsg[] msgList = null;				// 検索結果
		CAANMsg[] optinmList = null;			// オプトインメールリスト
		String retMlad = null;					// オプトインメール受信設定リストから取得した連絡先メールアドレス
		String retOptinmNo = null;				// オプトインメール受信設定リストから取得したオプトインメール番号
		String retRcvDiv = null;				// オプトインメール受信設定リストから取得した受信区分
		String paramKmkNo = null;				// パラメータから取得した項番
		String paramRcvDiv = null;				// パラメータから取得した受信区分
		boolean eoMladFlg = false;				// eoメールアドレスフラグ

		// オプトインメール受信設定一覧取得（非公開含む）
		result = callECK0141B020(handle, param, "3", sysid);

		// エラー判定
		if (isError(result))
		{
			returnMap.put("result", result);
			return returnMap;
		}

		optinmList = getResultMsgList(result, ECK0141B020CBSMsg.ECK0141B020CBSMSG1LIST);

		// メールアドレス変更あり または 変更前メールアドレス未設定(メールアドレス新規登録)
		if (!newRrksMlad.equals(oldRrksMlad) || "".equals(oldRrksMlad))
		{
			// マスター会員（個人・法人）かつ 変更前メールアドレス設定済(メールアドレス新規登録以外)
			if ((MMB_SBT_CD_MASTER_KOJIN.equals( memberSbtCd) || MMB_SBT_CD_MASTER_HOJIN.equals( memberSbtCd)) && !"".equals(oldRrksMlad))
			{
				// eoメールアドレスを判定
				result = callEKK0361B020(handle, param, "2", "", oldRrksMlad);
				// エラー判定
				if (isError(result))
				{
					returnMap.put("result", result);
					return returnMap;
				}

				// 検索結果を取得
				msgList = getResultMsgList(result, EKK0361B020CBSMsg.EKK0361B020CBSMSG1LIST);

				if (msgList.length > 0)
				{
					// 変更前メールアドレスは、eoメール
					eoMladFlg = true;
				}
			}

			// eoのメールアドレス以外 かつ 変更前メールアドレス設定済(メールアドレス新規登録以外) の場合、
			// 変更前メールアドレスのオプトインメール受信設定(非公開含む)を無効化
			if (!eoMladFlg && !"".equals(oldRrksMlad))
			{
				if (optinmList != null)
				{
					for (CAANMsg msg : optinmList)
					{
						retOptinmNo = msg.getString(ECK0141B020CBSMsg1List.OPTINM_NO);
						retMlad = msg.getString(ECK0141B020CBSMsg1List.MLAD);

						// メールアドレスが異なる場合は、次のレコードへ
						if (!oldRrksMlad.equals(retMlad))
						{
							continue;
						}

						// オプトインメール受信設定無効SC呼出
						result = callECK0141C030(handle, param, retOptinmNo, sysid, retMlad, updDtmBf);

						// エラー判定
						if (isError(result))
						{
							returnMap.put("result", result);
							return returnMap;
						}
						// 更新年月日時分秒を取得
						updDtmBf = getResultString(result, ECK0141C030CBSMsg.UPD_DTM);
					}
				}
			}

			// 非公開メール受信設定を登録
			Map tmpResult = addHikokaiOptinmRcvSette(handle, param, sysid, newRrksMlad, updDtmBf);
			// エラー判定
			result = (Map)tmpResult.get("result");
			if (isError(result))
			{
				returnMap.put("result", result);
				return returnMap;
			}
			// 更新年月日時分秒を取得
			updDtmBf = (String)tmpResult.get("upd_dtm_sysid");
		}

		// パラメータの受信設定分、登録更新する
		MAIN_FOR : for (Map<String, String> rcvDivMap : rcvDivList)
		{
			paramKmkNo = rcvDivMap.get("kmk_number");
			paramRcvDiv = rcvDivMap.get("rcv_div");

			for (CAANMsg msg : optinmList)
			{
				retOptinmNo = msg.getString(ECK0141B020CBSMsg1List.OPTINM_NO);
				retMlad = msg.getString(ECK0141B020CBSMsg1List.MLAD);
				retRcvDiv = msg.getString(ECK0141B020CBSMsg1List.RCV_DIV);

				// オプトインメール番号、メールアドレス、受信区分が同じ場合
				if (retOptinmNo.equals(paramKmkNo) && retMlad.equals(newRrksMlad) && retRcvDiv.equals(paramRcvDiv))
				{
					// 次の受信設定へ
					continue MAIN_FOR;
				}

				// オプトインメール番号、メールアドレスが同じ場合
				if (retOptinmNo.equals(paramKmkNo) && retMlad.equals(newRrksMlad))
				{
					// オプトインメール受信設定変更SC呼出
					result = callECK0141C020(handle, param, sysid, paramKmkNo, newRrksMlad, paramRcvDiv, updDtmBf);
					// エラー判定
					if (isError(result))
					{
						returnMap.put("result", result);
						return returnMap;
					}
					// 更新年月日時分秒を取得
					updDtmBf = getResultString(result, ECK0141C020CBSMsg.UPD_DTM);

					// 次の受信設定へ
					continue MAIN_FOR;
				}
			}

			// オプトインメール受信設定登録(回復考慮)
			Map tmpResult = addOptinmRcvSetteKaihk(handle, param, sysid, paramKmkNo, newRrksMlad, paramRcvDiv, updDtmBf);
			// エラー判定
			result = (Map)tmpResult.get("result");
			if (isError(result))
			{
				returnMap.put("result", result);
				return returnMap;
			}

			// 更新年月日時分秒を取得
			updDtmBf = (String)tmpResult.get("upd_dtm_sysid");
		}

		returnMap.put("result", result);
		returnMap.put("upd_dtm_sysid", updDtmBf);

		return returnMap;
	}


	/**
	 * オプトインメール受信設定登録(回復考慮)<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param optinmNo オプトインメール番号
	 * @param mlad メールアドレス
	 * @param rcvDiv 受信区分
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @return ＳＣ実行結果
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public static Map<?, ?> addOptinmRcvSetteKaihk(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String optinmNo,
			String mlad, String rcvDiv, String updDtmBf) throws Throwable
	{

		Map returnMap = new HashMap();
		Map<?, ?> result = null;				// SC実行結果
		CAANMsg[] msgList = null;				// 検索結果

		// オプトインメール受信設定一意照会
		result = callECK0141A010(handle, param, optinmNo, sysid, mlad);

		// エラー判定
		if (isError(result))
		{
			returnMap.put("result", result);
			return returnMap;
		}

		// 検索結果を取得
		msgList = getResultMsgList(result, ECK0141A010CBSMsg.ECK0141A010CBSMSG1LIST);

		// 該当データ有りの場合
		if (msgList.length > 0)
		{
			String mapKeyPre = ECK0141A010CBSMsg.ECK0141A010CBSMSG1LIST + "[0].";
			String oldoptinmRcvSetteStat = getResultString(result, mapKeyPre + ECK0141A010CBSMsg1List.OPTINM_RCV_SETTE_STAT);
			String oldRcvDiv = getResultString(result, mapKeyPre + ECK0141A010CBSMsg1List.RCV_DIV);
			// 無効データの場合、回復処理を行う
			if (OPTINM_RCV_SETTE_STAT_MK.equals(oldoptinmRcvSetteStat))
			{
				// オプトインメール受信設定回復SC呼出
				result = callECK0141C040(handle, param, optinmNo, sysid, mlad, updDtmBf);

				// エラー判定
				if (isError(result))
				{
					returnMap.put("result", result);
					return returnMap;
				}
				// 更新年月日時分秒を取得
				updDtmBf = getResultString(result, ECK0141C040CBSMsg.UPD_DTM);

				// 受信区分が異なる場合、更新
				if (!oldRcvDiv.equals(rcvDiv))
				{
					// オプトインメール受信設定変更SC呼出
					result = callECK0141C020(handle, param, sysid, optinmNo, mlad, rcvDiv, updDtmBf);
					// エラー判定
					if (isError(result))
					{
						returnMap.put("result", result);
						return returnMap;
					}
					// 更新年月日時分秒を取得
					updDtmBf = getResultString(result, ECK0141C020CBSMsg.UPD_DTM);

				}

			}
		}
		else
		{
			// オプトインメール受信設定登録SC呼出
			result = callECK0141D010(handle, param, sysid, optinmNo, mlad, rcvDiv, updDtmBf);
			// エラー判定
			if (isError(result))
			{
				returnMap.put("result", result);
				return returnMap;
			}
			// 更新年月日時分秒を取得
			updDtmBf = getResultString(result, ECK0141D010CBSMsg.UPD_DTM);
			
		}

		returnMap.put("result", result);
		returnMap.put("upd_dtm_sysid", updDtmBf);

		return returnMap;
	}


	/**
	 * オプトインメール受信設定一意照会SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param optinmNo オプトインメール番号
	 * @param sysid SYSID
	 * @param mlad メールアドレス
	 * @return ＳＣ実行結果
	 * @throws SCException
	 * @throws RequestParameterException
	 */
	public static Map<?, ?> callECK0141A010(SessionHandle handle, IRequestParameterReadWrite param, String optinmNo, String sysid, String mlad)
			throws SCException, RequestParameterException
	{
		//***************************************************
		// オプトインメール受信設定一意照会SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> param4serviceIf = new HashMap<Object, Object>();
		param4serviceIf.put(ECK0141A010CBSMsg.KEY_OPTINM_NO, optinmNo);
		param4serviceIf.put(ECK0141A010CBSMsg.KEY_SYSID, sysid);
		param4serviceIf.put(ECK0141A010CBSMsg.KEY_MLAD, mlad);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECK0141A010CBSMsg.class , param4serviceIf, "2");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("オプトインメール受信設定一意照会SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("オプトインメール受信設定一意照会SC呼び出し完了" + result);

		return result;
	}

	
	/**
	 * オプトインメール受信設定回復SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param optinmNo オプトインメール番号
	 * @param sysid SYSID
	 * @param mlad メールアドレス
	 * @param updDtmBf 更新年月日時分秒
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0141C040(SessionHandle handle, IRequestParameterReadWrite param, 
			String optinmNo, String sysid, String mlad, String updDtmBf)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// オプトインメール受信設定回復SC呼出への上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		
		inMap.put(ECK0141C040CBSMsg.OPTINM_NO, optinmNo);
		inMap.put(ECK0141C040CBSMsg.SYSID, sysid);
		inMap.put(ECK0141C040CBSMsg.MLAD, mlad);
		inMap.put(ECK0141C040CBSMsg.UPD_DTM_BF, updDtmBf);

		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param,  ECK0141C040CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("オプトインメール受信設定回復SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("オプトインメール受信設定回復SC呼び出し完了" + result);

		return result;
	}


	/**
	 * 年齢フラグ取得<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param birthday 生年月日
	 * @param opeDate 運用日付
	 * @return String
	 * @throws Throwable
	 */
	public static String getAgeFlg(String birthday, String opeDate)
	{
		return JCNBPCommon.getAgeFlg(birthday, opeDate);
	}

	/**
	 * 対象文字列の拗音を直音文字に変換して返します。
	 * @param targetValue 対象文字列
	 * @return 変換後文字列
	 */
	private static String replaceYouonToChokuon(String targetValue)
	{
		return JCNBPCommon.replaceYouonToChokuon(targetValue);
	}

	/**
	 * お客様＜個人＞本登録SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param updDtm 更新年月日時分秒
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0021C020(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String updDtmBf)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// お客様＜個人＞本登録SC呼出への上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		
		inMap.put(ECK0021C020CBSMsg.SYSID, sysid);
		inMap.put(ECK0021C020CBSMsg.JOIN_YMD, JCCBPCommon.getOpeDate(null));
		inMap.put(ECK0021C020CBSMsg.UPD_DTM_BF, updDtmBf);

		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param, ECK0021C020CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("お客様＜個人＞本登録SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("お客様＜個人＞本登録SC呼び出し完了" + result);

		return result;
	}

	/**
	 * 会員種別特定更新SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param sysid SYSID
	 * @param mmbSbtTokutFlg 会員種別特定フラグ
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	public static Map<?, ?> callECK0011C190(SessionHandle handle, IRequestParameterReadWrite param, String sysid, String mmbSbtTokutFlg, String updDtmBf)
		throws RequestParameterException, SCException
	{
		//***************************************************
		// SC呼出への上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECK0011C190CBSMsg.SYSID, sysid);
		inMap.put(ECK0011C190CBSMsg.MMB_SBT_TOKUT_FLG, mmbSbtTokutFlg);
		inMap.put(ECK0011C190CBSMsg.UPD_DTM_BF, updDtmBf);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParam(param, ECK0011C190CBSMsg.class , inMap, "1");

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("会員種別特定更新SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("会員種別特定更新SC呼び出し完了" + result);

		return result;
	}


	/**
	 * 会員種別変更解約API(CCMG連携)実行判定。<br />
	 * CCMGの会員種別変更解約APIの実行要否を判定し、呼出元に返却する。<br />
	 * @param eonetidMiIkoFlg 変更前eonetID未移行フラグ
	 * @param bfMmbSbtCd 変更前会員種別
	 * @param afMmbSbtCd 変更後会員種別
	 * @return 実行要否(true:CCMGへの連携が必要、false:連携の必要なし)
	 */
	public static boolean needCallApiMmbSbtUpd(String eonetidMiIkoFlg, String bfMmbSbtCd, String afMmbSbtCd)
	{
    	boolean isContentsUpdate = false;

    	//登録フラグ≠未移行 かつ変更前会員種別＝マスター(個人) かつ変更後会員種別＝マスター(法人)
    	if(!eonetidMiIkoFlg.equals(EONETID_MI_IKO_FLG_MIIKO) &&
    			bfMmbSbtCd.equals(MMB_SBT_CD_MASTER_KOJIN) && 
    			afMmbSbtCd.equals(MMB_SBT_CD_MASTER_HOJIN))
    	{
    		isContentsUpdate = true;
    	}
    	//変更前会員種別＝マスター(法人) かつ変更後会員種別＝マスター(個人)
    	else if(bfMmbSbtCd.equals(MMB_SBT_CD_MASTER_HOJIN) &&
    			afMmbSbtCd.equals(MMB_SBT_CD_MASTER_KOJIN))
    	{
    		isContentsUpdate = true;
    	}
    	//変更前会員種別＝ファミリー(個人)または(法人) かつ 変更後会員種別＝マスター(個人)または(法人)またはオープン
    	else if((bfMmbSbtCd.equals(MMB_SBT_CD_FAMILY_KOJIN)
    			|| bfMmbSbtCd.equals(MMB_SBT_CD_FAMILY_HOJIN)) &&
					(afMmbSbtCd.equals(MMB_SBT_CD_MASTER_KOJIN)
					|| afMmbSbtCd.equals(MMB_SBT_CD_MASTER_HOJIN)
					|| afMmbSbtCd.equals(MMB_SBT_CD_OPEN)))
    	{
    		isContentsUpdate = true;
    	}
    	//変更前会員種別＝オープン かつ 変更後会員種別＝マスター(個人)または(法人)またはファミリー(個人)または(法人)
    	else if(bfMmbSbtCd.equals(MMB_SBT_CD_OPEN) &&
					(afMmbSbtCd.equals(MMB_SBT_CD_MASTER_KOJIN)
					|| afMmbSbtCd.equals(MMB_SBT_CD_MASTER_HOJIN)
					|| afMmbSbtCd.equals(MMB_SBT_CD_FAMILY_KOJIN)
					|| afMmbSbtCd.equals(MMB_SBT_CD_FAMILY_HOJIN)))
    	{
    			
    		isContentsUpdate = true;
    	}
    	//登録フラグ＝未移行 かつ 変更前会員種別＝マスター(個人) かつ 変更後会員種別＝ファミリー(個人)または(法人)またはオープン
    	else if(eonetidMiIkoFlg.equals(EONETID_MI_IKO_FLG_MIIKO) &&
    				bfMmbSbtCd.equals(MMB_SBT_CD_MASTER_KOJIN) &&
					(afMmbSbtCd.equals(MMB_SBT_CD_FAMILY_KOJIN)
	    			|| afMmbSbtCd.equals(MMB_SBT_CD_FAMILY_HOJIN)
    				|| afMmbSbtCd.equals(MMB_SBT_CD_OPEN)))
    	{

    		isContentsUpdate = true;
    	}

    	return isContentsUpdate;
	}

	/**
	 * コンテンツISP課金分請求書情報照会(PMP連携用)SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param keySysid SYSID
	 * @param keyChrgTrgtYm 課金対象年月
	 * @param keySeikyKeiNo 請求契約番号
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException 
	 * @throws SCException 
	 */
	@SuppressWarnings("unchecked")
	public static Map callECN0081B002(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String keySysid, String keyChrgTrgtYm, String keySeikyKeiNo)
			throws RequestParameterException, SCException
	{
		//***************************************************
		// SC呼出への上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECN0081B002CBSMsg.KEY_SYSID, keySysid);
		inMap.put(ECN0081B002CBSMsg.KEY_CHRG_TRGT_YM, keyChrgTrgtYm);
		inMap.put(ECN0081B002CBSMsg.KEY_SEIKY_KEI_NO, keySeikyKeiNo);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECN0081B002CBSMsg.class, inMap, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("コンテンツISP課金分請求書情報照会(PMP連携用)SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("コンテンツISP課金分請求書情報照会(PMP連携用)SC呼び出し完了" + result);

		return result;
	}

	/**
	 * コンテンツクレカ課金分請求書情報照会(PMP連携用)SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param keySysid SYSID
	 * @param keyChrgTrgtYm 課金対象年月
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException 
	 * @throws SCException 
	 */
	@SuppressWarnings("unchecked")
	public static Map callECN0071B002(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String keySysid, String keyChrgTrgtYm)
			throws RequestParameterException, SCException
	{
		//***************************************************
		// SC呼出への上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECN0071B002CBSMsg.KEY_SYSID, keySysid);
		inMap.put(ECN0071B002CBSMsg.KEY_CHRG_TRGT_YM, keyChrgTrgtYm);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECN0071B002CBSMsg.class , inMap, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("コンテンツクレカ課金分請求書情報照会(PMP連携用)SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("コンテンツクレカ課金分請求書情報照会(PMP連携用)SC呼び出し完了" + result);

		return result;
	}

	/**
	 * プロバイダ請求(家族の支払方法)一覧取得(PMP連携用)SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param sysid SYSID
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	@SuppressWarnings("unchecked")
	public static Map callECN0131B004(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String sysid)
			throws RequestParameterException, SCException
	{
		//***************************************************
		// SC呼出への上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECN0131B004CBSMsg.KEY_SYSID, sysid);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECN0131B004CBSMsg.class , inMap, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("プロバイダ請求(家族の支払方法)一覧取得(PMP連携用)SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("プロバイダ請求(家族の支払方法)一覧取得(PMP連携用)SC呼び出し完了" + result);

		return result;
	}

	/**
	 * プロバイダ請求利用設定一覧取得(PMP連携用)SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param sysid SYSID
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	@SuppressWarnings("unchecked")
	public static Map callECN0131B005(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String sysid)
			throws RequestParameterException, SCException
	{
		//***************************************************
		// SC呼出への上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(ECN0131B005CBSMsg.KEY_SYSID, sysid);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, ECN0131B005CBSMsg.class , inMap, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("プロバイダ請求利用設定一覧取得(PMP連携用)SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("プロバイダ請求利用設定一覧取得(PMP連携用)SC呼び出し完了" + result);

		return result;
	}

	/**
	 * 名寄せ先会員種別チェック<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param gyomuKbn 業務区分
	 * @param memberSbtCd 会員種別コード
	 * @param eonetidMiIkoFlg eonetID未移行フラグ
	 * @return チェック結果(true:会員種別チェックOK、false:会員種別チェックエラー)
	 * @throws Throwable
	 */
	public static boolean checkSakiMemberSbtCd(SessionHandle handle, IRequestParameterReadWrite param, String gyomuKbn, String memberSbtCd, String  eonetidMiIkoFlg) throws Throwable
	{
		// 業務区分＝0,1,2,3の場合
		if (JCNBPCommon.inArray(gyomuKbn, "0", "1", "2", "3"))
		{
			if ((JCNBPCommon.inArray(memberSbtCd, MMB_SBT_CD_MASTER_KOJIN, MMB_SBT_CD_MASTER_HOJIN, MMB_SBT_CD_OPEN))
			 && (CD00602_MI_IKO.equals(eonetidMiIkoFlg)))
			{
				return true;
			}
		}
		
		// 業務区分＝4の場合
		if ("4".equals(gyomuKbn))
		{
			if ((JCNBPCommon.inArray(memberSbtCd, MMB_SBT_CD_FAMILY_KOJIN, MMB_SBT_CD_FAMILY_HOJIN, MMB_SBT_CD_OPEN))
			 && (CD00602_IKO_ZM.equals(eonetidMiIkoFlg)))
			{
				return true;
			}
		}
		
		return false;
	}

	/**
	 * 名寄せされる会員種別チェック<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param gyomuKbn 業務区分
	 * @param memberSbtCd 会員種別コード
	 * @param svcKeiNo サービス契約番号（※標準コンテンツ分）
	 * @return チェック結果(true:会員種別チェックOK、false:会員種別チェックエラー)
	 * @throws Throwable
	 */
	public static boolean checkSareMemberSbtCd(SessionHandle handle, IRequestParameterReadWrite param, String gyomuKbn, String memberSbtCd, String  svcKeiNo) throws Throwable
	{
		// 業務区分＝0,2の場合
		if (JCNBPCommon.inArray(gyomuKbn, "0", "2"))
		{
			if ((memberSbtCd.equals(MMB_SBT_CD_MASTER_KOJIN))
			 && (JCNBPCommon.isNullOrBlank(svcKeiNo)))
			{
				return true;
			}
		}

		// 業務区分＝1,3の場合
		if (JCNBPCommon.inArray(gyomuKbn, "1", "3"))
		{
			if ((memberSbtCd.equals(MMB_SBT_CD_MASTER_HOJIN))
			 && (JCNBPCommon.isNullOrBlank(svcKeiNo)))
			{
				return true;
			}
		}
		
		// 業務区分＝4の場合
		if ("4".equals(gyomuKbn))
		{
			if ((JCNBPCommon.inArray(memberSbtCd, MMB_SBT_CD_MASTER_KOJIN, MMB_SBT_CD_MASTER_HOJIN))
			 && (JCNBPCommon.isNullOrBlank(svcKeiNo)))
			{
				return true;
			}
		}
		
		return false;
	}

	/**
	 * サービス契約識別情報照会(PMP連携用)SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param sysid SYSID
	 * @return ＳＣ実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	@SuppressWarnings("unchecked")
	public static Map callEKK0081B523(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String sysid)
			throws RequestParameterException, SCException
	{
		//***************************************************
		// SC呼出への上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EKK0081B523CBSMsg.KEY_SYSID, sysid);
		HashMap<String, Object> paramMap = JCNBPCommon.createScParamForSearch(param, EKK0081B523CBSMsg.class , inMap, funcCd);

		//***************************************************
		// ＳＣ呼出実行
		//***************************************************
		printDebugLog("サービス契約識別情報照会(PMP連携用)SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("サービス契約識別情報照会(PMP連携用)SC呼び出し完了" + result);

		return result;
	}
	
	/**
	 * メールタイトルの編集をします。
	 * 
	 * @param titleNm
	 * @param mailId
	 * @return String
	 */
	private static String editMailTitle(String titleNm, String mailId) {
		StringBuilder title = new StringBuilder();
		
		title.append(titleNm);
		title.append("(MID=");
		title.append(mailId);
		title.append("_01)");
		
		return title.toString();
	}
	
// 2015/08/24 ANK-2634-00-00 Add Start
	/**
	 * シスログ出力
	 * @param proId プログラムID
	 * @param msgId メッセージID
	 * @param msg   メッセージ文字列
	 */
	public static void printSyslog4Err(String proId, String msgId, String msg)
	{

		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));
// 2015/09/01 IT1-2015-0000091 Mod Start
//		JCCSyslogFormat.logger(proId, msgId, sysdate, msg, null, propMap);
		JCCSyslogFormat.logger(proId, msgId, sysdate, msg, "ERR", propMap);
// 2015/09/01 IT1-2015-0000091 Mod End
	}
// 2015/08/24 ANK-2634-00-00 Add End
	
// ST-2015-0000061 ADD START
	/**
	 * シスログ出力
	 * @param proId プログラムID
	 * @param msgId メッセージID
	 * @param msg   メッセージ文字列
	 */
	public static void printSyslog4War(String proId, String msgId, String msg)
	{

		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);
	}
// ST-2015-0000061 ADD END

}