출력 메시지에 입력 메시지 일부를 복사하려면 Compute 노드를 사용하십시오. 그러한 복사 결과는 연관된 입력 및 출력 구문 분석기의 유형에 따라 달라집니다.
루트 레벨에서 소스 메시지와 대상 메시지의 폴더 구조가 동일한 경우에 like-parser-copy가 수행됩니다. 예를 들면, 다음 코드와 같습니다.
SET OutputRoot.MQMD = InputRoot.MQMD;
입력 메시지의 MQMD 폴더에 있는 모든 하위 요소를 출력 메시지의 MQMD 폴더로 복사합니다.
like-parser-copy를 지원하는 트리 구조의 또다른 예는 다음과 같습니다.
SET OutputRoot.XML.Data.Account = InputRoot.XML.Customer.Bank.Data;
입력 및 출력 메시지가 둘 다 MRM 도메인에 들어 있지 않으면, Compute 노드를 사용하여 메시지 자체의 구조를 지정해야 합니다.
루트 레벨에서 소스와 대상 메시지의 폴더 구조가 서로 다른 경우에는 메시지 소스와 동일한 사본을 작성할 수 없습니다. 대신, unlike-parser-copy는 소스 메시지를 리프 이름-값 쌍으로 끝나는 중첩된 폴더 세트로 봅니다. 예를 들면, 다음 메시지를 XML에서 MRM으로 복사하면,
<Name3><Name31>Value31</Name31>Value32</Name3>
이름 요소 Name3과 값이 Value31인 Name31이라는 이름-값 요소가 생성됩니다. 두 번째 XML pcdata(Value32)는 표시될 수 없어 제거됩니다.
unlike-parser-copy는 소스 트리를 스캔하고 이름 요소로도 알려진 폴더와 리프 이름-값 쌍을 복사합니다. 소스 구문 분석기에서 특수로 플래그된 요소를 포함하여 그 나머지는 복사되지 않습니다.
unlike-parser-copy가 수행되는 트리 구조의 예는 다음과 같습니다.
SET OutputRoot.MRM.Data.Account = InputRoot.XML.Data.Account;
unlike-parser-copy를 수행하는 데 사용되는 알고리즘이 트리 구조에 적합하지 않으면, 소스 필드를 추가 규정하여 복사되는 트리의 양을 제한해야 할 수도 있습니다.
입력 메시지에서 다른 도메인에 있는 출력 메시지로 정보를 복사할 때는 주의해야 합니다. 출력 메시지를 처리할 구문 분석기의 규칙과 완전히 일치하지 않는 메시지 구조 또는 컨텐츠를 작성하는 ESQL을 코드화할 수가 있습니다. 그러면 출력 메시지가 작성되지 않거나 예상치 못한 컨텐츠로 작성되는 결과가 나타날 수 있습니다. 특정 메시지 플로우에 의해 생성된 출력 메시지가 올바른 컨텐츠를 포함하지 않거나 예상된 형식을 갖지 않는다고 생각되는 경우, 출력 메시지를 작성하는 ESQL을 점검하고 구조, 필드 유형, 필드 이름 및 필드 값의 잠재적인 불일치를 찾아보아야 합니다.
-- Copy message to the output, moving from XML to MRM domains SET OutputRoot.MRM = InputRoot.XML; -- Set the CWF format for output by the MRM domain SET OutputRoot.Properties.MessageType = '<MessageTypeName>'; SET OutputRoot.Properties.MessageSet = '<MessageSetName>'; SET OutputRoot.Properties.MessageFormat = 'CWF';