Sugerencias y restricciones de la correlación de mensajes

Información para ayudarle a utilizar la correlación de mensajes.

Estas sugerencias presuponen que ya ha creado un nodo Mapping dentro del flujo de mensajes, ha abierto el Editor de correlaciones de mensajes y ha seleccionado un mensaje de origen y uno de destino:

Correlación de un mensaje cuando el origen es una lista y el destino es una lista del origen, pero con una entrada nueva al principio de la lista.

  1. Expanda el destino para visualizar el elemento para el que desea crear una primera instancia nueva. Este puede ser una estructura o un elemento simple.
  2. Pulse el botón derecho del ratón en el elemento y pulse Si. Inmediatamente debajo aparece una línea de condición.
  3. Pulse el botón derecho del ratón en el elemento y pulse Copiar. Vaya a la línea de condición y pulse Pegar. Ahora hay dos entradas en la hoja de cálculo para el elemento.
  4. Establezca la primera de estas entradas en los valores que desee.
  5. Pulse el botón derecho del ratón en la segunda entrada y pulse Para. Aparece una línea for en la hoja de cálculo.
  6. Establezca la segunda entrada en el valor o valores correlacionados desde el origen.
  7. Establezca la entrada for para la condición de bucle.
  8. Pulse For y luego arrastre el campo de origen que representa la condición de bucle al editor de expresiones.

Cambiar el dominio de mensajes de destino

Al crear por primera vez una correlación, debe designar un conjunto de mensajes para el mensaje de destino. El analizador que se asocia al mensaje de salida lo determina la propiedad Dominio de mensajes del conjunto de mensajes. Por ejemplo, la primera vez que se crea un conjunto de mensajes, el dominio de mensajes predeterminado es MRM. Por tanto, el Nodo Mapping genera ESQL con el formato siguiente:
SET OutputRoot.MRM.Fielda...
Si cambia el analizador de ejecución a XMLNSC, por ejemplo, el nodo Mapping genera ESQL con el formato siguiente:
SET OutputRoot.XMLNSC.MessageA.FieldA...
El analizador del mensaje de origen lo determina el contenido de la cabecera MQRFH2 o las propiedades del nodo de entrada. El Nodo Mapping genera un mensaje de destino con un analizador que coincide con el dominio de mensajes del conjunto de mensajes. El Nodo Mapping da soporte a los siguientes dominios de mensajes:
  • MRM
  • XMLNSC
  • XMLNS
  • MIME
  • JMSMap
  • JMSStream
  • XML
Para cambiar la propiedad Dominio de mensajes del conjunto de mensajes:
  1. Abra el archivo de conjunto de mensajes messageset.mset.
  2. Cambie la propiedad Dominio de mensajes por un dominio soportado.
  3. Guarde el conjunto de mensajes y también los flujos de mensajes y correlaciones de mensajes que hagan referencia al conjunto de mensajes, si todavía no se han guardado. Al guardar estos archivos se genera ESQL actualizado para correlacionar el conjunto de mensajes modificado.
    Si no ha realizado ninguna actualización en los flujos de mensajes o las correlaciones de mensajes después de cambiar el dominio de mensajes del conjunto de mensajes, debe limpiar los proyectos de flujo de mensajes relacionados para que se pueda generar código ESQL actualizado:
    1. Seleccione un proyecto y pulse Proyecto > Limpiar proyecto.
    2. Seleccione Limpiar todos los proyectos o Limpiar proyectos seleccionados.
    3. Pulse Aceptar.
  4. Despliegue el conjunto de mensajes modificado.
  5. Despliegue el flujo de mensajes que contiene las correlaciones y pruebe su ESQL en un nodo Compute y en otros nodos, para asegurarse de que el flujo de mensajes funciona todavía según lo esperado.

Alteración temporal del nombre del esquema de base de datos

Para cambiar el nombre de esquema de base de datos que se genera en ESQL, utilice el asistente Alterar temporalmente esquema de base de datos en el recuadro de diálogo Especificar esquema de ejecución. El nombre predeterminado es el nombre de esquema de las definiciones de base de datos que se importan al entorno de trabajo. Utilice el recuadro Especificar esquema de ejecución para cambiar el valor.

Correlación de mensajes por lotes

Puede configurar una correlación de mensajes que clasifique, ordene y divida los componentes de un mensaje de varias partes en una serie de mensajes de proceso por lotes. Estos componentes pueden ser mensajes u objetos, y pueden tener distintos formatos; en este caso, se convierte cada componente y el mensaje se vuelve a ensamblar antes de reenviarlo.
  1. Utilice un Nodo RouteToLabel en el flujo de mensajes para recibir mensajes de varias partes como entrada.

    El nodo RouteToLabel es el siguiente nodo después del Nodo Mapping y hace que el flujo salte automáticamente a la etiqueta especificada. Puede especificar un único valor para RouteToLabel en una correlación de división, para todas las correlaciones que produzcan como salida un mensaje ensamblado. También puede utilizar condiciones para establecer el valor para RouteToLabel según los valores en el mensaje de origen.

  2. Utilice el Editor de correlaciones de mensajes para construir correlaciones que transformen y propaguen mensajes de proceso por lotes utilizando un único nodo, sin tener que definir una estructura de datos intermedia.

Los mensajes de varias partes también pueden contener mensajes incorporados de repetición, en los que cada instancia repetida de un mensaje se propaga por separado. Los mensajes incorporados deben provenir del mismo conjunto de mensajes que el mensaje padre.

Restricciones de la correlación

A menos que se indique explícitamente, puede conseguir la funcionalidad necesaria llamando a una función o procedimiento ESQL. Se aplican las restricciones siguientes:
  • Los campos de contenido mixto no se pueden correlacionar.
  • No se pueden emitir excepciones directamente en nodos Mapping.
  • Los elementos autodefinidos se pueden manipular en nodos Mapping (el soporte para símbolos de comodines está limitado si los símbolos de comodines representan mensajes incorporados).
  • El árbol Entorno no se puede manipular en el nodo Mapping.
  • No se pueden definir ni establecer variables de usuario.
  • Las expresiones CASE no se pueden emular; debe utilizar IF ... ELSE.
  • Los árboles no se pueden copiar de la entrada en la salida para modificar elementos dentro del árbol copiado. Por ejemplo, el ESQL siguiente no se puede modelar en un Nodo Mapping:
    SET OutputRoot.MQMD = InputRoot.MQMD; SET OutputRoot.MQMD.ReplyToQ = 'NEW.QUEUE';
    Debe establecer cada campo de la estructura individualmente si tiene la intención de modificar uno o más campos hermano.
Conceptos relacionados
Editor de correlaciones de mensajes
Analizador y dominio MRM
Analizadores y dominios XML
Tareas relacionadas
Desarrollo de ESQL
Referencia relacionada
Nodo Mapping
Nodo Compute
Nodo RouteToLabel
Correlaciones de mensajes
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última actualización : 2009-02-16 13:56:04

ar25245_