Antwort auf: Aufrufen von Stored Procedures mit SQL Rückgabetyp „XML“

    Bruno Schulze
    Administrator
    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 Services

     

    0
    0