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 | ○ | 참고1 |
E | A | ○ | 참고1 |
E | R | ○ | 참고1 |
GE | C | ○ | - |
GE | M | ○ | 참고2 |
GE | A | ○ | 참고2 |
GE | R | ○ | 참고2 |
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
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", "이름"); rowMapList.add(tempMap); tempMap = new HashMap<String, Object>(); tempMap.put("EMPNO", 1102); tempMap.put("ENAME", "test2"); rowMapList.add(tempMap); tempMap = new HashMap<String, Object>(); tempMap.put("EMPNO", 1103); tempMap.put("ENAME", "test3"); rowMapList.add(tempMap); tempMap = new HashMap<String, Object>(); tempMap.put("EMPNO", 1104); tempMap.put("ENAME", "test4"); rowMapList.add(tempMap); ctx.put("sdd_result", rowMapList); Map<String, Object> tempMap1 = new HashMap<String, Object>(); tempMap1.put("CRUD", "R" ); ctx.put("CRUD", tempMap1);
1, E, TRANSACTION_CODE, 8 2, E, DEPTNO, 2 3, E, DNAME, 14 4, E, DLOC, 13 5, E, DDATE, 14 6, G, EMPSET, 3 7, GE, EMPNO, 4 8, GE, ENAME, 10 9, GE, CRUD, 1
attr-1 C|MSGFW003 attr-2 M|DEPTNO attr-3 R|sdd_result@ENAME attr-4 M|DLOC attr-5 S attr-6 A|sdd_result attr-7 R|sdd_result@EMPNO attr-8 R|sdd_result@ENAME attr-9 H|CRUD@CRUD
MSGFW00310이름 bc001 abc001 201603041743361101이름 R1102test2 R1103test3 R