Cambio de formato de mensaje

Utilice el nodo Compute para copiar parte de un mensaje de entrada en un mensaje de salida. El resultado de dicha copia depende del tipo de analizadores de entrada y de salida involucrados en el proceso.

Analizadores iguales

Cuando los mensajes de origen y destino tienen la misma estructura de carpeta a nivel de directorio raíz, se lleva a cabo una copia de analizador igual. Por ejemplo:

SET OutputRoot.MQMD = InputRoot.MQMD;

copia todos los elementos dependientes de la carpeta MQMD del mensaje de entrada en la carpeta MQMD del mensaje de salida.

Otro ejemplo de una estructura de árbol que da soporte a una copia de analizador igual (like) es:

SET OutputRoot.XML.Data.Account = InputRoot.XML.Customer.Bank.Data;

Si desea transformar un mensaje de entrada en el dominio MRM en un mensaje de salida en el dominio, puede utilizar el nodo Compute o Mapping. El nodo Mapping puede interpretar la acción requerida porque conoce el formato de los dos mensajes. El asistente de contenido en el módulo ESQL para el nodo Compute también puede utilizar las definiciones de mensajes para dichos mensajes. Si los mensajes no están en el mismo espacio de nombres, debe utilizar el nodo Compute.

Si ni los mensajes de entrada ni los mensajes de salida están en el dominio MRM, debe utilizar el nodo Compute y especificar la estructura de los mensajes.

Analizadores distintos

En el lugar en que los mensajes de origen y destino tienen distintas estructuras de carpetas a nivel de directorio raíz, no se puede realizar una copia exacta del origen de mensajes. En su lugar, la copia de analizadores distintos visualiza el mensaje de origen como un conjunto de carpetas anidadas terminadas por un par nombre-valor de elementos sin secundarios. Por ejemplo, al copiar el siguiente mensaje de XML en MRM:

<Name3><Name31>Value31</Name31>Value32</Name3>

produce un elemento denominado Name3 y un elemento de nombre-valor denominado Name31 con el valor Value31. El segundo XML pcdata (Value32) no puede representarse y se descarga.

La copia de analizador distinto explora el árbol de origen y copia carpetas, conocidas también como elementos de nombre y pares de nombre-valor sin secundarios. No se copia nada de lo demás, incluidos los elementos señalados con el distintivo special por el analizador de origen.

Un ejemplo de una estructura de árbol que produce una copia de analizador distinto es:

SET OutputRoot.MRM.Data.Account = InputRoot.XML.Data.Account;

Si el algoritmo utilizado para hacer una copia de analizador no es adecuado para su cal estructura de árbol, es posible que sea necesario calificar más el campo de origen para restringir la cantidad del árbol copiada.

Preste atención al copiar información de mensajes de entrada en mensajes de salida de distintos dominios. Es posible escribir código ESQL que cree una estructura o contenido de mensaje que no sea totalmente coherente con las normas del analizador que procesará el mensaje de salida. Esto puede ocasionar que no se cree un mensaje de salida, o que se cree con un contenido inesperado. Si piensa que el mensaje de salida generado por un flujo de mensajes concreto no contiene el contenido correcto, o tiene el formato esperado, compruebe el ESQL que crea el mensaje de salida y busque si hay posibles discrepancias en la estructura, tipos de campo, nombres de campo y valores de campo.

Conceptos relacionados
Flujos de mensajes
Analizadores
Correlaciones
ESQL
Diseño de mensajes

Tareas relacionadas
Diseño de un flujo de mensajes
Definición del contenido del flujo de mensajes
Gestión de archivos ESQL

Referencia relacionada
Nodo Compute
ESQL
Sentencia SET