Olá Pessoal,
Suponha que no seu fluxo de Broker você queira seguir caminhos diferentes com base em alguma informação, um campo na requisição por exemplo.
Você pode facilmente resolver esse problemas usando Nodes De Label.
Node
Conhecendo os Terminais
O Node RouteToLabel possui 2 terminais, sendo um de entrada e um de saída:
Entrada: In
Saída: Failure
In: Entrada da mensagem que será processada pelo RouteToLabel, onde irá tomar a decisão para qual Label rotear a sua mensagem.
Failure: Terminal no qual será encaminhada a mensagem em caso de falha no processamento do node.
Principais Propriedades do Node
Node Name - Nome do Node.
Short Description - Descrições básicas do node.
Basic:
Mode
Essa propriedade controla como o nó RouteToLabel processa os itens que chegam associados a mensagem.
Route To Last: (o padrão): Remove o último item do ambiente local. A mensagem atual é roteada para o nó Label que é identificado por labelName configurado no no compute Node.
Route To First: Remove o primeiro item do ambiente local. A mensagem atual é roteada para o nó Label que é identificado por labelName configurado no no compute Node.
Como falamos mais a cima o RouteToLabel Funciona Juntamente com outro node o Label, vamos conhecer um pouco sobre ele.
Conhecendo os Terminais
O Label possui apenas 1 terminal, sendo esse de saída:
Saída: Out
Out: Terminal não qual terá na saída exatamente a mensagem que foi configurada antes do Node RouteToLabel enviar para esse Label.
Principais Propriedades do Node
Node Name - Nome do Node.
Short Description - Descrições básicas do node.
Basic:
Label Name: Nome configurado anteriormente para o apontamento para esse Node. Não se preocupe, veremos exemplificar isso com um fluxo de Exemplo.
Exemplo de Fluxo:

Exemplo de Código ESQL para o Node Compute "route":
Vocês podem ver que é bem simples e intuitivo, devemos apenas setar o parâmetro "LabelName como nome que daremos ao nosso Label.
Ex:SET OutputLocalEnvironment.Destination.RouterList.DestinationData[1].labelName= 'Cachorro';
DECLARE soap NAMESPACE 'http://www.w3.org/2003/05/soap-envelope';
CREATE COMPUTE MODULE route
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
IF (InputRoot.XMLNSC.soap:Envelope.soap:Body.*:Request.*:animal = 'Cachorro') THEN
SET OutputLocalEnvironment.Destination.RouterList.DestinationData[1].labelName = 'Cachorro';
ELSEIF (InputRoot.XMLNSC.soap:Envelope.soap:Body.*:Request.*:animal = 'Gato') THEN
SET OutputLocalEnvironment.Destination.RouterList.DestinationData[1].labelName = 'Gato';
END IF;
RETURN TRUE;
END;
END MODULE;
OBS: Como estamos utilizando OutputLocalEnvironment, devemos lembra de mudar a opção do Compute node para: LocalEnvironment and Message, ou seja, estamos falando que ele deve passar para o Próximo node que seria o RouteToLabel, as informações setadas de Mensagem e LocalEnvironment.
Pessoal, como viram é bem simples, e vejo muito pessoas usando isso para solucianar seus problemas de desenvolvimento no dia-a-dia.
Dúvidas e Sugestões, deixe seu comentário!!
Grande Abraço.
Nenhum comentário:
Postar um comentário