Sobre a Amostra Collector Node

A amostra Collector Node contém um fluxo de mensagens com dois nós Collector.

A amostra é baseada no seguinte cenário:

  1. O fluxo cria um registro de fatura a partir de três partes separadas de uma ordem específica (detalhes do pedido do cliente, informações de armazém e custos de remessa).
  2. O fluxo agrupa todas as faturas em lotes, que são configurados em intervalos de 90 segundos.

A fatura para um pedido é gerada obtendo a entrada a partir de três origens:

O diagrama a seguir mostra o fluxo de mensagens CollectorNodeSampleFlow:

Captura de tela do fluxo de mensagens CollectorNodeSampleFlow

O primeiro nó Collector no fluxo de mensagens demonstra:

O segundo nó Collector no fluxo de mensagens demonstra:

O símbolo de aviso exibido nos nós Collector no diagrama indica que os terminais Catch não estão conectados.

O fluxo de mensagens CollectorNodeSampleFlow

Entrada do fluxo de mensagens

O fluxo de mensagens utiliza a entrada a partir das três origens a seguir:

A entrada a partir dos três nós de entrada é eviada para o primeiro nó Collector no fluxo, CollectByCustNum, que é configurado para concluir uma coleta quando uma mensagem a partir de cada origem de entrada corresponda aos critérios configurados no nó Collector.

A correspondência por padrão pode ser utilizada para correlacionar mensagens em uma coleta de mensagens com base no conteúdo dos dados de entrada. A correspondência por padrão pode ser definida em um terminal de entrada específico. A correspondência de padrão configurada em cada terminal de entrada pode usar dois campos para configurar a correspondência de padrão:

No nó coletor, a correspondência por padrão é configurada na tabela Definição da coleta. É possível encontrar esta tabela na página Básica da visualização Propriedades.

O nó Collector, CollectByCustNum, possui três terminais de entrada para coletar a entrada a partir dos três nós de entrada:

O diagrama a seguir mostra os três terminais de entrada:

Captura de tela do nó Collector,CollectByCustNum

No CollectByCustNum, a entrada a partir do nó MQInput, MQ COLL_IN1, e o nó FileInput, fileinput, são correlacionados no CustomerNumber. Nenhuma correspondência de padrão é necessária no terminal de entrada IN3, em vez disso, a entrada a partir do nó MQInput, MQ COLL_IN3, contém um preço de postagem que é incluído em cada coleta.

No exemplo a seguir, o CustomerNumber é 111. A entrada para os três terminais de entrada é:

As coletas de mensagens são criadas com subárvores que contêm o pedido original, informações de entrega do armazém e um preço de postagem.

A coleta de mensagens concluída é propagada para o nó Compute, Compute1, que combina a entrada para criar uma nova mensagem de fatura. Este nó Compute executa as seguintes tarefas:

A nova mensagem criada pelo nó Compute, possui a seguinte estrutura:

<Invoice>    
<CustomerNumber>111</CustomerNumber>    
<Product>Torradeira</Product>    
<Quantity>1</Quantity>    
<Price>8,94</Price>     <Delivery>2
dias</Delivery> </Invoice> 

A mensagem de fatura criada em Compute1 é propagada para o segundo nó Collector no fluxo de mensagens CollectUntilTrigger. Esse nó Collector tem um terminal de entrada chamado IN4. Nesse nó Collector, a propriedade Tempo Limite é usada para concluir coletas de mensagens, em vez de a propriedade Quantidade que é usada pelo primeiro nó Collector. A propriedade Timeout é configurada para 30 segundos para que todas as mensagens recebidas dentro do período de tempo limite de 30 segundos formem uma coleta concluída.

A coordenação de eventos também está ativada neste nó. Um nó Timeout Notification é conectado ao terminal Control do nó Collector. Portanto, as coletas concluídas não são propagadas para o próximo nó do fluxo até o terminal de controle ser acionado pelo nó TimeoutNotification. O nó TimeoutNotification é configurado para enviar uma mensagem a cada 90 segundos.

As coletas das mensagens são enviadas para um nó Compute, Compute2. O nó Compute obtém os dados de mensagem de cada coleta e inclui as informações de horário e data para formar a mensagem de saída final. Cada coleta pode conter mais de uma fatura, dependendo do número de mensagens de fatura que foram incluídas em cada coleta no nó Collector, CollectUntilTrigger.

A mensagem de saída final está no seguinte formato:

<Invoices>   <Invoice>     
<InvoiceNumber>111</InvoiceNumber>
     
<Product>Torradeira</Product>
     
<NumberOrdered>1</NumberOrdered>
     
<TotalCost>9,94</TotalCost>
      <Delivery>2
dias</Delivery>     
 </Invoice>   <Invoice>
    
<InvoiceNumber>222</InvoiceNumber>
      <Product>Processador de
Alimentos</Product>      
<NumberOrdered>2</NumberOrdered>
     
<TotalCost>75,93</TotalCost>
      <Delivery>4
dias</Deliver>     
 </Invoice>  <Date>10-08-2007</Date>
 <Time>17:18:22</Time> </Invoices>

Observe no fluxo de mensagens que um nó Compute segue cada nó Collector. Deve-se ter um nó Compute ou um nó JavaCompute após um nó Collector, pois somente esses nós podem analisar a árvore de mensagens propagada por um nó Collector. É possível usar um nó Compute ou um nó JavaCompute para pegar partes de mensagens da coleta de mensagens e para gerar novas mensagens que podem ser processadas por outros nós em seu fluxo de mensagens.

Voltar para Home da Amostra