BizTalk WCF-SQL类型存储过程响应模式

时间:2015-03-17 03:21:21

标签: biztalk

为类型化存储过程生成响应模式,存储过程在返回最终结果集之前执行了一些数据库更新。 Visual Studio生成的响应模式有很多垃圾。

有没有办法强制它生成更干净的架构?

enter image description here

StoredProcedureResultset4是唯一重要的。

1 个答案:

答案 0 :(得分:2)

这是我在MSDN上的相同答案。遗憾的是,标记的答案对您不起作用,因为从被调用的存储过程中捕获和抑制结果集是没有办法的,或者真的很难。

原因与存储过程代码有关。

向导只会为SQL Server响应中返回的元素生成架构类型。这意味着,存储过程会为这些更新发出结果,因此您可以为它们获取元数据。

解决这个问题的方法是修改SP代码,使其不会在任何不应该发生的操作上发出任何结果。基本上,如果您在SQL Management Studio的结果窗口中看到它,您将获得它的架构。

状态和消息可能是另一个SP的结果,因此抑制这种情况的一种方法是将结果分配给临时表,从而将其重定向到输出流。

但是,如果StoredProcedureResultset4非常重要,那么您必须使用它们。如果忽略所有其他结果,只要它们始终以相同的顺序出现,那就没有错。

为了清楚起见,您仍然需要编写可以抑制不需要的结果的包装器,只需从新SP调用原始SP不会改变输出,您仍然可以获得额外的结果集。

事实上,包装器将是更难实现的,因为您必须捕获并检查我认为不可能的所有结果集。

在BizTalk中执行此操作的更正确方法是删除不需要的内容的端口映射。