Alterando o Formato da Mensagem

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.

Analisadores Semelhantes

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 desejar transformar uma mensagem de entrada no domínio MRM para uma mensagem de saída também no domínio MRM, você poderá utilizar o nó Compute ou o nó Mapping. O nó Mapping pode interpretar a ação que é requerida porque ele conhece o formato das duas mensagens. O Assistente de Conteúdo no módulo ESQL para o nó Compute também pode utilizar as definições de mensagens para essas mensagens. Se as mensagens não estiverem no mesmo espaço de nomes, será necessário utilizar o nó Compute.

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.

Analisadores Diferentes

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.

Conceitos relacionados
Fluxos de Mensagem
Analisadores
Mapeamentos
ESQL
Modelagem de Mensagens

Tarefas relacionadas
Projetando um Fluxo de Mensagens
Definindo o Conteúdo do Fluxo de Mensagens
Gerenciando Arquivos ESQL

Referências relacionadas
Nó Compute
ESQL
Instrução SET