Home >> SmartFactory NonUI +- 1. 파생항목 +- 2. 메시지생성 +- 3. Send TC to Kafka +- 4. Skip TC |
GlueMessageCreate는 reuse Activity로써 parser된 Message결과를 이용하여 새로운 Message TC 혹은 File을 만드는 역활을 한다.
새로운 GlueMessage객체를 생성하기 위하여 GlueCreateMessage Activity의 Attribute를 이용하여 해당 객체를 생성한다.
생성된 GlueMessage객체를 이용하여 새로운 생성하고자 하는 Message는 LayoutManager에 정의되어 있는 Layout을 근거로 message를 String을 생성하거나 File을 생성한다.
그림 : GlueMessageCreate reuse Activity 화면 |
<activity name="GlueMessageCreate" class="com.posco.reuse.activity.GlueMessageCreate"> <transition name="success" value="end"/> <property name="attr-cnt" value="8"/> <property name="attr-1" value="C|MSGFW002"/> <property name="attr-2" value="M|DEPTNO"/> <property name="attr-3" value="R|sdd_result@ENAME"/> <property name="attr-4" value="M|DLOC"/> <property name="attr-5" value="A|sdd_result"/> <property name="attr-6" value="R|sdd_result@EMPNO"/> <property name="attr-7" value="R|sdd_result@ENAME"/> <property name="attr-8" value="M|CRUD"/> <property name="layout" value="layoutManager"/> <property name="msg-id" value="MSGFW002"/> <property name="file-name" value="posco_createMessage.dat"/> <property name="msg-type" value="file"/> <property name="msgmulti-type" value="multi"/> <property name="result-key" value="posco_createMessage"/> </activity>
properties명 | 설명 | 사용 예 |
---|---|---|
class | com.posco.reuse.activity.GlueMessageCreate | - |
layout | (필수) applicationContext.xml의 GlueLayoutManager bean id. | layoutManager, xmlLayoutManager, dbLayoutManager |
msg-id | (필수) 새로운 layout으로 만들고자 하는 TC ID | MSGFW002, MSGFW003 |
msg-type | (필수) TC 혹은 File로 만들 경우는 선택 한다. | TC일 경우 'tc', File일 경우 'file' |
attr-cnt | (필수) 새로 만들어질 TC의 Layout에 attribute의 갯수 | - |
attr-1 ~ n | (필수) 새로 만들어질 TC의 Layout에 attribute의 값 | C|MSGFW002, M|DEPTNO, R|sdd_result@EMPNO, 상세 |
file-name | (선택) msg type이 파일일 경우의 파일 이름 | posco_createMessage.dat |
msgmulti-type | (선택) 한개의 전문의 대해서 다수의 전문을 사용할 경우 | 한개일 경우 'single' 다수일 경우 'multi' (default : 'single') |
charset | (선택) Create Message의 ParseType이 byte 일 경우 사용됨. 고정값. | 'UTF-8', 'EUC-KR' |
charset-name | (선택) Create Message의 ParseType이 byte 일 경우 사용됨. 동적값.(GlueContext key) | - |
result-key | (필수) Context에 Map형태로 결과를 담을 Key.(TC경우 Map<String, List <String > >, file경우 해당 파일 경로 ) | - |
type | 이름 | 설명 | 사용 예 |
---|---|---|---|
C | CONSTANT | 상수를 설정할 경우 | C|MSGFW002 : (type|value) |
M | MESSAGE | Message객제에서 데이터를 가지고 설정할 경우 | M|EMPNO : (type|Message key) |
S | SYSTEMDATE | system Date를 설정할 경우 | S : (type) |
H | HASH | GlueContex의 Hash Map의 데이터를 가지고 설정할 경우 | H|dataMap@EMPNO : (type|ctx_key@Map_key) |
P | PARAMETER | GlueContex의 데이터를 가지고 설정할 경우 | P|dataMap : (type|ctx_key) |
A | ARRAY | GlueContex의 ArrayList의 데이터를 가지고 설정할 경우 | A|sdd_result@2 : (type|ctx_key@idx) |
R | ROW | GlueContex의 ArrayList<Map>의 데이터를 가지고 설정할 경우 | R|sdd_result@EMPNO@2 : (type|ctx_key@Map_key@idx) |
<activity name="GlueMessageCreate" class="com.posco.reuse.activity.GlueMessageCreate"> <transition name="success" value="end"/> <property name="attr-cnt" value="8"/> <property name="attr-1" value="C|MSGFW002"/> <property name="attr-2" value="M|DEPTNO"/> <property name="attr-3" value="R|sdd_result@ENAME"/> <property name="attr-4" value="M|DLOC"/> <property name="attr-5" value="A|sdd_result"/> <property name="attr-6" value="R|sdd_result@EMPNO"/> <property name="attr-7" value="R|sdd_result@ENAME"/> <property name="attr-8" value="M|CRUD"/> <property name="layout" value="layoutManager"/> <property name="msg-id" value="MSGFW002"/> <property name="msg-type" value="tc"/> <property name="msgmulti-type" value="multi"/> <property name="result-key" value="posco_createMessage"/> </activity>
glue.propertiese 파일의 "reuse.msg.file.path"를 추가 한다.
예) reuse.msg.file.path=C:/data/test/
<activity name="GlueMessageCreate" class="com.posco.reuse.activity.GlueMessageCreate"> <transition name="success" value="end"/> <property name="attr-cnt" value="8"/> <property name="attr-1" value="C|MSGFW002"/> <property name="attr-2" value="M|DEPTNO"/> <property name="attr-3" value="R|sdd_result@ENAME"/> <property name="attr-4" value="M|DLOC"/> <property name="attr-5" value="A|sdd_result"/> <property name="attr-6" value="R|sdd_result@EMPNO"/> <property name="attr-7" value="R|sdd_result@ENAME"/> <property name="attr-8" value="M|CRUD"/> <property name="layout" value="layoutManager"/> <property name="msg-id" value="MSGFW002"/> <property name="file-name" value="posco_createMessage.dat"/> <property name="msg-type" value="file"/> <property name="msgmulti-type" value="multi"/> <property name="result-key" value="posco_createMessage"/> </activity>
File의 encoding 설정은 WAS의 JAVA OPTION의 "file.encoding"에 의해서 결정된다. (default : UTF-8)
Layout Type | Attribute Type | 가능여부 | 비고 |
---|---|---|---|
E | C | ○ | - |
E | M | △ | 입력 데이터가 Collection일 경우 불가능(Exception) |
E | A | △ | 입력 데이터가 Collection일 경우 불가능(Exception) |
E | R | △ | 입력 데이터가 Collection일 경우 불가능(Exception) |
GE | C | X | - |
GE | M | △ | 입력 데이터가 Collection일 경우만 가능 |
GE | A | △ | 입력 데이터가 Collection일 경우만 가능 |
GE | R | △ | 입력 데이터가 Collection일 경우만 가능 |
List<Map<String, Object>> rowMapList = new ArrayList<Map<String,Object>>(); Map<String, Object> tempMap = new HashMap<String, Object>(); tempMap.put("EMPNO", 1101); tempMap.put("ENAME", "test1"); rowMapList.add(tempMap); tempMap = new HashMap<String, Object>(); tempMap.put("EMPNO", 1102); tempMap.put("ENAME", "test2"); rowMapList.add(tempMap); ctx.put("sdd_result", rowMapList); ctx.put("test", "abc");
1, E, DNAME, 4 2, G, EMPSET, 2 3, GE, EMPNO, 4 4, GE, ENAME, 5
arr-1 R|sdd_result@ENAME arr-2 A|ssd_result arr-3 R|sdd_result@EMPNO arr-4 R|sdd_result@ENAME
test11101test 11102test2 test21101test 11102test2