[英]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.