/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JCKMikmcstInfoAddUpdDelCC
*	ソースファイル名：JCKMikmcstInfoAddUpdDelCC.java
*	作成者			：FJ
*	日付			：2020年01月20日
*＜機能概要＞
*	見込顧客情報登録・更新・削除の共通コンポーネント
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*   v48.00.00   2020/01/20  FJ)謝       【ANK-3795-00-00】見込顧客システム構築対応
*   v39.00.00	2020/05/08	FJ)舘山		【ANK-3879-00-00】メモの形式チェック変更（随時起因）
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
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.cc.AbstractCommonComponent;
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.mapping.bp.common.TemplateErrorUtil;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;
import com.fujitsu.futurity.model.common.check.CharacterCheck;
import com.fujitsu.futurity.model.common.check.DatetimeCheck;
import com.fujitsu.futurity.model.common.check.EmsizeCharCheck;
import com.fujitsu.futurity.model.common.check.HalfCharCheck;
import com.fujitsu.futurity.model.common.check.LengthCheck;

import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JKKStringUtil;
import eo.ejb.cbs.cbsmsg.ECK0281A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0281A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0281C010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0281D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0281E010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0291B001CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0291B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0291D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0291E010CBSMsg;

/**
 * 見込顧客情報登録・更新・削除の共通コンポーネントクラスです。
 * <br>
 * @author 富士通
 *
 */
public class JCKMikmcstInfoAddUpdDelCC extends AbstractCommonComponent
{
	/** テンプレートID(ECK0281A010) 見込顧客一意照会 */
	private static final String TEMPLATE_ID_ECK0281A010 = "ECK0281A010";
	/** テンプレートID(ECK0281C010) 見込顧客更新 */
	private static final String TEMPLATE_ID_ECK0281C010 = "ECK0281C010";
	/** テンプレートID(ECK0281D010) 見込顧客登録 */
	private static final String TEMPLATE_ID_ECK0281D010 = "ECK0281D010";
	/** テンプレートID(ECK0281E010) 見込顧客論理削除 */
	private static final String TEMPLATE_ID_ECK0281E010 = "ECK0281E010";
	/** テンプレートID(ECK0291B001) 見込顧客更新履歴一覧照会 */
	private static final String TEMPLATE_ID_ECK0291B001 = "ECK0291B001";
	/** テンプレートID(ECK0291D010) 見込顧客更新履歴登録 */
	private static final String TEMPLATE_ID_ECK0291D010 = "ECK0291D010";
	/** テンプレートID(ECK0291E010) 見込顧客更新履歴論理削除 */
	private static final String TEMPLATE_ID_ECK0291E010 = "ECK0291E010";

	/** リクエスト 登録種別 */
	private static final String REQ_ENTRYTYPE = "entryType";
	/** リクエスト 見込顧客No */
	private static final String REQ_POSSIBILITYCUSTOMERNO = "possibilityCustomerNo";
	/** リクエスト 対応者 */
	private static final String REQ_RESPONDER = "responder";
	/** リクエスト 従業員番号 */
	private static final String REQ_ID = "id";
	/** リクエスト メモ */
	private static final String REQ_MEMO = "memo";
	/** リクエスト 氏名（カナ） */
	private static final String REQ_NAMEKANA = "nameKana";
	/** リクエスト 氏名（漢字） */
	private static final String REQ_NAME = "name";
	/** リクエスト 生年月日 */
	private static final String REQ_BIRTHDATE = "birthDate";
	/** リクエスト メールアドレス */
	private static final String REQ_MAILADDRESS = "mailAddress";
	/** リクエスト 電話番号 */
	private static final String REQ_TELEPHONENUMBER = "telephoneNumber";
	/** リクエスト 郵便番号 */
	private static final String REQ_ZIPCODE = "zipCode";
	/** リクエスト 住所 */
	private static final String REQ_ADDRESS = "address";
	/** リクエスト 見込情報保有期限 */
	private static final String REQ_POSSIBILITYINFOTENURE = "possibilityInfoTenure";
	/** リクエスト チャネル1 */
	private static final String REQ_CHANNEL1 = "channel1";
	/** リクエスト チャネル2 */
	private static final String REQ_CHANNEL2 = "channel2";
	/** リクエスト チャネル3 */
	private static final String REQ_CHANNEL3 = "channel3";
	/** リクエスト 取扱コード制限 */
	private static final String REQ_AGENCYCODELIM = "agencyCodeLim";
	/** リクエスト 販路制限解除年月 */
	private static final String REQ_MARKETLIMRELEASE = "marketLimRelease";
	/** リクエスト 商談ステータス */
	private static final String REQ_NEGOTIATIONSTATUS = "negotiationStatus";
	/** リクエスト 成約見込み */
	private static final String REQ_REALIZATIONPOSSIBILITY = "realizationPossibility";
	/** リクエスト ご利用場所形態 */
	private static final String REQ_USEADDRESSFORM = "useAddressForm";
	/** リクエスト 項目1 */
	private static final String REQ_ITEM001 = "item001";
	/** リクエスト 項目2 */
	private static final String REQ_ITEM002 = "item002";
	/** リクエスト 項目3 */
	private static final String REQ_ITEM003 = "item003";
	/** リクエスト 項目4 */
	private static final String REQ_ITEM004 = "item004";
	/** リクエスト 項目5 */
	private static final String REQ_ITEM005 = "item005";
	/** リクエスト 項目6 */
	private static final String REQ_ITEM006 = "item006";
	/** リクエスト 項目7 */
	private static final String REQ_ITEM007 = "item007";
	/** リクエスト 項目8 */
	private static final String REQ_ITEM008 = "item008";
	/** リクエスト 項目9 */
	private static final String REQ_ITEM009 = "item009";
	/** リクエスト 項目10 */
	private static final String REQ_ITEM010 = "item010";
	/** リクエスト 項目11 */
	private static final String REQ_ITEM011 = "item011";
	/** リクエスト 項目12 */
	private static final String REQ_ITEM012 = "item012";
	/** リクエスト 項目13 */
	private static final String REQ_ITEM013 = "item013";
	/** リクエスト 項目14 */
	private static final String REQ_ITEM014 = "item014";
	/** リクエスト 項目15 */
	private static final String REQ_ITEM015 = "item015";
	/** リクエスト 項目16 */
	private static final String REQ_ITEM016 = "item016";
	/** リクエスト 項目17 */
	private static final String REQ_ITEM017 = "item017";
	/** リクエスト 項目18 */
	private static final String REQ_ITEM018 = "item018";
	/** リクエスト 項目19 */
	private static final String REQ_ITEM019 = "item019";
	/** リクエスト 項目20 */
	private static final String REQ_ITEM020 = "item020";
	/** リクエスト 項目21 */
	private static final String REQ_ITEM021 = "item021";
	/** リクエスト 項目22 */
	private static final String REQ_ITEM022 = "item022";
	/** リクエスト 項目23 */
	private static final String REQ_ITEM023 = "item023";
	/** リクエスト 項目24 */
	private static final String REQ_ITEM024 = "item024";
	/** リクエスト 項目25 */
	private static final String REQ_ITEM025 = "item025";
	/** リクエスト 項目26 */
	private static final String REQ_ITEM026 = "item026";
	/** リクエスト 項目27 */
	private static final String REQ_ITEM027 = "item027";
	/** リクエスト 項目28 */
	private static final String REQ_ITEM028 = "item028";
	/** リクエスト 項目29 */
	private static final String REQ_ITEM029 = "item029";
	/** リクエスト 項目30 */
	private static final String REQ_ITEM030 = "item030";
	/** リクエスト 項目31 */
	private static final String REQ_ITEM031 = "item031";
	/** リクエスト 項目32 */
	private static final String REQ_ITEM032 = "item032";
	/** リクエスト 項目33 */
	private static final String REQ_ITEM033 = "item033";
	/** リクエスト 項目34 */
	private static final String REQ_ITEM034 = "item034";
	/** リクエスト 項目35 */
	private static final String REQ_ITEM035 = "item035";
	/** リクエスト 項目36 */
	private static final String REQ_ITEM036 = "item036";
	/** リクエスト 項目37 */
	private static final String REQ_ITEM037 = "item037";
	/** リクエスト 項目38 */
	private static final String REQ_ITEM038 = "item038";
	/** リクエスト 項目39 */
	private static final String REQ_ITEM039 = "item039";
	/** リクエスト 項目40 */
	private static final String REQ_ITEM040 = "item040";
	/** リクエスト 項目41 */
	private static final String REQ_ITEM041 = "item041";
	/** リクエスト 項目42 */
	private static final String REQ_ITEM042 = "item042";
	/** リクエスト 項目43 */
	private static final String REQ_ITEM043 = "item043";
	/** リクエスト 項目44 */
	private static final String REQ_ITEM044 = "item044";
	/** リクエスト 項目45 */
	private static final String REQ_ITEM045 = "item045";
	/** リクエスト 項目46 */
	private static final String REQ_ITEM046 = "item046";
	/** リクエスト 項目47 */
	private static final String REQ_ITEM047 = "item047";
	/** リクエスト 項目48 */
	private static final String REQ_ITEM048 = "item048";
	/** リクエスト 項目49 */
	private static final String REQ_ITEM049 = "item049";
	/** リクエスト 項目50 */
	private static final String REQ_ITEM050 = "item050";
	/** リクエスト 項目51 */
	private static final String REQ_ITEM051 = "item051";
	/** リクエスト 項目52 */
	private static final String REQ_ITEM052 = "item052";
	/** リクエスト 項目53 */
	private static final String REQ_ITEM053 = "item053";
	/** リクエスト 項目54 */
	private static final String REQ_ITEM054 = "item054";
	/** リクエスト 項目55 */
	private static final String REQ_ITEM055 = "item055";
	/** リクエスト 項目56 */
	private static final String REQ_ITEM056 = "item056";
	/** リクエスト 項目57 */
	private static final String REQ_ITEM057 = "item057";
	/** リクエスト 項目58 */
	private static final String REQ_ITEM058 = "item058";
	/** リクエスト 項目59 */
	private static final String REQ_ITEM059 = "item059";
	/** リクエスト 項目60 */
	private static final String REQ_ITEM060 = "item060";
	/** リクエスト 項目61 */
	private static final String REQ_ITEM061 = "item061";
	/** リクエスト 項目62 */
	private static final String REQ_ITEM062 = "item062";
	/** リクエスト 項目63 */
	private static final String REQ_ITEM063 = "item063";
	/** リクエスト 項目64 */
	private static final String REQ_ITEM064 = "item064";
	/** リクエスト 項目65 */
	private static final String REQ_ITEM065 = "item065";
	/** リクエスト 項目66 */
	private static final String REQ_ITEM066 = "item066";
	/** リクエスト 項目67 */
	private static final String REQ_ITEM067 = "item067";
	/** リクエスト 項目68 */
	private static final String REQ_ITEM068 = "item068";
	/** リクエスト 項目69 */
	private static final String REQ_ITEM069 = "item069";
	/** リクエスト 項目70 */
	private static final String REQ_ITEM070 = "item070";
	/** リクエスト 項目71 */
	private static final String REQ_ITEM071 = "item071";
	/** リクエスト 項目72 */
	private static final String REQ_ITEM072 = "item072";
	/** リクエスト 項目73 */
	private static final String REQ_ITEM073 = "item073";
	/** リクエスト 項目74 */
	private static final String REQ_ITEM074 = "item074";
	/** リクエスト 項目75 */
	private static final String REQ_ITEM075 = "item075";
	/** リクエスト 項目76 */
	private static final String REQ_ITEM076 = "item076";
	/** リクエスト 項目77 */
	private static final String REQ_ITEM077 = "item077";
	/** リクエスト 項目78 */
	private static final String REQ_ITEM078 = "item078";
	/** リクエスト 項目79 */
	private static final String REQ_ITEM079 = "item079";
	/** リクエスト 項目80 */
	private static final String REQ_ITEM080 = "item080";
	/** リクエスト 項目81 */
	private static final String REQ_ITEM081 = "item081";
	/** リクエスト 項目82 */
	private static final String REQ_ITEM082 = "item082";
	/** リクエスト 項目83 */
	private static final String REQ_ITEM083 = "item083";
	/** リクエスト 項目84 */
	private static final String REQ_ITEM084 = "item084";
	/** リクエスト 項目85 */
	private static final String REQ_ITEM085 = "item085";
	/** リクエスト 項目86 */
	private static final String REQ_ITEM086 = "item086";
	/** リクエスト 項目87 */
	private static final String REQ_ITEM087 = "item087";
	/** リクエスト 項目88 */
	private static final String REQ_ITEM088 = "item088";
	/** リクエスト 項目89 */
	private static final String REQ_ITEM089 = "item089";
	/** リクエスト 項目90 */
	private static final String REQ_ITEM090 = "item090";
	/** リクエスト 項目91 */
	private static final String REQ_ITEM091 = "item091";
	/** リクエスト 項目92 */
	private static final String REQ_ITEM092 = "item092";
	/** リクエスト 項目93 */
	private static final String REQ_ITEM093 = "item093";
	/** リクエスト 項目94 */
	private static final String REQ_ITEM094 = "item094";
	/** リクエスト 項目95 */
	private static final String REQ_ITEM095 = "item095";
	/** リクエスト 項目96 */
	private static final String REQ_ITEM096 = "item096";
	/** リクエスト 項目97 */
	private static final String REQ_ITEM097 = "item097";
	/** リクエスト 項目98 */
	private static final String REQ_ITEM098 = "item098";
	/** リクエスト 項目99 */
	private static final String REQ_ITEM099 = "item099";
	/** リクエスト 項目100 */
	private static final String REQ_ITEM100 = "item100";

	/** レスポンス 処理結果 */
	private static final String RES_RESULT = "result";
	/** レスポンス 見込顧客No */
	private static final String RES_POSSIBILITYCUSTOMERNO = "possibilityCustomerNo";

	/** CCパラメータ エラー情報 */
	private static final String ERROR_INFO = "ERROR_INFO";
	/** CCパラメータ エラーコード */
	private static final String ERROR_CODE = "errCode";
	/** CCパラメータ エラーメッセージ */
	private static final String ERROR_MESSAGE = "errMessage";

	/** 登録種別 1:新規登録 */
	private static final String ENTRY_TYPE_ADD = "1";
	/** 登録種別 2:更新 */
	private static final String ENTRY_TYPE_UPD = "2";
	/** 登録種別 3:削除 */
	private static final String ENTRY_TYPE_DEL = "3";
	/** 処理結果 0:正常終了 */
	private static final String RESULT_OK = "0";

	/** 必須チェック 必須（NOT NULL ＝ ○） */
	private static final String HISSU_CHK_HISSU = "1";
	/** 必須チェック 任意（NOT NULL ≠ ○） */
	private static final String HISSU_CHK_NINI = "0";
	/** 属性チェック 半角数字1 */
	private static final String ZOKU_CHK_NUMBER1 = "1";
	/** 属性チェック 半角英数字1 */
	private static final String ZOKU_CHK_ENNUMBER1 = "2";
	/** 属性チェック 半角英数字8 */
	private static final String ZOKU_CHK_ENNUMBER8 = "3";
	/** 属性チェック 全角 */
	private static final String ZOKU_CHK_EMSIZE = "4";
	/** 属性チェック 全角英数字カナ */
	private static final String ZOKU_CHK_EMSIZEENNUMKANA = "5";
	/** 属性チェック E-mail */
	private static final String ZOKU_CHK_EMAIL = "6";
	/** 属性チェック TEL2 */
	private static final String ZOKU_CHK_TEL2 = "7";
	/** 属性チェック チェックなし */
	private static final String ZOKU_CHK_NO_CHECK = "8";
	/** 属性チェック 年月日1 */
	private static final String ZOKU_CHK_YMD1 = "9";
	/** 属性チェック 年月1 */
	private static final String ZOKU_CHK_YM1 = "10";
	/** 桁数チェック 最小値 */
	private static final int LEN_CHK_MIN = 0;
	/** 桁数チェック 最大値 */
	private static final int LEN_CHK_MAX = 1;

// ▽▽▽ ANK-3879-00-00 ADD START
	/** 属性チェック チェックなし1 */
	private static final String ZOKU_CHK_NO_CHECK1 = "11";
// △△△ ANK-3879-00-00 ADD END
	/**
	 * 見込顧客情報登録・更新・削除を行う。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Throwable 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite execute(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
	throws Throwable
	{
		String dataMapKey = fixedText;

		// 見込顧客情報登録・更新・削除CCマップ
		HashMap<String, Object> ccMsg = (HashMap<String, Object>)param.getData(dataMapKey);
		// レスポンス
		HashMap<String, Object> responseMsg = new HashMap<String,Object>();

		try
		{
			// 単項目チェック
			if (!checkUnitParam(ccMsg))
			{
				param.setControlMapData(SCControlMapKeys.RETURN_CODE, JKKStrConst.RETURN_CD_5000);
				param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, null);
				return param;
			}

			// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
			ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
			// 登録種別
			String entryType = (String)ccMsg.get(REQ_ENTRYTYPE);

			// 登録種別が"2"(更新)または"3"(削除)の場合
			if (ENTRY_TYPE_UPD.equals(entryType) || ENTRY_TYPE_DEL.equals(entryType))
			{
				// 見込顧客No
				String mikmcstNo = (String)ccMsg.get(REQ_POSSIBILITYCUSTOMERNO);
				// エラーリスト
				List<Map<String, String>> errList = new ArrayList<Map<String, String>>();

				// 単関連チェック
				// 見込顧客Noが設定されていない場合
				if ( mikmcstNo == null || "".equals(mikmcstNo) )
				{
					// 単関連チェックエラー
					errList.add(getTkErrInfMap());
					ccMsg.put(ERROR_INFO, errList);
					param.setControlMapData(SCControlMapKeys.RETURN_CODE, JKKStrConst.RETURN_CD_5000);
					param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, null);
					return param;
				}

				// 見込顧客存在チェック
				// 見込顧客一意照会の上りマッピング
				Object[][] eck0281A010In =
				{
					{ECK0281A010CBSMsg.TEMPLATEID, TEMPLATE_ID_ECK0281A010},
					{ECK0281A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
					{ECK0281A010CBSMsg.KEY_MIKMCST_NO, mikmcstNo}
				};

				// サービスIF実行
				CAANMsg eck0281a010Msg = callSC(handle, scCall, param, dataMapKey, eck0281A010In, new ECK0281A010CBSMsg().getContents());

				// 見込顧客一意照会明細
				CAANMsg[] eck0281a010Msg1List = eck0281a010Msg.getCAANMsgList(ECK0281A010CBSMsg.ECK0281A010CBSMSG1LIST);

				// 見込顧客情報が存在しない場合
				if (eck0281a010Msg1List == null || eck0281a010Msg1List.length == 0)
				{
					// 見込顧客存在チェックエラー
					errList.add(getKrErrInfMap(REQ_POSSIBILITYCUSTOMERNO, mikmcstNo));
					ccMsg.put(ERROR_INFO, errList);
					param.setControlMapData(SCControlMapKeys.RETURN_CODE, JKKStrConst.RETURN_CD_5000);
					param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, null);
					return param;
				}

				// 見込顧客情報
				CAANMsg mikmcstInfo = eck0281a010Msg1List[0];

				// 登録種別が"2"(更新)の場合
				if (ENTRY_TYPE_UPD.equals(entryType))
				{
					// 見込顧客情報更新処理を行う
					updMikmcstInfo(ccMsg, handle, scCall, param, dataMapKey, mikmcstInfo);
				}
				// それ以外の場合(登録種別が"3"(削除)の場合)
				else
				{
					// 見込顧客情報削除処理を行う
					delMikmcstInfo(ccMsg, handle, scCall, param, dataMapKey, mikmcstInfo);
				}
			}
 			// 登録種別が"1"(新規登録)の場合
			else if (ENTRY_TYPE_ADD.equals(entryType))
			{
				// 見込顧客情報登録処理を行う
				addMikmcstInfo(ccMsg, handle, scCall, param, dataMapKey, responseMsg);
			}

			// レスポンス 処理結果 
			responseMsg.put(RES_RESULT, RESULT_OK);

			// レスポンスを返却する
			param.setData(dataMapKey, responseMsg);

			// 正常終了
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, JKKStrConst.RETURN_CD_0000);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, null);
		}
		// サービスインターフェース呼び出しでエラーが発生した場合
		catch (SCCallException scCallEx)
		{
			// システムエラーを設定する
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, JKKStrConst.RETURN_CD_9000);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, JKKStrConst.RETURN_MESSAGE_SYSTEM_ERROR);
		}
		return param;
	}

	/**
	 * SC(サービスインターフェイス）を呼び出す。
	 * @param handle セッションハンドル
	 * @param scCall SC呼び出し部品
	 * @param param リクエストパラメータ
	 * @param dataMapKey パラメータキー
	 * @param mappingData マッピングデータ
	 * @param contents CAANMsgのコンテンツ
	 * @return CAANMsg
	 * @throws Throwable 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg callSC(SessionHandle handle, ServiceComponentRequestInvoker scCall, IRequestParameterReadWrite param, String dataMapKey,
			Object[][] mappingData, Object[][] contents)
	throws Throwable
	{
		HashMap<String, Object> paramMap = editInMsg(param, mappingData);

		Map<?, ?> result = scCall.run(paramMap, handle);

		CAANMsg[] templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);

		CAANMsg msg = templates[0];

		// リターンコード取得
		Object return_code = result.get(JCMConstants.RET_CD_INT_KEY);

		editErrorInfoCom(param, templates, (Integer)return_code, dataMapKey, mappingData, contents);

		// エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);

		if (null == errList)
		{
			errList = new ArrayList<Object>();
		}

		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(result, errList));

		// SCCallExceptionはスローしない

		return msg;
	}

	/**
	 * 共通項目のメッセージを作成する。
	 * @param param リクエストパラメータ
	 * @param mappingData マッピングデータ
	 * @return HashMap<String, Object>
	 * @throws RequestParameterException リクエストパラメータの操作でエラーが発生した場合
	 */
	private HashMap<String, Object> editInMsg(IRequestParameterReadWrite param, Object[][] mappingData) throws RequestParameterException
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// 【取得元：電文ヘッダ(ヘッダ)】
		// 電文ID
		paramMap.put(JCMConstants.TRANZACTION_ID_KEY, param.getTelegramID());

		// ユースケースID
		paramMap.put(JCMConstants.USECASE_ID_KEY, param.getUsecaseID());

		// オペレーションID
		paramMap.put(JCMConstants.OPERATION_ID_KEY, param.getOperationID());

		// サービス呼び出し区分
		paramMap.put(JCMConstants.CALL_TYPE_KEY, param.getCallType());

		// 【取得元：ユーザエリア(コントロールマップ)】
		// 依頼先ホスト名
		paramMap.put(JCMConstants.CLIENT_HOST_NAME_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTNAME));

		// 依頼元IPアドレス
		paramMap.put(JCMConstants.CLIENT_IP_ADDRESS_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTIP));

		// 依頼元画面ID
		paramMap.put(JCMConstants.INVOKE_GAMEN_ID_KEY, param.getControlMapData(SCControlMapKeys.REQ_VIEWID));

		// オペレータID
		paramMap.put(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));

		String svcIf = (String)mappingData[0][1];

		CAANMsg template = new CAANMsg(String.format("eo.ejb.cbs.cbsmsg.%sCBSMsg", svcIf));

		// オペレータID
		template.set(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));

		// 運用日付
		template.set(JCMConstants.OPERATE_DATE_KEY, param.getControlMapData(SCControlMapKeys.OPE_DATE));

		// 運用日時
		template.set(JCMConstants.OPERATE_DATETIME_KEY, param.getControlMapData(SCControlMapKeys.OPE_TIME));

		for (int i = 0; i < mappingData.length; i++)
		{
			if ("".equals(mappingData[i][1]))
			{
				template.setNull((String)mappingData[i][0]);
			}
			else
			{
				template.set((String)mappingData[i][0], mappingData[i][1]);
			}
		}

		CAANMsg[] templates = new CAANMsg[1];

		templates[0] = template;

		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}

	/**
	 * エラー情報を取得する。
	 * @param param リクエストパラメータ
	 * @param templates CAANMsgクラス
	 * @param returnCode リターンコード
	 * @param dataMapKey パラメータキー
	 * @param mappingData マッピングデータ
	 * @param contents CAANMsgのコンテンツ
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException リクエストパラメータの操作でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrorInfoCom(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, String dataMapKey,
			Object[][] mappingData, Object[][] contents)
	throws RequestParameterException
	{
		CAANMsg template = templates[0];

		int templateStatus = template.getInt(JCMConstants.STATUS_INT_KEY);

		if (0 != returnCode)
		{
			templateStatus = 9000;
		}

		if (null == JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)))
		{
			templateStatus = 0;
		}

		int bpStatus = 0;

		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);

		if (null == obj)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}

		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format("%1$04d", templateStatus);

			String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);

			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);

			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

		Map<String, String> inMap = null;

		// ユーザデータ情報
		inMap = (Map<String, String>)param.getData(dataMapKey);

		for (int i = 0; null != contents && i < contents.length ; i++)
		{
			String itemNm = (String)contents[i][0];
			if (itemNm.endsWith("_err"))
			{
				String errCd = (String)template.getString(itemNm);
				if (!JKKStringUtil.isNullBlank(errCd))
				{
					inMap.put(itemNm, errCd);
				}
			}
		}
		return param;
	}

	/**
	 * 単項目チェックを行う。
	 * @param ccMsg 識別コードマップ
	 * @return チェックの判定
	 * @throws Exception
	 */
	private boolean checkUnitParam(HashMap<String, Object> ccMsg)
	throws Exception
	{
		// エラーリスト
		List<Map<String, String>> errList = new ArrayList<Map<String, String>>();

		// 登録種別 必須あり 属性：半角数字1 桁(最小)：1 桁(最大)：1
		singleItemChk(ccMsg, REQ_ENTRYTYPE, HISSU_CHK_HISSU, ZOKU_CHK_NUMBER1, new int[] { 1, 1 }, errList);
		// 見込顧客No 必須なし 属性：半角数字1 桁(最小)：10 桁(最大)：10
		singleItemChk(ccMsg, REQ_POSSIBILITYCUSTOMERNO, HISSU_CHK_NINI, ZOKU_CHK_NUMBER1, new int[] { 10, 10 }, errList);
		// 登録種別が"3"(削除)以外の場合
		if (!ENTRY_TYPE_DEL.equals((String)ccMsg.get(REQ_ENTRYTYPE)))
		{
			// 対応者 必須あり 属性：全角 桁(最小)：1 桁(最大)：60
			singleItemChk(ccMsg, REQ_RESPONDER, HISSU_CHK_HISSU, ZOKU_CHK_EMSIZE, new int[] { 1, 60 }, errList);
			// 従業員番号 必須あり 属性：半角英数字1 桁(最小)：6 桁(最大)：6
			singleItemChk(ccMsg, REQ_ID, HISSU_CHK_HISSU, ZOKU_CHK_ENNUMBER1, new int[] { 6, 6 }, errList);
// ▽▽▽ ANK-3879-00-00 MODIFY START
//			// メモ 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：500
//			singleItemChk(ccMsg, REQ_MEMO, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
			// メモ 必須なし 属性：チェックなし1 桁(最小)：1 桁(最大)：500
			singleItemChk(ccMsg, REQ_MEMO, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK1, new int[] { 1, 500 }, errList);
// △△△ ANK-3879-00-00 MODIFY END
			// 氏名（カナ） 必須なし 属性：全角英数字カナ 桁(最小)：1 桁(最大)：121
			singleItemChk(ccMsg, REQ_NAMEKANA, HISSU_CHK_NINI, ZOKU_CHK_EMSIZEENNUMKANA, new int[] { 1, 121 }, errList);
			// 氏名（漢字） 必須なし 属性：全角 桁(最小)：1 桁(最大)：121
			singleItemChk(ccMsg, REQ_NAME, HISSU_CHK_NINI, ZOKU_CHK_EMSIZE, new int[] { 1, 121 }, errList);
			// 生年月日 必須なし 属性：年月日1 桁(最小)：8 桁(最大)：8
			singleItemChk(ccMsg, REQ_BIRTHDATE, HISSU_CHK_NINI, ZOKU_CHK_YMD1, new int[] { 8, 8 }, errList);
			// メールアドレス 必須なし 属性：E-mail 桁(最小)：1 桁(最大)：80
			singleItemChk(ccMsg, REQ_MAILADDRESS, HISSU_CHK_NINI, ZOKU_CHK_EMAIL, new int[] { 1, 80 }, errList);
			// 電話番号 必須なし 属性：TEL2 桁(最小)：10 桁(最大)：11
			singleItemChk(ccMsg, REQ_TELEPHONENUMBER, HISSU_CHK_NINI, ZOKU_CHK_TEL2, new int[] { 10, 11 }, errList);
			// 郵便番号 必須なし 属性：半角数字1 桁(最小)：7 桁(最大)：7
			singleItemChk(ccMsg, REQ_ZIPCODE, HISSU_CHK_NINI, ZOKU_CHK_NUMBER1, new int[] { 7, 7 }, errList);
			// 住所 必須なし 属性：全角 桁(最小)：1 桁(最大)：120
			singleItemChk(ccMsg, REQ_ADDRESS, HISSU_CHK_NINI, ZOKU_CHK_EMSIZE, new int[] { 1, 120 }, errList);
			// 見込情報保有期限 必須なし 属性：年月1 桁(最小)：6 桁(最大)：6
			singleItemChk(ccMsg, REQ_POSSIBILITYINFOTENURE, HISSU_CHK_NINI, ZOKU_CHK_YM1, new int[] { 6, 6 }, errList);
			// チャネル1 必須なし 属性：全角 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_CHANNEL1, HISSU_CHK_NINI, ZOKU_CHK_EMSIZE, new int[] { 1, 30 }, errList);
			// チャネル2 必須なし 属性：全角 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_CHANNEL2, HISSU_CHK_NINI, ZOKU_CHK_EMSIZE, new int[] { 1, 30 }, errList);
			// チャネル3 必須なし 属性：全角 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_CHANNEL3, HISSU_CHK_NINI, ZOKU_CHK_EMSIZE, new int[] { 1, 30 }, errList);
			// 取扱コード制限 必須なし 属性：半角英数字8 桁(最小)：11 桁(最大)：11
			singleItemChk(ccMsg, REQ_AGENCYCODELIM, HISSU_CHK_NINI, ZOKU_CHK_ENNUMBER8, new int[] { 11, 11 }, errList);
			// 販路制限解除年月 必須なし 属性：年月1 桁(最小)：6 桁(最大)：6
			singleItemChk(ccMsg, REQ_MARKETLIMRELEASE, HISSU_CHK_NINI, ZOKU_CHK_YM1, new int[] { 6, 6 }, errList);
			// 商談ステータス 必須なし 属性：半角数字1 桁(最小)：2 桁(最大)：2
			singleItemChk(ccMsg, REQ_NEGOTIATIONSTATUS, HISSU_CHK_NINI, ZOKU_CHK_NUMBER1, new int[] { 2, 2 }, errList);
			// 成約見込み 必須なし 属性：半角数字1 桁(最小)：2 桁(最大)：2
			singleItemChk(ccMsg, REQ_REALIZATIONPOSSIBILITY, HISSU_CHK_NINI, ZOKU_CHK_NUMBER1, new int[] { 2, 2 }, errList);
			// ご利用場所形態 必須なし 属性：半角数字1 桁(最小)：2 桁(最大)：2
			singleItemChk(ccMsg, REQ_USEADDRESSFORM, HISSU_CHK_NINI, ZOKU_CHK_NUMBER1, new int[] { 2, 2 }, errList);
			// 項目1 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM001, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目2 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM002, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目3 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM003, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目4 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM004, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目5 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM005, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目6 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM006, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目7 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM007, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目8 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM008, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目9 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM009, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目10 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM010, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目11 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM011, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目12 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM012, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目13 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM013, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目14 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM014, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目15 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM015, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目16 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM016, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目17 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM017, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目18 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM018, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目19 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM019, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目20 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM020, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目21 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM021, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目22 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM022, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目23 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM023, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目24 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM024, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目25 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM025, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目26 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM026, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目27 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM027, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目28 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM028, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目29 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM029, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目30 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM030, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目31 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM031, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目32 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM032, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目33 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM033, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目34 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM034, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目35 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM035, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目36 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM036, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目37 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM037, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目38 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM038, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目39 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM039, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目40 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM040, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目41 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM041, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目42 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM042, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目43 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM043, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目44 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM044, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目45 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM045, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目46 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM046, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目47 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM047, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目48 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM048, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目49 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM049, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目50 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM050, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目51 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM051, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目52 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM052, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目53 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM053, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目54 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM054, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目55 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM055, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目56 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM056, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目57 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM057, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目58 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM058, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目59 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM059, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目60 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM060, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目61 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM061, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目62 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM062, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目63 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM063, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目64 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM064, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目65 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM065, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目66 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM066, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目67 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM067, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目68 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM068, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目69 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM069, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目70 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM070, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目71 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM071, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目72 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM072, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目73 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM073, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目74 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM074, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目75 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM075, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目76 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM076, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目77 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM077, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目78 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM078, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目79 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM079, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目80 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM080, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目81 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM081, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目82 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM082, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目83 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM083, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目84 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM084, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目85 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM085, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目86 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM086, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目87 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM087, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目88 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM088, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目89 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM089, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目90 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM090, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目91 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM091, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目92 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM092, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目93 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM093, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目94 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM094, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目95 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM095, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目96 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM096, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目97 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM097, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目98 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM098, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目99 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM099, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
			// 項目100 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
			singleItemChk(ccMsg, REQ_ITEM100, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 30 }, errList);
		}

		// エラーが存在する場合
		if (errList.size() > 0)
		{
			ccMsg.put(ERROR_INFO, errList);
			return false;
		}

		return true;
	}

	/**
	 * 必須・属性・桁数チェック
	 * @param ccMsg 識別コードマップ
	 * @param itemName 項目名
	 * @param hissuChkKbn 1：必須項目 0：任意項目
	 * @param zokuChkKbn 属性
	 * @param lenChkKbn lenCheck[0]：最小値 lenCheck[1]最大値
	 * @param errList エラーリスト
	 */
	private void singleItemChk(HashMap<String, Object> ccMsg,
								String itemName,
								String hissuChkKbn,
								String zokuChkKbn,
								int lenChkKbn[],
								List<Map<String, String>> errList)
	{
		// チェック対象の値を取得
		String itemValue = (String)ccMsg.get(itemName);
		
		// 必須チェック・値の存在チェック
		if ( itemValue == null || "".equals(itemValue) )
		{
			// 必須チェック（必須項目の場合必須チェックエラー）
			if(HISSU_CHK_HISSU.equals(hissuChkKbn))
			{
				// 必須チェックエラー
				errList.add(getReqErrInfMap(itemName));
				return;
			}
			// 任意項目の場合は後続の処理を行わない
			else
			{
				return;
			}
		}
		
		// 属性チェック
		if(ZOKU_CHK_NUMBER1.equals(zokuChkKbn))
		{
			// 半角数字1
			if(!HalfCharCheck.isNumber1Check(itemValue))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(itemName, itemValue));
				return;
			}
		}
		else if(ZOKU_CHK_ENNUMBER1.equals(zokuChkKbn))
		{
			// 半角英数字1
			if(!HalfCharCheck.isEnNumber1Check(itemValue))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(itemName, itemValue));
				return;
			}
		}
		else if(ZOKU_CHK_ENNUMBER8.equals(zokuChkKbn))
		{
			// 半角英数字8
			if(!HalfCharCheck.isEnNumber8Check(itemValue))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(itemName, itemValue));
				return;
			}
		}
		else if(ZOKU_CHK_EMSIZE.equals(zokuChkKbn))
		{
			// 全角
			if(!EmsizeCharCheck.isEmsizeCheck(itemValue))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(itemName, itemValue));
				return;
			}
		}
		else if(ZOKU_CHK_EMSIZEENNUMKANA.equals(zokuChkKbn))
		{
			// 全角英数字カナ
			if(!EmsizeCharCheck.isEmsizeEnNumKanaCheck(itemValue))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(itemName, itemValue));
				return;
			}
		}
		else if(ZOKU_CHK_EMAIL.equals(zokuChkKbn))
		{
			// E-mail
			if(!HalfCharCheck.isEmail1Check(itemValue))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(itemName, itemValue));
				return;
			}
		}
		else if(ZOKU_CHK_TEL2.equals(zokuChkKbn))
		{
			// TEL2
			if(!HalfCharCheck.isTelno2Check(itemValue))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(itemName, itemValue));
				return;
			}
		}
		else if(ZOKU_CHK_NO_CHECK.equals(zokuChkKbn))
		{
			// チェックなし
			if(!CharacterCheck.isUnusedCharCheck(itemValue))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(itemName, itemValue));
				return;
			}
		}
		else if(ZOKU_CHK_YMD1.equals(zokuChkKbn))
		{
			// 年月日1
			if(!DatetimeCheck.isDateCheck(itemValue))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(itemName, itemValue));
				return;
			}
		}
		else if(ZOKU_CHK_YM1.equals(zokuChkKbn))
		{
			// 年月1
			if(!DatetimeCheck.isYearMonthCheck(itemValue))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(itemName, itemValue));
				return;
			}
		}
// ▽▽▽ ANK-3879-00-00 ADD START
		else if(ZOKU_CHK_NO_CHECK1.equals(zokuChkKbn))
		{
			// チェックなし
			if(!CharacterCheck.isUnusedCharCheck1(itemValue))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(itemName, itemValue));
				return;
			}
		}
// △△△ ANK-3879-00-00 ADD END
		
		// 桁数チェック
		int min = lenChkKbn[LEN_CHK_MIN];
		int max = lenChkKbn[LEN_CHK_MAX];
		
		if(min == max)
		{
			// 桁数1
			if(!LengthCheck.isLength1Check(itemValue, max))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(itemName, itemValue));
				return;
			}
		}
		else
		{
			// 桁数2
			if(!LengthCheck.isLength2Check(itemValue, min, max))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(itemName, itemValue));
				return;
			}
		}
	}

	/**
	 * 見込顧客情報登録処理を行う。
	 * @param ccMsg 識別コードマップ
	 * @param handle セッションハンドル
	 * @param scCall SC呼出
	 * @param param パラメーター
	 * @param dataMapKey データマップキー
	 * @param responseMsg レスポンス
	 * @throws Throwable
	 */
	private void addMikmcstInfo(HashMap<String, Object> ccMsg,
									SessionHandle handle,
									ServiceComponentRequestInvoker scCall,
									IRequestParameterReadWrite param,
									String dataMapKey,
									HashMap<String, Object> responseMsg) throws Throwable
	{
		// 見込顧客登録の上りマッピング
		Object[][] eck0281D010In =
		{
			{ECK0281D010CBSMsg.TEMPLATEID, TEMPLATE_ID_ECK0281D010},
			{ECK0281D010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{ECK0281D010CBSMsg.NM_KANA, getNullToStr((String)ccMsg.get(REQ_NAMEKANA))},
			{ECK0281D010CBSMsg.NM_KANJI, getNullToStr((String)ccMsg.get(REQ_NAME))},
			{ECK0281D010CBSMsg.BIRTHD, getNullToStr((String)ccMsg.get(REQ_BIRTHDATE))},
			{ECK0281D010CBSMsg.MLAD, getNullToStr((String)ccMsg.get(REQ_MAILADDRESS))},
			{ECK0281D010CBSMsg.TELNO, getNullToStr((String)ccMsg.get(REQ_TELEPHONENUMBER))},
			{ECK0281D010CBSMsg.PCD, getNullToStr((String)ccMsg.get(REQ_ZIPCODE))},
			{ECK0281D010CBSMsg.AD, getNullToStr((String)ccMsg.get(REQ_ADDRESS))},
			{ECK0281D010CBSMsg.MIKOMI_INF_HOYU_KIGEN, getNullToStr((String)ccMsg.get(REQ_POSSIBILITYINFOTENURE))},
			{ECK0281D010CBSMsg.CHANNEL_1, getNullToStr((String)ccMsg.get(REQ_CHANNEL1))},
			{ECK0281D010CBSMsg.CHANNEL_2, getNullToStr((String)ccMsg.get(REQ_CHANNEL2))},
			{ECK0281D010CBSMsg.CHANNEL_3, getNullToStr((String)ccMsg.get(REQ_CHANNEL3))},
			{ECK0281D010CBSMsg.TRACD_LMT_CD, getNullToStr((String)ccMsg.get(REQ_AGENCYCODELIM))},
			{ECK0281D010CBSMsg.HANRO_LMT_RLS_YM, getNullToStr((String)ccMsg.get(REQ_MARKETLIMRELEASE))},
			{ECK0281D010CBSMsg.SHODAN_STAT_CD, getNullToStr((String)ccMsg.get(REQ_NEGOTIATIONSTATUS))},
			{ECK0281D010CBSMsg.SEIYK_MIKOMI_CD, getNullToStr((String)ccMsg.get(REQ_REALIZATIONPOSSIBILITY))},
			{ECK0281D010CBSMsg.USE_PLACE_FORM_CD, getNullToStr((String)ccMsg.get(REQ_USEADDRESSFORM))},
			{ECK0281D010CBSMsg.KMK_1, getNullToStr((String)ccMsg.get(REQ_ITEM001))},
			{ECK0281D010CBSMsg.KMK_2, getNullToStr((String)ccMsg.get(REQ_ITEM002))},
			{ECK0281D010CBSMsg.KMK_3, getNullToStr((String)ccMsg.get(REQ_ITEM003))},
			{ECK0281D010CBSMsg.KMK_4, getNullToStr((String)ccMsg.get(REQ_ITEM004))},
			{ECK0281D010CBSMsg.KMK_5, getNullToStr((String)ccMsg.get(REQ_ITEM005))},
			{ECK0281D010CBSMsg.KMK_6, getNullToStr((String)ccMsg.get(REQ_ITEM006))},
			{ECK0281D010CBSMsg.KMK_7, getNullToStr((String)ccMsg.get(REQ_ITEM007))},
			{ECK0281D010CBSMsg.KMK_8, getNullToStr((String)ccMsg.get(REQ_ITEM008))},
			{ECK0281D010CBSMsg.KMK_9, getNullToStr((String)ccMsg.get(REQ_ITEM009))},
			{ECK0281D010CBSMsg.KMK_10, getNullToStr((String)ccMsg.get(REQ_ITEM010))},
			{ECK0281D010CBSMsg.KMK_11, getNullToStr((String)ccMsg.get(REQ_ITEM011))},
			{ECK0281D010CBSMsg.KMK_12, getNullToStr((String)ccMsg.get(REQ_ITEM012))},
			{ECK0281D010CBSMsg.KMK_13, getNullToStr((String)ccMsg.get(REQ_ITEM013))},
			{ECK0281D010CBSMsg.KMK_14, getNullToStr((String)ccMsg.get(REQ_ITEM014))},
			{ECK0281D010CBSMsg.KMK_15, getNullToStr((String)ccMsg.get(REQ_ITEM015))},
			{ECK0281D010CBSMsg.KMK_16, getNullToStr((String)ccMsg.get(REQ_ITEM016))},
			{ECK0281D010CBSMsg.KMK_17, getNullToStr((String)ccMsg.get(REQ_ITEM017))},
			{ECK0281D010CBSMsg.KMK_18, getNullToStr((String)ccMsg.get(REQ_ITEM018))},
			{ECK0281D010CBSMsg.KMK_19, getNullToStr((String)ccMsg.get(REQ_ITEM019))},
			{ECK0281D010CBSMsg.KMK_20, getNullToStr((String)ccMsg.get(REQ_ITEM020))},
			{ECK0281D010CBSMsg.KMK_21, getNullToStr((String)ccMsg.get(REQ_ITEM021))},
			{ECK0281D010CBSMsg.KMK_22, getNullToStr((String)ccMsg.get(REQ_ITEM022))},
			{ECK0281D010CBSMsg.KMK_23, getNullToStr((String)ccMsg.get(REQ_ITEM023))},
			{ECK0281D010CBSMsg.KMK_24, getNullToStr((String)ccMsg.get(REQ_ITEM024))},
			{ECK0281D010CBSMsg.KMK_25, getNullToStr((String)ccMsg.get(REQ_ITEM025))},
			{ECK0281D010CBSMsg.KMK_26, getNullToStr((String)ccMsg.get(REQ_ITEM026))},
			{ECK0281D010CBSMsg.KMK_27, getNullToStr((String)ccMsg.get(REQ_ITEM027))},
			{ECK0281D010CBSMsg.KMK_28, getNullToStr((String)ccMsg.get(REQ_ITEM028))},
			{ECK0281D010CBSMsg.KMK_29, getNullToStr((String)ccMsg.get(REQ_ITEM029))},
			{ECK0281D010CBSMsg.KMK_30, getNullToStr((String)ccMsg.get(REQ_ITEM030))},
			{ECK0281D010CBSMsg.KMK_31, getNullToStr((String)ccMsg.get(REQ_ITEM031))},
			{ECK0281D010CBSMsg.KMK_32, getNullToStr((String)ccMsg.get(REQ_ITEM032))},
			{ECK0281D010CBSMsg.KMK_33, getNullToStr((String)ccMsg.get(REQ_ITEM033))},
			{ECK0281D010CBSMsg.KMK_34, getNullToStr((String)ccMsg.get(REQ_ITEM034))},
			{ECK0281D010CBSMsg.KMK_35, getNullToStr((String)ccMsg.get(REQ_ITEM035))},
			{ECK0281D010CBSMsg.KMK_36, getNullToStr((String)ccMsg.get(REQ_ITEM036))},
			{ECK0281D010CBSMsg.KMK_37, getNullToStr((String)ccMsg.get(REQ_ITEM037))},
			{ECK0281D010CBSMsg.KMK_38, getNullToStr((String)ccMsg.get(REQ_ITEM038))},
			{ECK0281D010CBSMsg.KMK_39, getNullToStr((String)ccMsg.get(REQ_ITEM039))},
			{ECK0281D010CBSMsg.KMK_40, getNullToStr((String)ccMsg.get(REQ_ITEM040))},
			{ECK0281D010CBSMsg.KMK_41, getNullToStr((String)ccMsg.get(REQ_ITEM041))},
			{ECK0281D010CBSMsg.KMK_42, getNullToStr((String)ccMsg.get(REQ_ITEM042))},
			{ECK0281D010CBSMsg.KMK_43, getNullToStr((String)ccMsg.get(REQ_ITEM043))},
			{ECK0281D010CBSMsg.KMK_44, getNullToStr((String)ccMsg.get(REQ_ITEM044))},
			{ECK0281D010CBSMsg.KMK_45, getNullToStr((String)ccMsg.get(REQ_ITEM045))},
			{ECK0281D010CBSMsg.KMK_46, getNullToStr((String)ccMsg.get(REQ_ITEM046))},
			{ECK0281D010CBSMsg.KMK_47, getNullToStr((String)ccMsg.get(REQ_ITEM047))},
			{ECK0281D010CBSMsg.KMK_48, getNullToStr((String)ccMsg.get(REQ_ITEM048))},
			{ECK0281D010CBSMsg.KMK_49, getNullToStr((String)ccMsg.get(REQ_ITEM049))},
			{ECK0281D010CBSMsg.KMK_50, getNullToStr((String)ccMsg.get(REQ_ITEM050))},
			{ECK0281D010CBSMsg.KMK_51, getNullToStr((String)ccMsg.get(REQ_ITEM051))},
			{ECK0281D010CBSMsg.KMK_52, getNullToStr((String)ccMsg.get(REQ_ITEM052))},
			{ECK0281D010CBSMsg.KMK_53, getNullToStr((String)ccMsg.get(REQ_ITEM053))},
			{ECK0281D010CBSMsg.KMK_54, getNullToStr((String)ccMsg.get(REQ_ITEM054))},
			{ECK0281D010CBSMsg.KMK_55, getNullToStr((String)ccMsg.get(REQ_ITEM055))},
			{ECK0281D010CBSMsg.KMK_56, getNullToStr((String)ccMsg.get(REQ_ITEM056))},
			{ECK0281D010CBSMsg.KMK_57, getNullToStr((String)ccMsg.get(REQ_ITEM057))},
			{ECK0281D010CBSMsg.KMK_58, getNullToStr((String)ccMsg.get(REQ_ITEM058))},
			{ECK0281D010CBSMsg.KMK_59, getNullToStr((String)ccMsg.get(REQ_ITEM059))},
			{ECK0281D010CBSMsg.KMK_60, getNullToStr((String)ccMsg.get(REQ_ITEM060))},
			{ECK0281D010CBSMsg.KMK_61, getNullToStr((String)ccMsg.get(REQ_ITEM061))},
			{ECK0281D010CBSMsg.KMK_62, getNullToStr((String)ccMsg.get(REQ_ITEM062))},
			{ECK0281D010CBSMsg.KMK_63, getNullToStr((String)ccMsg.get(REQ_ITEM063))},
			{ECK0281D010CBSMsg.KMK_64, getNullToStr((String)ccMsg.get(REQ_ITEM064))},
			{ECK0281D010CBSMsg.KMK_65, getNullToStr((String)ccMsg.get(REQ_ITEM065))},
			{ECK0281D010CBSMsg.KMK_66, getNullToStr((String)ccMsg.get(REQ_ITEM066))},
			{ECK0281D010CBSMsg.KMK_67, getNullToStr((String)ccMsg.get(REQ_ITEM067))},
			{ECK0281D010CBSMsg.KMK_68, getNullToStr((String)ccMsg.get(REQ_ITEM068))},
			{ECK0281D010CBSMsg.KMK_69, getNullToStr((String)ccMsg.get(REQ_ITEM069))},
			{ECK0281D010CBSMsg.KMK_70, getNullToStr((String)ccMsg.get(REQ_ITEM070))},
			{ECK0281D010CBSMsg.KMK_71, getNullToStr((String)ccMsg.get(REQ_ITEM071))},
			{ECK0281D010CBSMsg.KMK_72, getNullToStr((String)ccMsg.get(REQ_ITEM072))},
			{ECK0281D010CBSMsg.KMK_73, getNullToStr((String)ccMsg.get(REQ_ITEM073))},
			{ECK0281D010CBSMsg.KMK_74, getNullToStr((String)ccMsg.get(REQ_ITEM074))},
			{ECK0281D010CBSMsg.KMK_75, getNullToStr((String)ccMsg.get(REQ_ITEM075))},
			{ECK0281D010CBSMsg.KMK_76, getNullToStr((String)ccMsg.get(REQ_ITEM076))},
			{ECK0281D010CBSMsg.KMK_77, getNullToStr((String)ccMsg.get(REQ_ITEM077))},
			{ECK0281D010CBSMsg.KMK_78, getNullToStr((String)ccMsg.get(REQ_ITEM078))},
			{ECK0281D010CBSMsg.KMK_79, getNullToStr((String)ccMsg.get(REQ_ITEM079))},
			{ECK0281D010CBSMsg.KMK_80, getNullToStr((String)ccMsg.get(REQ_ITEM080))},
			{ECK0281D010CBSMsg.KMK_81, getNullToStr((String)ccMsg.get(REQ_ITEM081))},
			{ECK0281D010CBSMsg.KMK_82, getNullToStr((String)ccMsg.get(REQ_ITEM082))},
			{ECK0281D010CBSMsg.KMK_83, getNullToStr((String)ccMsg.get(REQ_ITEM083))},
			{ECK0281D010CBSMsg.KMK_84, getNullToStr((String)ccMsg.get(REQ_ITEM084))},
			{ECK0281D010CBSMsg.KMK_85, getNullToStr((String)ccMsg.get(REQ_ITEM085))},
			{ECK0281D010CBSMsg.KMK_86, getNullToStr((String)ccMsg.get(REQ_ITEM086))},
			{ECK0281D010CBSMsg.KMK_87, getNullToStr((String)ccMsg.get(REQ_ITEM087))},
			{ECK0281D010CBSMsg.KMK_88, getNullToStr((String)ccMsg.get(REQ_ITEM088))},
			{ECK0281D010CBSMsg.KMK_89, getNullToStr((String)ccMsg.get(REQ_ITEM089))},
			{ECK0281D010CBSMsg.KMK_90, getNullToStr((String)ccMsg.get(REQ_ITEM090))},
			{ECK0281D010CBSMsg.KMK_91, getNullToStr((String)ccMsg.get(REQ_ITEM091))},
			{ECK0281D010CBSMsg.KMK_92, getNullToStr((String)ccMsg.get(REQ_ITEM092))},
			{ECK0281D010CBSMsg.KMK_93, getNullToStr((String)ccMsg.get(REQ_ITEM093))},
			{ECK0281D010CBSMsg.KMK_94, getNullToStr((String)ccMsg.get(REQ_ITEM094))},
			{ECK0281D010CBSMsg.KMK_95, getNullToStr((String)ccMsg.get(REQ_ITEM095))},
			{ECK0281D010CBSMsg.KMK_96, getNullToStr((String)ccMsg.get(REQ_ITEM096))},
			{ECK0281D010CBSMsg.KMK_97, getNullToStr((String)ccMsg.get(REQ_ITEM097))},
			{ECK0281D010CBSMsg.KMK_98, getNullToStr((String)ccMsg.get(REQ_ITEM098))},
			{ECK0281D010CBSMsg.KMK_99, getNullToStr((String)ccMsg.get(REQ_ITEM099))},
			{ECK0281D010CBSMsg.KMK_100, getNullToStr((String)ccMsg.get(REQ_ITEM100))}
		};

		// サービスIF実行
		CAANMsg eck0281d010Msg = callSC(handle, scCall, param, dataMapKey, eck0281D010In, new ECK0281D010CBSMsg().getContents());

		// 見込顧客更新履歴登録の上りマッピング
		Object[][] eck0291D010In =
		{
			{ECK0291D010CBSMsg.TEMPLATEID, TEMPLATE_ID_ECK0291D010},
			{ECK0291D010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{ECK0291D010CBSMsg.MIKMCST_NO, eck0281d010Msg.getString(ECK0281D010CBSMsg.MIKMCST_NO)},
			{ECK0291D010CBSMsg.MIKMCST_UPD_DTM, eck0281d010Msg.getString(ECK0281D010CBSMsg.UPD_DTM)},
			{ECK0291D010CBSMsg.TAIOSHA_NM, getNullToStr((String)ccMsg.get(REQ_RESPONDER))},
			{ECK0291D010CBSMsg.WORKER_NO, getNullToStr((String)ccMsg.get(REQ_ID))},
			{ECK0291D010CBSMsg.MEMO, getNullToStr((String)ccMsg.get(REQ_MEMO))}
		};

		// サービスIF実行
		CAANMsg eck0291d010Msg = callSC(handle, scCall, param, dataMapKey, eck0291D010In, new ECK0291D010CBSMsg().getContents());

		// レスポンス 見込顧客No
		responseMsg.put(RES_POSSIBILITYCUSTOMERNO, eck0281d010Msg.getString(ECK0281D010CBSMsg.MIKMCST_NO));
	}

	/**
	 * 見込顧客情報更新処理を行う。
	 * @param ccMsg 識別コードマップ
	 * @param handle セッションハンドル
	 * @param scCall SC呼出
	 * @param param パラメーター
	 * @param dataMapKey データマップキー
	 * @param mikmcstInfo 見込顧客情報
	 * @throws Throwable
	 */
	private void updMikmcstInfo(HashMap<String, Object> ccMsg,
									SessionHandle handle,
									ServiceComponentRequestInvoker scCall,
									IRequestParameterReadWrite param,
									String dataMapKey,
									CAANMsg mikmcstInfo) throws Throwable
	{
		// 見込顧客更新の上りマッピング
		Object[][] eck0281C010In =
		{
			{ECK0281C010CBSMsg.TEMPLATEID, TEMPLATE_ID_ECK0281C010},
			{ECK0281C010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{ECK0281C010CBSMsg.MIKMCST_NO, mikmcstInfo.getString(ECK0281A010CBSMsg1List.MIKMCST_NO)},
			{ECK0281C010CBSMsg.NM_KANA, convCcMsg(ccMsg, REQ_NAMEKANA, mikmcstInfo, ECK0281A010CBSMsg1List.NM_KANA)},
			{ECK0281C010CBSMsg.NM_KANJI, convCcMsg(ccMsg, REQ_NAME, mikmcstInfo, ECK0281A010CBSMsg1List.NM_KANJI)},
			{ECK0281C010CBSMsg.BIRTHD, convCcMsg(ccMsg, REQ_BIRTHDATE, mikmcstInfo, ECK0281A010CBSMsg1List.BIRTHD)},
			{ECK0281C010CBSMsg.MLAD, convCcMsg(ccMsg, REQ_MAILADDRESS, mikmcstInfo, ECK0281A010CBSMsg1List.MLAD)},
			{ECK0281C010CBSMsg.TELNO, convCcMsg(ccMsg, REQ_TELEPHONENUMBER, mikmcstInfo, ECK0281A010CBSMsg1List.TELNO)},
			{ECK0281C010CBSMsg.PCD, convCcMsg(ccMsg, REQ_ZIPCODE, mikmcstInfo, ECK0281A010CBSMsg1List.PCD)},
			{ECK0281C010CBSMsg.AD, convCcMsg(ccMsg, REQ_ADDRESS, mikmcstInfo, ECK0281A010CBSMsg1List.AD)},
			{ECK0281C010CBSMsg.MIKOMI_INF_HOYU_KIGEN, convCcMsg(ccMsg, REQ_POSSIBILITYINFOTENURE, mikmcstInfo, ECK0281A010CBSMsg1List.MIKOMI_INF_HOYU_KIGEN)},
			{ECK0281C010CBSMsg.CHANNEL_1, convCcMsg(ccMsg, REQ_CHANNEL1, mikmcstInfo, ECK0281A010CBSMsg1List.CHANNEL_1)},
			{ECK0281C010CBSMsg.CHANNEL_2, convCcMsg(ccMsg, REQ_CHANNEL2, mikmcstInfo, ECK0281A010CBSMsg1List.CHANNEL_2)},
			{ECK0281C010CBSMsg.CHANNEL_3, convCcMsg(ccMsg, REQ_CHANNEL3, mikmcstInfo, ECK0281A010CBSMsg1List.CHANNEL_3)},
			{ECK0281C010CBSMsg.TRACD_LMT_CD, convCcMsg(ccMsg, REQ_AGENCYCODELIM, mikmcstInfo, ECK0281A010CBSMsg1List.TRACD_LMT_CD)},
			{ECK0281C010CBSMsg.HANRO_LMT_RLS_YM, convCcMsg(ccMsg, REQ_MARKETLIMRELEASE, mikmcstInfo, ECK0281A010CBSMsg1List.HANRO_LMT_RLS_YM)},
			{ECK0281C010CBSMsg.SHODAN_STAT_CD, convCcMsg(ccMsg, REQ_NEGOTIATIONSTATUS, mikmcstInfo, ECK0281A010CBSMsg1List.SHODAN_STAT_CD)},
			{ECK0281C010CBSMsg.SEIYK_MIKOMI_CD, convCcMsg(ccMsg, REQ_REALIZATIONPOSSIBILITY, mikmcstInfo, ECK0281A010CBSMsg1List.SEIYK_MIKOMI_CD)},
			{ECK0281C010CBSMsg.USE_PLACE_FORM_CD, convCcMsg(ccMsg, REQ_USEADDRESSFORM, mikmcstInfo, ECK0281A010CBSMsg1List.USE_PLACE_FORM_CD)},
			{ECK0281C010CBSMsg.KMK_1, convCcMsg(ccMsg, REQ_ITEM001, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_1)},
			{ECK0281C010CBSMsg.KMK_2, convCcMsg(ccMsg, REQ_ITEM002, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_2)},
			{ECK0281C010CBSMsg.KMK_3, convCcMsg(ccMsg, REQ_ITEM003, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_3)},
			{ECK0281C010CBSMsg.KMK_4, convCcMsg(ccMsg, REQ_ITEM004, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_4)},
			{ECK0281C010CBSMsg.KMK_5, convCcMsg(ccMsg, REQ_ITEM005, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_5)},
			{ECK0281C010CBSMsg.KMK_6, convCcMsg(ccMsg, REQ_ITEM006, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_6)},
			{ECK0281C010CBSMsg.KMK_7, convCcMsg(ccMsg, REQ_ITEM007, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_7)},
			{ECK0281C010CBSMsg.KMK_8, convCcMsg(ccMsg, REQ_ITEM008, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_8)},
			{ECK0281C010CBSMsg.KMK_9, convCcMsg(ccMsg, REQ_ITEM009, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_9)},
			{ECK0281C010CBSMsg.KMK_10, convCcMsg(ccMsg, REQ_ITEM010, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_10)},
			{ECK0281C010CBSMsg.KMK_11, convCcMsg(ccMsg, REQ_ITEM011, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_11)},
			{ECK0281C010CBSMsg.KMK_12, convCcMsg(ccMsg, REQ_ITEM012, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_12)},
			{ECK0281C010CBSMsg.KMK_13, convCcMsg(ccMsg, REQ_ITEM013, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_13)},
			{ECK0281C010CBSMsg.KMK_14, convCcMsg(ccMsg, REQ_ITEM014, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_14)},
			{ECK0281C010CBSMsg.KMK_15, convCcMsg(ccMsg, REQ_ITEM015, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_15)},
			{ECK0281C010CBSMsg.KMK_16, convCcMsg(ccMsg, REQ_ITEM016, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_16)},
			{ECK0281C010CBSMsg.KMK_17, convCcMsg(ccMsg, REQ_ITEM017, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_17)},
			{ECK0281C010CBSMsg.KMK_18, convCcMsg(ccMsg, REQ_ITEM018, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_18)},
			{ECK0281C010CBSMsg.KMK_19, convCcMsg(ccMsg, REQ_ITEM019, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_19)},
			{ECK0281C010CBSMsg.KMK_20, convCcMsg(ccMsg, REQ_ITEM020, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_20)},
			{ECK0281C010CBSMsg.KMK_21, convCcMsg(ccMsg, REQ_ITEM021, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_21)},
			{ECK0281C010CBSMsg.KMK_22, convCcMsg(ccMsg, REQ_ITEM022, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_22)},
			{ECK0281C010CBSMsg.KMK_23, convCcMsg(ccMsg, REQ_ITEM023, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_23)},
			{ECK0281C010CBSMsg.KMK_24, convCcMsg(ccMsg, REQ_ITEM024, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_24)},
			{ECK0281C010CBSMsg.KMK_25, convCcMsg(ccMsg, REQ_ITEM025, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_25)},
			{ECK0281C010CBSMsg.KMK_26, convCcMsg(ccMsg, REQ_ITEM026, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_26)},
			{ECK0281C010CBSMsg.KMK_27, convCcMsg(ccMsg, REQ_ITEM027, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_27)},
			{ECK0281C010CBSMsg.KMK_28, convCcMsg(ccMsg, REQ_ITEM028, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_28)},
			{ECK0281C010CBSMsg.KMK_29, convCcMsg(ccMsg, REQ_ITEM029, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_29)},
			{ECK0281C010CBSMsg.KMK_30, convCcMsg(ccMsg, REQ_ITEM030, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_30)},
			{ECK0281C010CBSMsg.KMK_31, convCcMsg(ccMsg, REQ_ITEM031, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_31)},
			{ECK0281C010CBSMsg.KMK_32, convCcMsg(ccMsg, REQ_ITEM032, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_32)},
			{ECK0281C010CBSMsg.KMK_33, convCcMsg(ccMsg, REQ_ITEM033, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_33)},
			{ECK0281C010CBSMsg.KMK_34, convCcMsg(ccMsg, REQ_ITEM034, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_34)},
			{ECK0281C010CBSMsg.KMK_35, convCcMsg(ccMsg, REQ_ITEM035, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_35)},
			{ECK0281C010CBSMsg.KMK_36, convCcMsg(ccMsg, REQ_ITEM036, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_36)},
			{ECK0281C010CBSMsg.KMK_37, convCcMsg(ccMsg, REQ_ITEM037, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_37)},
			{ECK0281C010CBSMsg.KMK_38, convCcMsg(ccMsg, REQ_ITEM038, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_38)},
			{ECK0281C010CBSMsg.KMK_39, convCcMsg(ccMsg, REQ_ITEM039, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_39)},
			{ECK0281C010CBSMsg.KMK_40, convCcMsg(ccMsg, REQ_ITEM040, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_40)},
			{ECK0281C010CBSMsg.KMK_41, convCcMsg(ccMsg, REQ_ITEM041, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_41)},
			{ECK0281C010CBSMsg.KMK_42, convCcMsg(ccMsg, REQ_ITEM042, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_42)},
			{ECK0281C010CBSMsg.KMK_43, convCcMsg(ccMsg, REQ_ITEM043, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_43)},
			{ECK0281C010CBSMsg.KMK_44, convCcMsg(ccMsg, REQ_ITEM044, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_44)},
			{ECK0281C010CBSMsg.KMK_45, convCcMsg(ccMsg, REQ_ITEM045, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_45)},
			{ECK0281C010CBSMsg.KMK_46, convCcMsg(ccMsg, REQ_ITEM046, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_46)},
			{ECK0281C010CBSMsg.KMK_47, convCcMsg(ccMsg, REQ_ITEM047, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_47)},
			{ECK0281C010CBSMsg.KMK_48, convCcMsg(ccMsg, REQ_ITEM048, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_48)},
			{ECK0281C010CBSMsg.KMK_49, convCcMsg(ccMsg, REQ_ITEM049, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_49)},
			{ECK0281C010CBSMsg.KMK_50, convCcMsg(ccMsg, REQ_ITEM050, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_50)},
			{ECK0281C010CBSMsg.KMK_51, convCcMsg(ccMsg, REQ_ITEM051, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_51)},
			{ECK0281C010CBSMsg.KMK_52, convCcMsg(ccMsg, REQ_ITEM052, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_52)},
			{ECK0281C010CBSMsg.KMK_53, convCcMsg(ccMsg, REQ_ITEM053, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_53)},
			{ECK0281C010CBSMsg.KMK_54, convCcMsg(ccMsg, REQ_ITEM054, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_54)},
			{ECK0281C010CBSMsg.KMK_55, convCcMsg(ccMsg, REQ_ITEM055, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_55)},
			{ECK0281C010CBSMsg.KMK_56, convCcMsg(ccMsg, REQ_ITEM056, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_56)},
			{ECK0281C010CBSMsg.KMK_57, convCcMsg(ccMsg, REQ_ITEM057, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_57)},
			{ECK0281C010CBSMsg.KMK_58, convCcMsg(ccMsg, REQ_ITEM058, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_58)},
			{ECK0281C010CBSMsg.KMK_59, convCcMsg(ccMsg, REQ_ITEM059, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_59)},
			{ECK0281C010CBSMsg.KMK_60, convCcMsg(ccMsg, REQ_ITEM060, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_60)},
			{ECK0281C010CBSMsg.KMK_61, convCcMsg(ccMsg, REQ_ITEM061, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_61)},
			{ECK0281C010CBSMsg.KMK_62, convCcMsg(ccMsg, REQ_ITEM062, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_62)},
			{ECK0281C010CBSMsg.KMK_63, convCcMsg(ccMsg, REQ_ITEM063, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_63)},
			{ECK0281C010CBSMsg.KMK_64, convCcMsg(ccMsg, REQ_ITEM064, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_64)},
			{ECK0281C010CBSMsg.KMK_65, convCcMsg(ccMsg, REQ_ITEM065, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_65)},
			{ECK0281C010CBSMsg.KMK_66, convCcMsg(ccMsg, REQ_ITEM066, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_66)},
			{ECK0281C010CBSMsg.KMK_67, convCcMsg(ccMsg, REQ_ITEM067, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_67)},
			{ECK0281C010CBSMsg.KMK_68, convCcMsg(ccMsg, REQ_ITEM068, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_68)},
			{ECK0281C010CBSMsg.KMK_69, convCcMsg(ccMsg, REQ_ITEM069, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_69)},
			{ECK0281C010CBSMsg.KMK_70, convCcMsg(ccMsg, REQ_ITEM070, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_70)},
			{ECK0281C010CBSMsg.KMK_71, convCcMsg(ccMsg, REQ_ITEM071, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_71)},
			{ECK0281C010CBSMsg.KMK_72, convCcMsg(ccMsg, REQ_ITEM072, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_72)},
			{ECK0281C010CBSMsg.KMK_73, convCcMsg(ccMsg, REQ_ITEM073, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_73)},
			{ECK0281C010CBSMsg.KMK_74, convCcMsg(ccMsg, REQ_ITEM074, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_74)},
			{ECK0281C010CBSMsg.KMK_75, convCcMsg(ccMsg, REQ_ITEM075, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_75)},
			{ECK0281C010CBSMsg.KMK_76, convCcMsg(ccMsg, REQ_ITEM076, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_76)},
			{ECK0281C010CBSMsg.KMK_77, convCcMsg(ccMsg, REQ_ITEM077, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_77)},
			{ECK0281C010CBSMsg.KMK_78, convCcMsg(ccMsg, REQ_ITEM078, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_78)},
			{ECK0281C010CBSMsg.KMK_79, convCcMsg(ccMsg, REQ_ITEM079, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_79)},
			{ECK0281C010CBSMsg.KMK_80, convCcMsg(ccMsg, REQ_ITEM080, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_80)},
			{ECK0281C010CBSMsg.KMK_81, convCcMsg(ccMsg, REQ_ITEM081, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_81)},
			{ECK0281C010CBSMsg.KMK_82, convCcMsg(ccMsg, REQ_ITEM082, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_82)},
			{ECK0281C010CBSMsg.KMK_83, convCcMsg(ccMsg, REQ_ITEM083, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_83)},
			{ECK0281C010CBSMsg.KMK_84, convCcMsg(ccMsg, REQ_ITEM084, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_84)},
			{ECK0281C010CBSMsg.KMK_85, convCcMsg(ccMsg, REQ_ITEM085, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_85)},
			{ECK0281C010CBSMsg.KMK_86, convCcMsg(ccMsg, REQ_ITEM086, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_86)},
			{ECK0281C010CBSMsg.KMK_87, convCcMsg(ccMsg, REQ_ITEM087, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_87)},
			{ECK0281C010CBSMsg.KMK_88, convCcMsg(ccMsg, REQ_ITEM088, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_88)},
			{ECK0281C010CBSMsg.KMK_89, convCcMsg(ccMsg, REQ_ITEM089, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_89)},
			{ECK0281C010CBSMsg.KMK_90, convCcMsg(ccMsg, REQ_ITEM090, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_90)},
			{ECK0281C010CBSMsg.KMK_91, convCcMsg(ccMsg, REQ_ITEM091, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_91)},
			{ECK0281C010CBSMsg.KMK_92, convCcMsg(ccMsg, REQ_ITEM092, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_92)},
			{ECK0281C010CBSMsg.KMK_93, convCcMsg(ccMsg, REQ_ITEM093, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_93)},
			{ECK0281C010CBSMsg.KMK_94, convCcMsg(ccMsg, REQ_ITEM094, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_94)},
			{ECK0281C010CBSMsg.KMK_95, convCcMsg(ccMsg, REQ_ITEM095, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_95)},
			{ECK0281C010CBSMsg.KMK_96, convCcMsg(ccMsg, REQ_ITEM096, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_96)},
			{ECK0281C010CBSMsg.KMK_97, convCcMsg(ccMsg, REQ_ITEM097, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_97)},
			{ECK0281C010CBSMsg.KMK_98, convCcMsg(ccMsg, REQ_ITEM098, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_98)},
			{ECK0281C010CBSMsg.KMK_99, convCcMsg(ccMsg, REQ_ITEM099, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_99)},
			{ECK0281C010CBSMsg.KMK_100, convCcMsg(ccMsg, REQ_ITEM100, mikmcstInfo, ECK0281A010CBSMsg1List.KMK_100)},
			{ECK0281C010CBSMsg.UPD_DTM_BF, mikmcstInfo.getString(ECK0281A010CBSMsg1List.UPD_DTM)}
		};

		// サービスIF実行
		CAANMsg eck0281c010Msg = callSC(handle, scCall, param, dataMapKey, eck0281C010In, new ECK0281C010CBSMsg().getContents());

		// 見込顧客更新履歴登録の上りマッピング
		Object[][] eck0291D010In =
		{
			{ECK0291D010CBSMsg.TEMPLATEID, TEMPLATE_ID_ECK0291D010},
			{ECK0291D010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{ECK0291D010CBSMsg.MIKMCST_NO, mikmcstInfo.getString(ECK0281A010CBSMsg1List.MIKMCST_NO)},
			{ECK0291D010CBSMsg.MIKMCST_UPD_DTM, eck0281c010Msg.getString(ECK0281C010CBSMsg.UPD_DTM)},
			{ECK0291D010CBSMsg.TAIOSHA_NM, getNullToStr((String)ccMsg.get(REQ_RESPONDER))},
			{ECK0291D010CBSMsg.WORKER_NO, getNullToStr((String)ccMsg.get(REQ_ID))},
			{ECK0291D010CBSMsg.MEMO, getNullToStr((String)ccMsg.get(REQ_MEMO))}
		};

		// サービスIF実行
		CAANMsg eck0291d010Msg = callSC(handle, scCall, param, dataMapKey, eck0291D010In, new ECK0291D010CBSMsg().getContents());
	}

	/**
	 * リクエストに項目が存在しない場合見込顧客情報を返却する。
	 * @param ccMsg 識別コードマップ
	 * @param ccMsgKey 識別コードマップキー
	 * @param mikmcstInfo 見込顧客情報
	 * @param mikmcstInfoKey 見込顧客情報キー
	 * @return
	 */
	private String convCcMsg(HashMap<String, Object> ccMsg, String ccMsgKey, CAANMsg mikmcstInfo, String mikmcstInfoKey)
	{
		if (!ccMsg.containsKey(ccMsgKey))
		{
			return getNullToStr(mikmcstInfo.getString(mikmcstInfoKey));
		}

		return getNullToStr((String)ccMsg.get(ccMsgKey));
	}

	/**
	 * 見込顧客情報削除処理を行う。
	 * @param ccMsg 識別コードマップ
	 * @param handle セッションハンドル
	 * @param scCall SC呼出
	 * @param param パラメーター
	 * @param dataMapKey データマップキー
	 * @param mikmcstInfo 見込顧客情報
	 * @throws Throwable
	 */
	private void delMikmcstInfo(HashMap<String, Object> ccMsg,
									SessionHandle handle,
									ServiceComponentRequestInvoker scCall,
									IRequestParameterReadWrite param,
									String dataMapKey,
									CAANMsg mikmcstInfo) throws Throwable
	{
		// 見込顧客論理削除の上りマッピング
		Object[][] eck0281E010In =
		{
			{ECK0281E010CBSMsg.TEMPLATEID, TEMPLATE_ID_ECK0281E010},
			{ECK0281E010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{ECK0281E010CBSMsg.MIKMCST_NO, mikmcstInfo.getString(ECK0281A010CBSMsg1List.MIKMCST_NO)},
			{ECK0281E010CBSMsg.UPD_DTM_BF, mikmcstInfo.getString(ECK0281A010CBSMsg1List.UPD_DTM)}
		};

		// サービスIF実行
		CAANMsg eck0281e010Msg = callSC(handle, scCall, param, dataMapKey, eck0281E010In, new ECK0281E010CBSMsg().getContents());

		// 見込顧客更新履歴一覧照会の上りマッピング
		Object[][] eck0291B001In =
		{
			{ECK0291B001CBSMsg.TEMPLATEID, TEMPLATE_ID_ECK0291B001},
			{ECK0291B001CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{ECK0291B001CBSMsg.KEY_MIKMCST_NO, mikmcstInfo.getString(ECK0281A010CBSMsg1List.MIKMCST_NO)}
		};

		// サービスIF実行
		CAANMsg eck0291b001Msg = callSC(handle, scCall, param, dataMapKey, eck0291B001In, new ECK0291B001CBSMsg().getContents());

		// 見込顧客更新履歴一覧照会明細
		CAANMsg[] eck0291b001Msg1List = eck0291b001Msg.getCAANMsgList(ECK0291B001CBSMsg.ECK0291B001CBSMSG1LIST);

		if (eck0291b001Msg1List != null && eck0291b001Msg1List.length > 0)
		{
			for (int i = 0; i < eck0291b001Msg1List.length; i++)
			{
				// 見込顧客更新履歴論理削除の上りマッピング
				Object[][] eck0291E010In =
				{
					{ECK0291E010CBSMsg.TEMPLATEID, TEMPLATE_ID_ECK0291E010},
					{ECK0291E010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
					{ECK0291E010CBSMsg.MIKMCST_NO, eck0291b001Msg1List[i].getString(ECK0291B001CBSMsg1List.MIKMCST_NO)},
					{ECK0291E010CBSMsg.MIKMCST_UPD_DTM, eck0291b001Msg1List[i].getString(ECK0291B001CBSMsg1List.MIKMCST_UPD_DTM)},
					{ECK0291E010CBSMsg.UPD_DTM_BF, eck0291b001Msg1List[i].getString(ECK0291B001CBSMsg1List.UPD_DTM)}
				};

				// サービスIF実行
				CAANMsg eck0291e010Msg = callSC(handle, scCall, param, dataMapKey, eck0291E010In, new ECK0291E010CBSMsg().getContents());
			}
		}
	}

	/**
	 * 単項目チェックの必須エラーマップ作成メソッドです。
	 * @param itemName 項目名
	 * @return
	 */
	private Map<String, String> getReqErrInfMap(String itemName)
	{
		Map<String, String> returnMap = new HashMap<String, String>();

		returnMap.put(ERROR_CODE, JKKStrConst.RETURN_CD_1001);
		returnMap.put(ERROR_MESSAGE, itemName + JKKStrConst.COLON);

		return returnMap;
	}

	/**
	 * 単項目チェックの属性エラーマップ作成メソッドです。
	 * @param itemName 項目名
	 * @param itemValue 項目値
	 * @return
	 */
	private Map<String, String> getFormErrInfMap(String itemName, String itemValue)
	{
		Map<String, String> returnMap = new HashMap<String, String>();

		returnMap.put(ERROR_CODE, JKKStrConst.RETURN_CD_1002);
		returnMap.put(ERROR_MESSAGE, itemName + JKKStrConst.COLON + itemValue);

		return returnMap;
	}

	/**
	 * 単項目チェックの桁数エラーマップ作成メソッドです。
	 * @param itemName 項目名
	 * @param itemValue 項目値
	 * @return
	 */
	private Map<String, String> getLenErrInfMap(String itemName, String itemValue)
	{
		Map<String, String> returnMap = new HashMap<String, String>();

		returnMap.put(ERROR_CODE, JKKStrConst.RETURN_CD_1003);
		returnMap.put(ERROR_MESSAGE, itemName + JKKStrConst.COLON + itemValue);

		return returnMap;
	}

	/**
	 * 単関連チェックのエラーマップ作成メソッドです。
	 * @param itemName 項目名
	 * @return
	 */
	private static Map<String, String> getTkErrInfMap()
	{
		Map<String, String> returnMap = new HashMap<String, String>();

		returnMap.put(ERROR_CODE, JKKStrConst.RETURN_CD_1101);
		returnMap.put(ERROR_MESSAGE, "");

		return returnMap;
	}

	/**
	 * 関連制約チェックのエラーマップ作成メソッドです。
	 * @param itemName 項目名
	 * @param itemValve 設定値
	 * @return
	 */
	private static Map<String, String> getKrErrInfMap(String itemName, String itemValue)
	{
		Map<String, String> returnMap = new HashMap<String, String>();

		returnMap.put(ERROR_CODE, JKKStrConst.RETURN_CD_2001);
		returnMap.put(ERROR_MESSAGE, itemName + JKKStrConst.COLON + itemValue);

		return returnMap;
	}

	/**
	 * パラメタがNullの場合空白を返却する。
	 * @param str 文字列
	 * @return str
	 */
	private String getNullToStr(String str)
	{
		if (str == null || "".equals(str.trim()))
		{
			return "";
		}
		return str;
	}
}