Acceso al árbol Environment

El árbol Environment tiene su propio nombre de correlación, Entorno, y debe utilizarlo en todas las sentencias ESQL que hacen referencia o establecen el contenido de este árbol.

El árbol Environment se crea siempre que se crea el árbol lógico para un mensaje de entrada. No obstante, el flujo de mensajes ni se rellena ni utiliza su contenido. Puede utilizar este árbol para la finalidad que desee, por ejemplo, para pasar información de un nodo a otro. Puede utilizar todo el árbol como un área de trabajo temporal o área de trabajo.

La ventaja de crear sus propios datos en el árbol Environment es que estos datos se propagan como parte del árbol lógico a los nodos posteriores del flujo de mensajes. Si crea un mensaje de salida nuevo en un nodo Compute, el árbol de entorno se copia también desde el mensaje de entrada al mensaje de salida nuevo. (Esto es diferente del árbol LocalEnvironment, que solamente se incluye en el mensaje de salida si solicita explícitamente que así sea).

Sólo hay un árbol Environment mientras dura el flujo de mensajes. Cualquier actualización o adición de datos que realice en un nodo se retiene y todos los nodos del flujo de mensajes tienen acceso a la copia más reciente de este árbol. Incluso si el flujo de mensajes regresa por el flujo de mensajes (por ejemplo, si se genera una excepción o si se procesa el mensaje mediante el segundo terminal del nodo FlowOrder), se retiene el estado más reciente.

Esto es diferente del árbol LocalEnvironment, que regresa a su estado anterior si el mensaje regresa por el flujo de mensajes.

Puede utiliza este árbol para cualquier finalidad que seleccione. Por ejemplo, puede utilizar las sentencias ESQL siguientes para crear campos en el árbol:
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)};

Esta información está ahora disponible para todos los nodos a los que se propaga un mensaje, independientemente de su posición relativa en el flujo de mensajes.

Para ver otro ejemplo de cómo se puede utilizar Environment para almacenar la información que utilizan otros nodos del flujo de mensajes, consulte el flujo de mensajes Reservation en el programa de ejemplo Airline. El nodo Compute de este flujo de mensajes escribe la información en el subárbol Environment.Variables que se ha extraído de una base de datos según el valor de un campo en el mensaje de entrada.

Conceptos relacionados
Flujos de mensajes
Árbol Environment
ESQL
Diseño de mensajes

Tareas relacionadas
Diseño de un flujo de mensajes
Definición del contenido del flujo de mensajes
Gestión de archivos ESQL

Referencia relacionada
Nodo Compute
Nodo Database
Nodo Filter
ESQL
Función de constructor ROW
Función de constructor LIST
ROW y LIST combinadas
Comparaciones de ROW y LIST
Sentencia SET