Accès à l'arborescence d'environnement

L'arborescence d'environnement possède son propre nom de corrélation, Environnement, et vous devez utiliser ce nom dans toutes les instructions ESQL qui font référence ou définissent le contenu de cette arborescence.

A propos de cette tâche

L'arborescence d'environnement est toujours créée lorsque l'arborescence logique est créée pour un message d'entrée. Cependant, le flux de messages ne le remplit pas et n'utilise pas son contenu. Vous pouvez utiliser cette arborescence pour vos propres besoins, par exemple, pour transmettre des informations d'un noeud à un autre. Vous pouvez utiliser l'arborescence entière comme zone de travail ou de bloc-notes.

L'avantage de créer vos propres données dans l'environnement est que ces données sont propagées dans le cadre de l'arborescence logique aux noeuds suivants du flux de messages. Si vous créez un nouveau message de sortie dans un noeud Calcul , l'arborescence d'environnement est également copiée du message d'entrée vers le nouveau message de sortie. (Contrairement à l'arborescence de l'environnement local, qui n'est incluse dans le message de sortie que si vous le demandez explicitement).

Une seule arborescence d'environnement est présente pendant la durée du flux de messages. Les mises à jour de données ou les ajouts que vous effectuez dans un noeud sont conservés et tous les noeuds du flux de messages ont accès à la dernière copie de cette arborescence. Même si le message est renvoyé via le flux de messages (par exemple, si une exception est émise ou si le message est traité via le second terminal du noeud FlowOrder ), l'état le plus récent est conservé. (Contrairement à l'arborescence de l'environnement local, qui revient à son état précédent si le flux de messages revient via le flux de messages.)

Vous pouvez utiliser cette arborescence dans n'importe quel but que vous choisissez. Par exemple, vous pouvez utiliser les instructions ESQL suivantes pour créer des zones dans l'arborescence:
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)};

Ces informations sont désormais disponibles pour tous les noeuds vers lesquels un message est propagé, quelle que soit leur position relative dans le flux de messages.