我有一个StoredProcedure,它返回一个包含几条记录的简单表:
DECLARE @STEPS_TABLE AS TABLE(OrchestrationID uniqueidentifier,[Message] nvarchar(1000));
- 在此加载价值
SELECT * FROM @STEPS_TABLE作为步骤FOR XML AUTO,XMLDATA,ELEMENTS
我使用SQL传输架构生成向导来创建我的架构,并可以正确配置端口。如果我在我的业务流程上使用此架构,它可以很好地工作。每次@STEPS_TABLE有超过1条记录时,BizTalk都会启动业务流程的一个实例。
阅读Microsoft技术文档,他们建议在一次调用中获取多条消息,然后使用XML管道将多行BizTalk消息反汇编为单行BizTalk消息。
之前我没有使用过XML管道,所以我尝试了提供的步骤,但无法使用它。
有人可以给我一个链接到“如何”(直到现在,经过几个小时的搜索后才找到任何东西)或给我一些提示才能成功。
提前致谢。
答案 0 :(得分:2)
......几个小时后,我可以自己解决这个问题。因此,如果有人遇到与我相同的问题,那么您可以在此处制定一些指导方针,使其适用于您的环境。
最后,我按照Microsoft的不同演练,完全避免了管道建议。我发现的文档称为“使用SQL适配器拆卸结果集”,并且完全符合我的要求。您可以按照Microsoft的整个演练,但避免创建发送端口并对接收端口进行一些调整。
在遵循技术文档后,您将最终得到两个模式,为了这个练习,我将称之为消息和信封(包含几条消息)。在您的业务流程中,您可以创建映射到消息的接收端口,然后在将其配置为SQL端口并将其链接到存储过程(或select语句)时,您只需将文档根元素名称更改为信封根名称; XML接收管道(默认情况下在BizTalk 2006中提供)将有助于反汇编信封中包含的消息,并为每条消息实例化业务流程。
Microsoft“使用SQL适配器拆卸结果集”演练可在以下位置找到:
http://msdn.microsoft.com/en-us/library/aa562098(v=bts.20).aspx
完成任务:)