2017-06-16 84 views
0

我们的BizTalk 2010
描述的任务:
首先系统发送消息:
- ID中的第一个系统
- 在第二个系统ID
的BizTalk查找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

我怎么能找到367 Mess2在BizTalk中使用Orchestration?
或者我可以使用其他方式吗?

回答

0

你需要使用什么叫correlations

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

您需要定义两个关联集,一个用于IntIdMess1,让我们把它叫做IntIdMess1Corr,另一个用于IdSecond,让我们把它叫做IdSecondCorr

业务流程从系统1接收Mess1通过接收形状并通过发送形状发送给System2,则需要初始化相关集并将此发送形状配置为IntIdMess1Corr。

然后,您将有一个Receive Shape从System2获取确认消息,此接收形状将具有设置为IntIdMess1Corr的下列关联集和配置为IdSecondCorr的初始化关联集。

然后,您将拥有另一个接收形状以接收最后形状,其中以下相关集配置为IdSecondCorr。

初始化关联时,业务流程将发布实例订阅。也就是说,它正在查找带有指定的Promoted Properties的消息。

+0

谢谢你的详细答案。相关性很明显,但不明白BizTalk如何提供IdSecond = 367的搜索过程?在sql中它将会像触发代码一样:
从transmesstable中选择IdSecond,其中idFirst = 1
BizTalk如何提供此搜索?例如超级。 – AlGraf

+0

@AlGraf我已经添加了它如何与BizTalk一起使用。 – Dijkgraaf