LocalEnvironment 树包含一个称为 Variables 的子树。总是会创建它,但从不由消息流填充。您可以将此区域用于自己的用途,例如将信息从一个节点传递到另一个节点。您可以选择在 LocalEnvironment 树中创建其他子树。
在 LocalEnvironment 的暂存区中创建您自己的数据的好处是,可以将此数据作为逻辑树的一部分传播到消息流中的后续节点。如果在 Compute 节点中创建新的输出消息,您还可以在新输出消息中包含来自输入消息的全部或部分 LocalEnvironment 树。如果要这样做,必须将 Compute 节点的计算方式属性设置为包含 LocalEnvironment 作为输出树的一部分(例如,指定所有)。(您还将在输出消息中包括 ExceptionList 树。请参阅 Compute 节点获取有关计算方式的更多详细信息。)
然而,如果消息通过消息流流回(例如,当抛出异常或通过 FlowOrder 节点的第二个终端处理消息时),则您在一个节点中进行的任何数据更新或增补都不会保留。如果您创建自己的数据,并希望在整个消息流中保留该数据,则必须使用 Environment 树。
您可以设置 Compute 节点中 Variables 子树中的值,针对在您配置该消息流时确定的某些用途,稍后另一个节点(Compute、Database 或 Filter)将使用这些值。
SET OutputLocalEnvironment.Variables.OutputLocation = 'MQ';
第二个 Compute 节点可以从它的输入消息访问此信息。在此节点的 ESQL 中,使用相关名 InputLocalEnvironment 来标识包含此数据的输入消息内的 LocalEnvironment 树。对计算方式进行设置,在输出消息中包含 LocalEnvironment 树,并将数据从 InputLocalEnvironment 复制到输出消息中的 Destination 子树。通过将目标方式设置为目标列表,将 MQOutput 节点配置为使用您在 LocalEnvironment 树中创建的目标列表。
有关 DestinationData 子树中元素的完整列表的信息,请参阅 DestinationData 子树中元素的数据类型。