【问题标题】:How to loop in orchestration BizTalk 2010如何在编排 BizTalk 2010 中循环
【发布时间】:2013-07-05 09:13:30
【问题描述】:

我正在寻找循环从 SQL Server 接收到的数据从 wcf-sql 适配器接收到的数据。

我使用for循环和以下

itostring=i.ToString();
MessageOne=xpath(MessagePolling,"/*[local-name()='MainData' and namespace-uri()='http..["+itostring+"]");

当 XPath in for 第一个接收消息路径[i]

这是正确的方法吗?

【问题讨论】:

    标签: biztalk biztalk-2010 biztalk-orchestrations


    【解决方案1】:

    有两种方法^循环包含在 BizTalk 接收的 Xml 消息中的多个记录:

    信封架构

    当您定义表示消息的架构时,将其标记为信封架构。这告诉接收管道反汇编程序为传入消息中的每条记录(在您的情况下来自 WCF-SQL 适配器)创建(并发布)一条消息到 BizTalk 消息框。这将导致为传入消息中的每条记录启动一个 Orchestration 实例。

    Richard Seroter 在 WCF-SQL 适配器上有一篇很棒的博客文章 - http://seroter.wordpress.com/2010/04/08/debatching-inbound-messages-from-biztalk-wcf-sql-adapter/

    请注意,使用这种方法时,您不希望从传入消息中删除数以万计的记录,因为 BizTalk 会停止运行 :-)

    编排中的 XPath

    如果您不使用信封架构,您将为传入消息(包含多条记录)启动单个编排实例。在您的业务流程中的表达式形状中,您可以使用 XPath(和其他一些魔法)循环每个记录,并将每个记录提取到一个业务流程变量(然后您可以映射等)

    查看以下链接,这些链接将帮助您通过 XPath 进行提取:

    ^从 BizTalk Server 2009 开始,还有第三种方法可以实现这一点(我认为 - 似乎很久以前),您可以在编排中执行接收管道,因此您可以在Orch,而不是接收位置的接收管道。

    【讨论】:

    • 嗨 user2541552,如果这回答了您的问题,请“标记为已回答”。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-02-18
    • 2022-09-22
    • 2015-09-24
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    相关资源
    最近更新 更多