use*_*552 1 biztalk biztalk-2010 biztalk-orchestrations
我正在寻找循环从wcf-sql适配器收到的SQL Server数据的数据.
我用于循环和以下
itostring=i.ToString();
MessageOne=xpath(MessagePolling,"/*[local-name()='MainData' and namespace-uri()='http..["+itostring+"]");
Run Code Online (Sandbox Code Playgroud)
当XPath进入第一个接收消息路径[i]
这是正确的方法吗?
有两种方法可以循环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
如果不使用信封架构,则将为传入消息启动单个Orchestration实例(包含多个记录).在Orchestration中的Expression Shape中,您可以使用XPath(以及其他一些魔法)循环每个记录,每个记录都提取一个Orchestration变量(然后您可以在其上映射等)
看看以下链接,它们将帮助您通过XPath提取:
^还有第三种方法可以实现这一点,因为BizTalk Server 2009(我认为 - 似乎很久以前)可以在Orchestration中执行接收管道,因此您可以在Orch中执行Envelope de-batching,而不是接收位置的接收管道.
| 归档时间: |
|
| 查看次数: |
4157 次 |
| 最近记录: |