Gerando Várias Mensagens de Saída

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 Início da mudançae 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", Fim da mudançacodifique o seguinte ESQL:

SET OutputRoot = InputRoot;
PROPAGATE;
SET OutputRoot = InputRoot;
PROPAGATEInício da mudança TO TERMINAL 'out1'Fim da mudança;
SET OutputRoot = InputRoot;
PROPAGATE TO LABEL 'ThirdCopy';
No exemplo acima, o conteúdo de OutputRoot é reconfigurado antes de cada PROPAGATE pois, por padrão, o nó limpa o buffer da mensagem de saída e recupera a memória quando a instrução PROPAGATE é concluída.Um método alternativo é instruir o nó para não limpar a mensagem de saída nas duas primeiras instruções PROPAGATE, de forma que a mensagem esteja disponível para roteamento para o próximo destino. O código para fazer isso é:Início da mudança
SET OutputRoot = InputRoot;
PROPAGATE DELETE NONE;
SET OutputRoot = InputRoot;
PROPAGATE TO TERMINAL 'out1' DELETE NONE;
SET OutputRoot = InputRoot;
PROPAGATE TO LABEL 'ThirdCopy';
Fim da mudança

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.

Conceitos relacionados
Visão Geral de Fluxos de Mensagens
Visão Geral do ESQL
Modelagem de Mensagens
Tarefas relacionadas
Projetando um Fluxo de Mensagens
Definindo o Conteúdo do Fluxo de Mensagens
Acessando a Árvore de Propriedades
Gerenciando Arquivos ESQL
Referências relacionadas
Nó Compute
Referência de ESQL
Instrução PROPAGATE
Instrução RETURN
Instrução SET
Informações relacionadas
Nó Compute
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac12370_