如何配置接收形状
接收形状
接收形状可用于启动业务流程。 如果将 Activate 属性设置为 True,运行时引擎将测试传入消息,以查看它是否为正确的类型,以及是否应用了筛选器,是否满足筛选器表达式。 如果满足接收消息的条件,运行时引擎将创建并运行一个新的业务流程实例, 接收 形状将接收消息。
注意
如果 Receive 形状的 Activate 属性设置为 True, 则 Receive 必须是业务流程中的第一个操作。
注意
如果 Activate 属性在所有接收形状上设置为 False,则必须由另一个业务流程调用业务流程才能运行。
注意
如果在将 Activate 属性设置为 True 的作用域内放置接收形状,然后将 .NET 类变量添加到业务流程中,而不将该变量的 Use Default 构造函数属性更改为 False,则 activate receive 语句将在生成的 XLANG/S 代码中超出范围,但设计图面将继续将其显示为在作用域内。
每个业务流程必须至少有一个 Receive 形状,并且 Activate 属性设置为 True。
对于以前已发送的消息,如果希望接收到间接或异步响应(不在请求-响应端口上),则需要将该消息与当前正在运行的业务流程实例相关联,以便响应者可以获得对正确实例的响应。 如果您计划继续对传入消息中的值进行关联,则可以对接收形状应用初始化相关集,或者您也可以应用沿用相关集,以便使用以前初始化的相关集进行关联。 有关详细信息,请参阅 在业务流程中使用相关性。
配置接收形状
设置消息和端口操作。
在“业务流程视图”窗口中,确认您的业务流程具有消息以及为要接收的消息类型定义的端口操作。
在属性窗口,从“消息属性”下拉列表中选择要接收的消息。
在属性窗口,选择端口操作以从“操作”下拉列表接收消息。
— 或 —
将接收连接线从 “接收” 形状拖到将接收消息的端口套接字。
指定 接收 形状将激活业务流程。
在“属性”窗口中,将“激活”属性设置为 True。
在属性窗口,单击“筛选器表达式”属性的省略号 (...) 按钮,以创建筛选器以限制此接收形状接受的消息。
— 或 —
右键单击“ 接收 ”形状,然后单击“ 编辑筛选器表达式”。
此时将显示“ 筛选表达式 ”对话框。 使用该对话框可以创建一个或多个筛选器表达式。
注意
必须先定义消息类型并将其分配给 “接收 ”形状,然后才能向其应用筛选器。
指定相关集以限制 接收 形状接受的消息。
对于要遵循的每个关联集,检查“以下相关集”属性的下拉列表中的关联集。
对于要初始化的每个关联集,检查“初始化相关集”属性的下拉列表中的关联集。
筛选器表达式网格控件
您可以通过使用此网格控件来定义构成表达式的谓词,生成筛选器表达式。 您还可以从网格的单元格中添加、编辑和删除谓词。 此网格控件有四列:属性、运算符、值和分组。
属性。 您可以键入某一属性引用,或者从单元格的下拉列表中选择一个属性。 该列表包含传入消息的属性。
算子。 您可以在此单元格中键入某一运算符,或者从下拉列表中选择一个运算符。 可能的选项包括:
操作数 含义 == 等于 != 不等于 < 小于 <= 小于或等于 > 大于 >= 大于或等于 Exists Exists Value。 “值”列中的单元格可以保存键入的任何常量:string-literal、integer-literal 或 null。
注意
如果选择的属性为字符串类型,则需要用引号将该值括起来。 例如 SMTP.From = "MyServer"。
分组。 使用此列可控制谓词分组。 筛选器表达式始终用析取范式 (DNF) 形式表示,因此可以自动确定分组。 AND 表示谓词要与其后的谓词分在一组,而 OR 表示该谓词与下一行中的谓词相互独立。 将谓词组合在一起后,网格控件的左侧将显示灰色括号。 谓词组不能嵌套。 如果您不在此单元格中指定值,则该单元格默认的值为 AND。
例如,您可以创建如下所示的表达式:
MSMQ.MsgID = 1
使用此筛选器,发送端口组将只订阅 MSMQ 消息 ID 为 1 的消息。
您可以创建其他表达式,并指定该表达式与其他表达式有 AND 或 OR 关系,例如:
MSMQ.MsgID = 1 OR
SMTP.From = "MyServer"
在这种情况下,发送端口组将订阅 MSMQ 消息 ID 为 1 或发自名为 MyServer 的 SMTP 服务器的所有消息。
提示标签
该字段提供用户指导。 标签文本将根据包含活动单元格的列而变化。 标签文本将显示列名称,后随如下指导文本:
属性。 请从列表中选择传入消息的属性。
算子。 选择用于将属性与值进行比较的运算符。
Value。 从列表中选择某一消息属性,或者键入文本值。
分组。 指定此行要如何与下一行组合在一起。 “AND”将连接行,而“OR”将分隔行。
“上移”按钮
单击此按钮可以将所选行上移。 (首先通过单击网格控件左侧的 向右箭头 (>) 按钮来选择行。)
“下移”按钮
单击此按钮可以将所选行下移。 (首先通过单击网格控件左侧的 向右箭头 (>) 按钮来选择行。)
“创建的筛选器表达式”字段
此只读文本框将随着您生成表达式而显示该表达式。