/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：FUW08801SFLogic
 *   ソースファイル名：FUW08801SFLogic.java
 *   作成者          ：富士通
 *   日付            ：2011年05月31日
 *＜機能概要＞
 *   各種パスワード変更メニューのビューロジッククラスです。
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v1.00.00    2011/05/31   FJ）谷本    新規作成
 *   v4.00       2012/06/22   FJ）文元    変更【案件番号：ANK-0529-00-00】POPID表記削除対応
 *   v5.00       2013/04/26   FJ）中谷    変更【IT1-2013-0000843】共通関連チェック(住所変更中チェック)対応
 *   v5.01       2013/08/25   FJ）文元    変更【OT-2013-0000xxxx】外部API返却値に対して、改行コードを空文字に変換する処理を追加する
 *
 **********************************************************************/
package eo.web.webview.FUW08801SF;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.web.x00.JCCBusinessException;
import com.fujitsu.futurity.web.x00.JCCWebServiceException;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JFUCommonUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JFUCommonRelationCheck;
import eo.web.webview.common.JFUMailSupportInterface;
import eo.web.webview.common.JFUScreenConst;
import eo.web.webview.common.JFUWebCommon;
import eo.web.webview.mapping.FUSV0111_FUSV0111OPDBMapper;

/**
 * 各種パスワード変更メニューのビューロジッククラスです。
 * <p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class FUW08801SFLogic extends JCCWebBusinessLogic
{

	/** フロント区分：変更申込 */
	private static final String FU_KBN_C = "C";

	/** サービスID：各種パスワード変更(次へ) */
	private static final String USECASE_ID_FUSV0111 = "FUSV0111";

	/** パスワード種類（選択）：認証ID */
	private static final String CHOICE_PWD_KIND_NINSHO_ID = "1";
	/** パスワード種類（選択）：メールアドレス */
	private static final String CHOICE_PWD_KIND_MLAD = "2";
	/** パスワード種類（選択）：WEBID */
	private static final String CHOICE_PWD_KIND_WEB_ID = "3";

	/** エラー表示画面項目箇所(チェック用)：id_pwd */
	private static final String ERR_PLACE_PWD_ITEM_ID = "id_pwd";

	/* 認証ID関連 */
	/** 共通関連チェック用サービスID "FUSV0075"(認証IDパスワード変更(申込)) */
	private static final String SERVICE_ID_NINSHOID = "FUSV0075";
	/** 置換文字(チェック用) */
	private static final String[] REPLACE_CHAR_NINSHOID_PWDY = { "認証ID/認証IDパスワード" };

	/* POPID関連 */
	/** 共通関連チェック用サービスID "FUSV0122"(メールアドレス自動設定ツール連携(指示実行)) */
	private static final String SERVICE_ID_POPID = "FUSV0122";
	/** 置換文字(チェック用) */
	private static final String[] REPLACE_CHAR_POPID_PWD = { "メールアドレス/メールパスワード" };

	/** 【メールサポートWEB】のPOPパスワード変更画面 */
	private static final String KEY_MAILSUPPORT_UPD_PWD_URL = "FU_C_API_IF_MAILSUPPORT_UPD_PWD_URL";

	/* WEBID関連 */
	/** 共通関連チェック用サービスID "FUSV0159"(WebIDパスワード変更申込(申込)) */
	private static final String SERVICE_ID_WEBID = "FUSV0159";
	/** 置換文字(チェック用) */
	private static final String[] REPLACE_CHAR_WEBID_PWD = { "Web ID/Web IDパスワード" };

	/** コマンド正常終了 */
	private static final String SUCCESS = "0";

	// 処理結果コード(WEBID)
	/** WebID認証照会依頼：正常終了 */
	private static final String INQ_SUCCESS = "040000";
	/** WebID認証照会依頼：WebID認証失敗（アカウントがない） */
	private static final String INQ_WITHOUT_ACOUNT = "040406";
	/** WebID認証照会依頼：WebID認証失敗（認証失敗） */
	private static final String INQ_FAILURE = "041201";
	/** WebID認証照会依頼：WebID認証失敗（WebIDが10桁以外） */
	private static final String INQ_EXCEPT_PLACE = "041303";
	/** WebID認証照会依頼：WebID認証失敗（WebIDが英数字以外） */
	private static final String INQ_EXCEPT_CHAR_KIND = "041304";

	/** 外部API(WebID認証照会依頼処理)用照会コマンド */
	private static final String FU_C_FUIFE007_PARAM1 = "FU_C_FUIFE007_PARAM1";

	/** リモートコマンド実行用環境定義ファイル[WWWサーバ] */
	private static final String FU_C_WWW_ENV = "FU_C_WWW_ENV";

	/** EKK0171B501_各種パスワード変更用契約情報一覧照会（ISP認証ID） */
	private static final String SC_TITLE_FUSV011101 = "FUSV011101SC";
	/** EKK0361B502_各種パスワード変更用契約情報一覧照会（WebID） */
	private static final String SC_TITLE_FUSV011104 = "FUSV011104SC";

	/** サーブレット名称（メールサポートWEBへ送信する為のサーブレット名称） */
	private static final String SEND_SERVLET_NM = "pw_henko";

	/**
	 * 初期処理
	 * 
	 * @return 必ずtrue
	 * @throws Exception
	 */
	public boolean init() throws Exception
	{

		// ---- 共有フォームbean ----
		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// フロント区分を設定（画面用）
		X31SDataBeanAccess frontCommonInfoBean = commonInfoBean.getDataBeanArray(CommonInfoCFConst.FRONT_COMMON_INFO).getDataBean(0);
		frontCommonInfoBean.sendMessageString(CommonInfoCFConst.FU_KBN_05, X31CWebConst.DATABEAN_SET_VALUE, FU_KBN_C);

		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JFUScreenConst.SCREEN_ID_FUW08801);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JFUScreenConst.SCREEN_NAME_FUW08801);

		return true;
	}

	/**
	 * メニュー画面の次へボタン押下
	 * 
	 * @return 必ずtrue
	 * @throws Exception
	 */
	public boolean next() throws Exception
	{

		// ---- 共有フォームbean ----
		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// ---- サービスフォームbean ----
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// ---- サービス呼出 ----
		// ホームページURL名取得申込（初期表示）サービスの呼び出しを行う。
		X31SDataBeanAccess[] paramBean = { bean };

		// ユースケースID格納用マップを生成。
		HashMap<String, String> paramMap = new HashMap<String, String>(16);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0111);

		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		FUSV0111_FUSV0111OPDBMapper mapper = new FUSV0111_FUSV0111OPDBMapper();

		// パスワード種類（選択）
		String choicePwdKind = bean.sendMessageString(FUW08801SFConst.CHOICE_PWD_KIND, X31CWebConst.DATABEAN_GET_VALUE);

		// @ パスワード種類（選択）が認証IDの場合
		if (CHOICE_PWD_KIND_NINSHO_ID.equals(choicePwdKind))
		{

			// ●サービスIF呼び出し
			// SC
			// ○EKK0171B501_各種パスワード変更用契約情報一覧照会（ISP認証ID）
			dataMap = mapper.setFUSV011101SC(paramBean, dataMap);
			// EKK0361B004_メールアドレス自動設定ツール連携契約情報取得一覧照会
			dataMap = mapper.setFUSV011102SC(paramBean, dataMap);
			// EKK0351A010_オプションサービス契約一意照会
			dataMap = mapper.setFUSV011103SC(paramBean, dataMap);
			// EKK0361B502_各種パスワード変更用契約情報一覧照会（WebID）
			dataMap = mapper.setFUSV011104SC(paramBean, dataMap);

			// 検索結果格納用マップを生成。
			HashMap<String, Object> outputMap = new HashMap<String, Object>();
			try
			{
				// サービスの呼び出しを行う。
				invokeService(paramMap, dataMap, outputMap);

			}
			catch (JCCWebServiceException se)
			{
				// システムエラー
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
			}

			// 検索エラーフラグチェック（検索件数0）
			// 検索エラーフラグの取得
			if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(JFUWebCommon.getSearchErrFlg(SC_TITLE_FUSV011101, outputMap)))
			{
				// エラー
				JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, REPLACE_CHAR_NINSHOID_PWDY, ERR_PLACE_PWD_ITEM_ID);
				return true;
			}

			// ●サービス処理結果の取得
			// EKK0171B501_各種パスワード変更用契約情報一覧照会（ISP認証ID）
			bean = mapper.getFUSV011101SC(bean, outputMap);

			// 引継ぎ情報を共有フォームビーンに設定
			// SYSID
			JFUWebCommon.setDataBeanItemByPath(commonInfoBean, JFUWebCommon.SSO_INFO + JFUWebCommon.SEP_0 + CommonInfoCFConst.SYSID_21,
					bean.sendMessageString(FUW08801SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));
			// 認証ID
			JFUWebCommon.setDataBeanItemByPath(commonInfoBean, JFUWebCommon.SSO_INFO + JFUWebCommon.SEP_0 + CommonInfoCFConst.NINSHO_ID_21,
					bean.sendMessageString(FUW08801SFConst.NOW_NINSHO_ID, X31CWebConst.DATABEAN_GET_VALUE));
			// サービス契約番号
			JFUWebCommon.setDataBeanItemByPath(commonInfoBean,
					JFUWebCommon.SSO_INFO + JFUWebCommon.SEP_0 + CommonInfoCFConst.SVC_KEI_NO_21, bean.sendMessageString(
							FUW08801SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

			// ●共通関連チェックの呼び出し処理
			JFUCommonRelationCheck.checkCommonRelation(this, SERVICE_ID_NINSHOID);

			// 遷移元画面IDを設定
			JFUWebCommon.setScreenId(this, JFUScreenConst.SCREEN_ID_FUW03901, JFUScreenConst.SCREEN_NAME_FUW08801);

			// 遷移先画面IDを設定
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
					JFUScreenConst.SCREEN_ID_FUW03901);

			// 遷移先画面名を設定
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
					JFUScreenConst.SCREEN_NAME_FUW03901);
		}
		// Aパスワード種類（選択）がメールアドレスの場合
		else if (CHOICE_PWD_KIND_MLAD.equals(choicePwdKind))
		{
			// POPIDを設定
			// （現在のメールアドレスの「@」を「%」に置き換えた値を設定）
			String mlad = bean.sendMessageString(FUW08801SFConst.NOW_MLAD,  X31CWebConst.DATABEAN_GET_VALUE);
			bean.sendMessageString(FUW08801SFConst.NOW_POP_ID, X31CWebConst.DATABEAN_SET_VALUE,
					mlad.replace(JFUStrConst.ATMARK, JFUStrConst.PERCENT));

			// ●外部API呼び出し
			String resultCode = callOutApiForPopId(bean);
			// ●外部API呼出結果処理
			if (JFUMailSupportInterface.SUCCESS.equals(resultCode))
			{
				// 処理結果コードが、"00"の場合、以降の処理を継続する。
			}
			else if (JFUMailSupportInterface.ERROR_CERTIFICATION.equals(resultCode)
					|| JFUMailSupportInterface.ERROR_PARAMETER.equals(resultCode))
			{
				// "13"(POPID認証エラー),"92"(パラメータ不正エラー)の場合
				JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, REPLACE_CHAR_POPID_PWD, ERR_PLACE_PWD_ITEM_ID);
				return true;
			}
			else
			{
				// "0102"（システムエラー）
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
			}

			// ●サービスIF呼び出し
			// SC
			// EKK0171B501_各種パスワード変更用契約情報一覧照会（ISP認証ID）
			dataMap = mapper.setFUSV011101SC(paramBean, dataMap);
			// ○EKK0361B004_メールアドレス自動設定ツール連携契約情報取得一覧照会
			dataMap = mapper.setFUSV011102SC(paramBean, dataMap);
			// ○EKK0351A010_オプションサービス契約一意照会
			dataMap = mapper.setFUSV011103SC(paramBean, dataMap);
			// EKK0361B502_各種パスワード変更用契約情報一覧照会（WebID）
			dataMap = mapper.setFUSV011104SC(paramBean, dataMap);

			// 検索結果格納用マップを生成。
			HashMap<String, Object> outputMap = new HashMap<String, Object>();
			try
			{
				// サービスの呼び出しを行う。
				invokeService(paramMap, dataMap, outputMap);

			}
			catch (JCCWebServiceException se)
			{
				// システムエラー
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
			}

			// ●サービス処理結果の取得
			// ○EKK0351A010_オプションサービス契約一意照会
			bean = mapper.getFUSV011103SC(bean, outputMap);

			String opSvcKeiStat = bean.sendMessageString(FUW08801SFConst.OP_SVC_KEI_STAT, X31CWebConst.DATABEAN_GET_VALUE);
			// オプション契約ステータスチェック
			if (JFUCommonUtil.isNull(opSvcKeiStat) || JFUStrConst.CD00037_910.equals(opSvcKeiStat)
					|| JFUStrConst.CD00037_920.equals(opSvcKeiStat))
			{
				// NULL、"901"(解約)、"920"(キャンセル)の場合エラー
				JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, REPLACE_CHAR_POPID_PWD, ERR_PLACE_PWD_ITEM_ID);
				return true;
			}

			// 引継ぎ情報を共有フォームビーンに設定
			// SYSID
			JFUWebCommon.setDataBeanItemByPath(commonInfoBean, JFUWebCommon.SSO_INFO + JFUWebCommon.SEP_0 + CommonInfoCFConst.SYSID_21,
					bean.sendMessageString(FUW08801SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));
			// サービス契約番号
			JFUWebCommon.setDataBeanItemByPath(commonInfoBean,
					JFUWebCommon.SSO_INFO + JFUWebCommon.SEP_0 + CommonInfoCFConst.SVC_KEI_NO_21, bean.sendMessageString(
							FUW08801SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
			// POPID
			JFUWebCommon.setDataBeanItemByPath(commonInfoBean,
					JFUWebCommon.SSO_INFO + JFUWebCommon.SEP_0 + CommonInfoCFConst.POP_ID_21, mlad.replace(JFUStrConst.ATMARK, JFUStrConst.PERCENT));
			
			// ●共通関連チェックの呼び出し処理
			JFUCommonRelationCheck.checkCommonRelation(this, SERVICE_ID_POPID);

			// メールサポートパスワード変更画面用URLを設定
			bean.sendMessageString(FUW08801SFConst.URL, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon
					.getApplicationConst(KEY_MAILSUPPORT_UPD_PWD_URL));

			// サーブレット名称を設定
			bean.sendMessageString(FUW08801SFConst.POP_ID_PWD_CHG_SERVLET_NM, X31CWebConst.DATABEAN_SET_VALUE, SEND_SERVLET_NM);

			// 遷移先画面IDを設定
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
					JFUScreenConst.SCREEN_ID_FUW08802);

			// 遷移先画面名を設定
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
					JFUScreenConst.SCREEN_NAME_FUW08802);

		}
		// B パスワード種類（選択）がWEBIDの場合
		else if (CHOICE_PWD_KIND_WEB_ID.equals(choicePwdKind))
		{

			// ●外部API呼び出し
			String resultCode = callOutApiForWebId(bean);
			// ●外部API呼出結果処理
			if (!INQ_SUCCESS.equals(resultCode))
			{
				// 異常終了の場合
				if (INQ_WITHOUT_ACOUNT.equals(resultCode) || INQ_FAILURE.equals(resultCode) || INQ_EXCEPT_PLACE.equals(resultCode)
						|| INQ_EXCEPT_CHAR_KIND.equals(resultCode))
				{
					// WebID認証失敗（アカウントがない）
					// WebID認証失敗（認証失敗）
					// WebID認証失敗（WebIDが10桁以外）
					// WebID認証失敗（WebIDが英数字以外）
					JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, REPLACE_CHAR_WEBID_PWD, ERR_PLACE_PWD_ITEM_ID);
				}
				else
				{
					// "0102"（システムエラー）
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
				}
				return true;
			}

			// ●サービスIF呼び出し
			// SC
			// EKK0171B501_各種パスワード変更用契約情報一覧照会（ISP認証ID）
			dataMap = mapper.setFUSV011101SC(paramBean, dataMap);
			// EKK0361B004_メールアドレス自動設定ツール連携契約情報取得一覧照会
			dataMap = mapper.setFUSV011102SC(paramBean, dataMap);
			// EKK0351A010_オプションサービス契約一意照会
			dataMap = mapper.setFUSV011103SC(paramBean, dataMap);
			// ○EKK0361B502_各種パスワード変更用契約情報一覧照会（WebID）
			dataMap = mapper.setFUSV011104SC(paramBean, dataMap);

			// 検索結果格納用マップを生成。
			HashMap<String, Object> outputMap = new HashMap<String, Object>();
			try
			{
				// サービスの呼び出しを行う。
				invokeService(paramMap, dataMap, outputMap);

			}
			catch (JCCWebServiceException se)
			{
				// システムエラー
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
			}

			// 検索エラーフラグチェック（検索件数0）
			if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(JFUWebCommon.getSearchErrFlg(SC_TITLE_FUSV011104, outputMap)))
			{
				// エラー
				JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, REPLACE_CHAR_WEBID_PWD, ERR_PLACE_PWD_ITEM_ID);
				return true;
			}

			// ●サービス処理結果の取得
			// EKK0361B502_各種パスワード変更用契約情報一覧照会（WebID）
			bean = mapper.getFUSV011104SC(bean, outputMap);

			// 引継ぎ情報を共有フォームビーンに設定
			// SYSID
			JFUWebCommon.setDataBeanItemByPath(commonInfoBean, JFUWebCommon.SSO_INFO + JFUWebCommon.SEP_0 + CommonInfoCFConst.SYSID_21,
					bean.sendMessageString(FUW08801SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));
			// WEBID
			JFUWebCommon.setDataBeanItemByPath(commonInfoBean, JFUWebCommon.SSO_INFO + JFUWebCommon.SEP_0 + CommonInfoCFConst.WEB_ID_21,
					bean.sendMessageString(FUW08801SFConst.NOW_WEB_ID, X31CWebConst.DATABEAN_GET_VALUE));
			// サービス契約番号
			JFUWebCommon.setDataBeanItemByPath(commonInfoBean,
					JFUWebCommon.SSO_INFO + JFUWebCommon.SEP_0 + CommonInfoCFConst.SVC_KEI_NO_21, bean.sendMessageString(
							FUW08801SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

			// ●共通関連チェックの呼び出し処理
			JFUCommonRelationCheck.checkCommonRelation(this, SERVICE_ID_WEBID);

			// 遷移元画面IDを設定
			JFUWebCommon.setScreenId(this, JFUScreenConst.SCREEN_ID_FUW04001, JFUScreenConst.SCREEN_NAME_FUW08801);

			// 遷移先画面IDを設定
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
					JFUScreenConst.SCREEN_ID_FUW04001);

			// 遷移先画面名を設定
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
					JFUScreenConst.SCREEN_NAME_FUW04001);

		}
		// C パスワード種類（選択）が上記以外の場合
		else
		{
			// システムエラー
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}
		return true;
	}

	/**
	 * 外部API呼出処理(POPID認証照会依頼処理)です。
	 * 
	 * <br>
	 * @param bean サービスフォームBean
	 * @return 処理結果コード
	 * @throws Exception
	 */
	private String callOutApiForPopId(X31SDataBeanAccess bean) throws Exception
	{
		// 現在のＰＯＰＩＤ
		String nowPopId = bean.sendMessageString(FUW08801SFConst.NOW_POP_ID, X31CWebConst.DATABEAN_GET_VALUE);
		// 現在のＰＯＰＩＤパスワード
		String nowPopIdPwd = bean.sendMessageString(FUW08801SFConst.NOW_POP_ID_PWD, X31CWebConst.DATABEAN_GET_VALUE);

		Map<String, Object> inMap = new HashMap<String, Object>();
		inMap.put(JFUMailSupportInterface.POP_ID, nowPopId);
		inMap.put(JFUMailSupportInterface.POP_ID_PWD, nowPopIdPwd);

		String result = JFUWebCommon.getPopIdNinshoShokaiReqRslt(inMap);

		// 実行結果
		return result;

	}

	/**
	 * 外部API呼出処理(WebID認証照会依頼処理)です。
	 * 
	 * <br>
	 * @param bean サービスフォームBean
	 * @return 処理結果コード
	 */
	private String callOutApiForWebId(X31SDataBeanAccess bean)
	{
		// 現在のＷｅｂＩＤ
		String nowWebId = bean.sendMessageString(FUW08801SFConst.NOW_WEB_ID, X31CWebConst.DATABEAN_GET_VALUE);
		// 現在のＷｅｂＩＤパスワード
		String nowWebIdPwd = bean.sendMessageString(FUW08801SFConst.NOW_WEB_ID_PWD, X31CWebConst.DATABEAN_GET_VALUE);

		String[] param =
				{ JFUWebCommon.getApplicationConst(JFUStrConst.REMOTE_CMD_NM),
						JFUWebCommon.getApplicationConst(JFUStrConst.REMOTE_CMD_OP1),
						JFUWebCommon.getApplicationConst(FU_C_FUIFE007_PARAM1), nowWebId, nowWebIdPwd,
						JFUWebCommon.getApplicationConst(JFUStrConst.REMOTE_CMD_OP2), JFUWebCommon.getApplicationConst(FU_C_WWW_ENV) };

		// 外部コマンド実行標準出力格納
		StringBuffer outPut = new StringBuffer();

		// 外部コマンド実行処理
		String execSyncCode =
				JFUWebCommon.execSync(param, outPut, Integer.parseInt(JFUWebCommon.getApplicationConst(JFUStrConst.REMOTE_EXEC_TIME_OUT)));

		// 外部コマンド実行結果
		if (!SUCCESS.equals(execSyncCode) || 0 == outPut.length())
		{
			// "0102"（システムエラー）
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		// 出力結果をListに詰め直す。
		List<String> resultList = Arrays.asList(delKaigyo(outPut.toString()).split(JFUStrConst.HALF_SPACE, 0));
		
		if (null == resultList || 0 == resultList.size())
		{
			// "0102"（システムエラー）
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}
		// 実行結果
		return resultList.get(0);

	}
	
	/**
	 * 改行コードを除去し返却します。
	 * 
	 * <br>
	 * @param str 文字列
	 * @return 改行コードを除去した文字列
	 */
	private String delKaigyo(String str)
	{
		// 入力パラメータ検査
		if (str == null)
		{
			return JFUStrConst.EMPTY;
		}

		// 出力用領域
		String outPutStr = str;

		// 改行コードを空文字に変換
		outPutStr = outPutStr.replace(JFUStrConst.RETURN_CODE, JFUStrConst.EMPTY).replace(JFUStrConst.S_LINE_SEPARAOR_LF, JFUStrConst.EMPTY);

		// 文字列を返却
		return outPutStr;
	}

}
