/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CNWTESTBeanSFLogic
*	ソースファイル名：CNWTESTBeanSFLogic.java
*	作成者			：EK908988
*	日付			：2011年08月03日
*＜機能概要＞
*	コンテンツ契約変更履歴のViewロジックです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*	ｖ4.00.00	2012/12/04	富士通)味岡	ST1-2012-0001018:SYSDATE使用箇所を運用日付使用に置き換え
*	ｖ65.00.00	2023/11/06	FJ)渋谷		ANK-4346-00-00  【eo定期】CCMG再構築対応
*	ｖ65.00.00	2024/02/09	FJ)渋谷		ST-2024-0000002  エラーハンドリング対応
**	ｖ65.00.00	2024/02/10	FJ)渋谷		ANK-4346-15-00  変更前変更後設定値変更
*
********************************************************************************/

package eo.web.webview.CNW01201SF;

import java.util.EventObject;
import java.util.HashMap;

import javax.servlet.http.HttpSession;

import com.fujitsu.futurity.model.common.JCMAPLConstMgr;
import com.fujitsu.futurity.web.x31.X31CID;
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 com.fujitsu.futurity.web.x33.X33CUtil;
import com.fujitsu.futurity.web.x33.X33SException;
import com.fujitsu.futurity.web.x33.beans.X33VViewJSPBean;

import eo.common.constant.JACStrConst;
import eo.common.constant.JCNStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JZM0171Constant;
import eo.common.util.JCCFrameworkException;
import eo.common.util.JCNStringUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CHW01001SF.CHW01001SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCNScreenConst;
import eo.web.webview.common.JCNWebConst;
import eo.web.webview.mapping.CNSV0022_CNSV0022OPDBMapper;
import eo.web.webview.mapping.CNSV0023_CNSV0023OPDBMapper;

/**
 * コンテンツ契約一覧照会のViewロジック<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class CNW01201SFLogic extends JCCWebBusinessLogic
{

	/**
	 * 親クラスX31BWebBusinessLogicのreceiveMessageWebを
	 * オーバーライドして自動生成されたメソッドです。
	 * @param arg0 (I) イベント情報
	 * @param arg1 (I) WebFWでは使用しません
	 * @param arg2 (I) WebFWでは使用しません
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws X33SException X33SException
	 */
	@Override
	protected boolean receiveMessageWeb(X31CID arg0, Object arg1,
			EventObject arg2) throws X33SException
	{

		return false;
	}

	/**
	 * コンテンツ契約変更履歴の初期表示を行います。<br>
	 * 
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean action_init() throws Exception
	{

		// 共通Bean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 親画面のBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		// パラメータ情報を取得する
		HashMap param = JCCWebCommon.getScreenInfo(this);
		if (param == null)
		{
			// TODO：TIまでプロパティよりSYSIDを取得する
			String sysid = JCCWebCommon.getApplicationConst("CN_DEBUG_SYSID");
			bean.sendMessageString(CNW01201SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, sysid);
		}
		else
		{
			bean.sendMessageString(CNW01201SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, (String)param.get(CNW01201SFConst.SYSID));
		}
		// 検索用世代登録年月日時分秒設定
		// ST1-2012-0001018 2012/12/05 n.ajioka START
//		String targetDtm = JCCWebCommon.getSysDate();
		String targetDtm = JCCWebCommon.getOpeDate(this, null);
		// ST1-2012-0001018 2012/12/05 n.ajioka END
		bean.sendMessageString(CNW01201SFConst.GENE_ADD_DTM, X31CWebConst.DATABEAN_SET_VALUE, targetDtm);
		// コード種別コード設定
		bean.sendMessageString(CNW01201SFConst.CD_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, JZM0171Constant.CD00830);
		// 基準日設定
		bean.sendMessageString(CNW01201SFConst.STDARDYMD, X31CWebConst.DATABEAN_SET_VALUE, targetDtm);


		// マッピングクラスに渡すため、配列に作り変える
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ユースケースID格納用マップ生成
		HashMap paramMap = new HashMap();
		// ユースケースID設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CNSV0022");

		// ST1-2012-0001018 2012/12/05 n.ajioka START
		String opeDate = JCCWebCommon.getOpeDate(this, null);
		
		// マッピングクラスのインスタンス作成
		CNSV0022_CNSV0022OPDBMapper mapper = new CNSV0022_CNSV0022OPDBMapper();
		HashMap dataMap = new HashMap();
//		mapper.setCNSV002201SC(paramBean, dataMap, "2");
		mapper.setCNSV002201SC(paramBean, dataMap, "2", opeDate);
		// ANK-4346-00-00 DEL START
//		mapper.setCNSV002202SC(paramBean, dataMap, "1");
		// ANK-4346-00-00 DEL END
		mapper.setCNSV002203SC(paramBean, dataMap, "1");
		// ANK-4346-00-00 DEL START
//		mapper.setCNSV002204SC(paramBean, dataMap, "1");
		// ANK-4346-00-00 DEL END
		// ST1-2012-0001018 2012/12/05 n.ajioka END
		// ANK-4346-00-00 ADD START
		mapper.setCNSV002201CC(paramBean, dataMap, "1");
		// ANK-4346-00-00 ADD END

		// ページング用マップ取得
		// ANK-4346-00-00 MOD START
//		HashMap<String, Object> pagingMap = (HashMap)dataMap.get("CNSV002204SC");
		HashMap<String, Object> pagingMap = (HashMap)dataMap.get("CNSV002201CC");
		// ANK-4346-00-00 MOD END
		// 検索処理パターン設定
		pagingMap.put(JCNWebConst.PAGING_INFO_SEARCH_TYPE, JPCModelConstant.SAERCH_TYPE_BBN);
		// 最大検索件数設定
		pagingMap.put(JCNWebConst.PAGING_INFO_MAX_SEARCH_NUM, JCCWebCommon.getSearchConst("CNW01201_MAX_SHOW_CNT"));
		// 表示件数設定
		pagingMap.put(JCNWebConst.PAGING_INFO_DISPLAY_NUM, JCCWebCommon.getSearchConst("CNW01201_ROW_PER_PAGE"));
		// ページング初期設定
		// ANK-4346-00-00 MOD START
//		JCCWebCommon.upmapperPageLinkInfo(this, "CNSV002204SC", dataMap);
		JCCWebCommon.upmapperPageLinkInfo(this, "CNSV002201CC", dataMap);
		// ANK-4346-00-00 MOD END

		// 検索結果格納用マップ生成
		HashMap outputMap = new HashMap();

		// SQL呼出し
		X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);

		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		// 検索結果の取り出し
		mapper.getCNSV002201SC(paramBean, outputMap);
		mapper.getCNSV002202SC(paramBean, outputMap);
		mapper.getCNSV002203SC(paramBean, outputMap);
		mapper.getCNSV002204SC(paramBean, outputMap);
		// ANK-4346-00-00 ADD START
		mapper.getCNSV002200(paramBean);
		// ANK-4346-00-00 ADD END

		// ANK-4346-00-00 DEL START
		// 検索エラーフラグの取得
//		String searchError = JCCWebCommon.getSearchErrFlg("CNSV002204SC", outputMap);
//		if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchError))
//		{
//			// 検索結果０件
//			JCCWebCommon.setMessageInfo(this, JCNWebConst.SEARCH_ERR_MESSAGE_ZERO);
//		}
//		else if (JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchError))
//		{
//			// 検索最大件数オーバー
//			JCCWebCommon.setMessageInfo(this, JCNWebConst.SEARCH_ERR_MESSAGE_MAXOVER, new String[] {JCCWebCommon.getSearchConst("CNW01201_MAX_SHOW_CNT")});
//		}
//		else if (JPCModelConstant.SEARCH_ERR_FLG_NODATA.equals(searchError))
//		{
//			// 表示ページに該当するデータなし
//			JCCWebCommon.setMessageInfo(this, JCNWebConst.SEARCH_ERR_MESSAGE_NODATA);
//		}
		// ANK-4346-00-00 DEL END
		// ANK-4346-00-00 ADD START
		String searchError = JCCWebCommon.getSearchErrFlg("CNSV002201CC", outputMap);
		HashMap templateMap = (HashMap)outputMap.get("CNSV002201CC");
		String returnCode = (String)templateMap.get("err_cd");
		String errSkbtCode = (String)templateMap.get("err_skbt_code");
		

		if(returnCode == null||"".equals(returnCode) )
		{
			// CCMG連携に失敗した場合
			// ST-2024-0000002 MOD START
//			JCCWebCommon.setMessageInfo(this, "EKB9930-KW",
//					new String[] {"CCMG連携"});
			JCCWebCommon.setMessageInfo(this, "EKBF970-KW",
					new String[] {"CCMG連携"});
			// ST-2024-0000002 MOD END
			
			// ページング情報の設定
			JCCWebCommon.downmapperPageLinkInfo(this, "CNSV002201CC", outputMap);
			// 検索のコマンドIDを設定する。
			JCCWebCommon.setSearchCommand(this, "PAGING");

			// 遷移先の画面IDを共有フォームBeanの項目に設定する。
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
					X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_ID_CNW01201);
			
			// 遷移先の画面名を共有フォームBeanの項目に設定する。
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
					X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_NAME_CNW01201);
			return true;
		}
		else
		{

			if(!"00000".equals(returnCode))
			{
				if(JCNStringUtil.isNullBlank(errSkbtCode))
				{
					// CCMG連携に失敗した場合
					JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
							new String[] { "CCMG連携", "CCMGエラーコード:" + returnCode });
				}
				else if("1".equals(errSkbtCode))
				{
					// 契約変更履歴参照（CCMG）に失敗した場合
					JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
							new String[] { "CCMG連携（契約変更履歴参照）", "CCMGエラーコード:" + returnCode });
				}
				else if("2".equals(errSkbtCode))
				{
					// 料金訂正履歴参照（CCMG）に失敗した場合
					JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
							new String[] { "CCMG連携（料金訂正履歴参照）", "CCMGエラーコード:" + returnCode });
				}
				else if("3".equals(errSkbtCode))
				{
					// コンテンツ契約照会一覧情報取得（CCMG）に失敗した場合
					JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
							new String[] { "CCMG連携（契約一覧情報取得）", "CCMGエラーコード:" + returnCode });
				}
				// ANK-4346-15-00 ADD START
				else if("4".equals(errSkbtCode))
				{
					// コンテンツ契約照会一覧情報取得（CCMG）に失敗した場合
					JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
							new String[] { "CCMG連携（課金参照）", "CCMGエラーコード:" + returnCode });
				}
				// ANK-4346-15-00 ADD END
			}
			else
			{
				if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchError))
				{
					// 検索結果０件
					JCCWebCommon.setMessageInfo(this, JCNWebConst.SEARCH_ERR_MESSAGE_ZERO);
				}
				else if (JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchError))
				{
					// 検索最大件数オーバー
					JCCWebCommon.setMessageInfo(this, JCNWebConst.SEARCH_ERR_MESSAGE_MAXOVER, new String[] {JCCWebCommon.getSearchConst("CNW01101_MAX_SHOW_CNT")});
				}
			}
		}
		// ANK-4346-00-00 ADD END
		
		// ページング情報の設定
		// ANK-4346-00-00 MOD START
//		JCCWebCommon.downmapperPageLinkInfo(this, "CNSV002204SC", outputMap);
		JCCWebCommon.downmapperPageLinkInfo(this, "CNSV002201CC", outputMap);
		// ANK-4346-00-00 MOD END
		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, "PAGING");

		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_ID_CNW01201);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_NAME_CNW01201);

		return true;
	}

	/**
	 * コンテンツ契約変更履歴の検索ボタン押下時の処理を行います。<br>
	 * 
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws Exception
	 */
	public boolean action_search() throws Exception
	{

		// 共通Bean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		// 親画面のBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 検索条件の取得
		// ANK-4346-00-00 DEL START
//		// コンテンツサービスコード
//		X31SDataBeanAccessArray targetInfo = bean.getDataBeanArray(CNW01201SFConst.CONT_SVC_LIST);
//		X31SDataBeanAccess targetBean = targetInfo.getDataBean(0);
//		String selectValue = targetBean.sendMessageString(CNW01201SFConst.SELECT_VAKUE_02, X31CWebConst.DATABEAN_GET_VALUE);
//		// 選択された値からコンテンツサービスコードを取得して、検索条件に追加
//		String selectStr = targetBean.sendMessageString(CNW01201SFConst.CONT_SVC_CD_02, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(selectValue));
//		bean.sendMessageString(CNW01201SFConst.CONT_SVC_CD_VALUE, X31CWebConst.DATABEAN_SET_VALUE, selectStr);
		// ANK-4346-00-00 DEL END

		// ANK-4346-00-00 ADD START
		// 異動履歴区分
		String selectIndex = bean.sendMessageString(CNW01201SFConst.INPUT_SBT_SELECT_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-4346-00-00 ADD END
		
		// 異動区分
		// ANK-4346-00-00 MOD START
//		targetInfo = bean.getDataBeanArray(CNW01201SFConst.IDO_RIREKI_LIST);
//		targetBean = targetInfo.getDataBean(0);
//		selectValue = targetBean.sendMessageString(CNW01201SFConst.SELECT_VAKUE_03, X31CWebConst.DATABEAN_GET_VALUE);
//		// 選択された値から異動区分コードを取得して、検索条件に追加
//		selectStr = targetBean.sendMessageString(CNW01201SFConst.IDO_KBN_CD_03, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(selectValue));
//		bean.sendMessageString(CNW01201SFConst.IDO_RIREKI_CD_VALUE, X31CWebConst.DATABEAN_SET_VALUE, selectStr);
		if("0".equals(selectIndex))
		{
			X31SDataBeanAccessArray targetInfo = bean.getDataBeanArray(CNW01201SFConst.IDO_RIREKI_LIST);
			X31SDataBeanAccess targetBean = targetInfo.getDataBean(0);
			String selectValue = targetBean.sendMessageString(CNW01201SFConst.SELECT_VAKUE_03, X31CWebConst.DATABEAN_GET_VALUE);
			// 選択された値から異動区分コードを取得して、検索条件に追加
			String selectStr = targetBean.sendMessageString(CNW01201SFConst.IDO_KBN_CD_03, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(selectValue));
			bean.sendMessageString(CNW01201SFConst.IDO_RIREKI_CD_VALUE, X31CWebConst.DATABEAN_SET_VALUE, selectStr);
		}
		else if("1".equals(selectIndex))
		{
			X31SDataBeanAccessArray targetInfo = bean.getDataBeanArray(CNW01201SFConst.PRC_TEISE_IDO_RIREKI_LIST);
			X31SDataBeanAccess targetBean = targetInfo.getDataBean(0);
			String selectValue = targetBean.sendMessageString(CNW01201SFConst.SELECT_VAKUE_10, X31CWebConst.DATABEAN_GET_VALUE);
			// 選択された値から異動区分コードを取得して、検索条件に追加
			String selectStr = targetBean.sendMessageString(CNW01201SFConst.PRC_TEISE_IDO_KBN_CD_10, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(selectValue));
			bean.sendMessageString(CNW01201SFConst.IDO_RIREKI_CD_VALUE, X31CWebConst.DATABEAN_SET_VALUE, selectStr);
		}
		// ANK-4346-00-00 MOD END


		// 変更日時（FROM）
		bean.sendMessageString(CNW01201SFConst.CHGE_DTM_FROM_VALUE, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CNW01201SFConst.CHGE_DTM_FROM_YEAR, X31CWebConst.DATABEAN_GET_VALUE) +
				bean.sendMessageString(CNW01201SFConst.CHGE_DTM_FROM_MON, X31CWebConst.DATABEAN_GET_VALUE) +
				bean.sendMessageString(CNW01201SFConst.CHGE_DTM_FROM_DAY, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更日時（TO）
		bean.sendMessageString(CNW01201SFConst.CHGE_DTM_TO_VALUE, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CNW01201SFConst.CHGE_DTM_TO_YEAR, X31CWebConst.DATABEAN_GET_VALUE) +
				bean.sendMessageString(CNW01201SFConst.CHGE_DTM_TO_MON, X31CWebConst.DATABEAN_GET_VALUE) +
				bean.sendMessageString(CNW01201SFConst.CHGE_DTM_TO_DAY, X31CWebConst.DATABEAN_GET_VALUE));
		
		// マッピングクラスに渡すため、配列に作り変える
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ユースケースID格納用マップ生成
		HashMap<String, String> paramMap = new HashMap<String, String>();
		// ユースケースID設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CNSV0023");

		// マッピングクラスのインスタンス作成
		CNSV0023_CNSV0023OPDBMapper mapper = new CNSV0023_CNSV0023OPDBMapper();
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		// ANK-4346-00-00 MOD START
//		mapper.setCNSV002301SC(paramBean, dataMap, "1");
		mapper.setCNSV002301CC(paramBean, dataMap, "1", "1" ,selectIndex);
		// ANK-4346-00-00 MOD END

		// ページング情報の初期化
		JCCWebCommon.clearPageLinkInfo(this, this.getGamenId());
		// ページング用マップ取得
		// ANK-4346-00-00 MOD START
//		HashMap<String, Object> pagingMap = (HashMap)dataMap.get("CNSV002301SC");
		HashMap<String, Object> pagingMap = (HashMap)dataMap.get("CNSV002301CC");
		// ANK-4346-00-00 MOD END
		// 検索処理パターン設定
		pagingMap.put(JCNWebConst.PAGING_INFO_SEARCH_TYPE, JPCModelConstant.SAERCH_TYPE_BBN);
		// 最大検索件数設定
		pagingMap.put(JCNWebConst.PAGING_INFO_MAX_SEARCH_NUM, JCCWebCommon.getSearchConst("CNW01201_MAX_SHOW_CNT"));
		// 表示件数設定
		pagingMap.put(JCNWebConst.PAGING_INFO_DISPLAY_NUM, JCCWebCommon.getSearchConst("CNW01201_ROW_PER_PAGE"));
		// ページング初期設定
		// ANK-4346-00-00 MOD START
//		JCCWebCommon.upmapperPageLinkInfo(this, "CNSV002301SC", dataMap);
		JCCWebCommon.upmapperPageLinkInfo(this, "CNSV002301CC", dataMap);
		// ANK-4346-00-00 MOD END

		// 検索結果格納用マップ生成
		HashMap outputMap = new HashMap();

		// SQL呼出し
		X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);

		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}

		// beanのクリア
		bean.getDataBeanArray(CNW01201SFConst.CONT_KEI_CHGE_LIST).clearArray();

		// 検索結果の取り出し
		// ANK-4346-00-00 MOD START
//		mapper.getCNSV002301SC(paramBean, outputMap);
		mapper.getCNSV002301CC(paramBean, outputMap);
		// ANK-4346-00-00 MOD END
		
		// ANK-4346-00-00 MOD START
//		// 検索エラーフラグの取得
//		String searchError = JCCWebCommon.getSearchErrFlg("CNSV002301SC", outputMap);
//		if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchError))
//		{
//			// 検索結果０件
//			JCCWebCommon.setMessageInfo(this, JCNWebConst.SEARCH_ERR_MESSAGE_ZERO);
//		}
//		else if (JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchError))
//		{
//			// 検索最大件数オーバー
//			JCCWebCommon.setMessageInfo(this, JCNWebConst.SEARCH_ERR_MESSAGE_MAXOVER, new String[] {JCCWebCommon.getSearchConst("CNW01201_MAX_SHOW_CNT")});
//		}
//		else if (JPCModelConstant.SEARCH_ERR_FLG_NODATA.equals(searchError))
//		{
//			// 表示ページに該当するデータなし
//			JCCWebCommon.setMessageInfo(this, JCNWebConst.SEARCH_ERR_MESSAGE_NODATA);
//		}
		
		String searchError = JCCWebCommon.getSearchErrFlg("CNSV002301CC", outputMap);
		HashMap templateMap = (HashMap)outputMap.get("CNSV002301CC");
		String returnCode = (String)templateMap.get("err_cd");
		String errSkbtCode = (String)templateMap.get("err_skbt_code");
		
		if(returnCode == null||"".equals(returnCode) )
		{
			// 処理番号発行 に失敗した場合
			// ST-2024-0000002 MOD START
//			JCCWebCommon.setMessageInfo(this, "EKB9930-KW",
//					new String[] { "CCMG連携" });
			JCCWebCommon.setMessageInfo(this, "EKBF970-KW",
					new String[] { "CCMG連携" });
			// ST-2024-0000002 MOD END
			// ページング情報の設定
			JCCWebCommon.downmapperPageLinkInfo(this, "CNSV002301CC", outputMap);
			// 検索のコマンドIDを設定する。
			JCCWebCommon.setSearchCommand(this, "PAGING");

			// 遷移先の画面IDを共有フォームBeanの項目に設定する。
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
					X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_ID_CNW01201);
			
			// 遷移先の画面名を共有フォームBeanの項目に設定する。
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
					X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_NAME_CNW01201);
			return true;
		}
		else
		{
			if(!"00000".equals(returnCode))
			{
				if(JCNStringUtil.isNullBlank(errSkbtCode))
				{
					// CCMG連携に失敗した場合
					JCCWebCommon.setMessageInfo(this, "EKB9930-CE",
							new String[] { "CCMG連携", "CCMGエラーコード:" + returnCode });
				}
				else if("1".equals(errSkbtCode))
				{
					// 契約変更履歴参照（CCMG）に失敗した場合
					JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
							new String[] { "CCMG連携（契約変更履歴参照）", "CCMGエラーコード:" + returnCode });
				}
				else if("2".equals(errSkbtCode))
				{
					// 料金訂正履歴参照（CCMG）に失敗した場合
					JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
							new String[] { "CCMG連携（料金訂正履歴参照）", "CCMGエラーコード:" + returnCode });
				}
				else if("3".equals(errSkbtCode))
				{
					// コンテンツ契約照会一覧情報取得（CCMG）に失敗した場合
					JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
							new String[] { "CCMG連携（契約一覧情報取得）", "CCMGエラーコード:" + returnCode });
				}
				// ANK-4346-15-00 ADD START
				else if("4".equals(errSkbtCode))
				{
					// コンテンツ契約照会一覧情報取得（CCMG）に失敗した場合
					JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
							new String[] { "CCMG連携（課金参照）", "CCMGエラーコード:" + returnCode });
				}
				// ANK-4346-15-00 ADD END
			}
			else
			{
				if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchError))
				{
					// 検索結果０件
					JCCWebCommon.setMessageInfo(this, JCNWebConst.SEARCH_ERR_MESSAGE_ZERO);
				}
				else if (JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchError))
				{
					// 検索最大件数オーバー
					JCCWebCommon.setMessageInfo(this, JCNWebConst.SEARCH_ERR_MESSAGE_MAXOVER, new String[] {JCCWebCommon.getSearchConst("CNW01101_MAX_SHOW_CNT")});
				}
			}
		}
		// ANK-4346-00-00 MOD END
		
		// ページング情報の設定
		/// ANK-4346-00-00 MOD START
//		JCCWebCommon.downmapperPageLinkInfo(this, "CNSV002301SC", outputMap);
		JCCWebCommon.downmapperPageLinkInfo(this, "CNSV002301CC", outputMap);
		// ANK-4346-00-00 MOD END
		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, "PAGING");

		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_ID_CNW01201);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_NAME_CNW01201);

		return true;
	}
	
	/**
	 * ページングリンク押下時の処理を行います。<br>
	 * 
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws Exception
	 */
	public boolean action_paging() throws Exception
	{

		// 共通Bean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		// 親画面のBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 検索条件の取得
		// ANK-4346-00-00 DEL START
//		// コンテンツサービスコード
//		X31SDataBeanAccessArray targetInfo = bean.getDataBeanArray(CNW01201SFConst.CONT_SVC_LIST);
//		X31SDataBeanAccess targetBean = targetInfo.getDataBean(0);
//		String selectValue = targetBean.sendMessageString(CNW01201SFConst.SELECT_VAKUE_02, X31CWebConst.DATABEAN_GET_VALUE);
//		// 選択された値からコンテンツサービスコードを取得して、検索条件に追加
//		String selectStr = targetBean.sendMessageString(CNW01201SFConst.CONT_SVC_CD_02, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(selectValue));
//		bean.sendMessageString(CNW01201SFConst.CONT_SVC_CD_VALUE, X31CWebConst.DATABEAN_SET_VALUE, selectStr);
		// ANK-4346-00-00 DEL END
		
		// ANK-4346-00-00 ADD START
		// 異動履歴区分
		String selectIndex = bean.sendMessageString(CNW01201SFConst.INPUT_SBT_SELECT_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-4346-00-00 ADD START
		
		// ANK-4346-00-00 MOD START
		// 異動区分
//		targetInfo = bean.getDataBeanArray(CNW01201SFConst.IDO_RIREKI_LIST);
//		targetBean = targetInfo.getDataBean(0);
//		selectValue = targetBean.sendMessageString(CNW01201SFConst.SELECT_VAKUE_03, X31CWebConst.DATABEAN_GET_VALUE);
//		// 選択された値から異動区分コードを取得して、検索条件に追加
//		selectStr = targetBean.sendMessageString(CNW01201SFConst.IDO_KBN_CD_03, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(selectValue));
//		bean.sendMessageString(CNW01201SFConst.IDO_RIREKI_CD_VALUE, X31CWebConst.DATABEAN_SET_VALUE, selectStr);
		if("0".equals(selectIndex))
		{
			X31SDataBeanAccessArray targetInfo = bean.getDataBeanArray(CNW01201SFConst.IDO_RIREKI_LIST);
			X31SDataBeanAccess targetBean = targetInfo.getDataBean(0);
			String selectValue = targetBean.sendMessageString(CNW01201SFConst.SELECT_VAKUE_03, X31CWebConst.DATABEAN_GET_VALUE);
			// 選択された値から異動区分コードを取得して、検索条件に追加
			String selectStr = targetBean.sendMessageString(CNW01201SFConst.IDO_KBN_CD_03, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(selectValue));
			bean.sendMessageString(CNW01201SFConst.IDO_RIREKI_CD_VALUE, X31CWebConst.DATABEAN_SET_VALUE, selectStr);
		}
		else if("1".equals(selectIndex))
		{
			X31SDataBeanAccessArray targetInfo = bean.getDataBeanArray(CNW01201SFConst.PRC_TEISE_IDO_RIREKI_LIST);
			X31SDataBeanAccess targetBean = targetInfo.getDataBean(0);
			String selectValue = targetBean.sendMessageString(CNW01201SFConst.SELECT_VAKUE_10, X31CWebConst.DATABEAN_GET_VALUE);
			// 選択された値から異動区分コードを取得して、検索条件に追加
			String selectStr = targetBean.sendMessageString(CNW01201SFConst.PRC_TEISE_IDO_KBN_CD_10, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(selectValue));
			bean.sendMessageString(CNW01201SFConst.IDO_RIREKI_CD_VALUE, X31CWebConst.DATABEAN_SET_VALUE, selectStr);
		}
		// ANK-4346-00-00 MOD END

		// 変更日時（FROM）
		bean.sendMessageString(CNW01201SFConst.CHGE_DTM_FROM_VALUE, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CNW01201SFConst.CHGE_DTM_FROM_YEAR, X31CWebConst.DATABEAN_GET_VALUE) +
				bean.sendMessageString(CNW01201SFConst.CHGE_DTM_FROM_MON, X31CWebConst.DATABEAN_GET_VALUE) +
				bean.sendMessageString(CNW01201SFConst.CHGE_DTM_FROM_DAY, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更日時（TO）
		bean.sendMessageString(CNW01201SFConst.CHGE_DTM_TO_VALUE, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CNW01201SFConst.CHGE_DTM_TO_YEAR, X31CWebConst.DATABEAN_GET_VALUE) +
				bean.sendMessageString(CNW01201SFConst.CHGE_DTM_TO_MON, X31CWebConst.DATABEAN_GET_VALUE) +
				bean.sendMessageString(CNW01201SFConst.CHGE_DTM_TO_DAY, X31CWebConst.DATABEAN_GET_VALUE));
		
		// ANK-4346-00-00 ADD START
		// セッションID取得
		HttpSession session = getSession(this);
		HashMap pageLinkInfoBaseMap = (HashMap)session.getAttribute( "pageLinkInfo");
		// キー：画面ID_表番号で紐付くページリンク情報オブジェクト
		HashMap targetPageLinkInfoMap = null;
		String nowPageNum = "1";
		if (pageLinkInfoBaseMap == null || pageLinkInfoBaseMap.isEmpty())
		{
			nowPageNum = "1";
		}
		else {
			// キー：画面ID_表番号
			String screenKeyId = createPageInfoKey(JCNScreenConst.SCREEN_ID_CNW01201 + "0PJP","0");
			// メニューIDを取得
			String menuid = getMenuId(this);
			// メニューIDMAPを取得する。
			HashMap menuIdMap = (HashMap) pageLinkInfoBaseMap.get(menuid);
			// キー：画面ID_表番号で紐付くページリンク情報オブジェクトを取得する。
			targetPageLinkInfoMap = (HashMap) menuIdMap.get( screenKeyId );
			// 現在のページング情報
			if (targetPageLinkInfoMap == null)
			{
				nowPageNum = "1";
			}
			else
			{
				targetPageLinkInfoMap = (HashMap) menuIdMap.get( screenKeyId );
				nowPageNum = (String)targetPageLinkInfoMap.get("display_page_num");
			}

		}
		// ANK-4346-00-00 ADD END
		
		
		// マッピングクラスに渡すため、配列に作り変える
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ユースケースID格納用マップ生成
		HashMap<String, String> paramMap = new HashMap<String, String>();
		// ユースケースID設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CNSV0023");

		// マッピングクラスのインスタンス作成
		CNSV0023_CNSV0023OPDBMapper mapper = new CNSV0023_CNSV0023OPDBMapper();
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		// ANK-4346-00-00 MOD START
//		mapper.setCNSV002301SC(paramBean, dataMap, "1");
		mapper.setCNSV002301CC(paramBean, dataMap, "1", nowPageNum, selectIndex);
		// ANK-4346-00-00 MOD END

		// ページング用マップ取得
		// ANK-4346-00-00 MOD STRAT
//		HashMap<String, Object> pagingMap = (HashMap)dataMap.get("CNSV002301SC");
		HashMap<String, Object> pagingMap = (HashMap)dataMap.get("CNSV002301CC");
		// ANK-4346-00-00 MOD END
		// 検索処理パターン設定
		pagingMap.put(JCNWebConst.PAGING_INFO_SEARCH_TYPE, JPCModelConstant.SAERCH_TYPE_BBN);
		// 最大検索件数設定
		pagingMap.put(JCNWebConst.PAGING_INFO_MAX_SEARCH_NUM, JCCWebCommon.getSearchConst("CNW01201_MAX_SHOW_CNT"));
		// 表示件数設定
		pagingMap.put(JCNWebConst.PAGING_INFO_DISPLAY_NUM, JCCWebCommon.getSearchConst("CNW01201_ROW_PER_PAGE"));
		// ページング初期設定
		// ANK-4346-00-00 MOD START
//		JCCWebCommon.upmapperPageLinkInfo(this, "CNSV002301SC", dataMap);
		JCCWebCommon.upmapperPageLinkInfo(this, "CNSV002301CC", dataMap);
		// ANK-4346-00-00 MOD END

		// 検索結果格納用マップ生成
		HashMap outputMap = new HashMap();

		// SQL呼出し
		X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);

		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}

		// beanのクリア
		bean.getDataBeanArray(CNW01201SFConst.CONT_KEI_CHGE_LIST).clearArray();

		// 検索結果の取り出し
		// ANK-4346-00-00 MOD START
//		mapper.getCNSV002301SC(paramBean, outputMap);
		mapper.getCNSV002301CC(paramBean, outputMap);
		// ANK-4346-00-00 MOD END

		// ANK-4346-00-00 MOD START
//		// 検索エラーフラグの取得
//		String searchError = JCCWebCommon.getSearchErrFlg("CNSV002301SC", outputMap);
//		if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchError))
//		{
//			// 検索結果０件
//			JCCWebCommon.setMessageInfo(this, JCNWebConst.SEARCH_ERR_MESSAGE_ZERO);
//		}
//		else if (JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchError))
//		{
//			// 検索最大件数オーバー
//			JCCWebCommon.setMessageInfo(this, JCNWebConst.SEARCH_ERR_MESSAGE_MAXOVER, new String[] {JCCWebCommon.getSearchConst("CNW01201_MAX_SHOW_CNT")});
//		}
//		else if (JPCModelConstant.SEARCH_ERR_FLG_NODATA.equals(searchError))
//		{
//			// 表示ページに該当するデータなし
//			JCCWebCommon.setMessageInfo(this, JCNWebConst.SEARCH_ERR_MESSAGE_NODATA);
//		}
//		
		String searchError = JCCWebCommon.getSearchErrFlg("CNSV002301CC", outputMap);
		HashMap templateMap = (HashMap)outputMap.get("CNSV002301CC");
		String returnCode = (String)templateMap.get("err_cd");
		String errSkbtCode = (String)templateMap.get("err_skbt_code");
		

		if(returnCode == null||"".equals(returnCode) )
		{
			// CCMG連携に失敗した場合
			// ST-2024-0000002 MOD START
//			JCCWebCommon.setMessageInfo(this, "EKB9930-KW",
//					new String[] {"CCMG連携"});
			JCCWebCommon.setMessageInfo(this, "EKBF970-KW",
					new String[] {"CCMG連携"});
			// ST-2024-0000002 MOD END
			// ページング情報の設定
			JCCWebCommon.downmapperPageLinkInfo(this, "CNSV002301CC", outputMap);
			// 検索のコマンドIDを設定する。
			JCCWebCommon.setSearchCommand(this, "PAGING");

			// 遷移先の画面IDを共有フォームBeanの項目に設定する。
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
					X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_ID_CNW01201);
			
			// 遷移先の画面名を共有フォームBeanの項目に設定する。
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
					X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_NAME_CNW01201);
			return true;
		}
		else
		{
			if(!"00000".equals(returnCode))
			{
				if(JCNStringUtil.isNullBlank(errSkbtCode))
				{
					// CCMG連携に失敗した場合
					JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
							new String[] { "CCMG連携", "CCMGエラーコード:" + returnCode });
				}
				else if("1".equals(errSkbtCode))
				{
					// 契約変更履歴参照（CCMG）に失敗した場合
					JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
							new String[] { "CCMG連携（契約変更履歴参照）", "CCMGエラーコード:" + returnCode });
				}
				else if("2".equals(errSkbtCode))
				{
					// 料金訂正履歴参照（CCMG）に失敗した場合
					JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
							new String[] { "CCMG連携（料金訂正履歴参照）", "CCMGエラーコード:" + returnCode });
				}
				else if("3".equals(errSkbtCode))
				{
					// コンテンツ契約照会一覧情報取得（CCMG）に失敗した場合
					JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
							new String[] { "CCMG連携（契約一覧情報取得）", "CCMGエラーコード:" + returnCode });
				}
				// ANK-4346-15-00 ADD START
				else if("4".equals(errSkbtCode))
				{
					// コンテンツ契約照会一覧情報取得（CCMG）に失敗した場合
					JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
							new String[] { "CCMG連携（課金参照）", "CCMGエラーコード:" + returnCode });
				}
				// ANK-4346-15-00 ADD END
			}
			else
			{
				if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchError))
				{
					// 検索結果０件
					JCCWebCommon.setMessageInfo(this, JCNWebConst.SEARCH_ERR_MESSAGE_ZERO);
				}
				else if (JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchError))
				{
					// 検索最大件数オーバー
					JCCWebCommon.setMessageInfo(this, JCNWebConst.SEARCH_ERR_MESSAGE_MAXOVER, new String[] {JCCWebCommon.getSearchConst("CNW01101_MAX_SHOW_CNT")});
				}
			}
		}
		// ANK-4346-00-00 MOD END
		// ページング情報の設定
		// ANK-4346-00-00 MOD START
//		JCCWebCommon.downmapperPageLinkInfo(this, "CNSV002301SC", outputMap);
		JCCWebCommon.downmapperPageLinkInfo(this, "CNSV002301CC", outputMap);
		// ANK-4346-00-00 MOD END
		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, "PAGING");

		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_ID_CNW01201);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_NAME_CNW01201);

		return true;
	}


	/**
	 * コンテンツ契約一覧タブ押下時の処理を行います。<br>
	 * 
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws Exception
	 */
	public boolean action_keiList() throws Exception
	{
		// 共通Bean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// 親画面のBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 次画面移送用のマップ作成
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// 移送データ設定
		dataMap.put(CNW01201SFConst.SYSID, bean.sendMessageString(CNW01201SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JCNScreenConst.SCREEN_ID_CNW00101, dataMap);
		JCCWebCommon.setScreenId(this, JCNScreenConst.SCREEN_ID_CNW00101, JCNScreenConst.SCREEN_ID_CNW00101);

		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_ID_CNW00101);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_NAME_CNW00101);

		return true;
	}
	
	/**
	 * コンテンツ料金調整タブ押下時の処理を行います。<br>
	 * 
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws Exception
	 */
	public boolean action_prcAdj() throws Exception
	{
		// 共通Bean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// 親画面のBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 次画面移送用のマップ作成
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// 移送データ設定
		dataMap.put(CNW01201SFConst.SYSID, bean.sendMessageString(CNW01201SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JCNScreenConst.SCREEN_ID_CNW00301, dataMap);
		JCCWebCommon.setScreenId(this, JCNScreenConst.SCREEN_ID_CNW00301, JCNScreenConst.SCREEN_ID_CNW00101);

		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_ID_CNW00301);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_NAME_CNW00301);

		return true;
	}

	/**
	 * コンテンツ支払方法変更タブ押下時の処理を行います。<br>
	 * 
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws Exception
	 */
	public boolean action_payChg() throws Exception
	{
		// 共通Bean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// 親画面のBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 次画面移送用のマップ作成
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// 移送データ設定
		dataMap.put(CNW01201SFConst.SYSID, bean.sendMessageString(CNW01201SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JCNScreenConst.SCREEN_ID_CNW00401, dataMap);
		JCCWebCommon.setScreenId(this, JCNScreenConst.SCREEN_ID_CNW00401, JCNScreenConst.SCREEN_ID_CNW00101);

		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_ID_CNW00401);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_NAME_CNW00401);

		return true;
	}

	/**
	 * コンテンツ請求照会タブ押下時の処理を行います。<br>
	 * 
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws Exception
	 */
	public boolean action_seiky() throws Exception
	{
		// 共通Bean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// 親画面のBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 次画面移送用のマップ作成
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// 移送データ設定
		dataMap.put(CNW01201SFConst.SYSID, bean.sendMessageString(CNW01201SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JCNScreenConst.SCREEN_ID_CNW01101, dataMap);
		JCCWebCommon.setScreenId(this, JCNScreenConst.SCREEN_ID_CNW01101, JCNScreenConst.SCREEN_ID_CNW00101);

		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_ID_CNW01101);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_NAME_CNW01101);

		return true;
	}

	/**
	 * コンテンツ契約変更履歴タブ押下時の処理を行います。<br>
	 * 
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws Exception
	 */
	public boolean action_keiHist() throws Exception
	{
		// 共通Bean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// 親画面のBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 次画面移送用のマップ作成
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// 移送データ設定
		dataMap.put(CNW01201SFConst.SYSID, bean.sendMessageString(CNW01201SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JCNScreenConst.SCREEN_ID_CNW01201, dataMap);
		JCCWebCommon.setScreenId(this, JCNScreenConst.SCREEN_ID_CNW01201, JCNScreenConst.SCREEN_ID_CNW00101);

		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_ID_CNW01201);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_NAME_CNW01201);

		return true;
	}
	// ANK-4346-00-00 ADD START
	/**
	 * 入力種別選択.<br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean inputSbtChoice() throws Exception
	{

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// 入力種別選択コード
		paramBeans[0].sendMessageString(CNW01201SFConst.INPUT_SBT_SELECT_CD, X31CWebConst.DATABEAN_SET_VALUE, this.getInputSbtSelCd(paramBeans));

		return false;
	}
	
	/**
	 * 入力種別選択コード取得<br>
	 * 
	 * @param bean コンテンツ契約変更履歴サービスフォームBean
	 * @return 入力種別選択コード
	 */
	private String getInputSbtSelCd(X31SDataBeanAccess[] bean)
	{
		String selCd = "01";

		String selIndex = bean[0].sendMessageString(CNW01201SFConst.INPUT_SBT_SELECT_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		X31SDataBeanAccessArray info = bean[0].getDataBeanArray(CNW01201SFConst.INPUT_SBT_INFO);
		if (selIndex != null && JCNStrConst.S_BLANK.equals(selIndex) == false)
		{
			selCd = info.getDataBean(Integer.parseInt(selIndex)).sendMessageString(CNW01201SFConst.INPUT_SBT_CD_09, X31CWebConst.DATABEAN_GET_VALUE);
		}

		return selCd;
	}
	/**
	 * セッションを取得します。
	 * 
	 * @param arg0 VIEWロジックインスタンス
	 */
	private static HttpSession getSession(JCCWebBusinessLogic arg0) throws Exception
	{
		// セッションID取得
		String sessionId = arg0.getSession().getViewParamId().getSessionID();
		// セッションを取得して返却
		return X33CUtil.getSession(sessionId).getSession();
	}
	private static String createPageInfoKey(String screenId, String tableIndex) {
		if (screenId == null || tableIndex == null) 
		{
			return null;
		}
		return getScreenIdWith0PJP(screenId) + "_" + tableIndex;
	}
	/**
	 * 指定された画面IDが"0PJP"で終わっていない場合、"0PJP"を付与して返却します。
	 * "0PJP"で終わっている場合、処理を行わず画面IDを返却します。
	 * @param screenId 画面ID
	 * @return 画面ID + "0PJP"
	 */
	private static String getScreenIdWith0PJP(String screenId) {
		if ( screenId == null ) {
			return null;
		}
		
		int ret = screenId.lastIndexOf("0PJP");
		if (ret == -1) {
			return screenId + "0PJP";
		} else {
			return screenId;
		}
	}
	/**
	 * メニューIDを取得する。
	 * @param arg0 VIEWロジックインスタンス
	 * @return メニューID
	 */
	private static String getMenuId( JCCWebBusinessLogic arg0 ) {
		try {
			X33VViewJSPBean jspBean = (X33VViewJSPBean) X33CUtil.getSession( arg0.getSession().getViewParamId().getSessionID() ).getContext().getRequestBean();
			String eventPageId = jspBean.getEventPageId();
			
			// アプリケーションプロパティファイルのメニュー画面ID定義を取得
			String menuScreenId = JCMAPLConstMgr.getString("MENU_SCREEN_ID");
			
			HashMap map = arg0.getRequestParams();
			if ( eventPageId != null && menuScreenId != null && eventPageId.equals(menuScreenId) ) {
				// 20121220 メニューIDの取得先変更（戻るボタンが効かない障害の対応） fst)yanagihara start
				return (String) map.get(JCCWebCommon.MENUID_PARAM_NAME);
				//return (String) map.get("uji.verb");
				// 20121220 メニューIDの取得先変更（戻るボタンが効かない障害の対応） fst)yanagihara end
			} else {
				return (String) map.get("menuid_system");
			}
		} catch(Throwable th)
		{
			throw makeJCCFrameworkException(th);
		}
	}
	
	/**
	 * オブジェクト生成処理です。
	 * Throwableオブジェクトをオブジェクトに保持して返却します。
	 * Throwableオブジェクトがオブジェクトの場合は、そのまま返却します。
	 * @param th Throwableオブジェクト
	 * @return JCCFrameworkExceptionオブジェクト
	 */
	private static JCCFrameworkException makeJCCFrameworkException(Throwable th)
	{	
		if (th instanceof JCCFrameworkException)
		{	
			return (JCCFrameworkException)th;
		}
		JCCFrameworkException fwe = new JCCFrameworkException();
		fwe.initCause(th);
		return fwe;
	}
	// ANK-4346-00-00 ADD END
}
