【问题标题】:BizTalk find IDBizTalk 查找 ID
【发布时间】:2017-06-16 11:21:35
【问题描述】:

我们有 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 中使用 Orchestration 找到 Mess2 的 367?
或者我可以使用其他方式?

【问题讨论】:

    标签: biztalk biztalk-2010 biztalk-orchestrations


    【解决方案1】:

    您需要使用的是所谓的correlations

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

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

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

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

    然后您将有另一个接收形状来接收以下关联集配置为 IdSecondCorr 的最后一个形状。

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

    【讨论】:

    • 感谢您的详细回答。相关性很清楚,但不明白 BizTalk 是如何提供 IdSecond = 367 的搜索过程的?在 sql 中,它就像带有代码的触发器:
      select IdSecond from transmesstable where idFirst = 1
      BizTalk 如何提供这种搜索?以示例将是超级的。
    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多