如何循环中编排的BizTalk 2010(How to loop in orchestration

2019-10-18 08:12发布

我期待环路从WCF-SQL适配器接收SQL Server数据接收到的数据。

我使用的循环和及以下

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

当在第一接收消息路径中的XPath [I]

这是正确的方法是什么?

Answer 1:

有两种方法^上载的BizTalk收到的XML消息中的多个记录循环:

信封架构

当你定义一个代表该消息的架构,将其标记为一个信封架构。 这告诉接收管道拆装创建(并发布)一个消息到BizTalk消息框的输入消息中的每一条记录(在你的情况下,从WCF-SQL适配器)。 这将导致一个单一的业务流程实例,为您的传入消息每条记录开始。

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

请注意,使用这种方法,你不希望从传入消息的BizTalk DE-配料记录数以万计将陷于停顿:-)

XPath的内部一个业务流程

如果你不使用的信封架构,你会开始一个业务流程实例的传入消息(包含多个记录)。 在您的业务流程的表达式形状,您可以使用XPath(和其他一些魔法)循环围绕每个每个记录提取到一个业务流程变量(然后你就可以在映射等)

看看下面的链接,这将帮助你通过XPath的提取:

  • http://social.technet.microsoft.com/wiki/contents/articles/6944.biztalk-orchestrations-xpath-survival-guide.aspx
  • http://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/2004/10/25/using-xpath-inside-biztalk-orchestrations.aspx
  • http://blog.eliasen.dk/2006/11/05/LoopingAroundElementsOfAMessage.aspx
  • http://www.codeproject.com/Articles/534627/BizTalk-Looping-through-repeating-message-nodes-in

^还有第三种方式实现这一目标作为的BizTalk Server 2009(我觉得 - 好像是很久以前),让你可以执行业务流程中的接收管道,所以你可以在管弦乐执行信封去配料,而不是接收位置的接收管道。



文章来源: How to loop in orchestration BizTalk 2010