com.poscoict.glueframework.biz.activity
Class GlueMessageParse

java.lang.Object
  extended by com.poscoict.glueframework.biz.activity.GlueActivity<GlueContext>
      extended by com.poscoict.glueframework.biz.activity.GlueMessageParse

public class GlueMessageParse
extends GlueActivity<GlueContext>

MessageParse Activity. GlueMessageParse Activity는 TC(String) 또는 File에 담긴 TC(String) 를 Layout으로 Parse하여 GlueMessage Instance를 생성하는 기능을 수행한다.

 사용 예
 - case 1  : 최소사용
 <activity name="Parse" class="com.poscoict.glueframework.biz.activity.GlueMessageParse">
     <transition name="success" value="SetMessageKey" />
     <property name="layout" value="layout" />
 </activity>
 
 
 
 - case 2  : message-id 가 수신Data["ReceiveTC"] 에서 추출하는 것과 다를 경우
 <activity name="Parse" class="com.poscoict.glueframework.biz.activity.GlueMessageParse">
     <transition name="success" value="SetMessageKey" />
     <property name="layout" value="layout" />
     <property name="message-id" value="MSGFW001" />
 </activity>
 
 
 
 - case 3  : message-id 가 주어지지 않아 수신Data["ReceiveTC"] 에서 추출해야하는 경우.
 <activity name="Parse" class="com.poscoict.glueframework.biz.activity.GlueMessageParse">
     <transition name="success" value="SetMessageKey" />
     <property name="layout" value="layout" />
     <property name="id-length" value="8" />
 </activity>
 
 
 
 - case 4  : charset-name 사용시.. ctx.get(this.getProperty("charset-name")) 의 값이 사용됨. 
 <activity name="Parse" class="com.poscoict.glueframework.biz.activity.GlueMessageParse">
     <transition name="success" value="SetMessageKey" />
     <property name="layout" value="layout" />
     <property name="charset-name" value="ctx-key" />
 </activity>
 
 
 
 - case 5  : charset 사용시 activity property value가 사용됨. 
 <activity name="Parse" class="com.poscoict.glueframework.biz.activity.GlueMessageParse">
     <transition name="success" value="SetMessageKey" />
     <property name="layout" value="layout" />
     <property name="charset" value="UTF-8" />
 </activity>
 
 
 
 
 
 Property 설정
 - layout : (필수) applicationContext.xml의 layout manager bean id.
      <bean id="layout" class="com.poscoict.glueframework.message.layout.GlueXmlMessageLayout"/>
      또는
      <bean id="layout" class="com.poscoict.glueframework.message.layout.GlueDBMessageLayout">
          <property name="dao" ref="masterdao"/>
          <property name="queryId" value="get_msg_layout_query"/>
      </bean>
 
 - message-id : (선택) msg key. layout/{message-id}-msg.xml 참고 근거. 
      [ default ]
      String s = (String)ctx.get("ReceiveTC"); 
      String msg_id = s.substring(0, id_length);
  
 - id-length : (선택) "ReceiveTC"에 해당하는 String의 substring 기준. message-id가 정의되어 있는 경우, id-length는 사용되지 않음. 
          [ default ] : 8
          MSGFW001-msg.xml  
          <?xml version="1.0" encoding="EUC-KR"?>
          <msgs>
            <msg id="MSGFW001" name="DEPT">
              <attribute type="E" seq="1" id="TRANSACTION_CODE" name="TransactionCode" datatype="STRING" length="8" precision="" />
              ....
            </msg>
          </msgs>
 
 - charset : (선택) ParseType이 byte 일 경우 사용됨. 고정값. 
 
 - charset-name : (선택) ParseType이 byte 일 경우 사용됨. 동적값.
  
 
 
 기타
 Context에 "ReceiveTC" 를 key로 TC가 저장 되어 있거나 FileTC 정보가 Context에 있어야 한다.
 interface-type=tc 일경우 [MSGFW001R10aaa           seoul        ]
 interface-type=file 일경우 [/APP/CHAIN/MSGFW002_20130201.dat]
 
 Parse Type 지정 방법:
  별도로 지정하지 않으면 Byte Type으로 parse 한다. 
 1. Glue Property 설정
   a. Java Option에 다음과 같이 glue.properties 파일에 대한 Path를 지정한다. 
      -DCONFIG_PATH=%path%
   b. glue.properties 파일에 다음 항목 추가
      msg.parsing.type=byte(string)
 2. byte parsing시 String을 byte[] 로 Encoding 우선순위는 다음과 같다. 
     charset-name property > charset property > jvm default
 


Field Summary
static int DEFAULT_MSG_ID_LENGTH
           
 
Fields inherited from class com.poscoict.glueframework.biz.activity.GlueActivity
dynamicProperties, logger
 
Constructor Summary
GlueMessageParse()
           
 
Method Summary
 String runActivity(GlueContext ctx)
          Sub Class에서 반드시 구현하여야 하는 Abstract Method 이며 이 Method는 F/W에서 호출한다.
 
Methods inherited from class com.poscoict.glueframework.biz.activity.GlueActivity
commitTransaction, getDao, getEventList, getName, getProperty, getPropertyNames, getTransition, rollbackTransaction, setEventList, setName, setProperty, setTransition
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_MSG_ID_LENGTH

public static final int DEFAULT_MSG_ID_LENGTH
See Also:
GlueHttpReceiverAdapter, Constant Field Values
Constructor Detail

GlueMessageParse

public GlueMessageParse()
Method Detail

runActivity

public String runActivity(GlueContext ctx)
Description copied from class: GlueActivity
Sub Class에서 반드시 구현하여야 하는 Abstract Method 이며 이 Method는 F/W에서 호출한다. 결과 값은 GlueContext에 담아서 다음 Activity 또는 F/W에 전달하게 된다. 필요한 모든 Data는 GlueContext에서 호출하여 사용하게 된다.

Specified by:
runActivity in class GlueActivity<GlueContext>
Parameters:
ctx - GlueContext
Returns:
String 정상적이면 "success"를 Return 하고 비정상 처리를 원하면 "failure"를 Return 한다.
 예) 
 <transition name="success" value="BizLogic"/>
 <transition name="failure" value="ErrorHandle"/>
 ==> return "success"이면 BizLogic Activity 를 실행함.
 


Copyright © 2013–2014 POSCO ICT SW제품기술팀. All rights reserved.