您可以使用 RouteToLabel 和 Label 节点确定消息通过消息流的路径。它们提供比 Filter 节点(它根据针对其逻辑的 ESQL 表达式的布尔结果来处理)更灵活的方法来处理消息。
当您使用 RouteToLabel 和 Label 时,必须包括 Compute 节点,该节点使用消息内容、数据库内容和 ESQL 逻辑的某些组合确定下次如何处理消息。配置 Compute 节点来创建目标列表(在 LocalEnvironment 子树中的 DestinationList 文件夹内),该列表包含每个消息的目标,指定为 Label 节点的 LabelName。Compute 节点将消息传递到 RouteToLabel 节点,后者读取目标列表并将消息传播到那些目标。您可以配置 RouteToLabel 节点从第一个目标到最后一个目标进行工作,或从最后一个目标到第一个目标。对 Compute 节点写入目标列表中的目标数没有限制。
如果您要从消息本身或从数据库获取目标值,则还可能需要将值从一种数据类型转换为另一种。有关 LocalEnvironment 的更多信息,请参阅 LocalEnvironment 树结构。有关数据类型转换的更多信息,请参阅支持的类型强制转换。
请查看以下样本,了解如何使用这些节点:
目标列表的这种用法和它用于定义输出消息的最终收件人的用法大不相同;这在创建目的地列表中有所描述。
航空公司订票样本中的 XML_PassengerQuery 消息流演示了如何在 LocalEnvironment 中使用目标列表,根据消息本身的信息路由消息。