-
- 24. Oktober 2024 um 9:13 Uhr
Hallo Julian,um die Prozeduren aufzurufen, musst du den Datentyp „String“ verwenden. Der Ansatz war also schon richtig. Wichtig ist nur, dass der Wert, den du sendest, in ![CDATA[]]-Klammern gesetzt wird. Das CDATA ermöglicht es uns, Inhalte wie XML-Tags (<, >) oder Sonderzeichen aufzunehmen, die nicht als XML, sondern als Rohtext geparst werden.
Hier die Prozedur mit der wir das Verhalten auf einem SQL-Server getestet haben:
CREATE PROCEDURE sp_EchoXml
( @InputXml XML
)
AS
BEGIN
SET NOCOUNT ON;
SELECT @InputXml AS OutputXml;
END;Mit folgenden DB-Aufruf in Transconnect:
<ROOT>
<CALL NAME=“dbo.sp_EchoXml“ NAMEDPARAMS=“false“>
<RETURN TYPE=“String“ />
<PARAM TYPE=“String“ MODE=“in“ NULL=“false“><![CDATA[<ROOT><TEST1>test</TEST1></ROOT>]]></PARAM>
</CALL>
</ROOT>Im Anhang findest du zudem die Rückmeldung von Transconnect, wenn der Aufruf erfolgreich war, und ein Beispiel, wie man das CDATA in eine Transformation einbauen kann, um weiterhin klassische XSLT-Funktionen nutzen zu können.
Viele Grüße
Bruno Schulze
Professional Services00