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, y 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",
codifique el siguiente ESQL:
SET OutputRoot = InputRoot; PROPAGATE; SET OutputRoot = InputRoot; PROPAGATETO TERMINAL 'out1'
; SET OutputRoot = InputRoot; PROPAGATE TO LABEL 'ThirdCopy';
SET OutputRoot = InputRoot; PROPAGATE DELETE NONE; SET OutputRoot = InputRoot; PROPAGATE TO TERMINAL 'out1' DELETE NONE; SET OutputRoot = InputRoot; PROPAGATE TO LABEL 'ThirdCopy';
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.