BizTalk WCF-SQL适配器 - 避免将DBNull传递给表值参数

时间:2013-01-14 15:44:02

标签: sql-server biztalk

我有一个BizTalk业务流程,它使用带有WCF-SQL适配器的生成模式发送映射到存储过程的消息。存储过程的一个参数是表值参数。当有BT可以转换为表值的记录时,这工作正常。但是,如果记录为零,我仍然需要触发proc,因为还提供了其他参数,但仍可以对其进行操作。但是编排与

崩溃了
System.NotSupportedException: DBNull value for parameter '@DetailRecords' is not supported. Table-valued parameters cannot be DBNull.

显然你可以解决这个错误并执行存储过程而不提供该参数,SQL Server将自动生成一个空表。

有没有办法让BizTalk触发包含表值参数的存储过程,而不尝试将参数作为DBNull传递?

1 个答案:

答案 0 :(得分:2)

首先,将记录计数 functoid连接到源架构上的重复元素。获取它的输出并将其连接到大于 functoid以检查行计数是否大于零。最后,将记录计数 functoid的输出端挂钩到目标端的表值参数。Example