1

我有一个 StoredProcedure,它返回一个包含多条记录的简单表:

DECLARE @STEPS_TABLE AS TABLE (OrchestrationID uniqueidentifier, [Message] nvarchar(1000));

-- 在此处加载值

SELECT * FROM @STEPS_TABLE 作为 XML AUTO、XMLDATA、ELEMENTS 的步骤

我使用 SQL 传输模式生成向导来创建我的模式并且可以正确配置端口。如果我在编排中使用此架构,它会完美运行。每次@STEPS_TABLE 有超过 1 条记录时,BizTalk 都会启动一个业务流程实例。

阅读 Microsoft 技术文档,他们建议在一次调用中获取多条消息,然后使用 XML 管道将多行 BizTalk 消息分解为单行 BizTalk 消息。

我以前没有使用过 XML 管道,所以我尝试了提供的步骤,但无法让它工作。

有人可以给我一个“如何做”的链接(经过几个小时的搜索,直到现在才找到任何东西)或者给我一些成功的提示。

提前致谢。

4

1 回答 1

2

......几个小时后,我可以自己弄清楚。因此,如果有人遇到与我相同的问题,这里有一些指导方针可以让它在你的环境中工作。

最后,我遵循了 Microsoft 的不同演练,完全避免了管道推荐。我找到的文档称为“使用 SQL 适配器反汇编结果集”,并且完全符合我的要求。您可以按照 Microsoft 的整个演练,但避免创建发送端口并对接收端口进行一些小调整。

在遵循技术文档之后,您最终会得到两个模式,为了这个练习,我将它们称为消息和信封(包含几条消息)。在您的编排中,您可以创建一个映射到消息的接收端口,然后当您将其配置为 SQL 端口并将其链接到您的存储过程(或选择语句)时,您只需将文档根元素名称更改为信封根名称;XML 接收管道(在 BizTalk 2006 中默认提供)将分解包含在信封中的消息并为每条消息实例化一个业务流程。

Microsoft“使用 SQL 适配器反汇编结果集”演练可在以下位置找到:

http://msdn.microsoft.com/en-us/library/aa562098(v=bts.20).aspx

任务完成 :)

于 2012-10-23T13:57:58.630 回答