BizTalk 查找 ID

BizTalk find ID

我们有 BizTalk 2010。
描述任务:
第一个系统发送消息:
- 第一系统中的 ID
- 第二个系统中的 ID

第二个系统接收消息并发送另一条消息:
- 已确认收到的消息编号
- 第一系统中的 ID
- 第二个系统中的 ID
.
问题:
1. 下次在第二个系统中查找 ID 的最佳方法是什么?
例如
------------------------------------
来自第一个系统的 Mess1
IntIdMess1 = 123456789
IdFirst = 1
IdSecond = 空
------------------------------------
来自第二个系统的 Mess2
IntIdMess2 = 9876545432
确认 = 123456789
IdFirst = 1
IdSecond = 367
------------------------------------
来自第一个系统的 Mess2
IntIdMess1 = 534735648
IdFirst = 1
IdSecond = 367

如何使用 BizTalk 中的编排找到 Mess2 的 367?
或者我可以使用的其他方式?

你需要用到的就是所谓的correlations.

根据情况,您将需要一个或两个相关集,具体取决于来自第二个系统的确认消息是同步的还是异步的。我将假设异步,因为它更复杂

您需要定义两个相关集,一个用于 IntIdMess1,我们称之为 IntIdMess1Corr,另一个用于 IdSecond,我们称之为 IdSecondCorr

Orchestration 通过 Receive Shape 从 System1 接收 Mess1 并通过 Send shape 将其发送到 System2,您需要 Initializing Correlation Sets 并将此 Send Shape 配置到 IntIdMess1Corr。

然后您将拥有一个从 System2 获取已确认消息的接收形状,此接收形状会将以下相关集设置为 IntIdMess1Corr 并将初始化相关集配置为 IdSecondCorr。

然后您将有另一个接收形状来接收最后一个形状,其中 Following Correlation Sets 配置为 IdSecondCorr。

当您初始化关联时,Orchestration 将发布实例订阅。也就是说,它正在查找具有指定的提升属性的消息。