Generar varios mensajes de salida

Puede utilizar la sentencia PROPAGATE para generar varios mensajes de salida en el nodo Compute. Los mensajes de salida que genere puede tener el mismo o un contenido diferente. También puede dirigir los mensajes de salida a cualquiera de los cuatro terminales de salida alternativos del nodo Compute o a un nodo Label.

Por ejemplo, si desea crear tres copias del mensaje de entrada recibido por el nodo Compute, Inicio del cambioy enviar una al terminal "Out" estándar del nodo Compute, otra al primer terminal "out1" alternativo del nodo Compute y la otra al nodo Label "ThirdCopy", Fin del cambiocodifique el siguiente ESQL:

SET OutputRoot = InputRoot;
PROPAGATE;
SET OutputRoot = InputRoot;
PROPAGATEInicio del cambio TO TERMINAL 'out1'Fin del cambio;
SET OutputRoot = InputRoot;
PROPAGATE TO LABEL 'ThirdCopy';
En el ejemplo anterior, el contenido de OutputRoot se restablece antes de cada PROPAGATE, porque por omisión el nodo borra el almacenamiento intermedio de mensaje de salida y reclama la memoria cuando se completa la sentencia PROPAGATE. Un método alternativo consiste en indicar al nodo que no borre el mensaje de salida en las dos primeras sentencias PROPAGATE, para que el mensaje esté disponible para direccionarse al siguiente destino. El código para hacer esto es: Inicio del cambio
SET OutputRoot = InputRoot;
PROPAGATE DELETE NONE;
SET OutputRoot = InputRoot;
PROPAGATE TO TERMINAL 'out1' DELETE NONE;
SET OutputRoot = InputRoot;
PROPAGATE TO LABEL 'ThirdCopy';
Fin del cambio

Si no inicializa el almacenamiento intermedio de salida, se genera un mensaje vacío y el flujo de mensajes detecta un error y genera una excepción.

Asimismo, asegúrese de que copia todas las cabeceras de mensajes en el almacenamiento intermedio de mensajes de salida para cada mensaje de salida que propague.

Si desea modificar el contenido del mensaje de salida antes de propagar cada mensaje, codifique el ESQL adecuado para realizar los cambios que desee antes de codificar la sentencia PROPAGATE.

Si configura el contenido del último mensaje de salida que desea generar y lo propaga como la acción final del nodo Compute, no tiene que incluir la sentencia PROPAGATE final. La acción por omisión del nodo Compute es propagar el contenido del almacenamiento intermedio de salida cuando termina. Esto lo implementa la sentencia RETURN TRUE incluida como la sentencia final del esqueleto del módulo.

Por ejemplo, si quiere generar tres copias del mensaje de entrada y no realizar ninguna acción adicional, incluya este código inmediatamente antes de la sentencia RETURN TRUE:

SET OutputRoot = InputRoot;
PROPAGATE DELETE NONE;
PROPAGATE DELETE NONE;

Alternativamente, puede modificar el comportamiento por omisión del nodo modificando RETURN TRUE por RETURN FALSE:

SET OutputRoot = InputRoot;
PROPAGATE DELETE NONE;
PROPAGATEDELETE NONE;
PROPAGATE;
RETURN FALSE;

Tres sentencias PROPAGATE generan tres mensajes de salida. La sentencia RETURN FALSE final hace que el nodo finalice pero no propague un mensaje de salida final. Observe que la sentencia PROPAGATE final no incluye la cláusula DELETE NONE, porque el nodo debe liberar la memoria en esta etapa.

Conceptos relacionados
Visión general de flujos de mensajes
Visión general de ESQL
Modelado de mensajes
Tareas relacionadas
Diseñar un flujo de mensajes
Definir el contenido del flujo de mensajes
Acceder al árbol Properties
Gestión de archivos ESQL
Referencia relacionada
Nodo Compute
Referencia de ESQL
Sentencia PROPAGATE
Sentencia RETURN
Sentencia SET
Información relacionada
Nodo Compute
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ac12370_