本主题包含以下部分:
将 RouteToLabel 节点与一个或多个 Label 节点结合使用,根据消息内容动态确定消息通过消息流采用的路由。RouteToLabel 节点询问消息的 LocalEnvironment 以确定消息要路由到的 Label 节点的标识。
必须将 Compute 节点置于消息流内的 RouteToLabel 节点前,该 Compute 节点用一个或多个 Label 节点的标识填充消息的 LocalEnvironment,这些标识介绍了消息的下一个处理序列。目的地设置为特定位置中 LocalEnvironment 树内的标签名的列表。该 Airline 保留样本(如下链接)的 ESQL 摘录提供了如何在 Compute 节点中设置 LocalEnvironment 内容的示例:
IF InputRoot.XML.PassengerQuery.ReservationNumber<>'' THEN SET OutputLocalEnvironment.Destination.RouterList.DestinationData[1].labelname='SinglePassenger'; ELSE SET OutputLocalEnvironment.Destination.RouterList.DestinationData[1].labelname='AllReservations'; END IF;
标签名可以是任何字符串值,并可以在 Compute 节点中明确指定、从消息中的任何字段采用或进行类型强制转换,或者从数据库检索。LocalEnvironment 中的标签名必须与相应的 Label 节点的标签名属性相匹配。
当您配置 Compute 节点时,还必须从包含 LocalEnvironment 的下拉列表为计算方式属性选择值。
设计您的消息流,以使消息流内 RouteToLabel 节点逻辑上置于一个或多个 Label 节点前,但不会实际将 RouteToLabel 节点和 Label 节点联结在一起。需要时按照 LocalEnvironment 的内容由代理完成连接。
RouteToLabel 节点在工作台中由以下图标表示:
当您将 RouteToLabel 节点的实例放入消息流后,便可对它进行配置。右键单击编辑器视图中的节点,然后单击属性。 将显示该节点的基本属性。
对于必须为其输入值的所有必需属性(没有定义缺省值的属性),在属性对话框上都会用星号作标记。
如下所示配置 RouteToLabel 节点:
单击取消以关闭对话框,并废弃对属性所作的所有更改。
在以下表中描述了 RouteToLabel 节点终端。
终端 | 描述 |
---|---|
In | 接受供节点处理的消息的输入终端。 |
Failure | 如果在处理期间检测到故障,则这就是消息路由到的输出终端。 |
下表描述该节点的属性;标题为 M 的列表示属性是否是必需的(如果在未定义缺省值时必须输入值,则在属性对话框上以星号作标记),标题为 C 的列表示属性是否是可配置的(将消息流添加到 BAR 文件以部署此文件时可以更改该值)。
下表描述 RouteToLabel 节点的“基本”属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
方式 | 是 | 否 | 路由到最后一个 | RouteToLabel 节点如何处理与当前消息关联的 LocalEnvironment 中的项。 |
下表描述 RouteToLabel 节点的“描述”属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
简短描述 | 否 | 否 | 节点的简要描述。 | |
详细描述 | 否 | 否 | 描述消息流中节点用途的文本。 |