Para gerar várias mensagens de saída no nó Compute, você pode utilizar a instrução PROPAGATE. As mensagens de saída que você gera podem ter o mesmo conteúdo ou conteúdo diferente. Você também pode direcionar mensagens de saída para qualquer um dos quatro terminais de saída alternativos do nó Compute ou para um nó Label.
Por exemplo, se você quiser criar três
cópias da mensagem de entrada recebida pelo nó Compute e enviar uma para o terminal "Out" padrão do nó Compute, uma para o
primeiro terminal "out1" alternativo do nó Compute e uma para o nó Label
"ThirdCopy",
codifique o seguinte 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';
Se você não inicializar o buffer de saída, será gerada uma mensagem vazia e o fluxo de mensagens detectará um erro e emitirá uma exceção.
Assegure também que todos os cabeçalhos de mensagem requeridos foram copiados para o buffer da mensagem de saída para cada mensagem de saída propagada.
Se desejar modificar o conteúdo da mensagem de saída antes de propagar cada mensagem, codifique o ESQL apropriado para fazer as alterações desejadas antes de codificar a instrução PROPAGATE.
Se você configurar o conteúdo da última mensagem de saída que deseja gerar e propagá-lo como a ação final do nó Compute, não será necessário incluir a instrução PROPAGATE final. A ação padrão do nó Compute é propagar o conteúdo do buffer de saída quando ele é finalizado. Isso é implementado pela instrução RETURN TRUE, incluída como instrução final na estrutura do módulo.
Por exemplo, se quiser gerar três cópias da mensagem de entrada e não executar nenhuma ação adicional, inclua esse código imediatamente antes da instrução RETURN TRUE:
SET OutputRoot = InputRoot; PROPAGATE DELETE NONE; PROPAGATE DELETE NONE;
Como alternativa, você pode modificar o comportamento padrão do nó alterando RETURN TRUE para RETURN FALSE:
SET OutputRoot = InputRoot; PROPAGATE DELETE NONE; PROPAGATEDELETE NONE; PROPAGATE; RETURN FALSE;
São geradas três mensagens de saída pelas três instruções PROPAGATE. A instrução RETURN FALSE final faz com que o nó finalize mas não propague uma mensagem de saída final. Observe que a instrução PROPAGATE final não inclui a cláusula DELETE NONE, pois o nó deve liberar a memória nesse estágio.