/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW21811SFLogic
*   ソースファイル名：KKW21811SFLogic.java
*   作成者          ：富士通
*   日付            ：2017年09月21日
*＜機能概要＞
*   解約レター検索画面のビューロジックです。
*＜修正履歴＞
*   バージョン   修正日       修正者      修正内容
*   v33.00.00    2017/09/21   FJ）クウン  【ANK-3251-00-00】（契アシRDSツール改善）解約レターのシステム化_新規作成
*   v33.01.00    2017/12/07   FJ) 原田    【ANK-3346-00-00】【解約レター機能関連】改善要望　Ｓｔｅｐ１
*   v35.00.00    2017/12/21   FJ) 麻生    【ANK-3346-01-00】【解約レター機能関連】改善要望　Ｓｔｅｐ１
*   v35.00.01    2018/01/09   FJ) 麻生    【IT1-2018-0000001】登録者名のクリア漏れ
*   v59.00.00    2022/04/14   FJ) 平野    【ANK-4245-00-00】【eo】ローゼット化対応フォロー案件
**********************************************************************/
package eo.web.webview.KKW21811SF;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.common.JSYwebLog;
import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JKKStringUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKW00101SF.KKW00101SFConst;
import eo.web.webview.KKW21811SF.KKW21811SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JKKWebCommon;
import eo.web.webview.mapping.KKSV0834_KKSV0834OPDBMapper;
import eo.web.webview.mapping.KKSV0869_KKSV0869OPDBMapper;
import eo.web.webview.mapping.KKSV0870_KKSV0870OPDBMapper;
import eo.web.webview.mapping.KKSV0880_KKSV0880OPDBMapper;


/**
 * KKW21811のビューロジックです。<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKW21811SFLogic extends JCCWebBusinessLogic
{
	/** 処理区分:更新/照合ボタンの場合 **/
	public static final String TRAN_DIV_UPDSHOG = "1";
	/** 処理区分:取消ボタンの場合 **/
	public static final String TRAN_DIV_CANCEL = "2";
	/** 処理区分:再発行ボタンの場合 **/
	public static final String TRAN_DIV_SAIHAKKO = "3";
	/** 処理区分:ヤマト送信ボタンの場合 **/
	public static final String TRAN_DIV_YAMATOSEN = "4";

	/** 処理区分 **/
	public static final String TRAN_DIV = "key_tran";

	/** 処理種別：取消 **/
	public static final String SYORI_SBT_CANSEL = "1";

	/** 処理種別：個別送信 **/
	public static final String SYORI_SBT_KBT_SEND = "2";

	/** 処理種別：一括送信 **/
	public static final String SYORI_SBT_IKT_SEND = "3";

	/** 解約ステータス_受付済 **/
	public static final String KAIYAKU_LETTER_UKETSUZUMI = "000";

	/** 解約ステータス_照合済 **/
	public static final String KAIYAKU_LETTER_SHOGOZUMI = "010";
	
	/** 解約ステータス_処理中 **/
	public static final String KAIYAKU_LETTER_SHORICHU = "020";
	
	/** 解約ステータス_送信済 **/
	public static final String KAIYAKU_LETTER_SOUSINZUMI = "100";
	
	/** 解約ステータス_取消済 **/
	public static final String KAIYAKU_LETTER_TORIKESIZUMI = "910";
		
	/** 解約レター発行区分_初回 **/
	public static final String HAKKO_KBN_SHOKAI = "01";
	
	/** 解約レター発行区分_再発行 **/
	public static final String HAKKO_KBN_SAIHAKKO = "02";
	
	/** 解約レターレター発行要否_要 **/
	public static final String LETTER_HAKKO_YO = "1";
	
	/** 解約レターレター発行要否_否 **/
	public static final String LETTER_HAKKO_HI = "0";

	/**
	 * ページングのコマンドID
	 */
	private static final String PAGING_CMD = "paging";
	/**
	 * ソート順（昇順）
	 */
	private static final String ORDERTYPE_ASC = "1";
	/**
	 * ソート順（降順）
	 */
	private static final String ORDERTYPE_DESC = "2";
	/**
	 * 検索フラグ（要）
	 */
	private static final String SEARCH_FLG_Y = "1";
	/**
	 * 検索フラグ（不要）
	 */
	private static final String SEARCH_FLG_N = "0";
	/**
	 * 未送信フラグ（未送信）
	 */
	private static final String MI_SEND_FLG_Y = "1";
	/**
	 * 照合済フラグ（checked状態）
	 */
	private static final String SHOGO_ZUMI_FLG = "1";
	
	/**
	 * 照合済フラグ（unchecked状態）
	 */
	private static final String SHOGO_ZUMI_NO_FLG = "0";
	
	/**
	 * レター発行要フラグ（checked状態）
	 */
	private static final String LETTER_HAKKO_FLG = "1";
	
	/**
	 * レター発行要フラグ（unchecked状態）
	 */
	private static final String LETTER_HAKKO_NO_FLG = "0";
	
	/**
	 * 一括送信フラグ（checked状態）
	 */
	private static final String IKT_SEND_Y = "1";
	
	/**
	 * 未送信フラグ（送信済み）
	 */
	private static final String MI_SEND_FLG_N = "0";

	/**
	 * ページャ表示の画面ID（セッションキー）
	 */
	private static final String SCREENID = JKKScreenConst.SCREEN_ID_KKW21811;

	/** 取消異常 */
	private static final String CANSEL_ERR = "1";

	/** 送信異常 */
	private static final String SEND_ERR = "2";

	/** ディレイド処理異常 */
	private static final String DLYD_TRN_ERR = "3";

	/**
	 * 初期表示処理<br>
	 * <br>
	 * １．画面情報を取得し、サービスフォームBeanに設定します。<br>
	 * ２．プルダウン表示のためのサービスの呼び出しを行います。<br>
	 * ３．検索要の場合（後続画面からの戻り遷移時）は、検索実行処理を行います。<br>
	 * ４．画面表示用にDataBeanに格納します。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public boolean actionInit() throws Exception 
	{
		boolean result = true;

		// 画面情報を取得し、サービスフォームBeanに設定。
		// ANK-3346-01-00 MOD START
//		JCCWebCommon.getScreenInfo(this);
		Map<String, Object> hktgParamMap = JCCWebCommon.getScreenInfo(this);
		// ANK-3346-01-00 MOD END

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};

		// ANK-3346-01-00 ADD START
		if (hktgParamMap != null)
		{
			if (hktgParamMap.containsKey(KKW21811SFConst.SEARCH_FLG))
			{
				// 検索フラグ
				String hktgSearchFlg = JKKStringUtil.nullToBlank((String)hktgParamMap.get(KKW21811SFConst.SEARCH_FLG));
				bean.sendMessageString(KKW21811SFConst.SEARCH_FLG, X31CWebConst.DATABEAN_SET_VALUE, hktgSearchFlg);
			}
			if (hktgParamMap.containsKey(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST))
			{
				// 顧客契約引継リストを取得
				List<Map<String, Object>> dataList = (List<Map<String, Object>>)hktgParamMap.get(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
				Map<String, Object> hktgMap = dataList.get(0);
				if (hktgMap != null && hktgMap.containsKey(JKKCommonConst.HKTGI_SVC_KEI_NO))
				{
					// お客さまＩＤ
					String hktgSvcKeiNo = JKKStringUtil.nullToBlank((String)hktgMap.get(JKKCommonConst.HKTGI_SVC_KEI_NO));
					bean.sendMessageString(KKW21811SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, hktgSvcKeiNo);
				}
			}
		}
		// ANK-3346-01-00 ADD END

		// 検索フラグ取得
		String search_flg = bean.sendMessageString(KKW21811SFConst.SEARCH_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		// 検索系フラグ、および検索結果の初期化
		beforeSearch(bean);


		//APサーバに依頼する業務データを格納したマップオブジェクト
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		//APサーバの処理結果業務データを受け取るマップオブジェクト
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// 上りマッピング処理(サービス項目-DataBean項目マッピング)
		KKSV0869_KKSV0869OPDBMapper mapper = new KKSV0869_KKSV0869OPDBMapper();
		mapper.setKKSV086901SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setDslLetterSearchCC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		// 検索「要」の場合
		if (SEARCH_FLG_Y.equals(search_flg))
		{
			// ページング情報上りマッピング
			JCCWebCommon.upmapperPageLinkInfo(this, "DslLetterSearchCC", inputMap, SCREENID);
		}
		
		//サービス呼出処理
		invokeService("KKSV0869", "KKSV0869OP", inputMap, outputMap);
		
		// 下りマッピング処理(サービス項目-DataBean項目マッピング)
		JKKWebCommon.setPulldownList(bean, outputMap, KKW21811SFConst.HAK_DIV, "KKSV086901SC", true);

		// 検索「要」の場合
		if (SEARCH_FLG_Y.equals(search_flg))
		{
			mapper.getDslLetterSearchCC(paramBean, outputMap);

			// 検索後処理
			afterSearch(bean, outputMap);
		}
		
		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// 画面名を共有フォームBeanの項目に設定する
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW21811);

		// チェックボックスの選択値の初期化
		setCheckBoxSelected(bean, search_flg);
		
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return result;
	}
	// ANK-3346-00-00 ADD START
	/**
	 * 登録者氏名の名称を取得します。（非同期通信用）
	 * @return true
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	public boolean searchAddUserIdAjax() throws Exception
	{
		JKKWebCommon.setSelfScreenID(this);
		
		X31SDataBeanAccess bean = getServiceFormBean();
		bean.sendMessageString(KKW21811SFConst.ADD_USER_NM, X31CWebConst.DATABEAN_SET_VALUE, "");

		String addUserId = bean.sendMessageString(KKW21811SFConst.ADD_USER_ID, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (null == addUserId || addUserId.length() < 6)
		{
			return true;
		}
		
		// 登録者氏名を取得
		Map addUserInfo = getAddUserInfo(addUserId, bean);
		String userNm = addUserInfo.containsKey("user_nm") ? (String)addUserInfo.get("user_nm") : "";
		
		bean.sendMessageString(KKW21811SFConst.ADD_USER_NM, X31CWebConst.DATABEAN_SET_VALUE, userNm);
		
		return true;
	}
	
	/**
	 * ユーザマスタよりユーザ情報を取得します。
	 * @param addUserId 登録ID
	 * @param dataBean DataBean
	 * @return ユーザ情報
	 */
	@SuppressWarnings("unchecked")
	private Map getAddUserInfo(String addUserId, X31SDataBeanAccess dataBean)
	{
		if (null == addUserId || "".equals(addUserId) || addUserId.length() < 6)
		{
			return new HashMap();
		}
		KKSV0880_KKSV0880OPDBMapper mapper = new KKSV0880_KKSV0880OPDBMapper();
		// サービス検索条件格納用マップ
		HashMap inputMap = new HashMap<String, Map<String, String>>();
		// サービス処理結果格納用マップ
		HashMap outputMap = new HashMap<String, String>();
		// サービスIDをparamにセット
		Map paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0880");
		
		//EZM0051A010 ユーザ一意照会
		mapper.setKKSV088001SC(dataBean, inputMap);

		// サービスの呼び出し
		invokeService(paramMap, inputMap, outputMap);
		
		return getEzm0051A010CbsMsg1List(outputMap);
	}
	
	/**
	 * KKSV0880の実行結果よりユーザ一意照会明細のユーザ情報を取得します。
	 * @param outputMap KKSV0880の実行結果
	 * @return ユーザ情報
	 */
	@SuppressWarnings("unchecked")
	private Map getEzm0051A010CbsMsg1List(Map outputMap)
	{
		if(!outputMap.containsKey("KKSV088001SC")) 
		{
			return new HashMap();
		}
		HashMap parentMap = (HashMap)outputMap.get("KKSV088001SC");
		if (!parentMap.containsKey("EZM0051A010CBSMsg1List")) 
		{
			return new HashMap();
		}

		ArrayList childList = (ArrayList)parentMap.get("EZM0051A010CBSMsg1List");
		if (childList.size() == 0) 
		{
			return new HashMap();
		}
		
		return (HashMap)childList.get(0);
	}
	// ANK-3346-00-00 ADD END
	
	/**
	 * 検索処理<br>
	 * <br>
	 * １．検索条件を退避します。
	 * ２．検索実行処理を行います。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionSearch() throws Exception 
	{
		boolean result = true;

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		// 自画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW21811);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW21811);

		// 検索条件の取り出し
		// 検索用SYSID
		bean.sendMessageString(KKW21811SFConst.SEARCH_SYSID, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(KKW21811SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		// 検索用請求契約番号
		bean.sendMessageString(KKW21811SFConst.SEARCH_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(KKW21811SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 検索用お客様ID
		bean.sendMessageString(KKW21811SFConst.SEARCH_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(KKW21811SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// 検索用解約レター登録日（自）
		String letter_add_year_f = bean.sendMessageString(KKW21811SFConst.LETTER_ADD_YEAR_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		String letter_add_mon_f = bean.sendMessageString(KKW21811SFConst.LETTER_ADD_MON_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		String letter_add_day_f = bean.sendMessageString(KKW21811SFConst.LETTER_ADD_DAY_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(KKW21811SFConst.SEARCH_LETTER_ADD_YMD_FROM, X31CWebConst.DATABEAN_SET_VALUE,
				letter_add_year_f + letter_add_mon_f + letter_add_day_f);
		// 検索用解約レター登録日（至）
		String letter_add_year_t = bean.sendMessageString(KKW21811SFConst.LETTER_ADD_YEAR_TO, X31CWebConst.DATABEAN_GET_VALUE);
		String letter_add_mon_t = bean.sendMessageString(KKW21811SFConst.LETTER_ADD_MON_TO, X31CWebConst.DATABEAN_GET_VALUE);
		String letter_add_day_t = bean.sendMessageString(KKW21811SFConst.LETTER_ADD_DAY_TO, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(KKW21811SFConst.SEARCH_LETTER_ADD_YMD_TO, X31CWebConst.DATABEAN_SET_VALUE,
				letter_add_year_t + letter_add_mon_t + letter_add_day_t);

		// ANK-3346-00-00 ADD START
		// 検索用登録者ID
		bean.sendMessageString(KKW21811SFConst.SEARCH_ADD_ID, X31CWebConst.DATABEAN_SET_VALUE,
				bean.sendMessageString(KKW21811SFConst.ADD_USER_ID, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3346-00-00 ADD END

		// 選択された発行区分コードを添え字からコードに変換
		X31SDataBeanAccessArray hakkoKbnList = bean.getDataBeanArray(KKW21811SFConst.HAK_DIV);
		X31SDataBeanAccess hakkoKbnBean = hakkoKbnList.getDataBean(0);
		int hakkoKbnIndex = Integer.parseInt(hakkoKbnBean.sendMessageString(KKW21811SFConst.INDEX_01, X31CWebConst.DATABEAN_GET_VALUE));

		String hakkoKbn = hakkoKbnBean.sendMessageString(KKW21811SFConst.CD_DIV_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, hakkoKbnIndex);
		bean.sendMessageString(KKW21811SFConst.SEARCH_HAK_DIV, X31CWebConst.DATABEAN_SET_VALUE, hakkoKbn);			// 検索用発行区分コード

		// 未送信取得
		Boolean mi_send = bean.sendMessageBoolean(KKW21811SFConst.MI_SEND, X31CWebConst.DATABEAN_GET_VALUE);
		if (mi_send.booleanValue())
		{
			// 再検索用未送信
			bean.sendMessageString(KKW21811SFConst.SEARCH_MI_SEND, X31CWebConst.DATABEAN_SET_VALUE, MI_SEND_FLG_Y);
		}
		else
		{
			// 再検索用未送信
			bean.sendMessageString(KKW21811SFConst.SEARCH_MI_SEND, X31CWebConst.DATABEAN_SET_VALUE, MI_SEND_FLG_N);
		}
		// 照合済取得
		Boolean shogo_zumi_flg = bean.sendMessageBoolean(KKW21811SFConst.SHOGO_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if (shogo_zumi_flg.booleanValue())
		{
			// 再検索用照合済み
			bean.sendMessageString(KKW21811SFConst.SEARCH_SHOGO_FLG, X31CWebConst.DATABEAN_SET_VALUE, SHOGO_ZUMI_FLG);
		}
		else
		{
			// 再検索用照合済
			bean.sendMessageString(KKW21811SFConst.SEARCH_SHOGO_FLG, X31CWebConst.DATABEAN_SET_VALUE, SHOGO_ZUMI_NO_FLG);
		}
		
		// レター発行要取得
		Boolean letter_hakko_flg = bean.sendMessageBoolean(KKW21811SFConst.LETTER_HAK_Y, X31CWebConst.DATABEAN_GET_VALUE);
		if (letter_hakko_flg.booleanValue())
		{
			// 再検索用レター発行要
			bean.sendMessageString(KKW21811SFConst.SEARCH_LETTER_HAK_Y, X31CWebConst.DATABEAN_SET_VALUE, LETTER_HAKKO_FLG);
		}
		else
		{
			// 再検索用レター発行要
			bean.sendMessageString(KKW21811SFConst.SEARCH_LETTER_HAK_Y, X31CWebConst.DATABEAN_SET_VALUE, LETTER_HAKKO_NO_FLG);
		}

		// ソート番号クリア
		bean.sendMessageString(KKW21811SFConst.SORT_NUM, X31CWebConst.DATABEAN_SET_VALUE, "");
		// ソート項目Noクリア
		bean.sendMessageString(KKW21811SFConst.ORDER_NUM, X31CWebConst.DATABEAN_SET_VALUE, "");
		// ソート順クリア
		bean.sendMessageString(KKW21811SFConst.ORDER_TYPE, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 解約レター検索結果一覧クリア
		bean.sendMessageString(KKW21811SFConst.DSL_LETTER_SEARCH_LIST, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 解約レター登録番号クリア
		bean.sendMessageString(KKW21811SFConst.DSL_LETTER_NO, X31CWebConst.DATABEAN_SET_VALUE, "");

		// ページング情報削除
		JCCWebCommon.clearPageLinkInfo(this, SCREENID);

		//APサーバの処理結果業務データを受け取るマップオブジェクト
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		// 検索系フラグ、および検索結果の初期化
		beforeSearch(bean);

		// 検索処理実行
		execSearch(bean, outputMap);

		// 検索後処理
		afterSearch(bean, outputMap);

		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return result;
	}

	/**
	 * ページャ処理<BR>
	 * <br>
	 * １．検索実行処理を行います。<br>
	 * 　　（ソート情報は保持）
	 * <p>
	 * @return 正常／異常
	 * @throws Exception
	 */
	public boolean actionPaging() throws Exception
	{
		boolean result = true;

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 解約レター選択行クリア
		bean.sendMessageString(KKW21811SFConst.DSL_LETTER_SEARCH_LIST, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 解約レター番号クリア
		bean.sendMessageString(KKW21811SFConst.DSL_LETTER_NO, X31CWebConst.DATABEAN_SET_VALUE, "");

		//APサーバの処理結果業務データを受け取るマップオブジェクト
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		// 検索系フラグ、および検索結果の初期化
		beforeSearch(bean);

		//検索処理実行
		execSearch(bean, outputMap);

		// 検索後処理
		afterSearch(bean, outputMap);

		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return result;
	}

	/**
	 * ソータ処理（昇順）<BR>
	 * <br>
	 * １．押下された▼▲より、ソート項目を調べます。<BR>
	 * ２．検索実行処理を実行します。<BR>
	 * <p>
	 * @return 正常／異常
	 * @throws Exception
	 */
	public boolean actionSortAsc() throws Exception
	{
		boolean result = true;
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// ソート番号取得
		String sort_num = bean.sendMessageString(KKW21811SFConst.SORT_NUM, X31CWebConst.DATABEAN_GET_VALUE);
		
		// ソート項目No
		bean.sendMessageString(KKW21811SFConst.ORDER_NUM, X31CWebConst.DATABEAN_SET_VALUE, sort_num);
		// ソート順
		bean.sendMessageString(KKW21811SFConst.ORDER_TYPE, X31CWebConst.DATABEAN_SET_VALUE, ORDERTYPE_ASC);
		// 解約レター選択行クリア
		bean.sendMessageString(KKW21811SFConst.DSL_LETTER_SEARCH_LIST, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 解約レター番号クリア
		bean.sendMessageString(KKW21811SFConst.DSL_LETTER_NO, X31CWebConst.DATABEAN_SET_VALUE, "");

		//APサーバの処理結果業務データを受け取るマップオブジェクト
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		// 検索系フラグ、および検索結果の初期化
		beforeSearch(bean);

		//検索処理実行
		execSearch(bean, outputMap);

		// 検索後処理
		afterSearch(bean, outputMap);

		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return result;
	}

	/**
	 * ソータ処理（降順）<BR>
	 * <br>
	 * １．押下された▼▲より、ソート項目を調べます。<BR>
	 * ２．検索実行処理を実行します。<BR>
	 * <p>
	 * @return 正常／異常
	 * @throws Exception
	 */
	public boolean actionSortDesc() throws Exception
	{
		boolean result = true;
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// ソート番号取得
		String sort_num = bean.sendMessageString(KKW21811SFConst.SORT_NUM, X31CWebConst.DATABEAN_GET_VALUE);
		
		// ソート項目No
		bean.sendMessageString(KKW21811SFConst.ORDER_NUM, X31CWebConst.DATABEAN_SET_VALUE, sort_num);
		// ソート順
		bean.sendMessageString(KKW21811SFConst.ORDER_TYPE, X31CWebConst.DATABEAN_SET_VALUE, ORDERTYPE_DESC);
		// 解約レター検索結果一覧クリア
		bean.sendMessageString(KKW21811SFConst.DSL_LETTER_SEARCH_LIST, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 解約レター登録番号クリア
		bean.sendMessageString(KKW21811SFConst.DSL_LETTER_NO, X31CWebConst.DATABEAN_SET_VALUE, "");

		//APサーバの処理結果業務データを受け取るマップオブジェクト
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		// 検索系フラグ、および検索結果の初期化
		beforeSearch(bean);

		//検索処理実行
		execSearch(bean, outputMap);

		// 検索後処理
		afterSearch(bean, outputMap);

		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return result;
	}

	/**
	 * 初期化処理<br>
	 * <br>
	 * １．検索項目欄をクリアします。
	 * ２．プルダウンの選択値とチェックボックスは初期表示値に戻します。
	 * ３．一覧表示部分は非表示にします。
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionClear() throws Exception 
	{
		boolean result = true;
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 画面入力項目
		//SYSID
		bean.sendMessageString(KKW21811SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE,"");
		//請求契約番号
		bean.sendMessageString(KKW21811SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE,"");
		//お客さまID
		bean.sendMessageString(KKW21811SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE,"");
		//レター登録日（自）（年）
		bean.sendMessageString(KKW21811SFConst.LETTER_ADD_YEAR_FROM, X31CWebConst.DATABEAN_SET_VALUE,"");
		//レター登録日（自）（月）
		bean.sendMessageString(KKW21811SFConst.LETTER_ADD_MON_FROM, X31CWebConst.DATABEAN_SET_VALUE,"");
		//レター登録日（自）（日）
		bean.sendMessageString(KKW21811SFConst.LETTER_ADD_DAY_FROM, X31CWebConst.DATABEAN_SET_VALUE,"");
		//レター登録日（至）（年）
		bean.sendMessageString(KKW21811SFConst.LETTER_ADD_YEAR_TO, X31CWebConst.DATABEAN_SET_VALUE,"");
		//レター登録日（至）（月）
		bean.sendMessageString(KKW21811SFConst.LETTER_ADD_MON_TO, X31CWebConst.DATABEAN_SET_VALUE,"");
		//レター登録日（至）（日）
		bean.sendMessageString(KKW21811SFConst.LETTER_ADD_DAY_TO, X31CWebConst.DATABEAN_SET_VALUE,"");
		// ANK-3346-00-00 ADD START
		//登録者ID
		bean.sendMessageString(KKW21811SFConst.ADD_USER_ID, X31CWebConst.DATABEAN_SET_VALUE,"");
		//登録者氏名
		bean.sendMessageString(KKW21811SFConst.ADD_USER_NM, X31CWebConst.DATABEAN_SET_VALUE,"");
		// ANK-3346-00-00 ADD END

		//検索エラーフラグ（０件）
		bean.sendMessageString(KKW21811SFConst.SEARCH_ERR_FLG_ZERO, X31CWebConst.DATABEAN_SET_VALUE,"");
		
		// 検索用
		//検索用SYSID
		bean.sendMessageString(KKW21811SFConst.SEARCH_SYSID, X31CWebConst.DATABEAN_SET_VALUE,"");
		//検索用請求契約番号
		bean.sendMessageString(KKW21811SFConst.SEARCH_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE,"");
		//検索用お客さまID
		bean.sendMessageString(KKW21811SFConst.SEARCH_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE,"");
		//検索用レター登録日（自）
		bean.sendMessageString(KKW21811SFConst.SEARCH_LETTER_ADD_YMD_FROM, X31CWebConst.DATABEAN_SET_VALUE,"");
		//検索用レター登録日（至）
		bean.sendMessageString(KKW21811SFConst.SEARCH_LETTER_ADD_YMD_TO, X31CWebConst.DATABEAN_SET_VALUE,"");
		//検索用発行区分
		bean.sendMessageString(KKW21811SFConst.SEARCH_HAK_DIV, X31CWebConst.DATABEAN_SET_VALUE,"");
		//検索用未送信
		bean.sendMessageString(KKW21811SFConst.SEARCH_MI_SEND, X31CWebConst.DATABEAN_SET_VALUE,"1");
		//検索用照合済
		bean.sendMessageString(KKW21811SFConst.SEARCH_SHOGO_FLG, X31CWebConst.DATABEAN_SET_VALUE,"0");
		//検索用レター発行要
		bean.sendMessageString(KKW21811SFConst.SEARCH_LETTER_HAK_Y, X31CWebConst.DATABEAN_SET_VALUE,"0");
		// ANK-3346-00-00 ADD START
		//検索用登録者ID
		bean.sendMessageString(KKW21811SFConst.SEARCH_ADD_ID, X31CWebConst.DATABEAN_SET_VALUE,"");
		// ANK-3346-00-00 ADD END

		// チェックボックスの選択値の初期化
		setCheckBoxSelected(bean, SEARCH_FLG_N);

		// ソート用
		//ソート番号
		bean.sendMessageString(KKW21811SFConst.SORT_NUM, X31CWebConst.DATABEAN_SET_VALUE,"");
		//ソート順
		bean.sendMessageString(KKW21811SFConst.ORDER_TYPE, X31CWebConst.DATABEAN_SET_VALUE,"");
		//検索フラグ
		bean.sendMessageString(KKW21811SFConst.SEARCH_FLG, X31CWebConst.DATABEAN_SET_VALUE,"");
		//一覧表示フラグ
		bean.sendMessageBoolean(KKW21811SFConst.LIST_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		//解約レター検索選択行
		bean.sendMessageString(KKW21811SFConst.DSL_LETTER_SEARCH_LIST, X31CWebConst.DATABEAN_SET_VALUE,"");
		//解約レター検索番号
		bean.sendMessageString(KKW21811SFConst.DSL_LETTER_NO, X31CWebConst.DATABEAN_SET_VALUE,"");

		// 解約レター検索結果一覧（検索結果）
		X31SDataBeanAccessArray dsl_letter_search_list = bean.getDataBeanArray(KKW21811SFConst.DSL_LETTER_SEARCH_LIST);
		dsl_letter_search_list.clearArray();

		// 入力有無フラグクリア
		bean.sendMessageString(KKW21811SFConst.INFLG, X31CWebConst.DATABEAN_SET_VALUE, "");

		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return result;
	}

	
	/**
	 * サービスフォームBean詳細情報クリア処理<br>
	 * <br>
	 * @param	paramBean	DataBean項目の配列
	 * @throws	Exception
	 */
	private void clearDetailBean(X31SDataBeanAccess paramBean) throws Exception
	{

		// 解約レター更新情報クリア
		X31SDataBeanAccessArray kaiyakuLetterlist = paramBean.getDataBeanArray(KKW21811SFConst.DSL_LETTER_UPD_LIST);

		if (kaiyakuLetterlist != null)
		{
			kaiyakuLetterlist.clearArray();
		}

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

	}

	/**
	 * 更新/照合処理<br>
	 * <br>
	 * １．解約レター再発行・更新画面へ遷移します。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionUpdShogo() throws Exception
	{
		boolean result = true;
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 解約レター更新情報クリア
		clearDetailBean(bean);

		setParamAndSeni2(TRAN_DIV_UPDSHOG, JKKScreenConst.SCREEN_ID_KKW21812, JKKScreenConst.SCREEN_NAME_KKW21812 );

		return result;
	}
	

	/**
	 * 取消処理<br>
	 * <br>
	 * １．解約レター一括画面へ遷移します。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionCancel() throws Exception
	{
		boolean result = true;
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 解約レター更新情報クリア
		clearDetailBean(bean);

		setParamAndSeni(TRAN_DIV_CANCEL, JKKScreenConst.SCREEN_ID_KKW21815, JKKScreenConst.SCREEN_NAME_KKW21815);

		// チェックエラーがない場合
		if (!hasMessageId(JPCOnlineMessageConstant.EKB0930_NW))
		{
			// 確認メッセージ設定
			X31SDataBeanAccessArray updateList = bean.getDataBeanArray(KKW21811SFConst.DSL_LETTER_UPD_LIST);
			String msgParam = "以下の選択された" + String.valueOf(updateList.getCount()) + "件のファイル";
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBE850__Q, new String[]{msgParam});
		}

		return result;
	}

	/**
	 * 再発行処理<br>
	 * <br>
	 * １．解約レター再発行・新画面へ遷移します。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionSaihakko() throws Exception
	{
		boolean result = true;
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 解約レター更新情報クリア
		clearDetailBean(bean);

		setParamAndSeni2(TRAN_DIV_SAIHAKKO, JKKScreenConst.SCREEN_ID_KKW21812, JKKScreenConst.SCREEN_NAME_KKW21812 );

		return result;
	}
	
	/**
	 * ヤマト送信処理<br>
	 * <br>
	 * １．ヤマト送信処理を実行します。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionSend() throws Exception
	{
		boolean result = true;

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 解約レター更新情報クリア
		clearDetailBean(bean);

		// 一括送信
		if (bean.sendMessageBoolean(KKW21811SFConst.IKT_SEND, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// 一括送信対象を検索
			boolean isOKSearch = executeIktSendSearch(new X31SDataBeanAccess[]{bean});

			// 検索結果が最大検索件数超えの場合
			if (!isOKSearch)
			{
				// メッセージを出力
				String[] str = {JCCWebCommon.getSearchConst("KKW21811_MAX_SHOW_CNT")};
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, str);
				setParamAndSeni(TRAN_DIV_YAMATOSEN, JKKScreenConst.SCREEN_ID_KKW21811, JKKScreenConst.SCREEN_NAME_KKW21811);
				return result;
			}
		}

		setParamAndSeni(TRAN_DIV_YAMATOSEN, JKKScreenConst.SCREEN_ID_KKW21815, JKKScreenConst.SCREEN_NAME_KKW21815);

		// チェックエラーがない場合
		if (!hasMessageId(JPCOnlineMessageConstant.EKB0930_NW))
		{
			X31SDataBeanAccessArray dslLetterUpdateArray = bean.getDataBeanArray(KKW21811SFConst.DSL_LETTER_UPD_LIST);
			String msgParam = "";
			// 一括送信
			if (bean.sendMessageBoolean(KKW21811SFConst.IKT_SEND, X31CWebConst.DATABEAN_GET_VALUE))
			{
				// 解約レター検索結果一覧を解約レター登録更新情報にコピー
				msgParam = "送信可能状態にある" + String.valueOf(dslLetterUpdateArray.getCount()) + "件のファイル";
			}
			// 個別送信
			else
			{
				msgParam = "以下の選択された" + String.valueOf(dslLetterUpdateArray.getCount()) + "件のファイル";
			}
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBE860__Q, new String[]{msgParam});
		}

		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return result;
	}

	/**
	 * 修正ボタン押下時処理を実行します。<br>
	 * <br>
	 * @return 処理結果
	 * @throws Exception 発生した例外
	 */
	public boolean actionShusei() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		//APサーバの処理結果業務データを受け取るマップオブジェクト
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		// 検索系フラグ、および検索結果の初期化
		beforeSearch(bean);

		// 検索処理実行
		execSearch(bean, outputMap);

		// 検索後処理
		afterSearch(bean, outputMap);

		// 検索フラグ取得
		String search_flg = bean.sendMessageString(KKW21811SFConst.SEARCH_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		// チェックボックスの選択値を設定する
		setCheckBoxSelected(bean, search_flg);

		// 遷移先画面を設定
		setNextScreen(JKKScreenConst.SCREEN_ID_KKW21811, JKKScreenConst.SCREEN_NAME_KKW21811);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}

	/**
	 * 確定ボタン押下時処理を実行します。<br>
	 * <br>
	 * @return 処理結果
	 * @throws Exception 発生した例外
	 */
	public boolean actionFix() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};

		// 解約レター一括処理の実行
		String errFlg = executeIktProc(paramBean);

		// エラーを画面に出力
		if (!checkIktResult(paramBean, errFlg))
		{
			// 遷移先画面を設定
			setNextScreen(JKKScreenConst.SCREEN_ID_KKW21815, JKKScreenConst.SCREEN_NAME_KKW21815);
		}
		else
		{
			// 遷移先画面を設定
			setNextScreen(JKKScreenConst.SCREEN_ID_KKW21816, JKKScreenConst.SCREEN_NAME_KKW21816);
		}

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}

	/**
	 * 一覧へボタン押下時処理を実行します。<br>
	 * <br>
	 * @return 処理結果
	 * @throws Exception 発生した例外
	 */
	public boolean actionFin() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		//APサーバの処理結果業務データを受け取るマップオブジェクト
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		// 検索系フラグ、および検索結果の初期化
		beforeSearch(bean);

		// 検索処理実行
		execSearch(bean, outputMap);

		// 検索後処理
		afterSearch(bean, outputMap);

		// 検索フラグ取得
		String search_flg = bean.sendMessageString(KKW21811SFConst.SEARCH_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		// チェックボックスの選択値を設定する
		setCheckBoxSelected(bean, search_flg);

		// 遷移先画面を設定
		setNextScreen(JKKScreenConst.SCREEN_ID_KKW21811, JKKScreenConst.SCREEN_NAME_KKW21811);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}

	/**
	 * サービス呼出処理<br>
	 * <br>
	 * サービスの呼び出しを行います。<br>
	 * <br>
	 * @param usecase_id ユースケースID
	 * @param operation_id オペレーションID
	 * @param inputMap APサーバに依頼する業務データを格納したマップオブジェクト
	 * @return APサーバでエラーが発生した場合は、エラーメッセージ情報オブジェクトが返却されます。<br>
	 * 正常終了時には、null値が返却されます。
	 * @throws Exception 
	 */
	private X31CMessageResult invokeService(String usecase_id, String operation_id, HashMap<String, Object> inputMap, HashMap<String, Object> outputMap) throws Exception
	{
		X31CMessageResult msgResult = null;		// 戻り値用

		// パラメタ設定
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, usecase_id);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, operation_id);

		// メッセージリストの初期化
		clearMessageResultList();

		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		// サービスの呼び出し
		msgResult = invokeService(paramMap, inputMap, outputMap);

		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return msgResult;
	}

	/**
	 * 検索前処理<br>
	 * <br>
	 * 検索系フラグ、および検索結果の初期化を行います。<BR>
	 * <br>
	 * @param bean データBeanアクセスクラス
	 */
	private void beforeSearch(X31SDataBeanAccess bean) 
	{
		// 一覧表示部分を非表示にする
		bean.sendMessageBoolean(KKW21811SFConst.LIST_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);

		// 解約レター検索一覧情報クリア
		X31SDataBeanAccessArray kaiyakuLetterlist = bean.getDataBeanArray(KKW21811SFConst.DSL_LETTER_SEARCH_LIST);
		kaiyakuLetterlist.clearArray();
		// 解約レター更新情報クリア
		X31SDataBeanAccessArray kaiyakuLetterlistUpd = bean.getDataBeanArray(KKW21811SFConst.DSL_LETTER_UPD_LIST);
		kaiyakuLetterlistUpd.clearArray();
		// IT1-2018-0000001 ADD START
		// 登録者IDが未設定の場合は登録者名をクリア
		if (JKKStringUtil.isNullEmpty(bean.sendMessageString(KKW21811SFConst.ADD_USER_ID, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			bean.sendMessageString(KKW21811SFConst.ADD_USER_NM, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		// IT1-2018-0000001 ADD END
	}

	/**
	 * 検索実行処理<BR>
	 * <BR>
	 * 検索処理を実行します。
	 * １．契約内容通知書一覧再検索CCを呼び出します。
	 * ２．エラーがあれば、ステータスに従いメッセージをセットします。
	 * ３．エラーがなければ、一覧表示部分を表示します。
	 * <p>
	 * @param bean サービスフォームBean
	 * @throws Exception
	 */
	private void execSearch(X31SDataBeanAccess bean, HashMap<String, Object> outputMap) throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess[] paramBean = {bean};

		// 検索フラグ設定
		bean.sendMessageString(KKW21811SFConst.SEARCH_FLG, X31CWebConst.DATABEAN_SET_VALUE, SEARCH_FLG_Y);

		// 上りマッピング処理(サービス項目-DataBean項目マッピング)
		KKSV0869_KKSV0869OPDBMapper mapper = new KKSV0869_KKSV0869OPDBMapper();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		mapper.setKKSV086901SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setDslLetterSearchCC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		// ページング情報上りマッピング
		JCCWebCommon.upmapperPageLinkInfo(this, "DslLetterSearchCC", inputMap, SCREENID);

		// サービス呼出処理
		invokeService("KKSV0869", "KKSV0869OP", inputMap, outputMap);
		
		// 下りマッピング処理(サービス項目-DataBean項目マッピング)
		mapper.getDslLetterSearchCC(paramBean, outputMap);

		// 入力有無フラグクリア
		bean.sendMessageString(KKW21811SFConst.INFLG, X31CWebConst.DATABEAN_SET_VALUE, "");
	}

	/**
	 * 検索後処理<br>
	 * <br>
	 * 検索サービスインターフェイス呼出後、検索結果よりデータセットを行います。<br>
	 * 取得データの検索エラーフラグが以下の場合は結果欄を表示しません。<BR>
	 * ・検索結果が0件の場合<BR>
	 * ・検索結果が最大検索件数超えの場合<BR>
	 * <br>
	 * @param bean サービスフォームBean
	 */
	private void afterSearch(X31SDataBeanAccess bean, HashMap<String, Object> outputMap) 
	{
		// 検索結果のHashMapから、指定したSCタイトルの検索エラーフラグを取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg("DslLetterSearchCC", outputMap);

		// 取得データ件数チェック
		if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			// 検索結果が0件の場合の処理
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
		}
		else if(JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg))
		{
			// 検索結果が最大検索件数超えの場合の処理
			String[] str = {JCCWebCommon.getSearchConst("KKW21811_MAX_SHOW_CNT")};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, str);
		}
		else
		{
			if(JPCModelConstant.SEARCH_ERR_FLG_NODATA.equals(searchErrFlg))
			{
				// 表示ページに該当するデータがない場合の処理
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0350__I);
			}
			
			// ページング情報下りマッピング
			JCCWebCommon.downmapperPageLinkInfo(this, "DslLetterSearchCC", outputMap, SCREENID);

			// ページングのコマンドマップIDをセッションに設定
			JCCWebCommon.setSearchCommand(this, PAGING_CMD);

			// 一覧表示「要」をセットする。
			bean.sendMessageBoolean(KKW21811SFConst.LIST_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);

			// 選択する行を取得
			String letterAddNo_bf = bean.sendMessageString(KKW21811SFConst.DSL_LETTER_NO, X31CWebConst.DATABEAN_GET_VALUE);
			String[] letterAddNo_bf_array = null;
			if (letterAddNo_bf != null)
			{
				letterAddNo_bf_array = letterAddNo_bf.split(",");
			}

			// 解約レター一覧の数だけ繰り返して設定
			X31SDataBeanAccessArray datalist = bean.getDataBeanArray(KKW21811SFConst.DSL_LETTER_SEARCH_LIST);
			for (int i = 0; i < datalist.getCount(); i++)
			{
				X31SDataBeanAccess dataBean = datalist.getDataBean(i);

				// 解約レター登録番号
				String letterAddNo = dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_ADD_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
				
				// 前回選択行と等しければ選択
				if (letterAddNo_bf_array != null)
				{
					for (int j = 0; j < letterAddNo_bf_array.length; j++)
					{
						if (letterAddNo_bf_array[j] != null && letterAddNo_bf_array[j].equals(letterAddNo))
						{
							dataBean.sendMessageBoolean(KKW21811SFConst.SELECTED_BOOLEAN_02, X31CWebConst.DATABEAN_SET_VALUE, true);
						}
					}
				}
			}
		}
	}
	
	/**
	 * チェックボックスの選択値を設定します。
	 * <BR>
	 * 
	 * @param bean データBeanアクセスクラス
	 * @param search_flg 検索フラグ
	 */
	private void setCheckBoxSelected(X31SDataBeanAccess bean, String search_flg)
	{
		// 発行区分のプルダウン
		X31SDataBeanAccessArray hakkoKbnList = bean.getDataBeanArray(KKW21811SFConst.HAK_DIV);
		X31SDataBeanAccess hakkoKbnBean = hakkoKbnList.getDataBean(0);

		// 検索フラグ「要」であれば、検索条件より選択値を設定
		if (SEARCH_FLG_Y.equals(search_flg))
		{
			// 検索照合済
			String search_shogo_flg = bean.sendMessageString(KKW21811SFConst.SEARCH_SHOGO_FLG, X31CWebConst.DATABEAN_GET_VALUE);
			if (SHOGO_ZUMI_FLG.equals(search_shogo_flg))
			{
				// 照合済チェックボックスをcheckedにする
				bean.sendMessageBoolean(KKW21811SFConst.SHOGO_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
			}
			else
			{
				// 照合済チェックボックスをcheckedにしない
				bean.sendMessageBoolean(KKW21811SFConst.SHOGO_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
			}
			
			// 検索用未送信
			String search_mi_send = bean.sendMessageString(KKW21811SFConst.SEARCH_MI_SEND, X31CWebConst.DATABEAN_GET_VALUE);
			if (MI_SEND_FLG_Y.equals(search_mi_send))
			{
				// 未送信チェックボックスをcheckedにする
				bean.sendMessageBoolean(KKW21811SFConst.MI_SEND, X31CWebConst.DATABEAN_SET_VALUE, true);
			}
			else
			{
				// 未送信チェックボックスをcheckedにしない
				bean.sendMessageBoolean(KKW21811SFConst.MI_SEND, X31CWebConst.DATABEAN_SET_VALUE, false);
			}
			
			// 検索レター発行要
			String search_letter_hak_yh = bean.sendMessageString(KKW21811SFConst.SEARCH_LETTER_HAK_Y, X31CWebConst.DATABEAN_GET_VALUE);
			if (LETTER_HAKKO_FLG.equals(search_letter_hak_yh))
			{
				// レター発行要チェックボックスをcheckedにする
				bean.sendMessageBoolean(KKW21811SFConst.LETTER_HAK_Y, X31CWebConst.DATABEAN_SET_VALUE, true);
			}
			else
			{
				// レター発行要チェックボックスをcheckedにしない
				bean.sendMessageBoolean(KKW21811SFConst.LETTER_HAK_Y, X31CWebConst.DATABEAN_SET_VALUE, false);
			}

			// 検索一括送信
			if (bean.sendMessageBoolean(KKW21811SFConst.IKT_SEND, X31CWebConst.DATABEAN_GET_VALUE))
			{
				// 一括送信チェックボックスをcheckedにする
				bean.sendMessageBoolean(KKW21811SFConst.IKT_SEND, X31CWebConst.DATABEAN_SET_VALUE, true);
			}
			else
			{
				// 一括送信チェックボックスをcheckedにしない
				bean.sendMessageBoolean(KKW21811SFConst.IKT_SEND, X31CWebConst.DATABEAN_SET_VALUE, false);
			}

			// 検索発行区分
			String search_hakko_kbn = bean.sendMessageString(KKW21811SFConst.SEARCH_HAK_DIV, X31CWebConst.DATABEAN_GET_VALUE);
			// indexを調べてselectedにする
			ArrayList<String> selParamDataKbn = new ArrayList<String>();
			getPulldownSelected(hakkoKbnBean, search_hakko_kbn, selParamDataKbn);
			hakkoKbnBean.sendMessageString(KKW21811SFConst.INDEX_01,X31CWebConst.DATABEAN_SET_VALUE, (String)selParamDataKbn.get(0));
		}
		// チェックボックスの選択値の初期化
		else
		{
			// 発行区分のプルダウンは先頭（空白）を選択
			hakkoKbnBean.sendMessageString(KKW21811SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, "0");
			
			// 照合済チェックボックスをuncheckedにする
			bean.sendMessageBoolean(KKW21811SFConst.SHOGO_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
			// 未送信チェックボックスをcheckedにする
			bean.sendMessageBoolean(KKW21811SFConst.MI_SEND, X31CWebConst.DATABEAN_SET_VALUE, true);
			// レター発行要チェックボックスをuncheckedにする
			bean.sendMessageBoolean(KKW21811SFConst.LETTER_HAK_Y, X31CWebConst.DATABEAN_SET_VALUE, false);
			// 一括送信チェックボックスをuncheckedにする
			bean.sendMessageBoolean(KKW21811SFConst.IKT_SEND, X31CWebConst.DATABEAN_SET_VALUE, false);
		}
	}

	/**
	 * コードより該当するプルダウンのindexとコード区分名を取得します。
	 * <BR>
	 * @param bean データBeanアクセスクラス
	 * @param code 探すコード
	 * @param param [0] 該当のindex、[1] 該当のコード区分名
	 */
	private void getPulldownSelected(X31SDataBeanAccess bean, String code, ArrayList<String> param)
	{
		Integer count = (Integer)bean.sendMessage(KKW21811SFConst.CD_DIV_LIST_01, X31CWebConst.DATABEAN_GET_COUNT);
		
		for (int i = 0; i < count; i++)
		{
			String cd = bean.sendMessageString(KKW21811SFConst.CD_DIV_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, i);

			String nm = bean.sendMessageString(KKW21811SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, i);

			if (cd != null)
			{
				if (cd.equals(code))
				{
					param.add(i + "");
					param.add(nm);
					return;
				}
			}
		}
		param.add("0");
		param.add("");
	}

	/**
	 * 次画面遷移処理（画面跨りなし）
	 * <BR>
	 * 次画面へ遷移します。
	 * <p>
	 * @param tran_div 処理区分（取消、ヤマト送信）
	 * @return 正常／異常
	 */
	@SuppressWarnings("unchecked")
	private boolean setParamAndSeni(String tran_div, String nextGamenID, String nextGamenName)
	{
		boolean result = true;

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 自画面のデータ格納マップ
		HashMap dataMapMe = new HashMap();

		// 検索条件の退避
		// SYSID
		dataMapMe.put(KKW21811SFConst.SYSID, bean.sendMessageString(KKW21811SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		// レター登録日（自）（年）
		dataMapMe.put(KKW21811SFConst.LETTER_ADD_YEAR_FROM, bean.sendMessageString(KKW21811SFConst.LETTER_ADD_YEAR_FROM,X31CWebConst.DATABEAN_GET_VALUE));
		// レター登録日（自）（月）
		dataMapMe.put(KKW21811SFConst.LETTER_ADD_MON_FROM, bean.sendMessageString(KKW21811SFConst.LETTER_ADD_MON_FROM, X31CWebConst.DATABEAN_GET_VALUE));
		// レター登録日（自）（日）
		dataMapMe.put(KKW21811SFConst.LETTER_ADD_DAY_FROM, bean.sendMessageString(KKW21811SFConst.LETTER_ADD_DAY_FROM,X31CWebConst.DATABEAN_GET_VALUE));
		// レター登録日（至）（年）
		dataMapMe.put(KKW21811SFConst.LETTER_ADD_YEAR_TO, bean.sendMessageString(KKW21811SFConst.LETTER_ADD_YEAR_TO, X31CWebConst.DATABEAN_GET_VALUE));
		// レター登録日（至）（月）
		dataMapMe.put(KKW21811SFConst.LETTER_ADD_MON_TO, bean.sendMessageString(KKW21811SFConst.LETTER_ADD_MON_TO, X31CWebConst.DATABEAN_GET_VALUE));
		// レター登録日（至）（日）
		dataMapMe.put(KKW21811SFConst.LETTER_ADD_DAY_TO, bean.sendMessageString(KKW21811SFConst.LETTER_ADD_DAY_TO, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用ＳＹＳＩＤ
		dataMapMe.put(KKW21811SFConst.SEARCH_SYSID, bean.sendMessageString(KKW21811SFConst.SEARCH_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用請求契約番号
		dataMapMe.put(KKW21811SFConst.SEARCH_SEIKY_KEI_NO, bean.sendMessageString(KKW21811SFConst.SEARCH_SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用お客さまID
		dataMapMe.put(KKW21811SFConst.SEARCH_SVC_KEI_NO, bean.sendMessageString(KKW21811SFConst.SEARCH_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用レター登録日（自）
		dataMapMe.put(KKW21811SFConst.SEARCH_LETTER_ADD_YMD_FROM, bean.sendMessageString(KKW21811SFConst.SEARCH_LETTER_ADD_YMD_FROM, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用レター登録日（至）
		dataMapMe.put(KKW21811SFConst.SEARCH_LETTER_ADD_YMD_TO, bean.sendMessageString(KKW21811SFConst.SEARCH_LETTER_ADD_YMD_TO, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用発行区分
		dataMapMe.put(KKW21811SFConst.SEARCH_HAK_DIV, bean.sendMessageString(KKW21811SFConst.SEARCH_HAK_DIV, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用照合済
		dataMapMe.put(KKW21811SFConst.SEARCH_SHOGO_FLG, bean.sendMessageString(KKW21811SFConst.SEARCH_SHOGO_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用未送信
		dataMapMe.put(KKW21811SFConst.SEARCH_MI_SEND, bean.sendMessageString(KKW21811SFConst.SEARCH_MI_SEND, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用レター発行要
		dataMapMe.put(KKW21811SFConst.SEARCH_LETTER_HAK_Y, bean.sendMessageString(KKW21811SFConst.SEARCH_LETTER_HAK_Y, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3346-00-00 ADD START
		// 検索用登録者ID
		dataMapMe.put(KKW21811SFConst.SEARCH_ADD_ID, bean.sendMessageString(KKW21811SFConst.SEARCH_ADD_ID, X31CWebConst.DATABEAN_GET_VALUE));
		// 登録者ID
		dataMapMe.put(KKW21811SFConst.ADD_USER_ID, bean.sendMessageString(KKW21811SFConst.ADD_USER_ID, X31CWebConst.DATABEAN_GET_VALUE));
		// 登録者氏名
		dataMapMe.put(KKW21811SFConst.ADD_USER_NM, bean.sendMessageString(KKW21811SFConst.ADD_USER_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 請求契約番号
		dataMapMe.put(KKW21811SFConst.SEIKY_KEI_NO, bean.sendMessageString(KKW21811SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// お客さまID
		dataMapMe.put(KKW21811SFConst.SVC_KEI_NO, bean.sendMessageString(KKW21811SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3346-00-00 ADD END
		// ソート項目Ｎｏ
		dataMapMe.put(KKW21811SFConst.ORDER_NUM, bean.sendMessageString(KKW21811SFConst.ORDER_NUM, X31CWebConst.DATABEAN_GET_VALUE));
		// ソート順
		dataMapMe.put(KKW21811SFConst.ORDER_TYPE, bean.sendMessageString(KKW21811SFConst.ORDER_TYPE, X31CWebConst.DATABEAN_GET_VALUE));
		//検索フラグ設定
		dataMapMe.put(KKW21811SFConst.SEARCH_FLG, SEARCH_FLG_Y);
		// 次画面のデータ格納マップ
		HashMap dataMapNext = new HashMap();
		// 処理区分
		bean.sendMessageString(KKW21811SFConst.TRAN_DIV, X31CWebConst.DATABEAN_SET_VALUE, tran_div);
		// 解約レター番号初期化
		StringBuffer dslLetterNo = new StringBuffer();

		// 解約レター検索結果一覧の数だけ繰り返して設定
		X31SDataBeanAccessArray datalist = bean.getDataBeanArray(KKW21811SFConst.DSL_LETTER_SEARCH_LIST);

		String syoriSbt = getSyoriSbt(bean);
		if (SYORI_SBT_CANSEL.equals(syoriSbt) || SYORI_SBT_KBT_SEND.equals(syoriSbt))
		{
			X31SDataBeanAccessArray hikiTsugi_List = bean.getDataBeanArray(KKW21811SFConst.DSL_LETTER_UPD_LIST);
			hikiTsugi_List.clearArray();
			for (int i = 0; i < datalist.getCount(); i++)
			{
				X31SDataBeanAccess dataBean = datalist.getDataBean(i);
				// 引き継ぎの情報（自画面用）を格納するMAPを生成する
				Boolean sel = dataBean.sendMessageBoolean(KKW21811SFConst.SELECTED_BOOLEAN_02, X31CWebConst.DATABEAN_GET_VALUE);
				//解約レター登録番号を取得する
				String letterAddNo = dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_ADD_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
				if(letterAddNo != null && sel.booleanValue() == true)
				{
					//解約レターステータス
					String kaiyakuLetterStat =  dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_STAT_02, X31CWebConst.DATABEAN_GET_VALUE);
					// 発行区分
					String hakkoKbn =  dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_HAK_DIV_02, X31CWebConst.DATABEAN_GET_VALUE);
					// レター発行要否
					String letterHakko_Yh = dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_HAK_YH_02, X31CWebConst.DATABEAN_GET_VALUE);
					
					if (checkKaiyakuLetterStat(tran_div, kaiyakuLetterStat, hakkoKbn, letterHakko_Yh))
					{
						return result;
					}
					X31SDataBeanAccess hikiTsugi_Element = hikiTsugi_List.addDataBean();

					// 解約レター番号追加
					if (dslLetterNo.length() > 0)
					{
						dslLetterNo.append(",");
					}
					dslLetterNo.append(letterAddNo);

					// 引き継ぎの情報（次画面用）を格納するMAPを生成する
					//解約レター更新情報
					//dsl_letter_upd_list
					// 解約レター登録番号
					hikiTsugi_Element.sendMessageString(KKW21811SFConst.DSL_LETTER_ADD_NO_03, X31CWebConst.DATABEAN_SET_VALUE, 
							dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_ADD_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
					//解約レターステータス
					hikiTsugi_Element.sendMessageString(KKW21811SFConst.DSL_LETTER_STAT_03, X31CWebConst.DATABEAN_SET_VALUE, 
							dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_STAT_02, X31CWebConst.DATABEAN_GET_VALUE));
					//発行区分
					hikiTsugi_Element.sendMessageString(KKW21811SFConst.DSL_LETTER_HAK_DIV_03, X31CWebConst.DATABEAN_SET_VALUE, 
							dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_HAK_DIV_02, X31CWebConst.DATABEAN_GET_VALUE));
					//解約レター発行区分名称
					hikiTsugi_Element.sendMessageString(KKW21811SFConst.DSL_LETTER_HAK_DIV_NM_03, X31CWebConst.DATABEAN_SET_VALUE, 
							dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_HAK_DIV_NM_02, X31CWebConst.DATABEAN_GET_VALUE));
					//解約レター発行要否
					hikiTsugi_Element.sendMessageString(KKW21811SFConst.DSL_LETTER_HAK_YH_03, X31CWebConst.DATABEAN_SET_VALUE, 
							dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_HAK_YH_02, X31CWebConst.DATABEAN_GET_VALUE));
					//登録年月日
					hikiTsugi_Element.sendMessageString(KKW21811SFConst.DSL_LETTER_ADD_YMD_03, X31CWebConst.DATABEAN_SET_VALUE, 
							dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_ADD_YMD_02, X31CWebConst.DATABEAN_GET_VALUE));
					//送信年月日
					hikiTsugi_Element.sendMessageString(KKW21811SFConst.DSL_LETTER_SND_YMD_03, X31CWebConst.DATABEAN_SET_VALUE, 
							dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_SND_YMD_02, X31CWebConst.DATABEAN_GET_VALUE));
					//取消年月日
					hikiTsugi_Element.sendMessageString(KKW21811SFConst.DSL_LETTER_CL_YMD_03, X31CWebConst.DATABEAN_SET_VALUE, 
							dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_CL_YMD_02, X31CWebConst.DATABEAN_GET_VALUE));
					//照合状況
					hikiTsugi_Element.sendMessageString(KKW21811SFConst.DSL_LETTER_SHOGO_FLG_03, X31CWebConst.DATABEAN_SET_VALUE, 
							dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_SHOGO_FLG_02, X31CWebConst.DATABEAN_GET_VALUE));
					//解約レター照合済フラグ名称
					hikiTsugi_Element.sendMessageString(KKW21811SFConst.DSL_LETTER_SHOGO_FLG_NM_03, X31CWebConst.DATABEAN_SET_VALUE, 
							dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_SHOGO_FLG_NM_02, X31CWebConst.DATABEAN_GET_VALUE));
					//請求契約番号
					hikiTsugi_Element.sendMessageString(KKW21811SFConst.SEIKY_KEI_NO_03, X31CWebConst.DATABEAN_SET_VALUE, 
							dataBean.sendMessageString(KKW21811SFConst.SEIKY_KEI_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
					// SYSID
					hikiTsugi_Element.sendMessageString(KKW21811SFConst.SYSID_03, X31CWebConst.DATABEAN_SET_VALUE, 
							dataBean.sendMessageString(KKW21811SFConst.SYSID_02, X31CWebConst.DATABEAN_GET_VALUE));
					//ネット-サービス契約番号
					hikiTsugi_Element.sendMessageString(KKW21811SFConst.NET_SVC_KEI_NO_03, X31CWebConst.DATABEAN_SET_VALUE, 
							dataBean.sendMessageString(KKW21811SFConst.NET_SVC_KEI_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
					//電話-サービス契約番号
					hikiTsugi_Element.sendMessageString(KKW21811SFConst.TEL_SVC_KEI_NO_03, X31CWebConst.DATABEAN_SET_VALUE, 
							dataBean.sendMessageString(KKW21811SFConst.TEL_SVC_KEI_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
					//テレビ-サービス契約番号
					hikiTsugi_Element.sendMessageString(KKW21811SFConst.TV_SVC_KEI_NO_03, X31CWebConst.DATABEAN_SET_VALUE, 
							dataBean.sendMessageString(KKW21811SFConst.TV_SVC_KEI_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
					//解約レター送付先住所
					hikiTsugi_Element.sendMessageString(KKW21811SFConst.DSL_LETTER_SOHUS_STATE_NM_03, X31CWebConst.DATABEAN_SET_VALUE, 
							dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_SOHUS_STATE_NM_02, X31CWebConst.DATABEAN_GET_VALUE));
					//更新年月日時
					hikiTsugi_Element.sendMessageString(KKW21811SFConst.UPD_DTM_03, X31CWebConst.DATABEAN_SET_VALUE, 
							dataBean.sendMessageString(KKW21811SFConst.EDI_UPD_DTM_02, X31CWebConst.DATABEAN_GET_VALUE));
					//更新年月日時分秒
					hikiTsugi_Element.sendMessageString(KKW21811SFConst.EDI_UPD_DTM_03, X31CWebConst.DATABEAN_SET_VALUE, 
							dataBean.sendMessageString(KKW21811SFConst.EDI_UPD_DTM_02, X31CWebConst.DATABEAN_GET_VALUE));
					// ANK-4245-00-00 ADD START
					//サービス契約回線内訳番号
					hikiTsugi_Element.sendMessageString(KKW21811SFConst.SVC_KEI_KAISEN_UCWK_NO_03, X31CWebConst.DATABEAN_SET_VALUE, 
							dataBean.sendMessageString(KKW21811SFConst.SVC_KEI_KAISEN_UCWK_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
					// ANK-4245-00-00 ADD END
				}
			}
		}
		
		// 解約レター番号
		bean.sendMessageString(KKW21811SFConst.DSL_LETTER_NO, X31CWebConst.DATABEAN_SET_VALUE, dslLetterNo.toString());
		// 次画面への引継情報を設定
		JCCWebCommon.setScreenInfo(this, nextGamenID, dataMapNext);
		// 戻り先画面IDを設定
		JCCWebCommon.setScreenId(this, nextGamenID, JKKScreenConst.SCREEN_ID_KKW21811);

		// 自画面への引継情報を設定
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW21811, dataMapMe);

		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, nextGamenID);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, nextGamenName);

		// 入力有無フラグクリア
		bean.sendMessageString(KKW21811SFConst.INFLG, X31CWebConst.DATABEAN_SET_VALUE, "");

		// 引継内容をログ出力
		printLog(JSYwebLog.DEBUG, dataMapMe, "自画面への引継情報");
		printLog(JSYwebLog.DEBUG, dataMapNext, "次画面への引継情報");
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return result;
	}

	/**
	 * 次画面遷移処理（画面跨りなし）
	 * <BR>
	 * 次画面へ遷移します。
	 * <p>
	 * @param tran_div 処理区分（更新/照合、再発行）
	 * @return 正常／異常
	 */
	@SuppressWarnings("unchecked")
	private boolean setParamAndSeni2(String tran_div, String nextGamenID, String nextGamenName)
	{
		boolean result = true;

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		// 処理区分
		bean.sendMessageString(KKW21811SFConst.TRAN_DIV, X31CWebConst.DATABEAN_SET_VALUE, tran_div);
		
		// 自画面のデータ格納マップ
		HashMap dataMapMe = new HashMap();
		// 検索条件の退避
		// SYSID
		dataMapMe.put(KKW21811SFConst.SYSID, bean.sendMessageString(KKW21811SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		// レター登録日（自）（年）
		dataMapMe.put(KKW21811SFConst.LETTER_ADD_YEAR_FROM, bean.sendMessageString(KKW21811SFConst.LETTER_ADD_YEAR_FROM,X31CWebConst.DATABEAN_GET_VALUE));
		// レター登録日（自）（月）
		dataMapMe.put(KKW21811SFConst.LETTER_ADD_MON_FROM, bean.sendMessageString(KKW21811SFConst.LETTER_ADD_MON_FROM, X31CWebConst.DATABEAN_GET_VALUE));
		// レター登録日（自）（日）
		dataMapMe.put(KKW21811SFConst.LETTER_ADD_DAY_FROM, bean.sendMessageString(KKW21811SFConst.LETTER_ADD_DAY_FROM,X31CWebConst.DATABEAN_GET_VALUE));
		// レター登録日（至）（年）
		dataMapMe.put(KKW21811SFConst.LETTER_ADD_YEAR_TO, bean.sendMessageString(KKW21811SFConst.LETTER_ADD_YEAR_TO, X31CWebConst.DATABEAN_GET_VALUE));
		// レター登録日（至）（月）
		dataMapMe.put(KKW21811SFConst.LETTER_ADD_MON_TO, bean.sendMessageString(KKW21811SFConst.LETTER_ADD_MON_TO, X31CWebConst.DATABEAN_GET_VALUE));
		// レター登録日（至）（日）
		dataMapMe.put(KKW21811SFConst.LETTER_ADD_DAY_TO, bean.sendMessageString(KKW21811SFConst.LETTER_ADD_DAY_TO, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用ＳＹＳＩＤ
		dataMapMe.put(KKW21811SFConst.SEARCH_SYSID, bean.sendMessageString(KKW21811SFConst.SEARCH_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用請求契約番号
		dataMapMe.put(KKW21811SFConst.SEARCH_SEIKY_KEI_NO, bean.sendMessageString(KKW21811SFConst.SEARCH_SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用お客さまID
		dataMapMe.put(KKW21811SFConst.SEARCH_SVC_KEI_NO, bean.sendMessageString(KKW21811SFConst.SEARCH_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用レター登録日（自）
		dataMapMe.put(KKW21811SFConst.SEARCH_LETTER_ADD_YMD_FROM, bean.sendMessageString(KKW21811SFConst.SEARCH_LETTER_ADD_YMD_FROM, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用レター登録日（至）
		dataMapMe.put(KKW21811SFConst.SEARCH_LETTER_ADD_YMD_TO, bean.sendMessageString(KKW21811SFConst.SEARCH_LETTER_ADD_YMD_TO, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用発行区分
		dataMapMe.put(KKW21811SFConst.SEARCH_HAK_DIV, bean.sendMessageString(KKW21811SFConst.SEARCH_HAK_DIV, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用照合済
		dataMapMe.put(KKW21811SFConst.SEARCH_SHOGO_FLG, bean.sendMessageString(KKW21811SFConst.SEARCH_SHOGO_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用未送信
		dataMapMe.put(KKW21811SFConst.SEARCH_MI_SEND, bean.sendMessageString(KKW21811SFConst.SEARCH_MI_SEND, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用レター発行要
		dataMapMe.put(KKW21811SFConst.SEARCH_LETTER_HAK_Y, bean.sendMessageString(KKW21811SFConst.SEARCH_LETTER_HAK_Y, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3346-00-00 ADD START
		// 検索用登録者ID
		dataMapMe.put(KKW21811SFConst.SEARCH_ADD_ID, bean.sendMessageString(KKW21811SFConst.SEARCH_ADD_ID, X31CWebConst.DATABEAN_GET_VALUE));
		// 登録者ID
		dataMapMe.put(KKW21811SFConst.ADD_USER_ID, bean.sendMessageString(KKW21811SFConst.ADD_USER_ID, X31CWebConst.DATABEAN_GET_VALUE));
		// 登録者氏名
		dataMapMe.put(KKW21811SFConst.ADD_USER_NM, bean.sendMessageString(KKW21811SFConst.ADD_USER_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 請求契約番号
		dataMapMe.put(KKW21811SFConst.SEIKY_KEI_NO, bean.sendMessageString(KKW21811SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// お客さまID
		dataMapMe.put(KKW21811SFConst.SVC_KEI_NO, bean.sendMessageString(KKW21811SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3346-00-00 ADD END
		// ソート項目Ｎｏ
		dataMapMe.put(KKW21811SFConst.ORDER_NUM, bean.sendMessageString(KKW21811SFConst.ORDER_NUM, X31CWebConst.DATABEAN_GET_VALUE));
		// ソート順
		dataMapMe.put(KKW21811SFConst.ORDER_TYPE, bean.sendMessageString(KKW21811SFConst.ORDER_TYPE, X31CWebConst.DATABEAN_GET_VALUE));
		//検索フラグ設定
		dataMapMe.put(KKW21811SFConst.SEARCH_FLG, SEARCH_FLG_Y);

		// 次画面のデータ格納マップ
		HashMap dataMapNext = new HashMap();
		// 処理区分情報を設定する
		dataMapNext.put(TRAN_DIV, tran_div);
		// 解約レター検索結果一覧の数だけ繰り返して設定
		X31SDataBeanAccessArray datalist = bean.getDataBeanArray(KKW21811SFConst.DSL_LETTER_SEARCH_LIST);

		for (int i = 0; i < datalist.getCount(); i++)
		{
			X31SDataBeanAccess dataBean = datalist.getDataBean(i);
			// 引き継ぎの情報（自画面用）を格納するMAPを生成する
			Boolean sel = dataBean.sendMessageBoolean(KKW21811SFConst.SELECTED_BOOLEAN_02, X31CWebConst.DATABEAN_GET_VALUE);
			//解約レター登録番号を取得する
			String letterAddNo = dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_ADD_NO_02, X31CWebConst.DATABEAN_GET_VALUE);

			if(letterAddNo != null && sel.booleanValue() == true)
			{
				//解約レターステータス
				String kaiyakuLetterStat =  dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_STAT_02, X31CWebConst.DATABEAN_GET_VALUE);
				// 発行区分
				String hakkoKbn =  dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_HAK_DIV_02, X31CWebConst.DATABEAN_GET_VALUE);
				// レター発行要否
				String letterHakko_Yh = dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_HAK_YH_02, X31CWebConst.DATABEAN_GET_VALUE);
				
				if (checkKaiyakuLetterStat(tran_div, kaiyakuLetterStat, hakkoKbn, letterHakko_Yh))
				{
					return result;
				}

				// 解約レター登録番号
				dataMapNext.put(KKW21811SFConst.DSL_LETTER_ADD_NO_03,  
						dataBean.sendMessageString(KKW21811SFConst.DSL_LETTER_ADD_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
				//請求契約番号
				dataMapNext.put(KKW21811SFConst.SEIKY_KEI_NO_03,  
						dataBean.sendMessageString(KKW21811SFConst.SEIKY_KEI_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
				//ネット-サービス契約番号
				dataMapNext.put(KKW21811SFConst.NET_SVC_KEI_NO_03,  
						dataBean.sendMessageString(KKW21811SFConst.NET_SVC_KEI_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
				//電話-サービス契約番号
				dataMapNext.put(KKW21811SFConst.TEL_SVC_KEI_NO_03,  
						dataBean.sendMessageString(KKW21811SFConst.TEL_SVC_KEI_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
				//テレビ-サービス契約番号
				dataMapNext.put(KKW21811SFConst.TV_SVC_KEI_NO_03,  
						dataBean.sendMessageString(KKW21811SFConst.TV_SVC_KEI_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
				// ANK-4245-00-00 ADD START
				//サービス契約回線内訳番号
				dataMapNext.put(KKW21811SFConst.SVC_KEI_KAISEN_UCWK_NO_03,
						dataBean.sendMessageString(KKW21811SFConst.SVC_KEI_KAISEN_UCWK_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
				// ANK-4245-00-00 ADD END
				// 自画面遷移要の解約レター登録番号
				dataMapMe.put(KKW21811SFConst.DSL_LETTER_NO, letterAddNo);
				break;
			}
		}

		// 次画面への引継情報を設定
		JCCWebCommon.setScreenInfo(this, nextGamenID, dataMapNext);
		// 戻り先画面IDを設定
		JCCWebCommon.setScreenId(this, nextGamenID, JKKScreenConst.SCREEN_ID_KKW21811);

		// 自画面への引継情報を設定
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW21811, dataMapMe);

		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, nextGamenID);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, nextGamenName);

		// 入力有無フラグクリア
		bean.sendMessageString(KKW21811SFConst.INFLG, X31CWebConst.DATABEAN_SET_VALUE, "");

		// 引継内容をログ出力
		printLog(JSYwebLog.DEBUG, dataMapMe, "自画面への引継情報");
		printLog(JSYwebLog.DEBUG, dataMapNext, "次画面への引継情報");
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return result;
	}

	/**
	 * 次画面遷移処理（画面跨りなし）
	 * <BR>
	 * 次画面へ遷移します。
	 * <p>
	 * @param tran_div 処理区分（詳細照会、詳細更新）
	 * @return 正常／異常
	 */
	private boolean checkKaiyakuLetterStat(String tran_div, String kaiyakuLetterStat, String hakkoKbn , String letterHakko_Yh)
	{
		//処理区分が「更新/照合」ボタン押下の場合
		if (TRAN_DIV_UPDSHOG.equals(tran_div))
		{
			if( !KAIYAKU_LETTER_UKETSUZUMI.equals(kaiyakuLetterStat)
				&& !KAIYAKU_LETTER_SHOGOZUMI.equals(kaiyakuLetterStat)
				&& !KAIYAKU_LETTER_SOUSINZUMI.equals(kaiyakuLetterStat))
			{
				// メッセージ表示用
				String[] msgInfo = {"明細のステータスが処理対象外の" , "更新/照合処理"};
				// メッセージ出力
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0930_NW, msgInfo);

				return true;
			}
		}
		//処理区分が「取消」ボタン押下の場合
		if (TRAN_DIV_CANCEL.equals(tran_div))
		{
			if( !KAIYAKU_LETTER_UKETSUZUMI.equals(kaiyakuLetterStat)
				&& !KAIYAKU_LETTER_SHOGOZUMI.equals(kaiyakuLetterStat))
			{
				// メッセージ表示用
				String[] msgInfo = {"明細のステータスが処理対象外の" , "取消処理"};
				// メッセージ出力
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0930_NW, msgInfo);

				return true;
			}
		}
		//処理区分が「再発行」ボタン押下の場合
		if (TRAN_DIV_SAIHAKKO.equals(tran_div))
		{
			if( !KAIYAKU_LETTER_SOUSINZUMI.equals(kaiyakuLetterStat))
			{
				// メッセージ表示用
				String[] msgInfo = {"明細のステータスが処理対象外の" , "再発行処理"};
				// メッセージ出力
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0930_NW, msgInfo);

				return true;
			}
		}
		
		//処理区分が「ヤマト送信」ボタン押下の場合
		if (TRAN_DIV_YAMATOSEN.equals(tran_div))
		{
			if (!(LETTER_HAKKO_YO.equals(letterHakko_Yh)
					&& KAIYAKU_LETTER_SHOGOZUMI.equals(kaiyakuLetterStat)))
			{
				// メッセージ表示用
				String[] msgInfo = {"送信条件を満たしていない明細が存在する" , "送信処理"};
				// メッセージ出力
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0930_NW, msgInfo);

				return true;
			}
		}
		return false;
	}
	
	/**
	 * ログ出力
	 * <BR>
	 * HashMapの中身をすべてログ出力します。
	 * <P>
	 * @param type ログ種別
	 * @param target 出力対象
	 * @param msg ログ出力の前後に出力する文字
	 */
	@SuppressWarnings("unchecked")
	private void printLog(int type, HashMap target, String msg)
	{
		// 引継内容をログ出力
		JSYwebLog.println(type, getClass(), "********** " + msg + "（開始） **********", null, null, null);
		Iterator it = target.keySet().iterator();
		while(it.hasNext())
		{
			Object objKey = it.next();
			JSYwebLog.println(type, getClass(), objKey + " = " + target.get(objKey), null, null, null);
			
		}
		JSYwebLog.println(type, getClass(), "********** " + msg + "（終了） **********", null, null, null);
	}

	/**
	 * 一括送信用検索処理を実行します。<br>
	 * <br>
	 * @param paramBean DataBean項目の配列
	 * @return 処理の成否
	 * @throws Exception サービス実行時の例外
	 */
	@SuppressWarnings("unchecked")
	private boolean executeIktSendSearch(X31SDataBeanAccess[] paramBean) throws Exception
	{
		HashMap<String, Object> outMap = new HashMap<String, Object>();
		HashMap<String, Object> inMap = new HashMap<String, Object>();
		HashMap<String, Object> parMap = new HashMap<String, Object>();
		parMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0869");

		// 上りマッピング処理(サービス項目-DataBean項目マッピング)
		KKSV0869_KKSV0869OPDBMapper mapper = new KKSV0869_KKSV0869OPDBMapper();
		mapper.setKKSV086901SC(paramBean, inMap, JPCModelConstant.FUNC_CD_1);
		mapper.setDslLetterIktSearchCC(inMap, JPCModelConstant.FUNC_CD_1);

		// ページング情報設定
		HashMap<String, Object> searchInfoMap = (HashMap<String, Object>) inMap.get("DslLetterSearchCC");
		searchInfoMap.put("display_page_num", "1");

		// サービス呼出
		invokeService(parMap, inMap, outMap);

		// 取得情報の下りマッピング
		mapper.getDslLetterIktSearchCC(paramBean, outMap);

		// 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg("DslLetterSearchCC", outMap);

		return !JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg);
	}

	/**
	 * 解約レター一括処理を実行します。<br>
	 * <br>
	 * @param paramBean DataBean項目の配列
	 * @return エラーフラグ
	 */
	private String executeIktProc(X31SDataBeanAccess[] paramBean)
	{
		HashMap<String, Object> parMap = new HashMap<String, Object>(); // パラメタ設定用マップ
		HashMap<String, Object> inMap = new HashMap<String, Object>(); // 入力用マップ
		HashMap<String, Object> outMap = new HashMap<String, Object>(); // 結果格納用マップ

		// パラメタ設定
		parMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0870");

		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0870_KKSV0870OPDBMapper mapper = new KKSV0870_KKSV0870OPDBMapper();
		mapper.setKKSV087001CC(paramBean, inMap, JPCModelConstant.FUNC_CD_1, getSyoriSbt(paramBean[0]));

		// サービス実行
		invokeService(parMap, inMap, outMap);

		// ディレイド処理依頼結果参照SCからエラーフラグの値を取得する
		HashMap<?, ?> errFlgMap = (HashMap<?, ?>)outMap.get("KKSV087001CC");

		String errFlg = "";

		if (errFlgMap != null)
		{
			errFlg = (String)errFlgMap.get("err_flg");
		}

		return errFlg;
	}

	/**
	 * 一括処理の処理結果をチェックします。<br>
	 * <br>
	 * @param paramBean DataBean項目の配列
	 * @param errFlg エラーフラグ
	 * @return 処理の成否
	 */
	private boolean checkIktResult(X31SDataBeanAccess[] paramBean, String errFlg)
	{
		boolean checkOK = (!CANSEL_ERR.equals(errFlg) && !SEND_ERR.equals(errFlg) && !DLYD_TRN_ERR.equals(errFlg));
		if (!checkOK)
		{
			String msgId = JPCOnlineMessageConstant.EKB0930_NW;
			String[] msgParams =
			{ "", "" };

			// 取消異常の場合
			if (CANSEL_ERR.equals(errFlg))
			{
				msgParams[0] = "明細のステータスが処理対象外の";
				msgParams[1] = "取消処理";
			}
			// 送信異常の場合
			else if (SEND_ERR.equals(errFlg))
			{
				msgParams[0] = "送信条件を満たしていない明細が存在する";
				msgParams[1] = "送信処理";
			}
			// ディレイド処理異常の場合
			else if (DLYD_TRN_ERR.equals(errFlg))
			{
				msgParams[0] = "解約レター発行送信バッチが実行中の";
				msgParams[1] = "実行";
			}

			JCCWebCommon.setMessageInfo(this, msgId, msgParams);
		}

		return checkOK;
	}

	/**
	 * 処理種別を取得します。<br>
	 * <br>
	 * @param bean DataBean
	 * @return 処理種別
	 */
	private String getSyoriSbt(X31SDataBeanAccess bean)
	{
		String syoriSbt = "";

		String tranDiv = bean.sendMessageString(KKW21811SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE);

		// 取消ボタン押下
		if (TRAN_DIV_CANCEL.equals(tranDiv))
		{
			syoriSbt = SYORI_SBT_CANSEL;
		}
		// ヤマト送信ボタン押下
		else if (TRAN_DIV_YAMATOSEN.equals(tranDiv))
		{
			// 一括送信チェックボックス選択
			if (bean.sendMessageBoolean(KKW21811SFConst.IKT_SEND, X31CWebConst.DATABEAN_GET_VALUE))
			{
				// 処理種別：一括送信
				syoriSbt = SYORI_SBT_IKT_SEND;
			}
			// 一括送信チェックボックス未選択
			else
			{
				// 処理種別：個別送信
				syoriSbt = SYORI_SBT_KBT_SEND;
			}
		}

		return syoriSbt;
	}

	/**
	 * メッセージIDが設定されているかを返却します。<br>
	 * <br>
	 * @param msgId メッセージID
	 * @return 設定されているか
	 */
	private boolean hasMessageId(String msgId)
	{
		boolean found = false;

		// 共有フォームBeanを取得する。
		X31SDataBeanAccess commonbean = super.getCommonInfoBean();
		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonbean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);

		if (commonBeanArray != null)
		{
			for (int i = 0; i < commonBeanArray.getCount(); i++)
			{
				X31SDataBeanAccess commonSubbean = commonBeanArray.getDataBean(i);
				if (commonSubbean != null)
				{
					String savedMsgId = commonSubbean.sendMessageString(CommonInfoCFConst.MESSAGE_ID_02, X31CWebConst.DATABEAN_GET_VALUE);
					if (msgId != null && msgId.equals(savedMsgId))
					{
						found = true;
						break;
					}
				}
			}
		}

		return found;
	}

	/**
	 * 次画面を設定します。<br>
	 * <br>
	 * @param nextScreenId 次画面ID
	 * @param nextScreenName 次画面名称
	 */
	private void setNextScreen(String nextScreenId, String nextScreenName)
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// 遷移先画面IDを設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, nextScreenId);

		// 遷移先画面名を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, nextScreenName);
	}
}
