/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom						 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：ZMW06901SFLogic
*	ソースファイル名	：ZMW06901SFLogic.java
*	作成者				：富士通　
*	作成日				：2011年08月07日
*＜機能概要＞
*　Viewロジック部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/07  FJ) 宮前	新規作成
*	v3.00.00	2012/03/21	FJ) 宮前	【UIZ-0922-00-00】営業日管理スキーマ変更に伴う修正
*	v3.00.00	2012/04/06	FJ) 宮前	【SGY-2012-000006】統合認証対応
*	v3.00.00	2012/04/06	FJ) 宮前	【ANK-0025-00-00】ギガルータ対応
*	v3.00.00	2012/04/06	FJ) 宮前	【ANK-0023-00-00】着信Eポップの転送時引き継ぎ対応
*	v3.01.00	2012/05/22	FJ) 宮前	【ST7-2012-0000003】リンクインジェクション対応
*	v3.01.00	2012/05/22	FJ) 宮前	【SGY-2012-000006】統合認証対応
*	v3.01.00	2012/09/03	FJ) 宮前	【ST1-2012-0000256】着信Eポップの不具合対応
*	v3.01.00	2012/09/03	FJ) 宮前	【ST1-2012-0000258】着信Eポップの不具合対応
*	v3.02.00	2012/08/09	FJ) 宮前	【ST1-2012-0000286】Claris連携 不具合対応
*	v4.00.00	2012/06/05	FJ) 宮前	【ANK-0494-01-00】ICSWEB対応(Spri対応)
*	v4.01.00	2012/06/27	FJ) 宮前	【ANK-0372-00-00】オーダリング1次対応
*	v8.00.00	2013/12/06	FJ) 日野	【ANK-1584-00-00】MVNO-本体対応
*	v12.00.00	2014/12/09	FJ) 川島	【ANK-2255-00-00】【ＮＯ．１６４１】コールセンター再構築対応
*	v21.00.00	2015/08/05	FJ) 鯵坂	【ANK-2639-00-00】オーダリング案件対応
*	v21.00.01	2015/10/28	FJ) 吉田	【ST-2015-0000057】オーダリング連携時の組織選択画面表示制御不正
*	v23.00.00	2015/11/09	FJ) 寺園	【ANK-2693-00-00】オーダリング案件対応（STEP2）
*	v25.00.00	2016/05/16	FJ) 山岡	【ANK-2845-00-00】【eo電気】edenからの画面連携追加対応（対応履歴画面）
*	v27.00.00	2016/10/28	FJ) 中原	【ANK-3039-00-00】【eo電気】edenからの対応履歴画面呼出し後の画面表示改善
*	v27.00.01	2016/12/02	FJ) 中原	【OM-2016-0002439】eo対応履歴画面→eden画面→eo対応履歴画面のブランク表示問題
*	v42.00.00	2019/03/12	FJ) 謝		【ANK-3593-00-00】オペレータ支援対応に伴うeo顧客機能改修（お客さまカルテ）
*	v42.00.01	2019/03/29	FJ) 三原	【ANK-3593-00-00】オペレータ支援対応に伴うeo顧客機能改修（お客さまカルテ）
*	v42.00.02	2019/05/08	FJ) 三原	【IT1-2019-0000046】対応履歴の実行ボタンでお客様カルテ画面が2重起動しない
*	v42.00.03	2019/05/30	FJ) 三原	【IT1-2019-0000056】ステーションリンクからお客様カルテ画面が起動しない
*	v42.00.04	2019/06/02	FJ) 三原	【ANK-3593-00-00】オペレータ支援対応に伴うeo顧客機能改修（お客さまカルテ）
*	v47.00.00	2020/01/06	FJ) 三原	【ANK-3798-00-00】オペレータ支援システムの表示改善対応（2020年1月リリース分)
*	v47.00.01	2020/01/22	FJ) 三原	【ST-2020-0000002】オーダリング画面連続起動時の電話番号の引継漏れ
*	v51.00.00	2020/09/25	FJ) 謝		【ANK-3927-00-00】オペレータ支援向けAPI機能変更(2020年12月中旬リリース)
*	v51.00.01	2020/12/24	FJ)舘山		【OM-2020-0001662】カルテ起動フラグが外部連携毎にクリアされる
*	v53.00.00	2021/03/29	FJ) 平野	【ANK-4017-00-00】eziru画面起動
*	v53.00.01	2021/05/18	FJ) 星野	【ANK-4030-00-00】オペレータ支援向けAPI機能変更（2021年6月）
*	v60.00.00	2022/07/21	FJ) 原		【ANK-4244-00-00】【eo定期】MT既設賃貸対応
*	v62.00.00	2022/09/26	FJ) 藤本涼	【ANK-4237-00-00】オペレータ支援向けAPI変更対応（導線変更に伴う検索機能等の追加対応）
*	v62.00.01	2022/12/04	FJ) 西窪	【IT1-2022-0000080】オペレータ支援向けAPI変更対応（導線変更に伴う検索機能等の追加対応）メッセージ不正
*********************************************************************/
package eo.web.webview.ZMW06901SF;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;

import eo.common.constant.JCRStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JCCFrameworkException;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CRW01201SF.CRW01201SFConst;
import eo.web.webview.CRW02401SF.CRW02401SFConst;
import eo.web.webview.CRW10401SF.CRW10401SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.ODW00101SF.ODW00101SFConst;
import eo.web.webview.ZMW11201SF.ZMW11201SFConst;
import eo.web.webview.common.JCCCalendarConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCRScreenConst;
import eo.web.webview.common.JCRWebCommon;
import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.common.JZMWebCommon;
import eo.web.webview.mapping.ZMSV0004_ZMSV0004OPDBMapper;
import eo.web.webview.mapping.ZMSV0005_ZMSV0005OPDBMapper;
import eo.web.webview.mapping.ZMSV0060_ZMSV0060OPDBMapper;
import eo.web.webview.mapping.ZMSV0063_ZMSV0063OPDBMapper;
import eo.web.webview.mapping.ZMSV0089_ZMSV0089OPDBMapper;

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;

/**
 * メニュー画面ビューロジック<p>
 * <BR>
 * @author FJ
 */
public class ZMW06901SFLogic extends JCCWebBusinessLogic 
{
	/* ++++++++++ v4.01.0 追加開始 ++++++++++ */
	
	/** アプリケーションプロパティ KEY 申込イメージ呼出画面起動位置ＴＯＰ */
	private static final String KEY_PRP_ZM_CALL_ZDW01201_WEIDHT = "ZM_CALL_ZDW01201_WEIDHT";
	
	/** アプリケーションプロパティ KEY 申込イメージ呼出画面起動位置ＬＥＦＴ */
	private static final String KEY_PRP_ZM_CALL_ZDW01201_HEIGHT = "ZM_CALL_ZDW01201_HEIGHT";
	
	/** アプリケーションプロパティ KEY 申込イメージ呼出画面起動位置ＨＥＩＧＨＴ */
	private static final String KEY_PRP_ZM_CALL_ZDW01201_LEFT = "ZM_CALL_ZDW01201_LEFT";
	
	/** アプリケーションプロパティ KEY 申込イメージ呼出画面起動位置ＷＥＩＤＨＴ */
	private static final String KEY_PRP_ZM_CALL_ZDW01201_TOP = "ZM_CALL_ZDW01201_TOP";
	
	/* ++++++++++ v4.01.0 追加終了 ++++++++++ */
	
	/** 外部連携用 リクエストパラメータ Key：画面ID */
	private static final String KEY_SCREEN_ID = "screenId";
	
	/** eoMessenger 画面ID */
	private static final String SCREEN_ID_EO_MESSENGER = "CRW08301";
	
	/** 外部連携用 リクエストパラメータ Key：ePOP引継キー情報 */
	private static final String KEY_KEY_INFO = "epop_tenso_rnki_key";
	
	/** 外部連携用 リクエストパラメータ Key：着信電話番号 */
	private static final String KEY_TELNO = "telno";
	
	/** 外部連携用 リクエストパラメータ Key：サービス契約番号リスト */
	private static final String KEY_CUST_ID_LST = "custIdLst";
	
	/** 外部連携用 リクエストパラメータ Key：サービス契約番号リスト区切り文字 */
	private static final String KEY_CUST_ID_LST_DELMI = ",";
	
	/** 外部連携用 リクエストパラメータ Key：問合せ客IDリスト */
	private static final String KEY_SYM_ID_LST = "symIdLst";
	
	/** 外部連携用 リクエストパラメータ Key：問合せ客IDリスト区切り文字 */
	private static final String KEY_SYM_ID_LST_DELMI = ",";
	
	/** 外部連携用 リクエストパラメータ Key：ＳＹＳＩＤリスト */
	private static final String KEY_SYSID_LST = "sysIdLst";
	
	/** 外部連携用 リクエストパラメータ Key：ＳＹＳＩＤリスト区切り文字 */
	private static final String KEY_SYSID_LST_DELMI = ",";
	
	/** 外部連携用 リクエストパラメータ Key：起動画面ID */
	private static final String KEY_GMNID = "gmnid";
	
	/** 外部連携用 リクエストパラメータ Key：起動画面ID区切り文字 */
	private static final String KEY_GMNID_DELMI = ":";
	
	/** 外部連携用 リクエストパラメータ Key：イベントID */
	private static final String KEY_EVENT_ID = "eventId";
	
	// v42.00.01 ANK-3593-00-00 ADD START
	/** 外部連携用 リクエストパラメータ Key：カルテ起動コード */
	// IT1-2019-0000056 MOD START
	//private static final String KEY_KRT_KIDOU_CD = "krtCd";
	private static final String KEY_KRT_KIDOU_CD = "krtcd";
	// IT1-2019-0000056 MOD END
	
	/** 外部連携用 リクエストパラメータ Key：ＯＰ担当業務コード */
	// IT1-2019-0000056 MOD START
	//private static final String KEY_OP_TNT_WORK_CD = "opGmCd";
	private static final String KEY_OP_TNT_WORK_CD = "opgmcd";
	// IT1-2019-0000056 MOD END
	// v42.00.01 ANK-3593-00-00 ADD END
	
	/** 外部連携用 ePOP連携 イベントID 初期起動 */
	private static final String EPOP_EVENT_ID_INIT = "01";
	
	/** 外部連携用 ePOP連携 イベントID 着信拒否解除 */
	private static final String EPOP_EVENT_ID_CALL_BLOCK_RELEASE = "02";
	
	/** 外部連携用 ePOP連携 イベントID 着信 */
	private static final String EPOP_EVENT_ID_CALL = "04";
	
	/** 外部連携用 ePOP連携 イベントID 転送先 */
	private static final String EPOP_EVENT_ID_FORWARD_TO = "10";
	
	/** 外部連携用 ePOP連携 イベントID 手動起動(プレビュー) */
	private static final String EPOP_EVENT_ID_PREVIEW = "20";

	/** 外部連携用 ePOP連携 イベントID 手動起動(アウトバウンド) */
	private static final String EPOP_EVENT_ID_OUTBOUND = "30";
	
	/** 外部連携用 ePOP連携 イベントID 手動起動(あふれ呼) */
	private static final String EPOP_EVENT_ID_OVERFLOW_CALL = "40";

	/** 外部連携用 リクエストパラメータKey（引継ぎ不要なパラメータ） */
	private static final String KEY_NON_HKTGI_KMK = "ZM_NON_HKTGI_KMK";
	
	/** 外部連携用 リクエストパラメータKey（引継ぎ不要なパラメータ） 区切り文字 */
	private static final String KEY_NON_HKTGI_KMK_DELMI = ";";
	
	// ▼▼ ANK-2639-00-00 オーダリング案件 ADD START ▼▼
	/** 外部連携用 リクエストパラメータ Key：外部システムコード */
	private static final String KEY_SYSCD = "sysCd";
	
	/** 外部連携用 リクエストパラメータ Key：ユーザーＩＤ */
	private static final String KEY_OPE_ID = "opeId";
	
	/** 外部連携用 リクエストパラメータ Key：SYSID */
	private static final String KEY_SYSID = "sysId";
	
	/** 外部連携用 リクエストパラメータ Key：サービス契約番号 */
	private static final String KEY_SVC_KEI_NO = "svcKeiNo";
	
	/** 外部連携用 リクエストパラメータ Key：受付番号 */
	private static final String KEY_UKNO = "ukNo";
	
	/** 外部連携用 リクエストパラメータ Key：異動区分 */
	private static final String KEY_IDO_DIV = "idoDiv";
	
	/** 外部連携用 リクエストパラメータ Key：異動理由コード（大分類）*/
	private static final String KEY_IDO_RSN_CD1 = "idoRsnCd1";
	
	/** 外部連携用 リクエストパラメータ Key：異動理由コード（中分類）*/
	private static final String KEY_IDO_RSN_CD2 = "idoRsnCd2";
	// ▲▲ ANK-2639-00-00 オーダリング案件  ADD  END ▲▲
	// ▼▼ ANK-2693-00-00 オーダリング案件（STEP2） ADD START ▼▼
	/** 外部連携用 リクエストパラメータ Key：請求契約番号 */
	private static final String KEY_SEIKY_KEI_NO = "seikyKeiNo";
	// ▲▲ ANK-2693-00-00 オーダリング案件（STEP2） ADD  END ▲▲
	
	// ANK-3798-00-00 ADD START
	/** 外部連携用 リクエストパラメータ Key：電話番号１ */
	private static final String KEY_TELNO_1 = "telno1";
	/** 外部連携用 リクエストパラメータ Key：電話番号２ */
	private static final String KEY_TELNO_2 = "telno2";
	// ANK-3798-00-00 ADD END
// ANK-3927-00-00 ADD START
	/** 外部連携用 リクエストパラメータ Key：問合せID */
	private static final String KEY_TOIAWASE_ID = "toiawaseId";
// ANK-3927-00-00 ADD END
// ANK-4030-00-00 ADD START
	/** 外部連携用 リクエストパラメータ Key：サービス契約内訳番号 */
	private static final String KEY_SVC_KEI_UCWK_NO = "svcKeiUcwkNo";
// ANK-4030-00-00 ADD END
// ANK-4237-00-00 ADD START
	/** 外部連携用 リクエストパラメータ Key：問合せ客番号 */
	private static final String KEY_PROSCST_NO = "proscstNo";
	/** 外部連携用 リクエストパラメータ Key：複数起動ＮＧフラグ */
	private static final String KEY_MULT_OPN_NG_FLG = "multOpnNgFlg";
// ANK-4237-00-00 ADD END
	
	/** メニュー設定ファイルの位置 */
	private static final String KEY_MENU_FILE_PATH = "ZM_MENU_SETTING_FILE";
	
	/** メニュー設定ファイルの要素：大分類 */
	private static final String MENU_FILE_ELEM_DBRI = "dbri";
	
	/** メニュー設定ファイルの要素：中分類 */
	private static final String MENU_FILE_ELEM_CBRI = "cbri";
	
	/** メニュー設定ファイルの要素：小分類 */
	private static final String MENU_FILE_ELEM_SBRI = "sbri";
	
	/** メニュー設定ファイルの大分類、中分類、小分類の共通属性：表示名 */
	private static final String MENU_FILE_ATTR_DSP_NM = "dspNm";
	
	/** メニュー設定ファイルの中分類、小分類の共通属性：画面ID */
	private static final String MENU_FILE_ATTRS_SCREEN_ID = "screenId";
	
	/** メニュー設定ファイルの中分類、小分類の共通属性：画面名 */
	private static final String MENU_FILE_ATTR_SCREEN_NM = "screenNm";
	
	/** メニュー設定ファイルの中分類、小分類の共通属性：ウィンドウ名 */
	private static final String MENU_FILE_ATTR_WINDOW_NM = "windowNm";
	
	/** メニュー設定ファイルの中分類、小分類の共通属性：連携先URL */
	private static final String MENU_FILE_ATTR_URL = "url";
	
	/** メニュー設定ファイルの中分類、小分類の共通属性：連携先 SYS ID */
	private static final String MENU_FILE_ATTR_SYS_ID = "sysid";
	
	/** 他サイト連携用 ScreenInfo HashMap Key */
	private static final String KEY_URL = "key_url";
	
	/** WebFOCUS連携用 ScreenInfo HashMap Key */
	private static final String KEY_WEB_FOCUS = "key_web_focus";
	
	/** WebFOCUS連携用 POST 項目名 ワンタイムパスワード */
	private static final String KEY_WEB_FOCUS_ONETIME_PASS = "onetimepass";
	
	/** WebFOCUS連携用 POST 項目名 ユーザーID */
	private static final String KEY_WEB_FOCUS_USER_ID = "userid";
	
	/** WebFOCUS連携用 POST 項目名 ユーザーID */
	private static final String KEY_WEB_FOCUS_TOOL_URL = "toolurl";
	
	/** WebFOCUS連携用 POST 項目名 POST URL */
	private static final String KEY_WEB_FOCUS_POST_URL = "posturl";
	
	/** WebFOCUS対応 */
	private static final String MENU_FILE_ATTR_TOOL_URL = "toolUrl";
	
	/** サービス ZMSV0004 */
	private static final String USECASE_ID_0004 = "ZMSV0004";
	
	/** サービス ZMSV0005 */
	private static final String USECASE_ID_0005 = "ZMSV0005";
	
	/**サービス ZMSV0060  */
	private static final String USECASE_ID_0060 = "ZMSV0060";
	
	/** サービス ZMSV0063 */
	private static final String USECASE_ID_0063 = "ZMSV0063";
	
	/** サービス ZMSV0089 */
	private static final String USECASE_ID_0089 = "ZMSV0089";
	
	/** セッション格納時のKey */
	private static final String SESSION_KEY = "ZMW06901_SESSION_KEY";
	
	/** 外部連携用 貸与品確認 KEY 認証状態 */
	private static final String KEY_NINSHO_STAT = "ninsho_stat";
	
	/** 外部連携用 ワンタイムパスワード 認証 NG */
	private static final String NINSHO_NG = "1";
	
	/** SPRi Menu.xmlに設定されている画面IDの接頭辞 */
	private static final String SPRI_SCREEN_STARTWITH = "ZZW001";
	
	/** 統合認証システム連携部品からサービスフォームBeanへ設定する際に必要な項目名リスト */
	private static final String[][] KEY_LIST_FOR_LDAP_RESULT =
	{
		
			// リスト名,組織コード項目名,立場コード項目名,上位組織コード項目名
			{ZMW06901SFConst.ORG_LIST, ZMW06901SFConst.ORG_CD_04, ZMW06901SFConst.POSITION_CD_04, ""}, 
			{ZMW06901SFConst.WKKBT_ORG_LIST, ZMW06901SFConst.WKKBT_ORG_CD_05, ZMW06901SFConst.WKKBT_POSITION_CD_05, 
				ZMW06901SFConst.WKORG_CD_05}, 
			{ZMW06901SFConst.CHUKAN_ORG_LIST, ZMW06901SFConst.CHUKAN_ORG_CD_06, ZMW06901SFConst.CHUKAN_POSITION_CD_06, 
					ZMW06901SFConst.CHUKAN_JOI_ORG_CD_06}, 
			{ZMW06901SFConst.SPA_ORG_LIST, ZMW06901SFConst.SPA_ORG_CD_07, ZMW06901SFConst.SPA_POSITION_CD_07, ""}
	};
	
	/** 実組織 Key項目一覧 */
	private static final String[] KEY_ORG_LIST = 
	{
		ZMW06901SFConst.ORG_CD_04,
		ZMW06901SFConst.ORG_NM_04,
		ZMW06901SFConst.POSITION_CD_04,
		ZMW06901SFConst.POSITION_NM_04,
		ZMW06901SFConst.KGGRP_CD_04,
		ZMW06901SFConst.AUTHORITY_GRP_NM_04
	};
	
	/** 業務個別設定組織 Key項目一覧 */
	private static final String[] KEY_WKKBT_ORG_LIST = 
	{
		ZMW06901SFConst.WKORG_CD_05,
		ZMW06901SFConst.WKKBT_ORG_CD_05,
		ZMW06901SFConst.WKKBT_ORG_NM_05,
		ZMW06901SFConst.WKKBT_POSITION_CD_05,
		ZMW06901SFConst.WKKBT_POSITION_NM_05,
		ZMW06901SFConst.WKKBT_KGGRP_CD_05,
		ZMW06901SFConst.WKKBT_AUTHORITY_GRP_NM_05
	};
	
	/** 中間組織 Key項目一覧 */
	private static final String[] KEY_CHUKAN_ORG_LIST = 
	{
		ZMW06901SFConst.CHUKAN_JOI_ORG_CD_06,
		ZMW06901SFConst.CHUKAN_ORG_CD_06,
		ZMW06901SFConst.CHUKAN_ORG_NM_06,
		ZMW06901SFConst.CHUKAN_POSITION_CD_06,
		ZMW06901SFConst.CHUKAN_POSITION_NM_06,
		ZMW06901SFConst.CHUKAN_KGGRP_CD_06,
		ZMW06901SFConst.CHUKAN_AUTHORITY_GRP_NM_06
	};
	
	/** 特別権限組織 Key項目一覧 */
	private static final String[] KEY_SPA_ORG_LIST = 
	{
		ZMW06901SFConst.SPA_ORG_CD_07,
		ZMW06901SFConst.SPA_ORG_NM_07,
		ZMW06901SFConst.SPA_POSITION_CD_07,
		ZMW06901SFConst.SPA_POSITION_NM_07,
		ZMW06901SFConst.SPA_KGGRP_CD_07,
		ZMW06901SFConst.SPA_KGGRP_NM_07
	};

	/** メニュー情報格納用 フィールド変数 */
	private StringBuffer menuInfo = new StringBuffer();
	
	/** 外部連携時共通パラメータKey一覧 */
	private static final String[] KEY_REQ_PARAM_LIST =
	{
		"screenId",
		"sysId",
		"兼務フラグ",
		"oneTimePwd",
		"SCREEN_ID"
	};
	
	/**
	 * メニュー画面 初期表示処理を行います。
	 * <BR>
	 * @return boolean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean init() throws Exception 
	{

		X31SDataBeanAccess svBean = getServiceFormBean();
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// 外部連携用 画面ID
		String nextScreenId = null;
		HashMap<String, Object> dataMap = JCCWebCommon.getScreenInfo(this);
		if(dataMap != null)
		{
			nextScreenId = (String)dataMap.get("SCREEN_ID");
		}
				
		// ePOP連携判定
		boolean isEPOP = false;
		
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// 所属組織名
		loadOrgNm(svBean, cfBean);
		
		// メニュー定義ファイル読み込み
		String nextScreenNm = loadMenu(svBean, nextScreenId);
		
		// 画面ID
		if(nextScreenId != null)
		{
			svBean.sendMessageString(ZMW06901SFConst.FUKUSU_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, nextScreenId);
		}
		
		// ユーザーIDセット
		String userId = cfBean.sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE);
		svBean.sendMessageString(ZMW06901SFConst.USER_ID, X31CWebConst.DATABEAN_SET_VALUE, userId);
		
		/* ++++++++++ v4.01.0 追加開始 ++++++++++ */
		
		// アプリケーションプロパティファイル KEY:ZM_CALL_ZDW01201_TOP
		String image_top = JCCWebCommon.getApplicationConst(KEY_PRP_ZM_CALL_ZDW01201_TOP);
		if(image_top != null)
		{
			svBean.sendMessageString(ZMW06901SFConst.IMAGE_TOP, X31CWebConst.DATABEAN_SET_VALUE, image_top);
		}
		
		// アプリケーションプロパティファイル KEY:ZM_CALL_ZDW01201_LEFT
		String image_left = JCCWebCommon.getApplicationConst(KEY_PRP_ZM_CALL_ZDW01201_LEFT);
		if(image_left != null)
		{
			svBean.sendMessageString(ZMW06901SFConst.IMAGE_LEFT, X31CWebConst.DATABEAN_SET_VALUE, image_left);
		}
		
		// アプリケーションプロパティファイル KEY:ZM_CALL_ZDW01201_HEIGHT
		String image_height = JCCWebCommon.getApplicationConst(KEY_PRP_ZM_CALL_ZDW01201_HEIGHT);
		if(image_height != null)
		{
			svBean.sendMessageString(ZMW06901SFConst.IMAGE_HEIGHT, X31CWebConst.DATABEAN_SET_VALUE, image_height);
		}
		
		// アプリケーションプロパティファイル KEY:ZM_CALL_ZDW01201_WEIDHT
		String image_weidht = JCCWebCommon.getApplicationConst(KEY_PRP_ZM_CALL_ZDW01201_WEIDHT);
		if(image_weidht != null)
		{
			svBean.sendMessageString(ZMW06901SFConst.IMAGE_WEIDHT, X31CWebConst.DATABEAN_SET_VALUE, image_weidht);
		}
		
		/* ++++++++++ v4.01.0 追加終了 ++++++++++ */

		// 画面名
		// ePOP、オーダリングシステム引継情報設定
		if (dataMap != null)
		{
			
			// ePOP引継キー情報クリア
			svBean.sendMessage(ZMW06901SFConst.EPOP_TENSO_RNKI_KEY, X31CWebConst.DATABEAN_CLEAR);
			
			// 着信電話番号クリア
			svBean.sendMessage(ZMW06901SFConst.INCOMING_TELNO, X31CWebConst.DATABEAN_CLEAR);
			
			// 着信イベントIDクリア
			svBean.sendMessage(ZMW06901SFConst.EVENT_ID, X31CWebConst.DATABEAN_CLEAR);
			
			// サービス契約番号リストクリア
			svBean.getDataBeanArray(ZMW06901SFConst.SVC_KEI_NO).clearArray();
			
			// 問合せ客番号リストクリア
			svBean.getDataBeanArray(ZMW06901SFConst.PROSCST_NO).clearArray();
			
			// ＳＹＳＩＤリストクリア
			svBean.getDataBeanArray(ZMW06901SFConst.SYSID).clearArray();
			
			// ▼▼ ANK-2639-00-00 オーダリング案件 ADD START ▼▼
			// ＳＹＳＩＤクリア
			svBean.sendMessage(ZMW06901SFConst.ODR_SYSID, X31CWebConst.DATABEAN_CLEAR);
			
			// サービス契約番号クリア
			svBean.sendMessage(ZMW06901SFConst.ODR_SVC_KEI_NO, X31CWebConst.DATABEAN_CLEAR);
			
			// 受付番号クリア
			svBean.sendMessage(ZMW06901SFConst.UK_NO, X31CWebConst.DATABEAN_CLEAR);
			
			// 異動区分クリア
			svBean.sendMessage(ZMW06901SFConst.IDO_DIV, X31CWebConst.DATABEAN_CLEAR);
			
			// 異動理由コード（大分類）クリア
			svBean.sendMessage(ZMW06901SFConst.IDO_RSN_CD1, X31CWebConst.DATABEAN_CLEAR);
			
			// 異動理由コード（中分類）クリア
			svBean.sendMessage(ZMW06901SFConst.IDO_RSN_CD2, X31CWebConst.DATABEAN_CLEAR);
			// ▲▲ ANK-2639-00-00 オーダリング案件  ADD  END ▲▲

			// ▼▼ ANK-2693-00-00 オーダリング案件（STEP2） ADD START ▼▼
			// 請求契約番号クリア
			svBean.sendMessage(ZMW06901SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_CLEAR);
			// ▲▲ ANK-2693-00-00 オーダリング案件（STEP2） ADD  END ▲▲
			
			// ST-2020-0000002 ADD START
			// 電話番号１クリア
			svBean.sendMessage(ZMW06901SFConst.TELNO_1, X31CWebConst.DATABEAN_CLEAR);
			
			// 電話番号２クリア
			svBean.sendMessage(ZMW06901SFConst.TELNO_2, X31CWebConst.DATABEAN_CLEAR);
			// ST-2020-0000002 ADD END
// ANK-3927-00-00 ADD START
			// 問合せIDクリア
			svBean.sendMessage(ZMW06901SFConst.TOIAWASE_ID, X31CWebConst.DATABEAN_CLEAR);
// ANK-3927-00-00 ADD END
// ANK-4030-00-00 ADD START
			// サービス契約内訳番号クリア
			svBean.sendMessage(ZMW06901SFConst.SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_CLEAR);
// ANK-4030-00-00 ADD END
// ANK-4237-00-00 ADD START
			// 問合せ客番号クリア
			svBean.sendMessage(ZMW06901SFConst.PROSCST_NO_1, X31CWebConst.DATABEAN_CLEAR);
			
			// 複数起動ＮＧフラグクリア
			svBean.sendMessage(ZMW06901SFConst.MULT_OPN_NG_FLG, X31CWebConst.DATABEAN_CLEAR);
// ANK-4237-00-00 ADD END
			
			// ePOP引継キー情報設定
			svBean.sendMessageString(ZMW06901SFConst.EPOP_TENSO_RNKI_KEY, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_KEY_INFO));
			
			// 着信電話番号設定
			svBean.sendMessageString(ZMW06901SFConst.INCOMING_TELNO, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_TELNO));
			
			// 着信イベントID設定
			svBean.sendMessageString(ZMW06901SFConst.EVENT_ID, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_EVENT_ID));
			
			// epop-WEBFOCUS不正動作対応
			// URL情報クリア
			svBean.sendMessage(ZMW06901SFConst.URL, X31CWebConst.DATABEAN_CLEAR);
			svBean.sendMessage(ZMW06901SFConst.TOOLURL, X31CWebConst.DATABEAN_CLEAR);
			
			// サービス契約番号リスト設定
			if (dataMap.get(KEY_CUST_ID_LST) != null)
			{
				String custIdLst = (String)dataMap.get(KEY_CUST_ID_LST);
				if (custIdLst.length() > 0)
				{
					String[] custIds = custIdLst.split(KEY_CUST_ID_LST_DELMI);
					X31SDataBeanAccessArray svcKeiNo = svBean.getDataBeanArray(ZMW06901SFConst.SVC_KEI_NO);
					for (int i = 0; i < custIds.length; i++)
					{
						
						// サービス契約番号追加
						X31SDataBeanAccess wBean = svcKeiNo.addDataBean();
						wBean.sendMessageString(ZMW06901SFConst.L0_SVC_KEI_NO_08, X31CWebConst.DATABEAN_SET_VALUE, custIds[i]);
					}
				}
			}
			
			// 問合せ客番号リスト設定
			if (dataMap.get(KEY_SYM_ID_LST) != null)
			{
				String symIdLst = (String)dataMap.get(KEY_SYM_ID_LST);
				if (symIdLst.length() > 0)
				{
					String[] symIds = symIdLst.split(KEY_SYM_ID_LST_DELMI);
					X31SDataBeanAccessArray proscstNo = svBean.getDataBeanArray(ZMW06901SFConst.PROSCST_NO);
					for (int i = 0; i < symIds.length; i++)
					{
						
						// 問合せ客番号追加
						X31SDataBeanAccess wBean = proscstNo.addDataBean();
						wBean.sendMessageString(ZMW06901SFConst.L1_PROSCST_NO_09, X31CWebConst.DATABEAN_SET_VALUE, symIds[i]);
					}
				}
			}
			
			// ＳＹＳＩＤリスト設定
			if (dataMap.get(KEY_SYSID_LST) != null)
			{
				String sysIdLst = (String)dataMap.get(KEY_SYSID_LST);
				if (sysIdLst.length() > 0)
				{
					String[] sysIds = sysIdLst.split(KEY_SYSID_LST_DELMI);
					X31SDataBeanAccessArray sysid = svBean.getDataBeanArray(ZMW06901SFConst.SYSID);
					for (int i = 0; i < sysIds.length; i++)
					{
						
						// ＳＹＳＩＤ追加
						X31SDataBeanAccess wBean = sysid.addDataBean();
						wBean.sendMessageString(ZMW06901SFConst.L2_SYSID_10, X31CWebConst.DATABEAN_SET_VALUE, sysIds[i]);
					}
				}
			}
			
			// v42.00.01 ANK-3593-00-00 ADD START
			// ePOPから連携された情報をセッションに保持する
			// セッション情報を保持するマップ
			HashMap<String, String> sessionInfoMap = new HashMap<String, String>();
			
			// v42.00.04 ANK-3593-00-00 ADD START
			// セッション情報を初期化する
			// カルテ起動コードの初期化
			sessionInfoMap.put(JCRStrConst.KRT_KIDOU_CD, "");
			// ＯＰ担当業務コードの初期化
			sessionInfoMap.put(JCRStrConst.OP_TNT_WORK_CD, "");
			JCRWebCommon.setSessionInfo(this, sessionInfoMap);
			// v42.00.04 ANK-3593-00-00 ADD END
			
			// カルテ起動コード
			if (dataMap.get(KEY_KRT_KIDOU_CD) != null && !"".equals(dataMap.get(KEY_KRT_KIDOU_CD)))
			{
				sessionInfoMap.put(JCRStrConst.KRT_KIDOU_CD, (String)dataMap.get(KEY_KRT_KIDOU_CD));
			}
			// ＯＰ担当業務コード
			if (dataMap.get(KEY_KRT_KIDOU_CD) != null && !"".equals(dataMap.get(KEY_OP_TNT_WORK_CD)))
			{
				sessionInfoMap.put(JCRStrConst.OP_TNT_WORK_CD, (String)dataMap.get(KEY_OP_TNT_WORK_CD));
			}
			JCRWebCommon.setSessionInfo(this, sessionInfoMap);
			// v42.00.01 ANK-3593-00-00 ADD END
			
			// ▼▼▼ ANK-2639-00-00 オーダリング案件 ADD START ▼▼▼
			// 外部システムコード設定
			if (dataMap.get(KEY_SYSCD) != null && !"".equals(KEY_SYSCD))
			{
				svBean.sendMessageString(ZMW06901SFConst.SYS_ID, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_SYSCD));
			}
// 20161028 ANK-3039-00-00 ADD START
			else if (dataMap.get(KEY_SYSID) != null && !"".equals(KEY_SYSID))
			{
				svBean.sendMessageString(ZMW06901SFConst.SYS_ID, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_SYSID));
			}
// 20161028 ANK-3039-00-00 ADD END
			
			// ユーザーＩＤ設定
			if (dataMap.get(KEY_OPE_ID) != null && !"".equals(KEY_OPE_ID))
			{
				svBean.sendMessageString(ZMW06901SFConst.USER_ID, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_OPE_ID));
			}
			
			// ＳＹＳＩＤ設定
			svBean.sendMessageString(ZMW06901SFConst.ODR_SYSID, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_SYSID));
			
			// サービス契約番号設定
			svBean.sendMessageString(ZMW06901SFConst.ODR_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_SVC_KEI_NO));
			
			// 受付番号設定
			svBean.sendMessageString(ZMW06901SFConst.UK_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_UKNO));
			
			// 異動区分設定
			svBean.sendMessageString(ZMW06901SFConst.IDO_DIV, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_IDO_DIV));
			
			// 異動理由コード（大分類）設定
			svBean.sendMessageString(ZMW06901SFConst.IDO_RSN_CD1, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_IDO_RSN_CD1));
			
			// 異動理由コード（中分類）設定
			svBean.sendMessageString(ZMW06901SFConst.IDO_RSN_CD2, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_IDO_RSN_CD2));
			
			// 起動画面ＩＤ設定
			svBean.sendMessageString(ZMW06901SFConst.KIDO_GAMEN_ID, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_SCREEN_ID));
			// ▲▲▲ ANK-2639-00-00 オーダリング案件  ADD  END ▲▲▲

			// ▼▼ ANK-2693-00-00 オーダリング案件（STEP2） ADD START ▼▼
			// 請求契約番号設定
			svBean.sendMessageString(ZMW06901SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_SEIKY_KEI_NO));
			// ▲▲ ANK-2693-00-00 オーダリング案件（STEP2） ADD  END ▲▲
			
			// ANK-3798-00-00 ADD START
			// 電話番号１設定
			svBean.sendMessageString(ZMW06901SFConst.TELNO_1, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_TELNO_1));
			// 電話番号２設定
			svBean.sendMessageString(ZMW06901SFConst.TELNO_2, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_TELNO_2));
			// ANK-3798-00-00 ADD END
// ANK-3927-00-00 ADD START
			// 問合せID設定
			svBean.sendMessageString(ZMW06901SFConst.TOIAWASE_ID, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_TOIAWASE_ID));
// ANK-3927-00-00 ADD END
// ANK-4030-00-00 ADD START
			// サービス契約内訳番号設定
			svBean.sendMessageString(ZMW06901SFConst.SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_SVC_KEI_UCWK_NO));
// ANK-4030-00-00 ADD END
// ANK-4237-00-00 ADD START
			// 問合せ客番号設定
			svBean.sendMessageString(ZMW06901SFConst.PROSCST_NO_1, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_PROSCST_NO));
			
			// 複数起動ＮＧフラグ設定
			svBean.sendMessageString(ZMW06901SFConst.MULT_OPN_NG_FLG, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_MULT_OPN_NG_FLG));
// ANK-4237-00-00 ADD END
			
			// ePOP連携用起動画面設定処理 ePOP連携時はtrueを返却
			isEPOP = setFukusuScreenIdEPOP();
		}
		
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		X31SDataBeanAccess[] beans = {svBean};
		
		// ユースケースID格納用マップ
		HashMap<Object, String> paramMap = new HashMap<Object, String>();
		
		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_0005);
		
		// マッピング用Map
		HashMap<String, Object> inMap = new HashMap<String, Object>();
		
		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// マッピングクラス
		ZMSV0005_ZMSV0005OPDBMapper mapper = new ZMSV0005_ZMSV0005OPDBMapper();
		mapper.setZMSV000501SC(beans, inMap, JPCModelConstant.FUNC_CD_1);
		mapper.setZMSV000502SC(beans, inMap, JPCModelConstant.FUNC_CD_1);
		
		// サービス実行
		invokeService(paramMap, inMap, outputMap);
		
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		mapper.getZMSV000501SC(beans, outputMap);
		mapper.getZMSV000502SC(beans, outputMap);
		loadSysYmd(svBean);
		
		// カレンダー情報を設定する start
		HashMap map = (HashMap)outputMap.get("ZMSV000502SC");
		ArrayList list = (ArrayList)map.get("EZM0311B010CBSMsg1List");
		JCCCalendarConst.calendarFormat(list);
		
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		
		// ▼▼ ANK-2639-00-00 オーダリング案件 MOD START ▼▼
		/* +++++ v8.0.0 MVNO対応追加 */
//		if(dataMap != null && (isEPOP || isMVNO(dataMap)))
//*--<< 20160516 ANK-2845-00-00 MOD START >>--*//
//		if(dataMap != null && (isEPOP || isMVNO(dataMap) || isOdr(dataMap)))
		// ▲▲ ANK-2639-00-00 オーダリング案件  MOD  END ▲▲
//*--<< 20160516 ANK-2845-00-00 MOD  END  >>--*//
// ANK-3593-00-00 MOD START
//			if(dataMap != null && (isEPOP || isMVNO(dataMap) || isOdr(dataMap)|| isCis(dataMap)))
		if(dataMap != null && (isEPOP || isMVNO(dataMap) || isOdr(dataMap) || isCis(dataMap) || isOps(dataMap)))
// ANK-3593-00-00 MOD END
		{
			
			// (a)画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
			X33CUtil.getSession(this.getSession().getViewParamId().getSessionID()).getSession().setAttribute(SESSION_KEY, dataMap);
		}
		
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JZMScreenConst.SCREEN_ID_ZMW06901);

		// 遷移先画面名を共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JZMScreenConst.SCREEN_NAME_ZMW06901);

		return true;
	}
	
	/**
	 * MVNO連携で業務画面に連携すべきパラメータが存在するかどうか判定する。
	 * @param dataMap 画面情報
	 * @return true:存在する false:存在する
	 */
	@SuppressWarnings("unchecked")
	private boolean isMVNO(HashMap<String, Object> dataMap)
	{
		String sysId = (String)dataMap.get("sysId");
		
		if(sysId != null)
		{
			if(sysId.startsWith("MVN"))
			{
				Iterator it = dataMap.entrySet().iterator();
				while(it.hasNext())
				{
					Map.Entry<String, Object> entry = (Map.Entry<String, Object>)it.next();
					
					// 共通パラメータ以外(連携すべきパラメータ)が存在するか判定
					if(!isCmnReqParam(entry.getKey()))
					{
						return true;
					}
				}
			}
		}
		
		return false;
	}
	
	/**
	 * 共通パラメータ以外が存在するかどうか判定する。
	 * @param dataMap 画面情報
	 * @return true:存在する false:存在する
	 */
	private boolean isCmnReqParam(String key)
	{
		for(int iCnt = 0; iCnt < KEY_REQ_PARAM_LIST.length; iCnt++)
		{
			if(key.equals(KEY_REQ_PARAM_LIST[iCnt]))
			{
				return true;
			}
		}
		return false;
	}
	
	/**
	 * メニューからの画面遷移全般（ログアウト画面、組織選択画面、メニューに設定された業務画面）
	 * を行います。
	 * <BR>
	 * @return boolean
	 * @exception Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean open() throws Exception 
	{
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		X31SDataBeanAccess cfBean = super.getCommonInfoBean();

		// 指定されたオープン先画面を取得
		String screenId = srvBean.sendMessageString(ZMW06901SFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE);
		String screenNm = srvBean.sendMessageString(ZMW06901SFConst.NEXT_SCREEN_NM, X31CWebConst.DATABEAN_GET_VALUE);
		String url = srvBean.sendMessageString(ZMW06901SFConst.URL, X31CWebConst.DATABEAN_GET_VALUE);

		// 他システムへの連携が有る場合、以下のサービスフォームBeanの設定からサービス処理結果の設定までを実行する。
		// ANK-4244-00-00 MOD START
//		// ANK-4017-00-00 MOD START
////		if (isOutSideSystem(srvBean) || isWebFocusTools(srvBean) || isSPRi(srvBean))
//		if (isOutSideSystem(srvBean) || isWebFocusTools(srvBean) || isSPRi(srvBean) || isEziru(srvBean))
//		// ANK-4017-00-00 MOD END
		if (isOutSideSystem(srvBean) || isWebFocusTools(srvBean) || isSPRi(srvBean) || isEziru(srvBean) || isManmos(srvBean))
		// ANK-4244-00-00 MOD END
		{
			
			// -------------------------------------------------- //
			// (2)サービスフォームBeanの設定
			// -------------------------------------------------- //
			// ユーザID
			String user_id = cfBean.sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE);
			srvBean.sendMessageString(ZMW06901SFConst.USER_ID, X31CWebConst.DATABEAN_SET_VALUE, user_id);
			
			// 組織コード
			X31SDataBeanAccessArray cfBeanArray = cfBean.getDataBeanArray(CommonInfoCFConst.KGGRP_CD_LIST);
			X31SDataBeanAccess subBean = cfBeanArray.getDataBean(0);
			String org_cd = subBean.sendMessageString(CommonInfoCFConst.ORG_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
			srvBean.sendMessageString(ZMW06901SFConst.ORG_CD, X31CWebConst.DATABEAN_SET_VALUE, org_cd);
			
			// 立場コード
			String pos_cd = subBean.sendMessageString(CommonInfoCFConst.POSITION_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
			srvBean.sendMessageString(ZMW06901SFConst.POS_CD, X31CWebConst.DATABEAN_SET_VALUE, pos_cd);
			
			// -------------------------------------------------- //
			// (3)サービス呼出処理
			// -------------------------------------------------- //
			X31SDataBeanAccess[] paramBeans = {srvBean};
			HashMap<Object, String> inDataMap = new HashMap<Object, String>();
			
			// マッピング
			ZMSV0063_ZMSV0063OPDBMapper mapper = new ZMSV0063_ZMSV0063OPDBMapper();
			mapper.setECC0081D010(paramBeans, inDataMap, "1");
			
			// サービス呼出し
			HashMap<Object, String> outputMap = new HashMap<Object, String>();
			HashMap<Object, String> paramMap = new HashMap<Object, String>();
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_0063);

			X31CMessageResult msgResult = this.invokeService(paramMap, inDataMap, outputMap);
			
			// -------------------------------------------------- //
			// (4)サービス処理結果の設定
			// -------------------------------------------------- //
			if(msgResult != null) 
			{
				JCCWebCommon.setMessageInfo(this, msgResult);
				return false;
			}
			
			// -------------------------------------------------- //
			// (5)引継情報の設定
			// -------------------------------------------------- //
			mapper.getECC0081D010(paramBeans, outputMap);
			
			HashMap<String, Object> param = new HashMap<String, Object>();
			if(isOutSideSystem(srvBean))
			{
				
				//  他サイト連携 URL編集 地図、イメージ
				// ワンタイムパスワードセット
				url = url.replace("%1%", srvBean.sendMessageString(ZMW06901SFConst.ONETIME, X31CWebConst.DATABEAN_GET_VALUE));
				param.put(KEY_URL, url);
				
				// (a) 画面IDの設定
				// ・地図、イメージ、SPRiの場合、遷移先画面IDを「ZMW06906」とする。
				screenId = JZMScreenConst.SCREEN_ID_ZMW06906;
			}
			else if(isSPRi(srvBean))
			{
				
				// ・SPRiの場合
				// SPRi 特別権限組織コードを共有フォームBeanから取得する。（権限判定部品 特別権限組織コード取得処理にて取得）
				ArrayList<String> splcList = JZMWebCommon.getSpclAuthOrgCd(cfBean, 1);
				String splcCdForSPRi = splcList.get(0);
				
				// ワンタイムパスワードセット
				url = url.replace("%1%", srvBean.sendMessageString(ZMW06901SFConst.ONETIME, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 特別権限組織コードセット
				url = url.replace("%2%", splcCdForSPRi);
				param.put(KEY_URL, url);
				
				// ・地図、イメージ、SPRiの場合、遷移先画面IDを「ZMW06906」とする。
				screenId = JZMScreenConst.SCREEN_ID_ZMW06906;
			}
			// ANK-4017-00-00 MOD START
			// else
			else if (isWebFocusTools(srvBean))
			// ANK-4017-00-00 MOD END
			{
				
				// ・WebFOCUSの場合
				StringBuffer post = new StringBuffer();
				
				// ワンタイムパスワード
				post.append(KEY_WEB_FOCUS_ONETIME_PASS).append(";")
					.append(srvBean.sendMessageString(ZMW06901SFConst.ONETIME, X31CWebConst.DATABEAN_GET_VALUE)).append(",");
				
				// ユーザーID
				post.append(KEY_WEB_FOCUS_USER_ID).append(";")
					.append(cfBean.sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE)).append(",");
				
				// Tool URL
				post.append(KEY_WEB_FOCUS_TOOL_URL).append(";")
					.append(srvBean.sendMessageString(ZMW06901SFConst.TOOLURL, X31CWebConst.DATABEAN_GET_VALUE)).append(",");
				
				// URL
				post.append(KEY_WEB_FOCUS_POST_URL).append(";")
					.append(srvBean.sendMessageString(ZMW06901SFConst.URL, X31CWebConst.DATABEAN_GET_VALUE));
				param.put(KEY_WEB_FOCUS, post.toString());
				screenId = JZMScreenConst.SCREEN_ID_ZMW06907;
			}
			// ANK-4017-00-00 ADD START
			else if (isEziru(srvBean))
			{
				url = url.replace("%ONET_PWD%", srvBean.sendMessageString(ZMW06901SFConst.ONETIME, X31CWebConst.DATABEAN_GET_VALUE));
				param.put(KEY_URL, url);
				// eziruの場合、遷移先画面IDを「ZMW06906」とする。
				screenId = JZMScreenConst.SCREEN_ID_ZMW06906;
			}
			// ANK-4017-00-00 ADD END
			// ANK-4244-00-00 ADD START
			else if (isManmos(srvBean))
			{
				url = url.replace("%ONET_PWD%", srvBean.sendMessageString(ZMW06901SFConst.ONETIME, X31CWebConst.DATABEAN_GET_VALUE));
				param.put(KEY_URL, url);
				// manmosの場合、遷移先画面IDを「ZMW06906」とする。
				screenId = JZMScreenConst.SCREEN_ID_ZMW06906;
			}
			// ANK-4244-00-00 ADD END
			// セッションへURLをセット
//			JCCWebCommon.setScreenId(this, screenId, JZMScreenConst.SCREEN_ID_ZMW06901);
			JCCWebCommon.setScreenInfo(this, screenId, param);
			
		}
		
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		//外部連携 引継ぎ情報取得
		HashMap map = (HashMap)X33CUtil.getSession(this.getSession().getViewParamId().getSessionID()).getSession().getAttribute(SESSION_KEY);
		if(map != null)
		{
			
			// (c)画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
//			JCCWebCommon.setScreenId(this, screenId, JZMScreenConst.SCREEN_ID_ZMW06901);
			//IT1-2022-0000080 ADD START
			if(!JZMScreenConst.SCREEN_ID_ZMW06901.equals(map.get("screenId"))){
			//IT1-2022-0000080 ADD END
			// (d)戻り先画面ID設定（JCCWebCommon.setScreenId)を使用し、次画面への引継情報を設定する。
			JCCWebCommon.setScreenInfo(this, screenId, map);
			//IT1-2022-0000080 ADD START
			}
			//IT1-2022-0000080 ADD END
			
			// 外部連携 引継ぎ用セッション削除
			X33CUtil.getSession(this.getSession().getViewParamId().getSessionID()).getSession().removeAttribute(SESSION_KEY);
		}
		
		// ePOP引継情報からePOP転送連携キー取得
		String epopTensoRnkiKey = srvBean.sendMessageString(ZMW06901SFConst.EPOP_TENSO_RNKI_KEY, X31CWebConst.DATABEAN_GET_VALUE);
		
		// ePOP引継情報からイベントID取得
		String eventId = srvBean.sendMessageString(ZMW06901SFConst.EVENT_ID, X31CWebConst.DATABEAN_GET_VALUE);

		// お客様選択 引継ぎ情報設定
		if (epopTensoRnkiKey != null && epopTensoRnkiKey.length() > 0 && JCRScreenConst.SCREEN_ID_CRW10401.equals(screenId))
		{
			// 引き継ぎの情報を格納するMAPを生成する。
			HashMap<String, Object> hktgMap = new HashMap<String, Object>();

			// ePOP転送連携キー
			hktgMap.put(CRW10401SFConst.EPOP_TENSO_RNKI_KEY,
					srvBean.sendMessageString(ZMW06901SFConst.EPOP_TENSO_RNKI_KEY, X31CWebConst.DATABEAN_GET_VALUE));
			// 着信イベントID
			hktgMap.put(CRW10401SFConst.EVENT_ID,
					srvBean.sendMessageString(ZMW06901SFConst.EVENT_ID, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 着信イベントIDが"04"(着信)または"10"(転送先)の場合
			if (EPOP_EVENT_ID_CALL.equals(eventId) || EPOP_EVENT_ID_FORWARD_TO.equals(eventId))
			{
				// 着信電話番号
				hktgMap.put(CRW10401SFConst.INCOMING_TELNO,
						srvBean.sendMessageString(ZMW06901SFConst.INCOMING_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
				// サービス契約番号リスト
				hktgMap.put(CRW10401SFConst.SVC_KEI_NO, JCRWebCommon.getArrayList(srvBean.getDataBeanArray(ZMW06901SFConst.SVC_KEI_NO)));
				// 問合せ客番号リスト
				hktgMap.put(CRW10401SFConst.PROSCST_NO, JCRWebCommon.getArrayList(srvBean.getDataBeanArray(ZMW06901SFConst.PROSCST_NO)));
				// ＳＹＳＩＤリスト
				hktgMap.put(CRW10401SFConst.SYSID, JCRWebCommon.getArrayList(srvBean.getDataBeanArray(ZMW06901SFConst.SYSID)));
			}

			// 画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
			JCRWebCommon.setScreenInfo(this, screenId, hktgMap);
		}
		
		// 問合せメイン 引継ぎ情報設定
		if (epopTensoRnkiKey != null && epopTensoRnkiKey.length() > 0 &&
			(EPOP_EVENT_ID_PREVIEW.equals(eventId) || EPOP_EVENT_ID_OUTBOUND.equals(eventId) || EPOP_EVENT_ID_OVERFLOW_CALL.equals(eventId)) &&
			JCRScreenConst.SCREEN_ID_CRW01201.equals(screenId))
		{
			
			// 引き継ぎの情報を格納するMAPを生成する。
			HashMap<String, Object> hktgMap = new HashMap<String, Object>();

			// サービス契約番号
			X31SDataBeanAccessArray svcKeiNo = srvBean.getDataBeanArray(ZMW06901SFConst.SVC_KEI_NO);
			if (svcKeiNo.getCount() > 0)
			{
				X31SDataBeanAccess wBean = svcKeiNo.getDataBean(0);
				hktgMap.put(CRW01201SFConst.SVC_KEI_NO, wBean.sendMessageString(ZMW06901SFConst.L0_SVC_KEI_NO_08, X31CWebConst.DATABEAN_GET_VALUE));
			}
			
			// 問合せ客番号
			X31SDataBeanAccessArray proscstNo = srvBean.getDataBeanArray(ZMW06901SFConst.PROSCST_NO);
			if (proscstNo.getCount() > 0)
			{
				X31SDataBeanAccess wBean = proscstNo.getDataBean(0);
				hktgMap.put(CRW01201SFConst.PROSCST_NO, wBean.sendMessageString(ZMW06901SFConst.L1_PROSCST_NO_09, X31CWebConst.DATABEAN_GET_VALUE));
			}

			// 画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
			JCRWebCommon.setScreenInfo(this, screenId, hktgMap);
		}
		
		// ▼▼▼ ANK-2639-00-00 オーダリング案件 ADD START ▼▼▼
		// オーダリング引継情報から外部システムコード取得
		String sysCd = srvBean.sendMessageString(ZMW06901SFConst.SYS_ID, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(sysCd != null && sysCd.startsWith("ODR"))
		{
			// オーダリングシステムからの連携で起動された場合、遷移先画面IDを「ODW00101」とする。
			screenId = JZMScreenConst.SCREEN_ID_ODW00101;
			screenNm = JZMScreenConst.SCREEN_NAME_ODW00101;
			
			// 引き継ぎの情報を格納するMAPを生成する。
			HashMap<String, Object> hktgMap = new HashMap<String, Object>();
			
			String opeId = srvBean.sendMessageString(ZMW06901SFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE);
			String sysid = srvBean.sendMessageString(ZMW06901SFConst.ODR_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
			String svcKeiNo = srvBean.sendMessageString(ZMW06901SFConst.ODR_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
			String ukNo = srvBean.sendMessageString(ZMW06901SFConst.UK_NO, X31CWebConst.DATABEAN_GET_VALUE);
			String idoDiv = srvBean.sendMessageString(ZMW06901SFConst.IDO_DIV, X31CWebConst.DATABEAN_GET_VALUE);
			String idoRsnCd1 = srvBean.sendMessageString(ZMW06901SFConst.IDO_RSN_CD1, X31CWebConst.DATABEAN_GET_VALUE);
			String idoRsnCd2 = srvBean.sendMessageString(ZMW06901SFConst.IDO_RSN_CD2, X31CWebConst.DATABEAN_GET_VALUE);
			String kidoGamenId = srvBean.sendMessageString(ZMW06901SFConst.KIDO_GAMEN_ID, X31CWebConst.DATABEAN_GET_VALUE);
			// ▼▼ ANK-2693-00-00 オーダリング案件（STEP2） ADD START ▼▼
			String seikyKeiNo = srvBean.sendMessageString(ZMW06901SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
			// ▲▲ ANK-2693-00-00 オーダリング案件（STEP2） ADD  END ▲▲
			// ANK-4237-00-00 ADD START
			// 問合せ客番号
			String proscstNo = srvBean.sendMessageString(ZMW06901SFConst.PROSCST_NO_1, X31CWebConst.DATABEAN_GET_VALUE);
			// ANK-4237-00-00 ADD END
			
			// 各パラメータが存在する場合、引継マップに情報を設定する
			if(sysCd != null){
				// 外部システムコード
				hktgMap.put(ODW00101SFConst.SYSCD, sysCd);
			}
			if(opeId != null){
				// ユーザーＩＤ
				hktgMap.put(ODW00101SFConst.OPEID, opeId);
			}
			if(sysid != null){
				// ＳＹＳＩＤ
				hktgMap.put(ODW00101SFConst.SYSID, sysid);
			}
			if(svcKeiNo != null){
				// サービス契約番号
				hktgMap.put(ODW00101SFConst.SVCKEINO, svcKeiNo);
			}
			if(ukNo != null){
				// 受付番号
				hktgMap.put(ODW00101SFConst.UKNO, ukNo);
			}
			if(idoDiv != null){
				// 異動区分
				hktgMap.put(ODW00101SFConst.IDODIV, idoDiv);
			}
			if(idoRsnCd1 != null){
				// 異動理由コード（大分類）
				hktgMap.put(ODW00101SFConst.IDORSNCD1, idoRsnCd1);
			}
			if(idoRsnCd2 != null){
				// 異動理由コード（中分類）
				hktgMap.put(ODW00101SFConst.IDORSNCD2, idoRsnCd2);
			}
			if(kidoGamenId != null){
				// 起動画面ＩＤ
				hktgMap.put(ODW00101SFConst.SCREENID, kidoGamenId);
			}

			// ▼▼ ANK-2693-00-00 オーダリング案件（STEP2） ADD START ▼▼
			if(seikyKeiNo != null){
				// 請求契約番号
				hktgMap.put(ODW00101SFConst.SEIKYKEINO, seikyKeiNo);
			}
			// ▲▲ ANK-2693-00-00 オーダリング案件（STEP2） ADD  END ▲▲
			// ANK-4237-00-00 ADD START
			if(proscstNo != null){
				// 問合せ客番号
				hktgMap.put(ODW00101SFConst.PROSCST_NO, proscstNo);
			}
			// ANK-4237-00-00 ADD END
			
			// 画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
			JCRWebCommon.setScreenInfo(this, screenId, hktgMap);
		}
		// ▲▲▲ ANK-2639-00-00 オーダリング案件  ADD  END ▲▲▲
		
		// ANK-2845-00-00 ADD START
		String sysCd2 = srvBean.sendMessageString(ZMW06901SFConst.ODR_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		
		// OM-2016-0002439 MOD START
		// ANK-3039-00-00 MOD START
		//if(sysCd2 != null && sysCd2.startsWith("CIS"))
		//if(sysCd != null && sysCd.startsWith("CIS") )
		if(sysCd2 != null && sysCd2.startsWith("CIS") || sysCd != null && sysCd.startsWith("CIS"))
		// ANK-3039-00-00 MOD END
		// OM-2016-0002439 MOD END
		{
			
			// 引き継ぎの情報を格納するMAPを生成する。
			HashMap<String, Object> hktgMap = new HashMap<String, Object>();
			
			String svcKeiNo = srvBean.sendMessageString(ZMW06901SFConst.ODR_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);

			// 各パラメータが存在する場合、引継マップに情報を設定する
			if(sysCd2 != null){
				// 外部システムコード
				hktgMap.put(CRW01201SFConst.OUT_SYS_CD, sysCd2);
			}
			if(svcKeiNo != null){
				// サービス契約番号
				hktgMap.put(CRW01201SFConst.SVC_KEI_NO, svcKeiNo);
			}
			
			// OM-2016-0002439 ADD START
			// 外部システムから呼ばれたことをクリアする
			srvBean.sendMessage(ZMW06901SFConst.ODR_SYSID, X31CWebConst.DATABEAN_CLEAR);
			// OM-2016-0002439 ADD END

			// 画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
			JCRWebCommon.setScreenInfo(this, screenId, hktgMap);
		}
		// ANK-2845-00-00 ADD END
// ANK-3593-00-00 ADD START
		if(sysCd != null && sysCd.startsWith("OPS"))
		{
			// オペレータ支援システムからの連携で起動された場合、遷移先画面IDを「ODW00101」とする。
			screenId = JZMScreenConst.SCREEN_ID_ODW00101;
			screenNm = JZMScreenConst.SCREEN_NAME_ODW00101;
			
			// 引き継ぎの情報を格納するMAPを生成する。
			HashMap<String, Object> hktgMap = new HashMap<String, Object>();
			
			String svcKeiNo = srvBean.sendMessageString(ZMW06901SFConst.ODR_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
			String kidoGamenId = srvBean.sendMessageString(ZMW06901SFConst.KIDO_GAMEN_ID, X31CWebConst.DATABEAN_GET_VALUE);
			// ANK-3798-00-00 ADD START
			// 電話番号１
			String telno_1 = srvBean.sendMessageString(ZMW06901SFConst.TELNO_1, X31CWebConst.DATABEAN_GET_VALUE);
			// 電話番号２
			String telno_2 = srvBean.sendMessageString(ZMW06901SFConst.TELNO_2, X31CWebConst.DATABEAN_GET_VALUE);
			// ANK-3798-00-00 ADD END
// ANK-3927-00-00 ADD START
			// 問合せID
			String toiawaseId = srvBean.sendMessageString(ZMW06901SFConst.TOIAWASE_ID, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-3927-00-00 ADD END
// ANK-4030-00-00 ADD START
			// サービス契約内訳番号
			String svcKeiUcwkNo = srvBean.sendMessageString(ZMW06901SFConst.SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-4030-00-00 ADD END
// ANK-4237-00-00 ADD START
			// 請求契約番号
			String seikyKeiNo = srvBean.sendMessageString(ZMW06901SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
			// 問合せ客番号
			String proscstNo = srvBean.sendMessageString(ZMW06901SFConst.PROSCST_NO_1, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-4237-00-00 ADD END
			
			// 各パラメータが存在する場合、引継マップに情報を設定する
			if(svcKeiNo != null){
				// サービス契約番号
				hktgMap.put(ODW00101SFConst.SVCKEINO, svcKeiNo);
			}
			if(kidoGamenId != null){
				// 起動画面ＩＤ
				hktgMap.put(ODW00101SFConst.SCREENID, kidoGamenId);
			}
			// ANK-3798-00-00 ADD START
			if(telno_1 != null){
				// 電話番号１
				hktgMap.put(ODW00101SFConst.TELNO_1, telno_1);
			}
			if(telno_2 != null){
				// 電話番号２
				hktgMap.put(ODW00101SFConst.TELNO_2, telno_2);
			}
			// ANK-3798-00-00 ADD END
// ANK-3927-00-00 ADD START
			if(sysCd != null){
				// 外部システムコード
				hktgMap.put(ODW00101SFConst.SYSCD, sysCd);
			}
			if(toiawaseId != null){
				// 問合せID
				hktgMap.put(ODW00101SFConst.TOIAWASE_ID, toiawaseId);
			}
// ANK-3927-00-00 ADD END
// ANK-4030-00-00 ADD START
			if(svcKeiUcwkNo != null){
				// サービス契約内訳番号
				hktgMap.put(ODW00101SFConst.SVC_KEI_UCWK_NO, svcKeiUcwkNo);
			}
// ANK-4030-00-00 ADD END
// ANK-4237-00-00 ADD START
			if(seikyKeiNo != null){
				// 請求契約番号
				hktgMap.put(ODW00101SFConst.SEIKYKEINO, seikyKeiNo);
			}
			if(proscstNo != null){
				// 問合せ客番号
				hktgMap.put(ODW00101SFConst.PROSCST_NO, proscstNo);
			}
// ANK-4237-00-00 ADD END
			
			// 画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
			JCRWebCommon.setScreenInfo(this, screenId, hktgMap);
		}
// ANK-3593-00-00 ADD END
		
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, screenId);
		
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.escapeString(screenNm));
		
		return true;
	}
	
	/**
	 * 起動する画面が地図もしくはイメージかどうか判定する。
	 * @param bean サービスフォームBean
	 * @return true:地図もしくはイメージ false:それ以外
	 */
	private boolean isOutSideSystem(X31SDataBeanAccess bean)
	{
		boolean retValue = false;
		
		// 画面ID
		String screenId = bean.sendMessageString(ZMW06901SFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 外部連携用 URL
		String url = bean.sendMessageString(ZMW06901SFConst.URL, X31CWebConst.DATABEAN_GET_VALUE);
		
		if((screenId.startsWith("ZD") || screenId.startsWith("ZC")) && (!"".equals(url)))
		{
			retValue = true;
		}
		
		return retValue;
	}
	
	/**
	 * 起動する画面がWebFOCUSかどうか判定する。
	 * @param bean サービスフォームBean
	 * @return true:WebFOCUSツール false:それ以外
	 */
	private boolean isWebFocusTools(X31SDataBeanAccess bean)
	{
		boolean retValue = false;
		
		// 外部連携用 URL
		String url = bean.sendMessageString(ZMW06901SFConst.URL, X31CWebConst.DATABEAN_GET_VALUE);
		
		// WebFOCUS 用 URL
		String toolUrl = bean.sendMessageString(ZMW06901SFConst.TOOLURL, X31CWebConst.DATABEAN_GET_VALUE);
		
		if((!"".equals(url)) && (!"".equals(toolUrl)) && (!"undefined".equals(url)))
		{
			retValue = true;
		}
		
		return retValue;
	}
	// ANK-4017-00-00 ADD START
	/**
	 * 起動する画面がeziruかどうか判定する。
	 * @param bean サービスフォームBean
	 * @return true:eziru false:それ以外
	 */
	private boolean isEziru(X31SDataBeanAccess bean)
	{
		boolean retValue = false;
		
		// 画面ID
		String eziruScreenId = bean.sendMessageString(ZMW06901SFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 外部連携用 URL
		String eziruurl = bean.sendMessageString(ZMW06901SFConst.URL, X31CWebConst.DATABEAN_GET_VALUE);
		
		if((eziruScreenId.startsWith("ZM") && (!"".equals(eziruurl))))
		{
			retValue = true;
		}
		
		return retValue;
	}
	// ANK-4017-00-00 ADD END

	// ANK-4244-00-00 ADD START
	/**
	 * 起動する画面がmanmosかどうか判定する。
	 * @param bean サービスフォームBean
	 * @return true:manmos false:それ以外
	 */
	private boolean isManmos(X31SDataBeanAccess bean)
	{
		boolean retValue = false;
		
		// 画面ID
		String manmosScreenId = bean.sendMessageString(ZMW06901SFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 外部連携用 URL
		String manmosurl = bean.sendMessageString(ZMW06901SFConst.URL, X31CWebConst.DATABEAN_GET_VALUE);
		
		if((manmosScreenId.startsWith("KK") && (!"".equals(manmosurl))))
		{
			retValue = true;
		}
		
		return retValue;
	}
	// ANK-4244-00-00 ADD END

	/**
	 * メニューからの画面遷移全般（ログアウト画面、組織選択画面、メニューに設定された業務画面）
	 * を行います。(CTI連携)
	 * <BR>
	 * @return boolean
	 * @exception Exception
	 */
	public boolean open2() throws Exception
	{

		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共有フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// 指定されたオープン先画面を取得
		String screenId = bean.sendMessageString(ZMW06901SFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE);
		String screenNm = bean.sendMessageString(ZMW06901SFConst.NEXT_SCREEN_NM, X31CWebConst.DATABEAN_GET_VALUE);

		// 引き継ぎの情報を格納するMAPを生成する。
		HashMap<String, Object> hktgMap = new HashMap<String, Object>();

		if (JCRScreenConst.SCREEN_ID_CRW01201.equals(screenId))
		{
			hktgMap.put(CRW01201SFConst.SVC_KEI_NO,
					bean.sendMessageString(ZMW06901SFConst.SLCT_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
			hktgMap.put(CRW01201SFConst.PROSCST_NO,
					bean.sendMessageString(ZMW06901SFConst.SLCT_PROSCST_NO, X31CWebConst.DATABEAN_GET_VALUE));
			// IT1-2019-0000046 ADD START
			// 問合せ対応メインの初期表示処理で遷移元がお客様選択画面(CRW10401)であることを判定するフラグを引き継ぎマップに設定する。
			hktgMap.put("CRW10401TransferFlg", "1");
			// IT1-2019-0000046 ADD END
	
			// 画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
			JCRWebCommon.setScreenInfo(this, screenId, hktgMap);
		}
		else if (JCRScreenConst.SCREEN_ID_CRW02401.equals(screenId))
		{
			hktgMap.put(CRW02401SFConst.EPOP_TENSO_RNKI_KEY,
					bean.sendMessageString(ZMW06901SFConst.EPOP_TENSO_RNKI_KEY, X31CWebConst.DATABEAN_GET_VALUE));
			hktgMap.put(CRW02401SFConst.INCOMING_TELNO,
					bean.sendMessageString(ZMW06901SFConst.INCOMING_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
	
			// 画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
			JCRWebCommon.setScreenInfo(this, screenId, hktgMap);
		}

		// オープン先画面を次画面として設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, screenId);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, screenNm);

		return true;
	}

	/**
	 * ログアウトを行います。
	 * @return boolean
	 */
	public boolean logout() 
	{

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		X31SDataBeanAccess[] beans = {cfBean};
		
		// ユースケースID格納用マップ
		HashMap<Object, String> paramMap = new HashMap<Object, String>();
		
		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_0004);
		
		// マッピング用Map
		HashMap<String, Object> inMap = new HashMap<String, Object>();
		
		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// マッピングクラス
		ZMSV0004_ZMSV0004OPDBMapper mapper = new ZMSV0004_ZMSV0004OPDBMapper();
		mapper.setZMSV000401SCForLogout(beans, inMap, JPCModelConstant.FUNC_CD_1);

		this.invokeService(paramMap, inMap, outputMap);
		
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// なし
		// 遷移先画面IDを共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JZMScreenConst.SCREEN_ID_ZMW06902);

		// 遷移先画面名を共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JZMScreenConst.SCREEN_NAME_ZMW06902);
		return true;

	}
	
	/**
	 * 組織選択ボタン押下処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean orgSelect() throws Exception
	{
		
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		X31SDataBeanAccess svBean = getServiceFormBean();
		
		// (a) 統合認証システム連携部品(getLdapCertifyResultUserId)の認証結果を取得する。
		//    （ユーザーIDのみでの認証。所属組織をすべて取得するため。）
		String user_id = cfBean.sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE);
		HashMap<String, Object> retMap = getCertifyResultByUserId(user_id);
		
		//  認証状態取得
		String ninsho_ret = (String)retMap.get(KEY_NINSHO_STAT);
		
		// ・認証結果がNGの場合
		if(NINSHO_NG.equals(ninsho_ret))
		{
			return false;
		}
		JZMWebCommon.setOrgInfoForSvBean(svBean, retMap, KEY_LIST_FOR_LDAP_RESULT);
		
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		X31SDataBeanAccess[] beans = {svBean};
		
		// ユースケースID格納用マップ
		HashMap<Object, String> paramMap = new HashMap<Object, String>();
		
		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_0060);
		
		// マッピング用Map
		HashMap<String, Object> inMap = new HashMap<String, Object>();
		
		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// マッピングクラス
		ZMSV0060_ZMSV0060OPDBMapper mapper = new ZMSV0060_ZMSV0060OPDBMapper();
		mapper.setZMSV006001CC(beans, inMap, JPCModelConstant.FUNC_CD_1);
		
		// サービス実行
		invokeService(paramMap, inMap, outputMap);
		
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		mapper.getZMSV006001CC(beans, outputMap);
		
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		//@ 次画面への引継情報(dataMap)を作成する。
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		
		//  実組織一覧
		JZMWebCommon.createHktgiOrgInfo(svBean, ZMW06901SFConst.ORG_LIST, KEY_ORG_LIST, dataMap);
		
		//  業務個別設定組織一覧
		JZMWebCommon.createHktgiOrgInfo(svBean, ZMW06901SFConst.WKKBT_ORG_LIST, KEY_WKKBT_ORG_LIST, dataMap);
		
		//  中間組織一覧
		JZMWebCommon.createHktgiOrgInfo(svBean, ZMW06901SFConst.CHUKAN_ORG_LIST, KEY_CHUKAN_ORG_LIST, dataMap);

		//  特別権限組織一覧
		JZMWebCommon.createHktgiOrgInfo(svBean, ZMW06901SFConst.SPA_ORG_LIST, KEY_SPA_ORG_LIST, dataMap);
		
		// A 画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
		JCCWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW11301, dataMap);
		
		// B 戻り先画面ID設定（JCCWebCommon.setScreenId)を使用し、次画面への引継情報を設定する。
//		JCCWebCommon.setScreenId(this, JZMScreenConst.SCREEN_ID_ZMW11301, JZMScreenConst.SCREEN_ID_ZMW11201);

		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW11301);
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW11301);
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB6310__I);
		
		return true;
	}
	
	/**
	 * 外部連携用 認証処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean authOneTime() throws Exception
	{
		
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		X31SDataBeanAccess svBean = getServiceFormBean();
		
		// (a)アプリケーションプロパティファイル(key=ZM_NON_HKTGI_KMK)から業務画面へ引継ぎ不要なパラメータのKeyを取得する。
		String nonHktgiKmk = JCCWebCommon.getApplicationConst(KEY_NON_HKTGI_KMK);
		String[] nonHktgiKmkArray = nonHktgiKmk.split(KEY_NON_HKTGI_KMK_DELMI);
		
		// (b) (a)で取得したKeyを除くすべてのリクエストパラメータを取得し引き継ぎ情報(DataMap)を作成する。
		// リクエストパラメータ
		String reqParam = svBean.sendMessageString(ZMW06901SFConst.TSYRN_PARAM, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 引継ぎ用マップ
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		String[] reqParamItems = reqParam.split("&");
		
		for(int iCnt = 0; iCnt < reqParamItems.length; iCnt++)
		{
			String[] keyValue = reqParamItems[iCnt].split("=");
			if(!isNonHktgiKmk(keyValue[0], nonHktgiKmkArray))
			{
				
				// パラメータチェック
				if (keyValue.length > 1)
				{
					
					// キー、値が設定されている場合
					dataMap.put(keyValue[0], keyValue[1]);
				}
				else
				{
					
					// キーのみ設定されている場合
					dataMap.put(keyValue[0], "");
				}
			}
		}
		
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// (a) パラメータクリア
		svBean.sendMessageString(ZMW06901SFConst.TSYRN_PARAM, X31CWebConst.DATABEAN_SET_VALUE, "");
		if (dataMap != null)
		{
			
			// ePOP引継キー情報クリア
			svBean.sendMessage(ZMW06901SFConst.EPOP_TENSO_RNKI_KEY, X31CWebConst.DATABEAN_CLEAR);
			
			// 着信電話番号クリア
			svBean.sendMessage(ZMW06901SFConst.INCOMING_TELNO, X31CWebConst.DATABEAN_CLEAR);
			
			// 着信イベントIDクリア
			svBean.sendMessage(ZMW06901SFConst.EVENT_ID, X31CWebConst.DATABEAN_CLEAR);
			
			// サービス契約番号リストクリア
			svBean.getDataBeanArray(ZMW06901SFConst.SVC_KEI_NO).clearArray();
			
			// 問合せ客番号リストクリア
			svBean.getDataBeanArray(ZMW06901SFConst.PROSCST_NO).clearArray();
			
			// ＳＹＳＩＤリストクリア
			svBean.getDataBeanArray(ZMW06901SFConst.SYSID).clearArray();

			// ▼▼▼ ST-2015-0000057 ADD START ▼▼▼
			// ＳＹＳＩＤクリア
			svBean.sendMessage(ZMW06901SFConst.ODR_SYSID, X31CWebConst.DATABEAN_CLEAR);
			
			// サービス契約番号クリア
			svBean.sendMessage(ZMW06901SFConst.ODR_SVC_KEI_NO, X31CWebConst.DATABEAN_CLEAR);
			
			// 受付番号クリア
			svBean.sendMessage(ZMW06901SFConst.UK_NO, X31CWebConst.DATABEAN_CLEAR);
			
			// 異動区分クリア
			svBean.sendMessage(ZMW06901SFConst.IDO_DIV, X31CWebConst.DATABEAN_CLEAR);
			
			// 異動理由コード（大分類）クリア
			svBean.sendMessage(ZMW06901SFConst.IDO_RSN_CD1, X31CWebConst.DATABEAN_CLEAR);
			
			// 異動理由コード（中分類）クリア
			svBean.sendMessage(ZMW06901SFConst.IDO_RSN_CD2, X31CWebConst.DATABEAN_CLEAR);
			// ▲▲▲ ST-2015-0000057  ADD  END ▲▲▲
			// ▼▼ ANK-2693-00-00 オーダリング案件（STEP2） ADD START ▼▼
			// 請求契約番号クリア
			svBean.sendMessage(ZMW06901SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_CLEAR);
			// ▲▲ ANK-2693-00-00 オーダリング案件（STEP2） ADD  END ▲▲
			
			// ST-2020-0000002 ADD START
			// 電話番号１クリア
			svBean.sendMessage(ZMW06901SFConst.TELNO_1, X31CWebConst.DATABEAN_CLEAR);
			
			// 電話番号２クリア
			svBean.sendMessage(ZMW06901SFConst.TELNO_2, X31CWebConst.DATABEAN_CLEAR);
			// ST-2020-0000002 ADD END
// ANK-3927-00-00 ADD START
			// 問合せIDクリア
			svBean.sendMessage(ZMW06901SFConst.TOIAWASE_ID, X31CWebConst.DATABEAN_CLEAR);
// ANK-3927-00-00 ADD END
// ▽▽▽ OM-2020-0001662 ADD START
			svBean.sendMessage(ZMW06901SFConst.SYS_ID, X31CWebConst.DATABEAN_CLEAR);
// △△△ OM-2020-0001662 ADD END
// ANK-4030-00-00 ADD START
			// サービス契約内訳番号クリア
			svBean.sendMessage(ZMW06901SFConst.SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_CLEAR);
// ANK-4030-00-00 ADD END
// ANK-4237-00-00 ADD START
			// 問合せ客番号クリア
			svBean.sendMessage(ZMW06901SFConst.PROSCST_NO_1, X31CWebConst.DATABEAN_CLEAR);
			// 複数起動ＮＧフラグクリア
			svBean.sendMessageString(ZMW06901SFConst.MULT_OPN_NG_FLG, X31CWebConst.DATABEAN_CLEAR);
// ANK-4237-00-00 ADD END
			
			// ePOP引継キー情報設定
			svBean.sendMessageString(ZMW06901SFConst.EPOP_TENSO_RNKI_KEY, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_KEY_INFO));
			
			// 着信電話番号設定
			svBean.sendMessageString(ZMW06901SFConst.INCOMING_TELNO, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_TELNO));
			
			// 着信イベントID設定
			svBean.sendMessageString(ZMW06901SFConst.EVENT_ID, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_EVENT_ID));
			
			// epop-WEBFOCUS不正動作対応
			// URL情報クリア
			svBean.sendMessage(ZMW06901SFConst.URL, X31CWebConst.DATABEAN_CLEAR);
			svBean.sendMessage(ZMW06901SFConst.TOOLURL, X31CWebConst.DATABEAN_CLEAR);
			
			// サービス契約番号リスト設定
			if (dataMap.get(KEY_CUST_ID_LST) != null)
			{
				String custIdLst = (String)dataMap.get(KEY_CUST_ID_LST);
				if (custIdLst.length() > 0)
				{
					String[] custIds = custIdLst.split(KEY_CUST_ID_LST_DELMI);
					X31SDataBeanAccessArray svcKeiNo = svBean.getDataBeanArray(ZMW06901SFConst.SVC_KEI_NO);
					for (int i = 0; i < custIds.length; i++)
					{
						
						// サービス契約番号追加
						X31SDataBeanAccess wBean = svcKeiNo.addDataBean();
						wBean.sendMessageString(ZMW06901SFConst.L0_SVC_KEI_NO_08, X31CWebConst.DATABEAN_SET_VALUE, custIds[i]);
					}
				}
			}
			
			// 問合せ客番号リスト設定
			if (dataMap.get(KEY_SYM_ID_LST) != null)
			{
				String symIdLst = (String)dataMap.get(KEY_SYM_ID_LST);
				if (symIdLst.length() > 0)
				{
					String[] symIds = symIdLst.split(KEY_SYM_ID_LST_DELMI);
					X31SDataBeanAccessArray proscstNo = svBean.getDataBeanArray(ZMW06901SFConst.PROSCST_NO);
					for (int i = 0; i < symIds.length; i++)
					{
						
						// 問合せ客番号追加
						X31SDataBeanAccess wBean = proscstNo.addDataBean();
						wBean.sendMessageString(ZMW06901SFConst.L1_PROSCST_NO_09, X31CWebConst.DATABEAN_SET_VALUE, symIds[i]);
					}
				}
			}
			
			// ＳＹＳＩＤリスト設定
			if (dataMap.get(KEY_SYSID_LST) != null)
			{
				String sysIdLst = (String)dataMap.get(KEY_SYSID_LST);
				if (sysIdLst.length() > 0)
				{
					String[] sysIds = sysIdLst.split(KEY_SYSID_LST_DELMI);
					X31SDataBeanAccessArray sysid = svBean.getDataBeanArray(ZMW06901SFConst.SYSID);
					for (int i = 0; i < sysIds.length; i++)
					{
						
						// ＳＹＳＩＤ追加
						X31SDataBeanAccess wBean = sysid.addDataBean();
						wBean.sendMessageString(ZMW06901SFConst.L2_SYSID_10, X31CWebConst.DATABEAN_SET_VALUE, sysIds[i]);
					}
				}
			}
			// ▼▼▼ ST-2015-0000057 ADD START ▼▼▼
			// 外部システムコード設定
			if (dataMap.get(KEY_SYSCD) != null && !"".equals(KEY_SYSCD))
			{
				svBean.sendMessageString(ZMW06901SFConst.SYS_ID, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_SYSCD));
			}
			
			// ユーザーＩＤ設定
			if (dataMap.get(KEY_OPE_ID) != null && !"".equals(KEY_OPE_ID))
			{
				svBean.sendMessageString(ZMW06901SFConst.USER_ID, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_OPE_ID));
			}
			
			// ＳＹＳＩＤ設定
			svBean.sendMessageString(ZMW06901SFConst.ODR_SYSID, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_SYSID));
			
			// サービス契約番号設定
			svBean.sendMessageString(ZMW06901SFConst.ODR_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_SVC_KEI_NO));
			
			// 受付番号設定
			svBean.sendMessageString(ZMW06901SFConst.UK_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_UKNO));
			
			// 異動区分設定
			svBean.sendMessageString(ZMW06901SFConst.IDO_DIV, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_IDO_DIV));
			
			// 異動理由コード（大分類）設定
			svBean.sendMessageString(ZMW06901SFConst.IDO_RSN_CD1, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_IDO_RSN_CD1));
			
			// 異動理由コード（中分類）設定
			svBean.sendMessageString(ZMW06901SFConst.IDO_RSN_CD2, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_IDO_RSN_CD2));
			
			// 起動画面ＩＤ設定
			svBean.sendMessageString(ZMW06901SFConst.KIDO_GAMEN_ID, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_SCREEN_ID));
			// ▲▲▲ ST-2015-0000057  ADD  END ▲▲▲
			// ▼▼ ANK-2693-00-00 オーダリング案件（STEP2） ADD START ▼▼
			// 請求契約番号設定
			svBean.sendMessageString(ZMW06901SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_SEIKY_KEI_NO));
			// ▲▲ ANK-2693-00-00 オーダリング案件（STEP2） ADD  END ▲▲
			
			// ST-2020-0000002 ADD START
			// 電話番号１
			svBean.sendMessageString(ZMW06901SFConst.TELNO_1, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_TELNO_1));
			// 電話番号２
			svBean.sendMessageString(ZMW06901SFConst.TELNO_2, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_TELNO_2));
			// ST-2020-0000002 ADD END
// ANK-3927-00-00 ADD START
			// 問合せID
			svBean.sendMessageString(ZMW06901SFConst.TOIAWASE_ID, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_TOIAWASE_ID));
// ANK-3927-00-00 ADD END
// ANK-4030-00-00 ADD START
			// サービス契約内訳番号
			svBean.sendMessageString(ZMW06901SFConst.SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_SVC_KEI_UCWK_NO));
// ANK-4030-00-00 ADD END
// ANK-4237-00-00 ADD START
			// 問合せ客番号
			svBean.sendMessageString(ZMW06901SFConst.PROSCST_NO_1, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_PROSCST_NO));
			// 複数起動ＮＧフラグ設定
			svBean.sendMessageString(ZMW06901SFConst.MULT_OPN_NG_FLG, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(KEY_MULT_OPN_NG_FLG));
// ANK-4237-00-00 ADD END
			
// ▽▽▽ OM-2020-0001662 ADD START
			// ePOP着信実績の場合のみ、値を再設定する
			if (dataMap.get(KEY_KEY_INFO) != null && ((String)dataMap.get(KEY_KEY_INFO)).length() > 0)
			{
// △△△ OM-2020-0001662 ADD END
				// v42.00.04 ANK-3593-00-00 ADD START
				// ePOPから連携された情報をセッションに保持する
				// セッション情報を保持するマップ
				HashMap<String, String> sessionInfoMap = new HashMap<String, String>();
				
				// セッション情報を初期化する
				// カルテ起動コードの初期化
				sessionInfoMap.put(JCRStrConst.KRT_KIDOU_CD, "");
				// ＯＰ担当業務コードの初期化
				sessionInfoMap.put(JCRStrConst.OP_TNT_WORK_CD, "");
				JCRWebCommon.setSessionInfo(this, sessionInfoMap);
				
				// カルテ起動コードを設定する
				if (dataMap.get(KEY_KRT_KIDOU_CD) != null && !"".equals(dataMap.get(KEY_KRT_KIDOU_CD)))
				{
					sessionInfoMap.put(JCRStrConst.KRT_KIDOU_CD, (String)dataMap.get(KEY_KRT_KIDOU_CD));
				}
				// ＯＰ担当業務コードを設定する
				if (dataMap.get(KEY_KRT_KIDOU_CD) != null && !"".equals(dataMap.get(KEY_OP_TNT_WORK_CD)))
				{
					sessionInfoMap.put(JCRStrConst.OP_TNT_WORK_CD, (String)dataMap.get(KEY_OP_TNT_WORK_CD));
				}
				JCRWebCommon.setSessionInfo(this, sessionInfoMap);
				// v42.00.04 ANK-3593-00-00 ADD END
// ▽▽▽ OM-2020-0001662 ADD START
			}
// △△△ OM-2020-0001662 ADD END

			// ePOP連携用起動画面設定処理
			setFukusuScreenIdEPOP();
		}
		
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		X31SDataBeanAccess[] beans = {svBean};
		
		// ユースケースID格納用マップ
		HashMap<Object, String> paramMap = new HashMap<Object, String>();
		
		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_0089);
		
		// マッピング用Map
		HashMap<String, Object> inMap = new HashMap<String, Object>();
		
		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// マッピングクラス
		ZMSV0089_ZMSV0089OPDBMapper mapper = new ZMSV0089_ZMSV0089OPDBMapper();
		mapper.setZMSV008901(beans, inMap, JPCModelConstant.FUNC_CD_1);
		
		// サービス実行
		invokeService(paramMap, inMap, outputMap);
		
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// (a)サービスの処理結果を取得する。
		X31SDataBeanAccess[] outBeans = {svBean, cfBean};
		mapper.getZMSV008901ForZMW06901(outBeans, outputMap);
		
		// (b)ワンタイムパスワード認証がNGの場合
		if(NINSHO_NG.equals(svBean.sendMessageString(ZMW06901SFConst.NINSHO_STAT, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			
			// 複数画面起動クリア
			svBean.sendMessage(ZMW06901SFConst.FUKUSU_SCREEN_ID, X31CWebConst.DATABEAN_CLEAR);
			
			// ePOP引継キー情報クリア
			svBean.sendMessage(ZMW06901SFConst.EPOP_TENSO_RNKI_KEY, X31CWebConst.DATABEAN_CLEAR);
			
			// 着信電話番号クリア
			svBean.sendMessage(ZMW06901SFConst.INCOMING_TELNO, X31CWebConst.DATABEAN_CLEAR);
			
			// 着信イベントIDクリア
			svBean.sendMessage(ZMW06901SFConst.EVENT_ID, X31CWebConst.DATABEAN_CLEAR);
			
			// サービス契約番号リストクリア
			svBean.getDataBeanArray(ZMW06901SFConst.SVC_KEI_NO).clearArray();
			
			// 問合せ客番号リストクリア
			svBean.getDataBeanArray(ZMW06901SFConst.PROSCST_NO).clearArray();
			
			// ＳＹＳＩＤリストクリア
			svBean.getDataBeanArray(ZMW06901SFConst.SYSID).clearArray();

//			//  @メッセージID：EKB6040-JW「認証に失敗しました。」のメッセージを表示する
//			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB6040_JW);
//			//  Aエラー画面を表示するために、画面IDを以下の項目に設定する。
//			// 遷移先画面IDを共有フォームBeanに設定
//			cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
//					JZMScreenConst.SCREEN_ID_ZMW11203);
//
//			// 遷移先画面名を共有フォームBeanに設定
//			cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
//					JZMScreenConst.SCREEN_NAME_ZMW11203);
		}
		
		// (c)ワンタイムパスワードクリア
		svBean.sendMessageString(ZMW06901SFConst.ONETIME, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		String nextScreenId = null;
		String keyInfo = (String)dataMap.get(KEY_KEY_INFO);
		
		// ePOP連携の場合
		if (keyInfo != null && keyInfo.length() > 0)
		{
			nextScreenId = (String)dataMap.get(KEY_GMNID);
		}
		else
		{
			nextScreenId = (String)dataMap.get(KEY_SCREEN_ID);
		}
		
		// (a)画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
		JCCWebCommon.setScreenInfo(this, nextScreenId, dataMap);
		
		//(b)戻り先画面ID設定（JCCWebCommon.setScreenId)を使用し、次画面への引継情報を設定する。
//		JCCWebCommon.setScreenId(this, nextScreenId, JZMScreenConst.SCREEN_ID_ZMW06901);
		
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JZMScreenConst.SCREEN_ID_ZMW06901);
		
		// 遷移先画面名を共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JZMScreenConst.SCREEN_NAME_ZMW06901);
		
		return true;
	}
	
	/**
	 * 外部連携用 認証エラー処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean authOneTimeError() throws Exception
	{
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		X31SDataBeanAccess svBean = getServiceFormBean();

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		//なし

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		//なし

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		//なし

		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		//なし

		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// 認証状態設定
		dataMap.put(ZMW11201SFConst.NINSHO_STAT,
				svBean.sendMessageString(ZMW06901SFConst.NINSHO_STAT, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
		JCRWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW11203, dataMap);

		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JZMScreenConst.SCREEN_ID_ZMW11203);
		
		// 遷移先画面名を共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JZMScreenConst.SCREEN_NAME_ZMW11203);
		
		return true;
	}

	/**
	 * 定期リクエスト処理を行います。
	 * @return boolean
	 * @throws Exception
	 */
	public boolean keepAlive() throws Exception
	{
		
		// -------------------------------------------------- //
		// (1)共有フォームBeanの設定
		// -------------------------------------------------- //
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, "CCW00203");
		return true;
	}
	
	/**
	 * 指定されたkeyが配列に含まれている場合、trueを返す。
	 * @param key 検査するKey項目
	 * @param nonHktgiKmkArray 検査対象となる配列
	 * @return nonHktgiKmkArrayにkeyが含まれている場合、trueを返す。
	 */
	private boolean isNonHktgiKmk(String key, String[] nonHktgiKmkArray)
	{
		boolean retValue = false;
		
		for(int iCnt = 0; iCnt < nonHktgiKmkArray.length; iCnt++)
		{
			if(key.equals(nonHktgiKmkArray[iCnt]))
			{
				retValue = true;
				break;
			}
		}
		return retValue;
	}

	/**
	 * 統合認証部品 貸与品確認を呼び出します。
	 * @param user_id ユーザーID
	 * @return ユーザー認証結果情報
	 * @throws Exception
	 */
	private HashMap<String, Object> getCertifyResultByUserId(String user_id) throws Exception 
	{
		
		return JCCWebCommon.getLdapCertifyResultUserId(this, user_id);
		
	}
	
	/**
	 * システム日付の取得を行います。
	 * <BR>
	 * @param bean サービスフォームBean
	 * @throws Exception
	 */
	private void loadSysYmd(X31SDataBeanAccess bean) throws Exception 
	{
		String sysDate = JCCWebCommon.getSysDate();
		bean.sendMessageString(ZMW06901SFConst.SYS_Y, X31CWebConst.DATABEAN_SET_VALUE, sysDate.substring(0, 4));
		bean.sendMessageString(ZMW06901SFConst.SYS_M, X31CWebConst.DATABEAN_SET_VALUE, sysDate.substring(4, 6));
		bean.sendMessageString(ZMW06901SFConst.SYS_D, X31CWebConst.DATABEAN_SET_VALUE, sysDate.substring(6, 8));
	}
	
	/**
	 * 組織情報を取得します。
	 * <BR>
	 * @param srvBean
	 * @param commonInfoBean
	 * @throws Exception
	 */
	private void loadOrgNm(X31SDataBeanAccess srvBean, X31SDataBeanAccess commonInfoBean) throws Exception 
	{
		
		//共有フォームBean
		X31SDataBeanAccessArray kggrpCdList = commonInfoBean.getDataBeanArray(CommonInfoCFConst.KGGRP_CD_LIST);
		
		// 表示するのは、実組織、ワークグループ、中間組織のみ
		int iCntMax = 3;
		int kggrpCdListCnt = kggrpCdList.getCount();
		
		if(iCntMax > kggrpCdListCnt)
		{
			iCntMax = kggrpCdListCnt;
		}
		for(int iCnt = 0; iCnt < iCntMax; iCnt++)
		{
			
			// 組織名称取得
			String org_name = kggrpCdList.getDataBean(iCnt).sendMessageString(CommonInfoCFConst.ORG_NM_01, X31CWebConst.DATABEAN_GET_VALUE);
			if(!"".equals(org_name))
			{
				srvBean.sendMessageString(ZMW06901SFConst.ORG, X31CWebConst.DATABEAN_ADD_VALUE, org_name);
			}
		}
		
	}

	/**
	 * 定義ファイルからメニュー情報を取得します。
	 * <BR>
	 * @param bean サービスフォームBean
	 * @param param_screen_id 画面ID
	 * @return String 画面名
	 * @throws Exception
	 */
	private String loadMenu(X31SDataBeanAccess bean, String param_screen_id) throws Exception 
	{
		
		// 定義ファイル
		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
		DocumentBuilder builder = dbf.newDocumentBuilder();
		String menuFilePath = JCCWebCommon.getApplicationConst(KEY_MENU_FILE_PATH);
		org.w3c.dom.Document root = builder.parse(menuFilePath);

		NamedNodeMap d_attMap = null;
		NamedNodeMap c_attMap = null;
		NamedNodeMap s_attMap = null;
		NodeList cbriNodeList = null;
		NodeList sbriNodeList = null;
		String c_screenId = null;
		String s_screenId = null;
		String screenNm = null;
		String d_menuId = null;
		String c_menuId = null;
		String s_menuId = null;
		String retScreenNm = null;
		
		// メニュー設定用リスト
		ArrayList<String[]> d_menuList = null;
		ArrayList<String[]> c_menuList = null;
		ArrayList<String[]> s_menuList = null;
		
		
		// 権限リスト設定
		HashMap<String, String> authMap = new HashMap<String, String>();
		JCCWebCommon.setAuthorityList(this, authMap);
		
		// 権限設定プロパティファイル 設定値取得
		HashMap<String, String> authPropMap = new HashMap<String, String>();
		try
		{
			authPropMap = JCCWebCommon.getMap(this.getGamenId());
		}
		catch (JCCFrameworkException fwe)
		{
			throw new JCCFrameworkException("権限制御定義ファイルキャッシュ情報の取得に失敗しました。", fwe);
		}
		
		// 大分類リスト取得
		NodeList dbriNodeList = root.getElementsByTagName(MENU_FILE_ELEM_DBRI);
		
		// メニュー設定用リスト設定
		d_menuList = new ArrayList<String[]>();
		
		// 大分類設定
		for (int iDCnt = 0; iDCnt < dbriNodeList.getLength(); iDCnt++)
		{
			Element dbriElm = (Element)dbriNodeList.item(iDCnt);
			
			// 表示名取得
			d_attMap = dbriElm.getAttributes();
			
			// メニューID取得
			d_menuId = "menu_" + iDCnt;
			
			// 中分類取得
			cbriNodeList = dbriElm.getElementsByTagName(MENU_FILE_ELEM_CBRI);
			
			// メニュー設定用リスト設定
			c_menuList = new ArrayList<String[]>();
			
			// 中分類設定
			for (int iCCnt = 0; iCCnt < cbriNodeList.getLength(); iCCnt++) 
			{
				Element cbriElm = (Element)cbriNodeList.item(iCCnt);
				c_attMap = cbriElm.getAttributes();
				
				// 画面ID
				c_screenId = getAttributeValue(c_attMap, MENU_FILE_ATTRS_SCREEN_ID);
				
				//画面名を取得する
				if(param_screen_id != null && param_screen_id.equals(c_screenId))
				{
					retScreenNm = screenNm;
				}
				
				// 画面名
				screenNm = getAttributeValue(c_attMap, MENU_FILE_ATTR_SCREEN_NM);
				
				// 小分類取得
				sbriNodeList = cbriElm.getElementsByTagName(MENU_FILE_ELEM_SBRI);
				
				// 小分類設定
				s_menuList = new ArrayList<String[]>();
				for (int iSCnt = 0; iSCnt < sbriNodeList.getLength(); iSCnt++) 
				{
					Element sbriElm = (Element)sbriNodeList.item(iSCnt);
					s_attMap = sbriElm.getAttributes();
					
					// 画面ID
					s_screenId = getAttributeValue(s_attMap, MENU_FILE_ATTRS_SCREEN_ID);
					
					//画面名を取得する
					if(param_screen_id != null && param_screen_id.equals(s_screenId))
					{
						retScreenNm = screenNm;
					}
					
					// 画面名
					screenNm = getAttributeValue(s_attMap, MENU_FILE_ATTR_SCREEN_NM);
					if(JZMWebCommon.judgeAuthorityCd(this, authMap, authPropMap, "ZMW069010PJP;" + s_screenId + ";0"))
					{
						
						// メニューID
						s_menuId = "menu_" + iDCnt + "_" + iCCnt + "_" + iSCnt;
						
						// 小分類 メニュー設定用リスト設定
						setMenuArrayList(s_menuList, s_attMap, "s_", s_menuId);
						
						// CｅｏＭｅｓｓｅｎｇｅｒ(画面ID：CRW08301)のメニュー表示権限がある場合、
						// 以下のサービスフォームBeanへ画面IDをセットする。（自動起動対応）
						if(SCREEN_ID_EO_MESSENGER.equals(s_screenId))
						{
							setEoMessengerAutoExec(bean);
						}
					}
				}
				if(s_menuList.size() != 0 || JZMWebCommon.judgeAuthorityCd(this, authMap, authPropMap, "ZMW069010PJP;" + c_screenId + ";0"))
				{
					
					// メニューID
					c_menuId = "menu_" + iDCnt + "_" + iCCnt;
					
					// 中分類 メニュー設定用リスト設定
					setMenuArrayList(c_menuList, c_attMap, "c_", c_menuId);
					if(s_menuList.size() != 0)
					{
						c_menuList.addAll(s_menuList);
					}
					
					// CｅｏＭｅｓｓｅｎｇｅｒ(画面ID：CRW08301)のメニュー表示権限がある場合、
					// 以下のサービスフォームBeanへ画面IDをセットする。（自動起動対応）
					if(SCREEN_ID_EO_MESSENGER.equals(c_screenId))
					{
						setEoMessengerAutoExec(bean);
					}
				}
			}
			if(c_menuList.size() != 0)
			{
				
				// 大分類 メニュー設定
				setMenuArrayList(d_menuList, d_attMap, "d_", d_menuId);
				d_menuList.addAll(c_menuList);
			}
		}
		
		// サービスフォームBeanおよびメニュー情報設定
		setMenuInfo(d_menuList, bean);
		
		// メニュー情報をサービスフォームBeanへ設定
		bean.sendMessageString(ZMW06901SFConst.MENU_INFO, X31CWebConst.DATABEAN_SET_VALUE, 
								this.menuInfo.append(System.getProperty("line.separator") + "}").toString());
		
		return retScreenNm;
	}
	
	/**
	 * メニュー情報の作成を行います。
	 * ArrayListに設定されているメニュー情報をサービスフォームBeanおよびメニュー情報へセットする。
	 * @param list メニュー情報が設定されているArrayList
	 * @param bean サービスフォームBean
	 */
	private void setMenuInfo(ArrayList<String[]> list, X31SDataBeanAccess bean)
	{
		
		// 大分類格納用 サービスフォームBeanリスト取得
		X31SDataBeanAccessArray dbriBeanList = bean.getDataBeanArray(ZMW06901SFConst.DBRI);
		X31SDataBeanAccess dbriBean = null;
		X31SDataBeanAccessArray cbriBeanList = null;
		X31SDataBeanAccess cbriBean = null;
		X31SDataBeanAccessArray sbriBeanList = null;
		X31SDataBeanAccess sbriBean = null;
		for(int iCnt = 0; iCnt < list.size(); iCnt++)
		{
			
			//メニュー情報設定
			String[] menuInfos = list.get(iCnt);
			makeMenuInfo(menuInfos[0], menuInfos[3], menuInfos[4], menuInfos[5], menuInfos[6], menuInfos[7], menuInfos[8]);
			
			// サービスフォームBean設定
			if(menuInfos[0].startsWith("d_"))
			{
				
				// 大分類設定
				dbriBean = dbriBeanList.addDataBean();
				dbriBean.sendMessageString(ZMW06901SFConst.DSP_NM_01, X31CWebConst.DATABEAN_SET_VALUE, menuInfos[2]);
				dbriBean.sendMessageString(ZMW06901SFConst.MENU_ID_01, X31CWebConst.DATABEAN_SET_VALUE, menuInfos[1]);
				
				// 中分類Bean取得
				cbriBeanList = dbriBean.getDataBeanArray(ZMW06901SFConst.CBRI);
			}
			else if(menuInfos[0].startsWith("c_"))
			{
				
				// 中分類設定
				cbriBean = cbriBeanList.addDataBean();
				cbriBean.sendMessageString(ZMW06901SFConst.DSP_NM_02, X31CWebConst.DATABEAN_SET_VALUE, menuInfos[2]);
				cbriBean.sendMessageString(ZMW06901SFConst.MENU_ID_02, X31CWebConst.DATABEAN_SET_VALUE, menuInfos[1]);
				cbriBean.sendMessageBoolean(ZMW06901SFConst.CTGR_FLG_02, X31CWebConst.DATABEAN_SET_VALUE, "".equals(menuInfos[3]));
				
				// 小分類Bean取得
				sbriBeanList = cbriBean.getDataBeanArray(ZMW06901SFConst.SBRI);
			}
			else
			{
				
				// 小分類設定
				sbriBean = sbriBeanList.addDataBean();
				sbriBean.sendMessageString(ZMW06901SFConst.DSP_NM_03, X31CWebConst.DATABEAN_SET_VALUE, menuInfos[2]);
				sbriBean.sendMessageString(ZMW06901SFConst.MENU_ID_03, X31CWebConst.DATABEAN_SET_VALUE, menuInfos[1]);

			}
		}
	}
	
	/**
	 * メニュー情報の作成を行います。
	 * <BR>
	 * @param menuId メニューID
	 * @param screenId 画面ID
	 * @param screenNm 画面名
	 * @param windowNm ウインドウ名
	 * @param url 外部連携用URL
	 * @param sysid 外部連携用システムID
	 * @param toolUrl WebFocus用 URL
	 */
	private void makeMenuInfo(String menuId, String screenId, String screenNm, String windowNm, String url, String sysid, String toolUrl) 
	{
		menuInfo.append(menuInfo.length() < 1 ? "{" + System.getProperty("line.separator") : "," + System.getProperty("line.separator"))
				.append("'").append(menuId).append("' : ")
				.append("[")
				.append("'").append(screenId).append("', ")
				.append("'").append(screenNm).append("', ")
				.append("'").append(windowNm).append("',")
				/* 他サイト連携 URL */
				.append("'").append(url).append("',")
				/* 他サイト連携 SYS ID */
				.append("'").append(sysid).append("',")
				/* WebFocus対応 */
				.append("'").append(toolUrl).append("'")
				.append("]");
	}

	/**
	 * XML 属性値を返却します。
	 * <BR>
	 * @param attMap
	 * @param attName
	 * @return String
	 */
	private String getAttributeValue(NamedNodeMap attMap, String attName) 
	{
		Node att = attMap.getNamedItem(attName);
		return att == null ? "" : att.getNodeValue();
	}
	
	/**
	 * 指定されたXMLノードから必要な属性を取得し、メニュー設定用リストに追加する。
	 * @param list メニュー設定用リスト
	 * @param map XML ノード
	 * @param menu_pref メニューID プレフィックス d_:大分類 c_:中分類 s_:小分類
	 * @param menu_id メニューID
	 */
	private void setMenuArrayList(ArrayList<String[]>list, NamedNodeMap map, String menu_pref, String menu_id)
	{
		
		// 画面ID
		String screenId = getAttributeValue(map, MENU_FILE_ATTRS_SCREEN_ID);
		
		// 画面名
		String screenNm = getAttributeValue(map, MENU_FILE_ATTR_SCREEN_NM);
		
		// ウインドウ名
		String windowNm = getAttributeValue(map, MENU_FILE_ATTR_WINDOW_NM);
		
		// 外部連携 URL
		String url = getAttributeValue(map, MENU_FILE_ATTR_URL);
		
		// 外部連携 SYS_ID
		String sysid = getAttributeValue(map, MENU_FILE_ATTR_SYS_ID);
		
		// WebFOCUS用 URL
		String toolUrl = getAttributeValue(map, MENU_FILE_ATTR_TOOL_URL);
		
		// 表示名
		String dspNm = getAttributeValue(map, MENU_FILE_ATTR_DSP_NM);
		
		// メニュー設定用リスト設定
		list.add(new String[]{menu_pref + menu_id, menu_id, dspNm, screenId, screenNm, windowNm, url, sysid, toolUrl});

	}
	
	/**
	 * eoMessenger 自動起動設定
	 * @param sv_bean サービスフォームBean
	 */
	private void setEoMessengerAutoExec(X31SDataBeanAccess sv_bean)
	{
		
		// 画面ID
//		sv_bean.sendMessageString(ZMW06901SFConst.FUKUSU_SCREEN_ID,X31CWebConst.DATABEAN_SET_VALUE, SCREEN_ID_EO_MESSENGER);
	}
	
	/**
	 * ePOP連携用起動画面設定処理
	 * @return true:ePOP連携 false:それ以外
	 * <BR>
	 */
	private boolean setFukusuScreenIdEPOP()
	{
		X31SDataBeanAccess svBean = getServiceFormBean();

		// ePOP転送連携キー取得
		String epopTensoRnkiKey = svBean.sendMessageString(ZMW06901SFConst.EPOP_TENSO_RNKI_KEY, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 着信イベントID取得
		String eventId = svBean.sendMessageString(ZMW06901SFConst.EVENT_ID, X31CWebConst.DATABEAN_GET_VALUE);

		// ePOP連携の場合
		if (epopTensoRnkiKey != null && epopTensoRnkiKey.length() > 0)
		{
			StringBuilder fukusuScreenId = new StringBuilder();

			// イベントIDごとに起動画面を設定
			
			// 初期起動の場合
			if (EPOP_EVENT_ID_INIT.equals(eventId))
			{
				fukusuScreenId
//				.append(JCRScreenConst.SCREEN_ID_CRW08301)
//				.append(KEY_GMNID_DELMI)
				.append(JCRScreenConst.SCREEN_ID_CRW01201)
				.append(KEY_GMNID_DELMI)
				.append(JCRScreenConst.SCREEN_ID_CRW10401);
			}
			
			// 着信拒否解除、着信、転送先の場合
			else if (EPOP_EVENT_ID_CALL_BLOCK_RELEASE.equals(eventId) ||
					  EPOP_EVENT_ID_CALL.equals(eventId) ||
					  EPOP_EVENT_ID_FORWARD_TO.equals(eventId))
			{
				fukusuScreenId
				.append(JCRScreenConst.SCREEN_ID_CRW01201)
				.append(KEY_GMNID_DELMI)
				.append(JCRScreenConst.SCREEN_ID_CRW10401);
			}
			
			// 手動起動(プレビュー)の場合
			// 手動起動(アウトバウンド)の場合
			// 手動起動(あふれ呼)の場合
			else if (EPOP_EVENT_ID_PREVIEW.equals(eventId) ||
					  EPOP_EVENT_ID_OUTBOUND.equals(eventId) ||
					  EPOP_EVENT_ID_OVERFLOW_CALL.equals(eventId))
			{
				fukusuScreenId.append(JCRScreenConst.SCREEN_ID_CRW01201);
			}
			
			// 複数画面起動設定
			svBean.sendMessageString(ZMW06901SFConst.FUKUSU_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, fukusuScreenId.toString());
			
			return true;
		}
		
		return false;
	}
	
	/**
	 * 起動する画面がSPRiかどうか判定する。
	 * @param bean サービスフォームBean
	 * @return true:SPRi false:それ以外
	 */
	private boolean isSPRi(X31SDataBeanAccess bean)
	{
		boolean retValue = false;
		
		// 画面ID
		String screenId = bean.sendMessageString(ZMW06901SFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 外部連携用 URL
		String url = bean.sendMessageString(ZMW06901SFConst.URL, X31CWebConst.DATABEAN_GET_VALUE);
		if(screenId.startsWith(SPRI_SCREEN_STARTWITH) && (!"".equals(url)))
		{
			retValue = true;
		}
		
		return retValue;
	}

// ▼▼▼ ANK-2639-00-00 オーダリング案件 ADD START ▼▼▼
	/**
	 * オーダリング連携で業務画面に連携すべきパラメータが存在するかどうか判定する。
	 * @param dataMap 画面情報
	 * @return true:存在する false:存在しない
	 */
	@SuppressWarnings("unchecked")
	private boolean isOdr(HashMap<String, Object> dataMap)
	{
		String sysCd = (String)dataMap.get("sysCd");
		
		if(sysCd != null)
		{
			if(sysCd.startsWith("ODR"))
			{
				Iterator it = dataMap.entrySet().iterator();
				while(it.hasNext())
				{
					Map.Entry<String, Object> entry = (Map.Entry<String, Object>)it.next();
					
					// 共通パラメータ以外(連携すべきパラメータ)が存在するか判定
					if(!isCmnReqParam(entry.getKey()))
					{
						return true;
					}
				}
			}
		}
		
		return false;
	}
// ▲▲▲ ANK-2639-00-00 オーダリング案件  ADD  END ▲▲▲
	//*--<< 20160516 ANK-2845-00-00 ADD START >>--*//
	/**
	 * オーダリング連携で業務画面に連携すべきパラメータが存在するかどうか判定する。
	 * @param dataMap 画面情報
	 * @return true:存在する false:存在しない
	 */
	@SuppressWarnings("unchecked")
	private boolean isCis(HashMap<String, Object> dataMap)
	{
		String sysCd = (String)dataMap.get("sysId");
		
		if(sysCd != null)
		{
			if(sysCd.startsWith("CIS"))
			{
				Iterator it = dataMap.entrySet().iterator();
				while(it.hasNext())
				{
					Map.Entry<String, Object> entry = (Map.Entry<String, Object>)it.next();
					
					// 共通パラメータ以外(連携すべきパラメータ)が存在するか判定
					if(!isCmnReqParam(entry.getKey()))
					{
						return true;
					}
				}
			}
		}
		
		return false;
	}
	//*--<< 20160516 ANK-2845-00-00 ADD  END  >>--*//
	
// ANK-3593-00-00 ADD START
	/**
	 * オペレータ支援連携で業務画面に連携すべきパラメータが存在するかどうか判定する。
	 * @param dataMap 画面情報
	 * @return true:存在する false:存在しない
	 */
	@SuppressWarnings("unchecked")
	private boolean isOps(HashMap<String, Object> dataMap)
	{
		String sysCd = (String)dataMap.get("sysCd");
		
		if(sysCd != null)
		{
			if(sysCd.startsWith("OPS"))
			{
				Iterator it = dataMap.entrySet().iterator();
				while(it.hasNext())
				{
					Map.Entry<String, Object> entry = (Map.Entry<String, Object>)it.next();
					
					// 共通パラメータ以外(連携すべきパラメータ)が存在するか判定
					if(!isCmnReqParam(entry.getKey()))
					{
						return true;
					}
				}
			}
		}
		
		return false;
	}
// ANK-3593-00-00 ADD END
}
