在业务流程中使用关联
相关是将传入消息与业务流程的相应实例相匹配的过程。 例如,业务流程发出一条消息,然后接收到返回该业务流程的一个或多个响应。 有三种相关消息交换模式:
传统握手
顺序车队
并行保护
在传统握手模式中,握手出现在业务流程内的消息交换之中,您可以通过在业务流程中定义相关集来实现握手,其中相关集是一个升级属性列表,这些属性具有特定的值,用来将消息路由到特定的业务流程实例。
例如,如果您的业务流程用于发出采购订单,接收发票以及付款,则您需要确保由发送采购订单的业务流程实例接收相应发票消息,因为系统可能同时处理多个采购订单。 在下例中,采购订单标识号可用作将采购订单消息与发票消息相关联的相关集中的参数。 下面是此示例的流程。
业务流程 A 向业务流程 B 发出采购订单消息。在发出采购订单消息之前,初始化相关集。
在业务流程 B 中处理采购订单,生成并发回发票,第一个接收形状将沿用同一相关集来接收采购订单消息。
处理完采购订单消息后,在将发票消息发回业务流程 A 时,也将沿用同一相关集。
在业务流程 A 的接收从业务流程 B 发回的发票消息的接收形状中,也将沿用同一相关集,以确保根据预定义相关集接收相关发票消息。
在必须将多个单一项关联在一起才能得出所需结果,而单个项目自身不能完成的情况下,就需要使用顺序保护和并行保护模式。 有关详细信息,请参阅 使用 Convoy 方案。
除了相关消息交换模式以外,业务流程中还有两种类型的相关:
手动关联
自动相关
在手动相关方案中,您手动配置业务流程来初始化并沿用相关集,以将消息与正确的实例相关联。 在自动相关方案中,消息引擎将为您关联消息与实例,例如,在业务流程中设置请求-响应端口或自相关端口时。
在业务流程不能显式将消息与实例相关联时,必须使用相关,例如,活动接收端口、请求-响应端口或自相关端口。
使用相关示例
从 https://go.microsoft.com/fwlink/?LinkId=73703下载 SDK 示例“将消息与业务流程实例相关联”。
从 https://go.microsoft.com/fwlink/?LinkId=73703下载 SDK 示例“Parallel Convoy”。