关联是将传入消息与业务流程的相应实例匹配的过程。 例如,业务流程发送出消息,并接收响应或多个响应回到同一业务流程中。 有三种相关的消息交换模式:
传统握手
顺序车队
并行车队
在传统的握手模式中,消息在编排或业务流程之间交换时会进行握手。您可以通过在编排中定义关联集来实现握手,其中关联集是一个属性列表,具有特定值,您可以用它来将消息路由到特定编排实例。
例如,如果您的业务流程旨在发出采购订单、接收发票并发送付款,则需要确保发票消息由与发出对应采购订单的同一个业务流程实例接收,因为在同一时间可能会处理多个采购订单。 在此示例中,采购订单标识号可用作关联采购订单消息和发票消息的相关集中的参数。 下面是此示例的方案流,
业务流程 A 向业务流程 B 发送采购订单消息。在发送采购订单消息之前,将初始化相关集。
在业务流程 B 中,处理采购订单、生成和发送回发票时,第一个接收形状遵循相同的关联集来接收采购订单消息。
处理采购订单消息后,向业务流程 A 发送发票消息时,也会遵循相同的关联集。
在业务流程 A 中,在接收来自业务流程 B 的发票消息的“接收”形状上,也会遵循相同的关联集,以确保根据预定义的关联集接收相关发票消息。
具有连续和并行车队模式的场景存在于世界上,每当需要多个单一项目关联在一起以实现单个项目无法独自完成的目标。 有关更多信息,请参阅“处理车队场景”。
除了相应的消息交换模式之外,在编排中有两种类型的关联:
手动关联
自动关联
在手动关联方案中,您手动配置编排以通过初始化并遵循关联集将消息与正确的实例关联起来。 在自动关联场景中,消息传送引擎会为您将消息与实例相关联,例如,在编排中设置 Request-Response 端口或 Self-Correlating 端口时。
每当您的编排没有一种将消息与实例(例如激活接收、请求响应或自动关联端口)进行显式关联的方法时,都必须使用关联。
使用相关性的示例
从 https://go.microsoft.com/fwlink/?LinkId=73703中下载 SDK 示例“将消息与业务流程实例相关联”。
从 https://go.microsoft.com/fwlink/?LinkId=73703中下载 SDK 示例“Parallel Convoy”。