/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*    システム名        ：eo顧客基幹システム
*    モジュール名    ：JFUSmsSendCancelCC
*    ソースファイル名：JFUSmsSendCancelCC.java
*    作成者            ：FJ
*    日付            ：2021年04月16日
*＜機能概要＞
*    SMS送信・キャンセルの共通コンポーネント
*＜修正履歴＞
*    バージョン      修正日      修正者      修正内容
*    v53.00.00       2021/04/16  FJ)大島     ANK-4009-00-00_CX戦略WG方針対応
*    v54.00.00       2021/08/11  FJ)大島     ANK-4092-00-00_CX戦略WG方針対応STEP2
*    v72.00.00       2024/10/31  FJ)飯田     ANK-4598-00-00_量販・訪販WebのeoID取得方法変更
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

import javax.xml.parsers.ParserConfigurationException;

import org.xml.sax.SAXException;

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.cc.exception.CCException;
import com.fujitsu.futurity.bp.x21.cc.exception.SCCallException;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JFUCommonUtil;
import eo.common.util.JPCUtilCommon;
import eo.ejb.cbs.cbsmsg.ECR0521A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECR0521A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EFU0361B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EFU0361B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EFU0361D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EFU0361E010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKKA1880001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKKA1880001CBSMsg1List;

/**
 * SMS送信・キャンセルの共通コンポーネントクラスです。
 * <br>
 * @author 富士通
 *
 */
public class JFUSmsSendCancelCC extends JFUBaseCC
{
	/** インターフェース項目 */
	private static final String KEY_SKBT_KEY = "key_skbt_key";
	private static final String KEY_TELNO = "key_telno";
	private static final String KEY_MODE = "key_mode";
	private static final String MESSAGE = "message";
//	private static final String IDA_REDIRECT_URL = "ida_redirect_url";
	private static final String ONEKEY_KIGEN_MIN = "oneKey_kigen_min";
	private static final String KANRI_NO = "kanri_no";
	private static final String SKBT_KEY = "skbt_key";
	private static final String ONETIME_KEY = "onetime_key";
	private static final String ONETIME_KEY_SEND_TIME = "onetime_key_send_time";
	private static final String ONET_KEY_YK_KIGEN = "onet_key_yk_kigen";
	private static final String SMS_RESULT = "sms_result";
	
	/** テンプレートID(EFU0361B010) WEB申込情報一覧照会 */
	private static final String TEMPLATE_ID_EFU0361B010 = "EFU0361B010";
	/** テンプレートID(EFU0361D010) WEB申込情報登録 */
	private static final String TEMPLATE_ID_EFU0361D010 = "EFU0361D010";
	/** テンプレートID(EFU0361E010) WEB申込情報削除 */
	private static final String TEMPLATE_ID_EFU0361E010 = "EFU0361E010";
	/** テンプレートID(EKKA1880001) SMS送信（SMSプッシュサービス） */
	private static final String TEMPLATE_ID_EKKA1880001 = "EKKA1880001";
	/** テンプレートID(ECR0521A010) SMS送信元電話番号一意照会 */
	private static final String TEMPLATE_ID_ECR0521A010 = "ECR0521A010";
	
	/** WEB申込情報登録 IN項目リスト */
	private static final List<String> IN_COLUMN_LIST_EFU0361D010 = Arrays.asList(
			EFU0361D010CBSMsg.SKBT_KEY,
			EFU0361D010CBSMsg.SMS_SENDS_TELNO,
			EFU0361D010CBSMsg.ONET_KEY,
			EFU0361D010CBSMsg.ONET_KEY_SEND_TIME,
			EFU0361D010CBSMsg.ONET_KEY_YK_KIGEN
			);

	/** SMS送信（SMSプッシュサービス） IN項目リスト */
	private static final List<String> IN_COLUMN_LIST_EKKA1880001 = Arrays.asList(
			EKKA1880001CBSMsg.ADDRESS,
			EKKA1880001CBSMsg.SENDERNAME,
			EKKA1880001CBSMsg.CODINGSCHEME,
			EKKA1880001CBSMsg.MESSAGE,
			EKKA1880001CBSMsg.SENDM_KEY_INF,
			EKKA1880001CBSMsg.SENDM_KEY_INF_SBT_CD
			);
	/** テンプレートID(SMSプッシュサービス) */
	private static final String TEMPLATE_ID_EKKA1880001_DETAIL = EKKA1880001CBSMsg.EKK1880001CBSMSG1LIST;

	/** IN項目リスト(WEB申込情報一覧照会) */
	private static final List<String> IN_COLUMN_LIST_EFU0361B010 = Arrays.asList(EFU0361B010CBSMsg.KEY_KANRI_NO, EFU0361B010CBSMsg.KEY_SKBT_KEY);
	/** 関連チェック,エラー項目(WEB申込情報一覧照会) */
	private static final String ERR_COLUMN_EFU0361B010 = EFU0361B010CBSMsg.KEY_SKBT_KEY_ERR;
	/** テンプレートID(WEB申込情報一覧照会明細) */
	private static final String TEMPLATE_ID_EFU0361B010_DETAIL = EFU0361B010CBSMsg.EFU0361B010CBSMSG1LIST;
	
	/** IN項目リスト(WEB申込情報削除) */
	private static final List<String> IN_COLUMN_LIST_EFU0361E010  = Arrays.asList(EFU0361E010CBSMsg.KANRI_NO);
	/** テンプレートID(WEB申込情報削除明細) */
	private static final String TEMPLATE_ID_EFU0361E010_DETAIL = null;
	/** 関連チェック,エラー項目(WEB申込情報削除) */
	private static final String ERR_COLUMN_EFU0361E010 = EFU0361E010CBSMsg.KANRI_NO_ERR;

	/** IN項目リスト(SMS送信元電話番号一意照会) */
	private static final List<String> IN_COLUMN_LIST_ECR0521A010 = Arrays.asList(ECR0521A010CBSMsg.KEY_SMS_SENDM_TLN_DIV);
	/** 関連チェック,エラー項目(SMS送信元電話番号一意照会) */
	private static final String ERR_COLUMN_ECR0521A010 = ECR0521A010CBSMsg.KEY_SMS_SENDM_TLN_DIV_ERR;
	/** テンプレートID(SMS送信元電話番号一意照会) */
	private static final String TEMPLATE_ID_ECR0521A010_DETAIL = ECR0521A010CBSMsg.ECR0521A010CBSMSG1LIST;

	/**
	 * SMS送信・キャンセルを行います。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Throwable 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite execute(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		String kanri_no = JFUStrConst.EMPTY;
		String skbt_key = JFUStrConst.EMPTY;
		String onetime_key = JFUStrConst.EMPTY;
		String onetime_key_send_time = JFUStrConst.EMPTY;
		String onet_key_yk_kigen = JFUStrConst.EMPTY;
		String sms_result = "0";
		
		// SMS送信・キャンセルCCマップ
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 単項目チェック
		if (!singleChk(inMap))
		{
			throw new SCCallException(String.valueOf(param.getControlMapData(SCControlMapKeys.RETURN_MESSAGE)), String
					.valueOf(RETURN_CODE_NORMAL), JPCModelConstant.RELATION_ERR);
		}
		// モードにより処理振り分け
		String key_mode = (String)inMap.get(KEY_MODE);
		if ("1".equals(key_mode) || "2".equals(key_mode))
		{
			/** 2回目以降送信 */
			if ("2".equals(key_mode))
			{
				// WEB申込情報のキャンセル
				cancelFU0361(handle, param, fixedText, (String)inMap.get(KEY_SKBT_KEY));
			}
			/** WEB申込情報登録 */
			// 上がりマッピング
			setEFU0361D010(param, fixedText, inMap);
			// SIF実行
			executeSC(handle, param, TEMPLATE_ID_EFU0361D010, TEMPLATE_ID_EFU0361D010, BLANK, IN_COLUMN_LIST_EFU0361D010, BLANK);
			// 実行結果取得
			HashMap efu0361d010Map = (HashMap)param.getData(TEMPLATE_ID_EFU0361D010);
			kanri_no = (String)efu0361d010Map.get(EFU0361D010CBSMsg.KANRI_NO);
			skbt_key = (String)efu0361d010Map.get(EFU0361D010CBSMsg.SKBT_KEY);
			onetime_key = (String)efu0361d010Map.get(EFU0361D010CBSMsg.ONET_KEY);
			onetime_key_send_time = (String)efu0361d010Map.get(EFU0361D010CBSMsg.ONET_KEY_SEND_TIME);
			onet_key_yk_kigen = (String)efu0361d010Map.get(EFU0361D010CBSMsg.ONET_KEY_YK_KIGEN);
			
			// SMSメッセージの作成
			String message = (String)inMap.get(MESSAGE);
			String oneKey_kigen_min = (String)inMap.get(ONEKEY_KIGEN_MIN);
//			String ida_redirect_url = (String)inMap.get(IDA_REDIRECT_URL);
//			ida_redirect_url = ida_redirect_url + skbt_key;

			ArrayList<String> textList = new ArrayList<String>();
			textList.add(onetime_key);
			textList.add(oneKey_kigen_min);
//			textList.add(ida_redirect_url);
			
			for (int i = 0; i < textList.size(); i++)
			{
				message = message.replace("%" + String.valueOf(i + 1), textList.get(i));
			}
			outDebugLog(message);
			/** SMS送信元電話番号一意照会 */
			// 上がりマッピング
			setECR0521A010(param, fixedText, inMap);
			// SIF実行
			executeSC(handle, param, TEMPLATE_ID_ECR0521A010, TEMPLATE_ID_ECR0521A010, TEMPLATE_ID_ECR0521A010_DETAIL, IN_COLUMN_LIST_ECR0521A010, BLANK);
			// 実行結果取得
			HashMap ecr0521a010Map = (HashMap)param.getData(TEMPLATE_ID_ECR0521A010);
			List<HashMap> ecr0521a010List = (List<HashMap>) ecr0521a010Map.get(TEMPLATE_ID_ECR0521A010_DETAIL);
			String sendername = JFUStrConst.EMPTY;
			if (!JFUBPCommon.isNull(ecr0521a010List))
			{
				HashMap dtlMap = ecr0521a010List.get(0);
				// SMS送信元電話番号番号
				sendername = (String) dtlMap.get(ECR0521A010CBSMsg1List.SMS_SENDM_TLN);
			}
			
			/** SMS送信（SMSプッシュサービス） */
			// 上がりマッピング
			setEKKA1880001(param, fixedText, inMap, message, sendername, kanri_no);
			// SIF実行
			executeSC(handle, param, TEMPLATE_ID_EKKA1880001, TEMPLATE_ID_EKKA1880001, TEMPLATE_ID_EKKA1880001_DETAIL, IN_COLUMN_LIST_EKKA1880001, BLANK);
			// 実行結果取得
			HashMap ekka1880001Map = (HashMap)param.getData(TEMPLATE_ID_EKKA1880001);
			List<HashMap> ekka1880001List = (List<HashMap>) ekka1880001Map.get(TEMPLATE_ID_EKKA1880001_DETAIL);
			String httpStatus = "500";
			if (!JFUBPCommon.isNull(ekka1880001List))
			{
				HashMap dtlMap = ekka1880001List.get(0);
				// httpStatus
				httpStatus = (String) dtlMap.get(EKKA1880001CBSMsg1List.HTTP_STATUS);
			}
			if (!"200".equals(httpStatus))
			{
				sms_result = "1";
				// WEB申込情報のキャンセル
				cancelFU0361(handle, param, fixedText, skbt_key);
			}
			
			// 結果設定
			inMap.put(KANRI_NO, kanri_no);
			inMap.put(SKBT_KEY, skbt_key);
			inMap.put(ONETIME_KEY, onetime_key);
			inMap.put(ONETIME_KEY_SEND_TIME, onetime_key_send_time);
			inMap.put(ONET_KEY_YK_KIGEN, onet_key_yk_kigen);
			inMap.put(SMS_RESULT, sms_result);
			
		} else if ("3".equals(key_mode))
		{
			/** 送信キャンセル */
			// WEB申込情報のキャンセル
			cancelFU0361(handle, param, fixedText, (String)inMap.get(KEY_SKBT_KEY));
		}

		return param;
	}

	/**
	 * パラメータのチェック
	 * 
	 * @param ccMsg
	 * @return true:OK false:NG
	 */
	@SuppressWarnings("unchecked")
	private boolean singleChk(HashMap inMap) {
		String key_skbt_key = (String)inMap.get(KEY_SKBT_KEY);
		String key_mode = (String)inMap.get(KEY_MODE);
		String key_telno = (String)inMap.get(KEY_TELNO);
		String message = (String)inMap.get(MESSAGE);
//		String ida_redirect_url = (String)inMap.get(IDA_REDIRECT_URL);
		if ("1".equals(key_mode))
		{
			if (JFUBPCommon.isNull(key_telno))
			{
				outDebugLog("----- key_telno isNull  -----");
				return false;
			}
			if (JFUBPCommon.isNull(message))
			{
				outDebugLog("----- message isNull  -----");
				return false;
			}
//			if (JFUBPCommon.isNull(ida_redirect_url))
//			{
//				outDebugLog("----- ida_redirect_url isNull  -----");
//				return false;
//			}
		} else if ("2".equals(key_mode))
		{
			if (JFUBPCommon.isNull(key_skbt_key))
			{
				outDebugLog("----- skbt_key isNull  -----");
				return false;
			}
			if (JFUBPCommon.isNull(key_telno))
			{
				outDebugLog("----- key_telno isNull  -----");
				return false;
			}
			if (JFUBPCommon.isNull(message))
			{
				outDebugLog("----- message isNull  -----");
				return false;
			}
//			if (JFUBPCommon.isNull(ida_redirect_url))
//			{
//				outDebugLog("----- ida_redirect_url isNull  -----");
//				return false;
//			}
		} else if ("3".equals(key_mode))
		{
			if (JFUBPCommon.isNull(key_skbt_key))
			{
				outDebugLog("----- skbt_key isNull  -----");
				return false;
			}
		} else
		{
			outDebugLog("----- key_mode Error  -----");
			return false;
		}
		
		return true;
	}
	
	/**
	 * EFU0361D010へ上りマッピング
	 * @param templateMap 
	 * @param param
	 * @throws RequestParameterException
	 * @throws CCException
	 * @throws IOException 
	 * @throws ParserConfigurationException 
	 * @throws SAXException 
	 * @throws ParseException 
	 */
	@SuppressWarnings("unchecked")
	private void setEFU0361D010(IRequestParameterReadWrite param, String fixedText, HashMap dataMap) throws RequestParameterException, CCException, SAXException,
			ParserConfigurationException, IOException, ParseException
	{
		// パラメータ取得
		String mode = (String)dataMap.get(KEY_MODE);
		String key_telno = (String)dataMap.get(KEY_TELNO);
		String oneKey_kigen_min = (String)dataMap.get(ONEKEY_KIGEN_MIN);

		// ワンタイムキー発行
		String onetime_key =  JPCUtilCommon.getRandomNumber(4);
		
		// ワンタムキー発行年月日時分秒
		String onetime_key_send_time = JCCBPCommon.getOpeDateTime(null);
		
		int intOneKey_kigen_min = 10;
		// ワンタイムキー有効期限
		try
		{
			intOneKey_kigen_min = Integer.parseInt(oneKey_kigen_min);
		} catch (Exception e) {
			// エラーは握りつぶす
		}
		String onekeyKigen = JFUCommonUtil.addMinute(onetime_key_send_time, intOneKey_kigen_min);
		

		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(TEMPLATE_ID_EFU0361D010);
		if (inMap == null)
		{
			inMap = new HashMap();
			param.setData(TEMPLATE_ID_EFU0361D010, inMap);
		}

		// ユーザデータ取得
		// 機能コード設定
		inMap.put(JCMConstants.FUNC_CODE_KEY, "1");
//		if ("2".equals(mode))
//		{
//			String skbt_key = (String)dataMap.get(KEY_SKBT_KEY);
//			// 識別キー
//			inMap.put(EFU0361D010CBSMsg.SKBT_KEY, skbt_key);
//		}
		// SMS送信先電話番号
		inMap.put(EFU0361D010CBSMsg.SMS_SENDS_TELNO, key_telno);
		// ワンタイムキー
		inMap.put(EFU0361D010CBSMsg.ONET_KEY, onetime_key);
		// ワンタイムキー送信時間
		inMap.put(EFU0361D010CBSMsg.ONET_KEY_SEND_TIME, onetime_key_send_time.substring(0, 12));
		// ワンタイムキー有効期限
		inMap.put(EFU0361D010CBSMsg.ONET_KEY_YK_KIGEN, onekeyKigen.substring(0, 12));

	}
	
	@SuppressWarnings("unchecked")
	private void cancelFU0361(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String skbt_key) throws Exception
	{
		/** WEB申込情報一覧照会 */
		// 上りマッピング
		setEFU0361B010(param, fixedText, skbt_key);
		// サービスIF実行
		super.executeSC(handle, param, TEMPLATE_ID_EFU0361B010, TEMPLATE_ID_EFU0361B010, TEMPLATE_ID_EFU0361B010_DETAIL, IN_COLUMN_LIST_EFU0361B010,
				ERR_COLUMN_EFU0361B010);
		HashMap efu0361b010Map = (HashMap)param.getData(TEMPLATE_ID_EFU0361B010);
		List<HashMap> efu0361b010List = (List<HashMap>) efu0361b010Map.get(TEMPLATE_ID_EFU0361B010_DETAIL);

		if (!JFUBPCommon.isNull(efu0361b010List))
		{
			for (HashMap dtlMap : efu0361b010List)
			{
				// 管理番号
				String kanriNo = (String) dtlMap.get(EFU0361B010CBSMsg1List.KANRI_NO);
				// 上りマッピング
				setEFU0361E010(param, fixedText, dtlMap, kanriNo);
				// サービスIF実行
				JFUBPCommon.executeSC(handle, param, TEMPLATE_ID_EFU0361E010, TEMPLATE_ID_EFU0361E010, TEMPLATE_ID_EFU0361E010_DETAIL, IN_COLUMN_LIST_EFU0361E010,
						ERR_COLUMN_EFU0361E010);
			}
		}
		
	}
	
	/**
	 * 上りマッピング項目設定(WEB申込情報一覧照会)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param dataMap
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void setEFU0361B010(IRequestParameterReadWrite param, String fixedText, String skbt_key) throws RequestParameterException
	{

		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(TEMPLATE_ID_EFU0361B010);
		if (inMap == null)
		{
			inMap = new HashMap();
			param.setData(TEMPLATE_ID_EFU0361B010, inMap);
		}
		
		// 機能コード設定
		inMap.put(JCMConstants.FUNC_CODE_KEY, "2");
		inMap.put(IGNORE_SEARCH_ERR, true);
		// ＫＥＹ＿識別キー
		inMap.put(EFU0361B010CBSMsg.KEY_SKBT_KEY, skbt_key);
	
	}

	/**
	 * 上りマッピング項目設定(WEB申込情報削除)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param dataMap
	 * @param lastUpdDtm
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void setEFU0361E010(IRequestParameterReadWrite param, String fixedText, HashMap dataMap, String kanriNo)
			throws RequestParameterException
	{
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(TEMPLATE_ID_EFU0361E010);
		if (inMap == null)
		{
			inMap = new HashMap();
			param.setData(TEMPLATE_ID_EFU0361E010, inMap);
		}

		// 機能コード設定
		inMap.put(JCMConstants.FUNC_CODE_KEY, "1");
		// 管理番号
		inMap.put(EFU0361E010CBSMsg.KANRI_NO, kanriNo);

	}
	
	/**
	 * 上りマッピング項目設定(SMS送信元電話番号一意照会)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param dataMap
	 * @param lastUpdDtm
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void setECR0521A010(IRequestParameterReadWrite param, String fixedText, HashMap dataMap)
			throws RequestParameterException
	{
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(TEMPLATE_ID_ECR0521A010);
		if (inMap == null)
		{
			inMap = new HashMap();
			param.setData(TEMPLATE_ID_ECR0521A010, inMap);
		}

		// 機能コード設定
		inMap.put(JCMConstants.FUNC_CODE_KEY, "1");
		inMap.put(IGNORE_SEARCH_ERR, true);
		// ＫＥＹ＿SMS送信元電話番号区分
		inMap.put(ECR0521A010CBSMsg.KEY_SMS_SENDM_TLN_DIV, "03");

	}
	
	/**
	 * 上りマッピング項目設定(SMS送信（SMSプッシュサービス）)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param dataMap
	 * @param lastUpdDtm
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void setEKKA1880001(IRequestParameterReadWrite param, String fixedText, HashMap dataMap, String message, String sendername, String kanri_no)
			throws RequestParameterException
	{
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(TEMPLATE_ID_EKKA1880001);
		if (inMap == null)
		{
			inMap = new HashMap();
			param.setData(TEMPLATE_ID_EKKA1880001, inMap);
		}

		// パラメータ取得
		String key_telno = (String)dataMap.get(KEY_TELNO);

		// 機能コード設定
		inMap.put(JCMConstants.FUNC_CODE_KEY, "1");
		// 電話番号
		inMap.put(EKKA1880001CBSMsg.ADDRESS, key_telno);
		// メッセージ
		inMap.put(EKKA1880001CBSMsg.MESSAGE, message);
		// 文字コード
		inMap.put(EKKA1880001CBSMsg.CODINGSCHEME, "1");
		// 送信者情報
		inMap.put(EKKA1880001CBSMsg.SENDERNAME, sendername);
		// 送信元キー情報
		inMap.put(EKKA1880001CBSMsg.SENDM_KEY_INF, kanri_no);
		// 送信元キー情報種別コード
		inMap.put(EKKA1880001CBSMsg.SENDM_KEY_INF_SBT_CD, "3");

	}

	/**
	 * デバッグ出力処理です。
	 * 
	 * <br>
	 * @param obj 出力内容
	 */
	private void outDebugLog(Object obj)
	{
		// デバッグ出力
		JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), obj, null, null, null);
	}

	/**
	 * チェック処理
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	public HashMap<String, Object> getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		return null;
	}
}