【发布时间】:2021-03-25 19:49:41
【问题描述】:
当我从 BizTalk 调用存储过程时,结果被拆分到多个节点。存储过程返回被拆分的 XML。
多个来源表明正确的配置会自动组合结果,但我无法使其工作。
示例结果:
<bsp_FA_StatementOutputResponse xmlns="http://schemas.microsoft.com/Sql/2008/05/TypedProcedures/dbo">
<StoredProcedureResultSet0>
<StoredProcedureResultSet0 xmlns="http://schemas.microsoft.com/Sql/2008/05/ProceduresResultSets/dbo/bsp_FA_StatementOutput">
<XML_F52E2B61-18A1-11d1-B105-00805F49916B><Root...</XML_F52E2B61-18A1-11d1-B105-00805F49916B>
</StoredProcedureResultSet0>
<StoredProcedureResultSet0 xmlns="http://schemas.microsoft.com/Sql/2008/05/ProceduresResultSets/dbo/bsp_FA_StatementOutput">
<XML_F52E2B61-18A1-11d1-B105-00805F49916B>...</XML_F52E2B61-18A1-11d1-B105-00805F49916B>
</StoredProcedureResultSet0>
<StoredProcedureResultSet0 xmlns="http://schemas.microsoft.com/Sql/2008/05/ProceduresResultSets/dbo/bsp_FA_StatementOutput">
<XML_F52E2B61-18A1-11d1-B105-00805F49916B>sactionDate>2020-10-6</...;</Root></XML_F52E2B61-18A1-11d1-B105-00805F49916B>
</StoredProcedureResultSet0>
</StoredProcedureResultSet0>
<ReturnValue>0</ReturnValue>
</bsp_FA_StatementOutputResponse>
手动执行时,存储过程可以正常工作。
- 我使用“添加生成的项目”向导创建了发送端口。
- 我从向导中选择了“强类型”。
- 我使用了向导提供的绑定。
感谢任何帮助。
【问题讨论】:
-
所以您已经将 XML 存储在一个列中,并且您正试图在存储过程中返回它?你能告诉我们你的存储过程和你的表结构吗?在如何将其格式化为存储过程中所需的 XML 结构时,这可能更像是一个 SQL 问题,因为 BizTalk SQL 适配器所做的所有事情都是从结果集中转义 XML 并具有多行。您是否还可以显示手动执行时的结果。
-
我相信你完全误解了。问题是名为“XML_F52E2B61-18A1-11d1-B105-00805F49916B”的节点中的结果被分成两部分。这是来自存储过程的 XML 结果。随机切成位的 XML 不能很好地解析;)我怀疑问题是 WCF 传输层正在这样做
-
sql server management studio 中的结果有正确的结果,并返回正确格式的 XML。该页面声称有一个解决方案,但由于我没有使用 xmlpolling,因此我无法使其工作。 reply.com/solidsoft-reply/en/content/…
-
那么你为什么不按照文章使用 XmlPolling 呢?您还需要根据该文章指定 XmlStoredProcedureRootnodename 和 XmlStoredProcedureRootnodenamespace。我认为向导不会在这种情况下帮助您。您必须手动配置,并且可能还从 XML 生成模式,而不是通过使用适配器向导。
-
此过程每月在预定时间运行。轮询不是一个好的设计选择。
标签: wcf biztalk biztalk-2013