Utilize o nó Compute para copiar parte de uma mensagem de entrada para uma mensagem de saída. Os resultados dessa cópia dependem do tipo de analisadores de entrada e de saída envolvidos.
Onde as mensagens de origem e de destino possuem a mesma estrutura de pasta no nível raiz, é executada uma cópia de analisadores semelhantes.Por exemplo:
SET OutputRoot.MQMD = InputRoot.MQMD;
copia todos os filhos na pasta MQMD da mensagem de entrada para a pasta MQMD da mensagem de saída.
Outro exemplo de uma estrutura de árvore que suporta uma cópia de analisadores iguais é:
SET OutputRoot.XML.Data.Account = InputRoot.XML.Customer.Bank.Data;
Se as mensagens de entrada e de saída não estiverem no domínio MRM, você mesmo deverá utilizar o nó Compute e especificar a estrutura das mensagens.
Quando as mensagens de origem e destino possuírem estruturas de pastas diferentes no nível raiz, não será possível fazer uma cópia exata da origem da mensagem. Em vez disso, a cópia de analisadores diferentes exibe a mensagem de origem como um conjunto de pastas aninhadas finalizadas por um par de nome/valor de folha. Por exemplo, copiar a seguinte mensagem de XML para MRM:
<Name3><Name31>Value31</Name31>Value32</Name3>
produz um elemento de nome Name3 e um elemento de nome-valor denominado Name31 com o valor Value31. O segundo pcdata XML (Value32) não pode ser representado e é descartado.
A cópia de analisadores diferentes varre a árvore de origem e copia pastas, também conhecidas como elementos, e pares de nome/valor de folha. Todo o resto, incluindo elementos sinalizados como especiais pelo analisador de origem, não será copiado.
Um exemplo de uma estrutura de árvore resultando em uma cópia de analisadores diferentes é:
SET OutputRoot.MRM.Data.Account = InputRoot.XML.Data.Account;
Se o algoritmo utilizado para fazer cópia de analisadores diferentes não se ajustar à sua estrutura de árvore, pode ser necessário qualificar ainda mais o campo de origem para restringir a quantidade da árvore copiada.
Tenha cuidado ao copiar informações de mensagens de entrada para mensagens de saída em domínios diferentes. É possível codificar o ESQL que cria uma estrutura da mensagem ou conteúdo que não é totalmente consistente com as regras do analisador que processará a mensagem de saída. Isso pode resultar em uma mensagem de saída não sendo criada ou sendo criada com conteúdo inesperado. Se você achar que a mensagem de saída gerada por um determinado fluxo de mensagens não contém o conteúdo correto ou possui um formato esperado, verifique o ESQL que cria a mensagem de saída e procure possíveis incompatibilidades de estrutura, tipos de campos, nomes de campos e valores de campos.
-- Copiar mensagem para a saída, mudando de domínios XML para MRM SET OutputRoot.MRM = InputRoot.XML; -- Configurar o formato CWF para saída pelo domínio MRM SET OutputRoot.Properties.MessageType = '<MessageTypeName>'; SET OutputRoot.Properties.MessageSet = '<MessageSetName>'; SET OutputRoot.Properties.MessageFormat = 'CWF';