关联名

关联名是标识逻辑消息树中已定义起点的字段引用,且在字段引用中用于描述树格式的标准部件。

当您访问 Message、Environment、LocalEnvironment 或 ExceptionList 这四个树中任意一个的数据时,可使用的关联名取决于您要为其创建 ESQL 或映射的节点,以及该节点是否创建输出消息。 例如,当消息通过 Trace 节点时,它不改变消息的内容,但 Compute 节点可以构造新的输出消息。

可通过 SELECT 表达式、定量谓词和 FOR 语句引入新的关联名。 通过使用引用变量,您可以在节点中创建非关联名。

不创建输出消息的节点中的关联名

大多数消息流节点不会创建输出消息;因此您在这些节点的 ESQL 模块和映射中编写的所有 ESQL 表达式仅引用输入消息。 在为 Database 节点和 Filter 节点编写的 ESQL 模块中,使用以下关联名:

Root
通过节点传递的消息的根。
Body
消息根的最后一个子代,即消息体。 此名称是 Root.*[<] 的别名。
属性
输入消息的标准属性。
environment
包含可用于节点的当前全局环境变量的结构。 可从任何您能为其创建 ESQL 代码和映射的节点读取和更新 Environment。
LocalEnvironment
包含可用于节点的当前局部环境变量的结构。 可从任何您能为其创建 ESQL 代码和映射的节点读取和更新 LocalEnvironment。
DestinationList
包含可用于节点的当前局部环境变量的结构。 尽管可以使用 DestinationList 关联名以便与早期版本兼容,但其首选名称为 LocalEnvironment。
ExceptionList
包含节点可以访问的当前异常列表的结构。

不能在 Mapping 节点的任何映射表达式中使用这些关联名。

创建输出消息的节点中的关联名

如果您要对 Compute 节点的 ESQL 进行编码,则涉及的两个消息树(输入消息树和输出消息树)的关联名必须不同。 这些节点的 ESQL 中的关联名为:

InputBody
输入消息根的最后一个子代。 此名称是 InputRoot.*[<] 的别名。
InputRoot
输入消息的根。
InputProperties
输入消息的标准属性。
environment
包含可用于节点的当前全局环境变量的结构。 可读取和更新 Environment。
InputLocalEnvironment
包含消息的局部环境变量的结构,此消息通过节点传递。
InputDestinationList
包含消息的局部环境变量的结构,此消息通过节点传递。 使用关联名 InputDestinationList 以便与早期版本兼容;如果兼容性不是必需的,则使用首选名称 InputLocalEnvironment。
InputExceptionList
包含消息的异常列表的结构,此消息通过节点传递。
OutputRoot
输出消息的根。

在 Compute 节点中,关联名 OutputBody 无效。

OutputLocalEnvironment
包含从节点发送的局部环境变量的结构。

虽然该关联名始终有效,但仅当 Compute 节点的计算方式属性表明 Compute 节点正在传播 LocalEnvironment 时,它才有意义。

OutputDestinationList
包含从节点发送的局部环境变量的结构。 使用关联名 OutputDestinationList 以便与早期版本兼容;如果兼容性不是必需的,则使用首选名称 OutputLocalEnvironment。
OutputExceptionList
包含节点正在生成的异常列表的结构。

虽然该关联名始终有效,但仅当 Compute 节点的计算方式属性表明 Compute 节点正在传播 ExceptionList 时,它才有意义。

有关如何使用 * 的描述,请参阅 使用匿名字段引用