我期待环路从WCF-SQL适配器接收SQL Server数据接收到的数据。
我使用的循环和及以下
itostring=i.ToString();
MessageOne=xpath(MessagePolling,"/*[local-name()='MainData' and namespace-uri()='http..["+itostring+"]");
当在第一接收消息路径中的XPath [I]
这是正确的方法是什么?
我期待环路从WCF-SQL适配器接收SQL Server数据接收到的数据。
我使用的循环和及以下
itostring=i.ToString();
MessageOne=xpath(MessagePolling,"/*[local-name()='MainData' and namespace-uri()='http..["+itostring+"]");
当在第一接收消息路径中的XPath [I]
这是正确的方法是什么?
有两种方法^上载的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的提取:
^还有第三种方式实现这一目标作为的BizTalk Server 2009(我觉得 - 好像是很久以前),让你可以执行业务流程中的接收管道,所以你可以在管弦乐执行信封去配料,而不是接收位置的接收管道。