※ 기 생성 된 인터페이스를 복사 붙여넣기 후 어댑터 수정하는 방안
- 조건
- 하나의 인터페이스는 생성 되어 있어야 가능 (복사할 템플릿 인터페이스)
- 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:copyNodesHEADERBODYnodes com.wm.data.IDatasource Template.IF_0001node_pkg Templatetarget IF_0001targetpkg DefaultupdateInternalRefs java.lang.Boolean trueallOldNewNamePairTemplate.IF_0001.adptIF_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_UpdateTemplate.IF_0001:svc_IF_0001 IF_0001:svc_IF_0001MSGTYPETTLjava.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.1User-Agent: webMethodsHost: 192.168.1.218:5555Authorization: Basic QWRtaW5pc3RyYXRvcjptYW5hZ2U=Cookie: ssnid=e5a5a990e473468c838dcd867f3843b4Content-Type: application/x-wmidatabinAccept-Language: ko-KRContent-Length: 670com.wm.data.ISMemDataImplUUID 32073e2a466947c48e20738efe1ff659COMMAND!wm.server.ns.dependency:moveNodesHEADERBODYupdateReferences java.lang.Boolean falsenodes com.wm.data.IDataoldName IF_0001.adpt:IF_0001_Insertnode_pkg DefaultnewName IF_0001.adpt:IF_0002_InserttargetpkgMSGTYPETTLjava.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.1User-Agent: webMethodsHost: 192.168.1.218:5555Authorization: Basic QWRtaW5pc3RyYXRvcjptYW5hZ2U=Cookie: ssnid=e5a5a990e473468c838dcd867f3843b4Content-Type: application/x-wmidatabinAccept-Language: ko-KRContent-Length: 3452com.wm.data.ISMemDataImplUUID 86f4b430b9734075b729a82522c2a721COMMAND-wm.art.metadata:setServiceSignaturePropertiesHEADERBODYserviceNameIF_0001.adpt:IF_0001_InserttemplatePropertiestables.tableIndexesjava.lang.Stringtables.catalogNamepostgrestables.schemaName<current schema>tables.tableNametest_table_upserttables.tableTypeTABLEtables.columnInfo|user_id\nvarchar(8) NOT NULL\n12\n1\n"\nusername\nvarchar(50) NOT NULL\n12\n2\n"\nemail\nvarchar(50) NOT NULL\n12\n3\n"\ntables.realSchemaNamepublicupdate.columnupdate.columnTypeupdate.JDBCTypeupdate.expressionupdate.inputColumnupdate.inputColumnTypeupdate.inputJDBCTypeupdate.inputFieldupdate.inputFieldTypeupdate.queryTimeOut-1result.resultFieldresult.resultFieldTypejava.lang.IntegeruseridoverrideCredentials.$dbUseruseridTypeinputUseridSignOpasswordoverrideCredentials.$dbPasswordpasswordTypeinputPasswordSignUdesignTimeLocaleko_KRinputRecordDef node_typerecordnode_subtypeunknown is_publicfalsefield_namefield_typea field_dim0 field_optwrapper_typenillabletruefield_xmlnsform_qualifiede is_globalerec_fieldscom.wm.data.IData`abcdefIF_0001_InsertInputhajklnpqrtevexz`abcdefoverrideCredentialshajklnpqrtevexz`cbcdef$dbUserhstringjklnpqrteve`cbcdef$dbPasswordhÀjklnpqrteverec_closedrec_sync_desschemaRegisteredmodifiableqschemaCompliantelementWrapperwrappedElementëíïñqóõ÷`abcdef$connectionNamehÀjklqnperteveëíïñqóõ÷outputRecordDef`abcdefhajklnpqrtevexz`abcdefIF_0001_InsertOutputhajklnpqrtevexzëíïñqóõ÷ëíïñqóõ÷metadataVersionMSGTYPETTLjava.lang.Long180000