/*******************************************************************************
* All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
* システム名        ：eo顧客基幹システム構築
* モジュール名      ：JECR0011C110TPMA
* ソースファイル名  ：JECR0011C110TPMA.java
* 作成者            ：富士通
* 日付              ：2011年08月06日
*＜機能概要＞
* 対応記録エスカレーション開始（ユーザー）顧客独自処理部品クラス
*＜修正履歴＞
* バージョン    修正日      修正者      修正内容
* ｖ1.00.00
*
********************************************************************************/

package eo.ejb.cbs.mainproc;

import com.fujitsu.futurity.model.base.CAANException;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;
import com.fujitsu.futurity.model.ejb.common.fw.TemplateMainHandler;

import eo.ejb.cbm.entity.CR0101ETMsg;
import eo.ejb.cbs.cbsmsg.ECR0011C110CBSMsg;
import eo.ejb.common.db.JCRejbCR0101SecProc;

/**
 * <p>
 * 対応記録エスカレーション開始（ユーザー）顧客独自処理部品クラスです。
 * </p>
 * @author 富士通
 */

public class JECR0011C110TPMA implements TemplateMainHandler 
{
	/**
	 * コンストラクタです。
	 */
	public JECR0011C110TPMA()
	{
		super();
	}
	
	/**
	 * <p>
	 * 対応記録エスカレーション開始(ユーザー)顧客独自処理部品クラスです。
	 * </p>
	 * @param inCBSMsg 概念スキーマのCBSメッセージ
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @throws CAANException 
	 */
	
	public static void invoke(CAANMsg inCBSMsg, AgentDispatchContext inContext) throws CAANException
	{

		// -------------------------------------------------- //
		// MYBOX副次処理部品呼出処理
		// -------------------------------------------------- //
		// (1)MYBOXのETメッセージを生成
		CAANMsg cr0101ETMsg = new CAANMsg((CR0101ETMsg.class.getName()));

		// 概念スキーマのCBSメッセージからMYBOXのETメッセージに更新値をコピーする
		cr0101ETMsg.set(CR0101ETMsg.UPD_OPEACNT, inCBSMsg.getString(ECR0011C110CBSMsg.OPERATORID));
		// CBSメッセージから対応ユーザーIDを取得(MYBOXの検索条件となる)
		String userID = inCBSMsg.getString(ECR0011C110CBSMsg.TAIO_USER_ID);

		// (2)MYBOX副次処理部品を呼出し、MYBOX（エスカレーション元ユーザー）の現在格納数をマイナス1する
		new JCRejbCR0101SecProc().calculateMyboxKakunosu(inCBSMsg, inContext, cr0101ETMsg, userID, -1);

		// (3)概念スキーマのCBSメッセージからMYBOXのETメッセージに更新値をコピーする
		cr0101ETMsg.set(CR0101ETMsg.UPD_OPEACNT, inCBSMsg.getString(ECR0011C110CBSMsg.OPERATORID));
		// CBSメッセージからエスカレーション先ユーザーIDを取得(MYBOXの検索条件となる)
		String esklSakiUserID = inCBSMsg.getString(ECR0011C110CBSMsg.ESCLA_SAKI_USER_ID);

		// (4)MYBOX副次処理部品を呼出し、MYBOX（エスカレーション先ユーザー）の現在格納数をプラス1する
		new JCRejbCR0101SecProc().calculateMyboxKakunosu(inCBSMsg, inContext, cr0101ETMsg, esklSakiUserID, 1);
	}
}
