将筛选器与接收消息形状配合使用

筛选器表达式是一个可选参数,可以应用于工作流编排接收形状,指定 Activate 属性值为 True。 如果指定了筛选器表达式,则仅当传入消息与筛选器表达式中指定的条件匹配时,才会激活业务流程。 如果未指定筛选器表达式,那么编排订阅的任何传入消息都将激活编排。

若要创建筛选器表达式,请将表达式左侧传入消息的属性与表达式右侧的常量进行比较。 还可以通过将 AND 和 OR 运算符应用于两个或多个表达式来创建复合表达式。 还可以将筛选器表达式留空,在这种情况下,将接受所有消息。

筛选器表达式可能如下所示:

InvoiceSchema.Quantity >= 1000  

在此示例中,向业务流程显示传入消息。 编排具有一个激活 接收 形状(激活 属性设置为 True,以便收到特定消息将导致编排运行),并在其上应用了上述筛选器表达式。 传入消息应具有命名空间 InvoiceSchema 中名为 Quantity 的属性。 业务流程仅接受 1000 个或更多项的发票,因此运行时引擎在运行之前会检查传入消息。

下表显示了可在筛选器表达式中使用的运算符。

操作员 DESCRIPTION 示例:
== 等于 ReqMsg(Total) == 100
!= 不等于 ReqMsg(总计) != 100
< 小于 ReqMsg(总计) < 100
> 大于 ReqMsg(总计) > 100
<= 小于等于 ReqMsg(Total) <= 100
>= 大于等于 ReqMsg(Total) >= 100
存在 存在 ReqMsg(说明) 存在

注释

筛选器表达式中的字符串值用引号括起来,例如:ReqMsg(Description) = “采购订单状态”。 不能在筛选器表达式中使用字符值。

注释

如果你的激活接收功能与直接绑定端口相关联,并且随后发送一条与筛选器中测试的属性值相同且类型一致的消息,你将创建一个无限循环。 该邮件将转到 MessageBox,它将再次被选取,因为它与筛选条件匹配。 若要避免这种情况,应筛选不同的属性、发送不同类型的消息,或确保在发送相同类型的消息之前更改属性的值。

另请参阅

如何配置接收形状
在业务流程中使用相关性
使用可分辨字段和属性字段
在业务流程中使用消息