繁体   English   中英

如何在业务流程BizTalk 2010中循环

[英]How to loop in orchestration BizTalk 2010

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

我使用for循环和以下

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

当XPath作为第一个接收消息的路径时[i]

这是正确的方法吗?

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

信封架构

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

理查德Seroter对从WCF-SQL适配器这样一个伟大的博客文章- http://seroter.wordpress.com/2010/04/08/debatching-inbound-messages-from-biztalk-wcf-sql-adapter/

请注意,使用这种方法,您不想从传入消息中分拆成千上万条记录,因为BizTalk会停止运行:-)

业务流程中的XPath

如果不使用信封架构,则将为传入消息(包含多个记录)启动一个Orchestration实例。 在Orchestration中的Expression Shape中,可以使用XPath(和其他魔术)在每个记录周围循环,将每个提取到Orchestration变量(然后可以映射到其上)。

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

^从BizTalk Server 2009(我认为-似乎很久以前)开始,还有第三种方法可以实现此目的,您可以在业务流程中执行接收管道,以便可以在业务流程中执行信封分批处理,而不是接收位置的接收管道。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM