Für diese Fehlermeldung
There was an error in Message_Send Orchestration: Error while sending direct - Bidirectional No.
System.Exception: System.Data.SqlClient.SqlException (0x80131904): Ungültiger Objektname "#tmp_Calc_DESADV"
gibt es eine Lösung:
Das ist der Vorgang:
Eine Stored Procedure nimmt Daten vom BizTalk entgegen.
In der Stored Procedure werden mehrere Temp-Tabellen angelegt, um aufwändige Kalkulationen durchzuführen.
Das Ausführen der Stored Procedure über SQL Management Studio funktioniert ohne Fehler.
Greift der BizTalk darauf zu, dann erscheint die obige Fehlermeldung.
Die Lösung:
Statt einer Temp-Tabelle einfach eine Tabellen-Variable benutzen!
Also statt dieser Variante:
CREATE TABLE #tmp_Calc_DESADV (
orderid nvarchar(50),
price money
)
Besser diese Option nutzen:
DECLARE @tmp_Calc_DESADV AS TABLE (
orderid nvarchar(50),
price money
)
Damit kann der BizTalk umgehen.
Die lästige und verwirrende Fehlermeldung von oben erscheint nicht mehr.