1

WCF-SQLアダプターで生成されたスキーマを使用してストアドプロシージャにマップされるメッセージを送信するBizTalkオーケストレーションがあります。ストアドプロシージャのパラメータの1つは、テーブル値パラメータです。BTがテーブル値に変換できるレコードがある場合、これは正常に機能しています。ただし、レコードがゼロの場合でも、アクションを実行できる他のパラメーターが提供されているため、procを起動する必要があります。しかし、オーケストレーションはでクラッシュします

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

どうやら、このエラーを回避して、そのパラメーターを指定せずにストアドプロシージャを実行すると、SQLServerは空のテーブルを自動的に生成します。

パラメータをDBNullとして渡そうとせずに、BizTalkでテーブル値パラメータを含むストアドプロシージャを起動する方法はありますか?

4

1 に答える 1

2

まず、レコードカウントファンクトイドをソーススキーマの繰り返し要素に接続します。その出力を取得し、それをなり記号に接続して、行数がゼロより大きいことを確認します。最後に、レコードカウント関数の出力側を宛先側のテーブル値パラメーターにフックします。例

于 2013-01-15T14:38:58.687 に答える