WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Modificar el formato del mensaje

Utilice el nodo Compute para copiar parte de un mensaje de entrada en un mensaje de salida. Los resultados de una copia de este tipo dependen del tipo de analizadores de entrada y salida implicados.

Si está copiando entre analizadores distintos, algunos atributos del mensaje original pueden haberse perdido. Para asegurarse de que se copia cada atributo, copie el mensaje en el mismo analizador.

Analizadores de igual

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

SET OutputRoot.MQMD = InputRoot.MQMD;

Esta sentencia copia todos los hijos de la carpeta MQMD del mensaje de entrada en la carpeta MQMD del mensaje de salida.

Otro ejemplo de estructura de árbol que soporta una copia de analizador igual es:

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

Para transformar un mensaje de entrada del dominio MRM en un mensaje de salida que también esté en el dominio MRM, puede utilizar el nodo Compute o el nodo Mapping. El nodo Mapping puede interpretar la acción que se requiere debido a que conoce el formato de ambos mensajes. La ayuda de contenido del módulo ESQL para el nodo Compute, también puede usar las definiciones de mensajes para estos mensajes. Si los mensajes no están en el mismo espacio de nombres, deberá utilizar el nodo Compute.

Para utilizar el Asistente de contenido con referencias de mensaje, debe configurar una referencia de proyecto desde el proyecto que contiene el ESQL al proyecto que contiene el conjunto de mensajes. Para más información sobre cómo establecer una referencia de proyecto, consulte el tema Añadir y eliminar referencias de biblioteca.

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

Analizadores distintos

Cuando los mensajes de origen y de destino tienen distintas estructuras de carpeta a nivel de raíz, no se puede efectuar una copia exacta del origen del mensaje. En vez de esto, la copia de analizador distinto ve el mensaje de origen como un conjunto de carpetas anidadas terminadas por una pareja nombre-valor final. Por ejemplo, copiando el siguiente mensaje de XML a MRM:

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

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

La copia de analizador distinta explora el árbol de origen y copia carpetas, conocidas también como elementos de nombres, y pares de nombre-valor finales. Todo lo demás, incluidos los elementos indicados como especiales por el analizador de origen, no se copia.

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

SET OutputRoot.DFDL.Data.Account = InputRoot.XMLNSC.Data.Account;

Si el algoritmo usado para realizar una copia de analizador distinto no es adecuado para la estructura de árbol, debe calificar posteriormente el campo de origen para limitar la cantidad de árbol que se copia.

Tenga cuidado al copiar información de mensajes de entrada en mensajes de salida de dominios distintos. Se puede codificar ESQL que cree una estructura o contenido de mensajes que no sea coherente con las normas del analizador que procesa el mensaje de salida. Esta acción puede hacer que no se cree un mensaje de salida o que se cree con un contenido inesperado. Si cree que el mensaje de salida generado por un flujo de mensajes determinado no tiene el contenido correcto o el formato correcto, compruebe el ESQL que crea el mensaje de salida y busque posibles discrepancias en la estructura, tipos de campos y valores de campos.

Cuando copie árboles entre analizadores distintos, es posible que tenga que establecer los campos MessageSet, MessageType y MessageFormat en la carpeta Propiedades de salida. Qué campos deben establecerse depende del analizador de destino. Por ejemplo, si el analizador de destino es MRM y el conjunto de mensajes se ha definido con un formato CWF, se necesitarán los mandatos siguientes para poder copiar un cuerpo de mensaje que haya creado el analizador XMLNSC en un cuerpo que pertenezca al analizador MRM:
-- Copiar el mensaje en la salida, moviendo de los dominios XMLNSC a MRM
SET OutputRoot.MRM = InputRoot.XMLNSC.rootElement;
		
-- Establecer el formato CWF para salida mediante el dominio MRM
SET OutputRoot.Properties.MessageType = '<MessageTypeName>';
SET OutputRoot.Properties.MessageSet = '<MessageSetName>';
SET OutputRoot.Properties.MessageFormat = 'CWF';	
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última actualización:
        
        Última actualización: 2015-02-28 16:58:23


Tema de tareaTema de tarea | Versión 8.0.0.5 | ac11610_