/*******************************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JEDKA0010003TPMA
*	ソースファイル名：JEDKA0010003TPMA.java
*	作成者			：富士通
*	日付			：2012年03月01日
*＜機能概要＞
*	機器出荷情報更新用独自処理部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*	ｖ32.00.00  2017/05/26  FJ)河邊     【OM-2017-0000488】オープンカーソルエラー
*
********************************************************************************/
package eo.ejb.cbs.mainproc;

import static eo.ejb.common.JDKModelCommon.msgToMap;
import static eo.ejb.common.JDKModelCommon.transportErrorRecord;
import static eo.ejb.common.JDKModelCommon.transportStatus;

import java.sql.Connection;
import java.util.Map;

import com.fujitsu.futurity.model.base.CAANConnectionMgr;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.base.CAANRuntimeException;
import com.fujitsu.futurity.model.ejb.common.JSYejbConnection;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;
import com.fujitsu.futurity.model.ejb.common.fw.TemplateMainHandler;

import eo.ejb.cbs.cbsmsg.EDKA0010003CBSMsg;
import eo.ejb.common.JDKCtrlTnInfo;

/**
 * 機器出荷情報更新
 * @author FJ
 */
public class JEDKA0010003TPMA implements TemplateMainHandler
{
	/**
	 * コンストラクタです。
	 */
	public JEDKA0010003TPMA() 
	{
		
	}
	
	/**
	 * コマンド実行部品用
	 * @param inCBSMsg
	 * @param inContext
	 */
	@SuppressWarnings("unchecked")
	public static void ctrlTnInfo(CAANMsg inCBSMsg, AgentDispatchContext inContext) 
	{
		// IN項目に値を設定
		Map<String, Object > serviceMap = msgToMap(inCBSMsg, EDKA0010003CBSMsg.class);

		// 宅内機器コマンド発行部品のスタブ用
		JDKCtrlTnInfo instance = JDKCtrlTnInfo.getInstance();
		instance.setInContext(inContext);
		
		// テーブルのコネクションを取得して、部品に受け渡しを行う。
		Connection con = JSYejbConnection.getConnection("TK_T_TK");
		instance.setConnection(con);
		
		try 
		{
			// 宅内機器連携部品を呼び出す。
			Map ret = instance.ctrlTnInfo_DKA0003(serviceMap);
			if ( transportStatus(inCBSMsg, ret) > 0 )
			{
				transportErrorRecord(inCBSMsg, ret, EDKA0010003CBSMsg.EDKA0010003CBSMSG1LIST, EDKA0010003CBSMsg.EDKA0010003CBSMSG1LIST);
				return;
			}
		}
		catch(Exception e) 
		{
			throw new CAANRuntimeException(e);
		}
// OM-2017-0000488 2017/05/26 ADD START
		finally
		{
			// 資源の解放
			if (con != null)
			{
				CAANConnectionMgr.getInstance().close(con);
			}
		}
// OM-2017-0000488 2017/05/26 ADD END
	}
}
