※ 기 생성 된 인터페이스를 복사 붙여넣기 후 어댑터 수정하는 방안

  • 조건
    • 하나의 인터페이스는 생성 되어 있어야 가능 (복사할 템플릿 인터페이스)
    • Source 와 Target 의 Mapping 필드가 동일할 때 사용 (Map은 수정하지 않음)
    • modeExists, isNameValid 등 예외 조건 생각하지 않고 테스트





  • STEP 1. 인터페이스 복사 & 붙여넣기
    • wm.server.ns.dependency:copyNodes
    • wireshark 분석 (인터페이스 Copy And Paste)
com.wm.data.ISMemDataImplUUID 84ee5c1d55d144af921a73661999583bCOMMAND
!wm.server.ns.dependency:copyNodes
HEADERBODY
nodes com.wm.data.IData
source Template.IF_0001
node_pkg Template
target IF_0001
targetpkg Default
updateInternalRefs java.lang.Boolean true
allOldNewNamePair
Template.IF_0001.adpt
IF_0001.adpt$ Template.IF_0001.adpt:IF_0001_Insert IF_0001.adpt:IF_0001_Insert
$ Template.IF_0001.adpt:IF_0001_Select IF_0001.adpt:IF_0001_Select
$ Template.IF_0001.adpt:IF_0001_Update IF_0001.adpt:IF_0001_Update
Template.IF_0001:svc_IF_0001 IF_0001:svc_IF_0001
MSGTYPETTL
java.lang.Long180000

    • Service In 분석
      • nodes/source : Copy 할 대상, 템플릿으로 생성한 인터페이스 폴더를 선택
      • nodes/node_pkg : Copy 할 대상이 있는 최상위 Package 명
      • nodes/targetpkg : Paste 할 최상위 Package 명
      • nodes/target : Paste 할 폴더 명 (임의로 수정 가능 IF_0001, IF_0002 등)
      • allOldNewNamePair : Optional 파라미터, 확인 불가능
        • 입력값 확인 필요 (node Name 변경하는 듯 해보임)
      • updateInternalRefs : wireshark 에 따라 true 로 설정, 확인필요


  • STEP 2. 복사 된 Node의 이름 변경
    • wm.server.ns.dependency:moveNodes
    • wireshark 분석 (인터페이스 이름 변경)
EÍÀ-@@À¨KÀ¨ÚéD³ÿØ¢'o{Pý5POST /wm-message HTTP/1.1
User-Agent: webMethods
Host: 192.168.1.218:5555
Authorization: Basic QWRtaW5pc3RyYXRvcjptYW5hZ2U=
Cookie: ssnid=e5a5a990e473468c838dcd867f3843b4
Content-Type: application/x-wmidatabin
Accept-Language: ko-KR
Content-Length: 670
com.wm.data.ISMemDataImplUUID 32073e2a466947c48e20738efe1ff659COMMAND!
wm.server.ns.dependency:moveNodes
HEADERBODY
updateReferences java.lang.Boolean false
nodes com.wm.data.IData
oldName IF_0001.adpt:IF_0001_Insert
node_pkg Default
newName IF_0001.adpt:IF_0002_Insert
targetpkg
MSGTYPETTL
java.lang.Long180000

    • Service In 분석
      • node_pkg : 이름을 변경할 node 의 package 명
      • oldName : 이름 변경할 Node 의 Full Name
      • newName : 변경 이름 입력


[테스트 & 결과]







  • STEP 3. 생성 된 Adapter Service 의 JDBC Connection 수정
    • Source 시스템, Target 시스템 수정 목적
    • pub.art.service:setAdapterServiceNodeConnection 사용 (Built-in-service)

    • Service In 분석
      • serviceName : Adapter Service 의 Full Path
      • connectionAlias : 변경 할 IS 서버에 생성되어 있는 Connection Alias 명 (Full Name)


문제점 : I/F (Flowservice) 안 Adapter 서비스 경로, References 가 반영이 안됨 (복사 전 Reference)
copyNodes > allOldNewNamePair 에 값을 입력해야 할 듯 한데, 어떤값인지.. wireshark로 알 수 없음






  • STEP 3. Adapter Service (DynamicSQL) 의 SQL 쿼리문 변경 (ㅜㅜ)

E¤@@À¨KÀ¨ÚÍܳ göÔûÿmP|POST /wm-message HTTP/1.1
User-Agent: webMethods
Host: 192.168.1.218:5555
Authorization: Basic QWRtaW5pc3RyYXRvcjptYW5hZ2U=
Cookie: ssnid=e5a5a990e473468c838dcd867f3843b4
Content-Type: application/x-wmidatabin
Accept-Language: ko-KR
Content-Length: 3452
com.wm.data.ISMemDataImplUUID 86f4b430b9734075b729a82522c2a721COMMAND
-wm.art.metadata:setServiceSignatureProperties
HEADERBODYserviceNameIF_0001.adpt:IF_0001_InserttemplatePropertiestables.tableIndexes
java.lang.Stringtables.catalogName
postgrestables.schemaName
<current schema>tables.tableName
test_table_upserttables.tableType
TABLEtables.columnInfo
|user_id\nvarchar(8) NOT NULL\n12\n1\n"\n
username\nvarchar(50) NOT NULL\n12\n2\n"\n
email\nvarchar(50) NOT NULL\n12\n3\n"\n
tables.realSchemaName
public
update.column
update.columnType
update.JDBCType
update.expression
update.inputColumn
update.inputColumnType
update.inputJDBCType
update.inputField
update.inputFieldType
update.queryTimeOut-1result.resultFieldresult.resultFieldTypejava.lang.IntegeruseridoverrideCredentials.$dbUser
useridTypeinputUseridSignOpasswordoverrideCredentials.$dbPasswordpasswordTypeinputPasswordSignUdesignTimeLocaleko_KRinputRecordDef node_typerecordnode_subtypeunknown is_publicfalse
field_name
field_typea field_dim0 field_optwrapper_typenillabletruefield_xmlnsform_qualifiede is_globale
rec_fields
com.wm.data.IData`abcdefIF_0001_InsertInputhajklnpqrtevex
z`abcdefoverrideCredentialshajklnpqrtevex
z`cbcdef$dbUserhstringjklnpqrteve`cbcdef$dbPasswordhÀjklnpqrteve
rec_closedrec_sync_desschemaRegistered
modifiableqschemaCompliantelementWrapperwrappedElementëíïñqóõ÷`abcdef$connectionNamehÀjklqnperteveëíïñqóõ÷outputRecordDef`abcdefhajklnpqrtevex
z`abcdefIF_0001_InsertOutputhajklnpqrtevex
zëíïñqóõ÷ëíïñqóõ÷metadataVersionMSGTYPETTL
java.lang.Long180000