访问 Environment 树

Environment 树拥有它自己的相关名 Environment,您必须在引用或设置此树内容的所有 ESQL 语句中使用此相关名。

当为输入消息创建逻辑树时总是创建 Environment 树。但消息流既不会填充它也不使用它的内容。您可以出于您自己的目的使用此树,例如从一个节点传递信息到另一个。您可以使用整个树作为暂存器或工作区。

在 Environment 中创建您自己的数据的好处是此数据作为逻辑树的一部分被传播到消息流中的后继节点。如果您在 Compute 节点中创建新的输出消息,则也将 Environment 树从输入消息复制到新的输出消息。(这与 LocalEnvironment 树形成对比,后者只在明确请求时才会包含在输出消息中)。

在消息流持续时间中仅一个 Environment 树存在。您在一个节点中所在的任何数据更新或增补都将被保留,消息流中的所有节点都具有对此树最新副本的访问权。即使消息通过消息流流回(例如,当抛出异常或通过 FLowOrder 节点的第二个终端处理该消息时),也会保留最新状态。

这与 LocalEnvironment 树形成对比,如果消息通过消息流流回,该树将还原为它先前的状态。

您可以将此树用于任何您选择的目的。例如,您可以使用以下 ESQL 语句在树中创建字段:
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)};

此信息现在对所有消息传播到的节点可用,而无论它们在消息流中的位置。

有关如何使用 Environment 存储消息流中其他节点所使用信息的另一个示例,请参阅 Airline 样本程序中的 Reservation 消息流。此消息中的 Compute 节点写信息到根据输入消息中的字段值已从数据库抽取的子树 Environment.Variables。

相关概念
消息流概述
环境树结构
ESQL 概述
消息建模
相关任务
设计消息流
定义消息流内容
管理 ESQL 文件
相关参考
Compute 节点
Database 节点
Filter 节点
ESQL 引用
ROW 构造函数
LIST 构造函数
ROW 和 LIST 组合
ROW 和 LIST 比较
SET 语句
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ac16840_