Acessando a Árvore de Ambiente

A árvore Environment possui seu próprio nome de correlação, Environment, e é necessário utilizá-lo em todas as instruções ESQL que fazem referência ou definem o conteúdo dessa árvore.

A árvore Environment é sempre criada quando a árvore lógica é criada para uma mensagem de entrada. No entanto, o fluxo de mensagens não a preenche nem utiliza seu conteúdo. Você pode utilizar essa árvore para suas próprias finalidades, por exemplo, para transmitir informações de um nó para outro. Você pode utilizar toda a árvore como uma área de scratchpad ou de trabalho.

A vantagem de criar seus próprios dados na árvore Ambiente é que esses dados são propagados como parte da árvore lógica para nós subseqüentes no fluxo de mensagens. Se você criar uma nova mensagem em um nó Compute, a árvore Ambiente também será copiada da mensagem de entrada para a nova mensagem de saída. (Isso está em contraste com a árvore LocalEnvironment, que será incluída na mensagem de saída apenas se você tiver solicitado explicitamente que ela seja).

Apenas a árvore Ambiente está presente durante a duração do fluxo de mensagens. Quaisquer atualizações ou adições de dados feitas em um nó podem ficar retidas e todos os nós no fluxo de mensagens terão acesso à última cópia dessa árvore. Mesmo que a mensagem fluir de volta pelo fluxo de mensagens (por exemplo, se uma exceção for emitida ou se a mensagem for processada pelo segundo terminal do nó FlowOrder), o último estado será retido.

Isso está em contraste com a árvore LocalEnvironment, que será revertida para seu estado anterior se a mensagem fluir novamente para o fluxo de mensagens.

Você pode utilizar essa árvore para qualquer finalidade desejada. Por exemplo, você pode utilizar as seguintes instruções ESQL para criar campos na árvore:
SET Environment.Variables =             ROW('granary' AS bread, 'reisling' AS wine, 'stilton' AS cheese);
SET Environment.Variables.Colors[] =
      LIST{'yellow', 'green', 'blue', 'red', 'black'};
SET Environment.Variables.Country[] = LIST{ROW('UK' AS name, 'pound'
AS currency),
   ROW('USA' AS name, 'dollar' AS currency)};

Essas informações agora estão disponíveis para todos os nós para os quais uma mensagem é propagada, independentemente de sua posição relativa no fluxo de mensagens.

Para obter outro exemplo de como você pode utilizar Environment para armazenar informações utilizadas por outros nós no fluxo de mensagens, consulte o fluxo de mensagens Reserva no programa de amostra Airline. O nó Compute neste fluxo de mensagens grava informações na subárvore Environment.Variables que ele extraiu de um banco de dados de acordo com o valor de um campo na mensagem de entrada.

Conceitos relacionados
Visão Geral de Fluxos de Mensagens
Estrutura em Árvore Environment
Visão Geral do ESQL
Modelagem de Mensagens
Tarefas relacionadas
Projetando um Fluxo de Mensagens
Definindo o Conteúdo do Fluxo de Mensagens
Gerenciando Arquivos ESQL
Referências relacionadas
Nó Compute
Nó Database
Nó Filter
Referência de ESQL
Função do Construtor ROW
Função do Construtor LIST
ROW e LIST Combinados
Comparações de ROW e LIST
Instrução SET
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac16840_