Show TOC Anfang des Inhaltsbereichs

Vorgehensweisen XML-Dokumente für Message-Protokoll XML SQL-Format definieren  Dokument im Navigationsbaum lokalisieren

Verwendung

Sie können eine oder mehrere Datenbanktabellen durch eine XI-Message verändert. Abhängig vom Inhalt der Message-Payload können Sie Daten in Datenbanktabellen einfügen (INSERT), verändern (UPDATE) oder löschen (DELETE).

Im synchronen Fall können Sie auch Ergebnisse von Abfragen (SELECT) als XML-Format in der Rückantwort mitgeben.

Mit EXECUTE führen Sie Stored-Procedures aus und mit SQL-QUERY können Sie komplexere SQL-Anweisungen über den Adapter an die Datenbank weiterleiten.

Aufbau der Message-Payload

 

<root>

  <StatementName1>

<dbTableName action=”ACTION>

<table>realDbTableName</table>

<access>

<col1>val1</col1>

<col2>val2</col2>

</access>

<key1>

<col2>val2old</col2>

<col4>val4</col4>

</key1>

<key2>

<col2>val2old2</col2>

</key2>

</dbTableName>

  </StatementName1>

 

  <StatementName2>

...

...

  </StatementName2>

...

</root>

 

Vorgehensweise

...

...

       1.      Definieren Sie ein Mapping, das die Payload einer XI-Message in die gewünscht XML-Struktur umwandelt.

XML-Dokumentstruktur definieren

       1.      Legen Sie ein Tag <root>fest. Der Name des Tags ist frei wählbar.

       2.      Unter dem Tag <root> können Sie ein oder mehrere Statements definieren.

Die Namen der Tags für Statements sind frei wählbar.

Jedes Statement enthält die Beschreibung einer Datenbankaktion.

Mit Ausnahme der Ausführungsbeschreibung für eine Stored Procedure verwenden Sie für alle Statements eine gemeinsame Struktur.

       3.      Geben Sie den Namen der Datenbanktabellen im Element unterhalb des Statement-Elements (dbTableName) und das Attribut action mit dem Wert UPDATE, INSERT, UPDATE_INSERT, DELETE, SELECT, EXECUTE oder SQL-QUERY an.

       4.      Wird das optionale Element <table> verwendet, wird der angegebene Wert als Datenbanktabellenname verwendet.

Ändern Sie den Namen des Tags nicht. <table> muss das erste Element des Blocks innerhalb von <dbTableName> sein.

Mit dieser Angabe können Sie beispielsweise Tabellennamen definieren, die nicht XML-konforme Zeichen enthalten oder Zeichen enthalten, die in Interface-Definitionen des Integration Builder nicht verwendet werden dürfen.

       5.      Auf der nächsten Ebene gibt es (außer bei der Action DELETE) ein Element mit Namen access und ein oder mehrere Elemente mit frei wählbaren Namen. Im Beispiel oben heißen sie keyN.

       Geben Sie das Element access als erstes an und definieren Sie hier die Tabellenspalten, auf die zugegriffen werden soll.

Ändern Sie den Namen des Tags nicht.

       Verwenden Sie die <key>-Elemente, um die Bedingung für den Zugriff auf die Tabellenspalten zu beschreiben.

       6.      Definieren Sie ein oder mehrere Anweisungen, um Datenbanktabellen zu bearbeiten:

       UPDATE-Anweisung definieren

       INSERT-Anweisung definieren

       UPDATE_INSERT-Anweisung definieren

       DELETE-Anweisung definieren

       SELECT-Anweisung definieren

       EXECUTE-Anweisung definieren

       SQL_QUERY-Anweisung definieren

Attribute in den <key>-Elementen definieren

       1.      Sie können in den  <key>-Elementen optional die folgenden Attribute setzen:

       compareOperation= <compareType>

Setzen Sie mit diesem Attribut die logische Vergleichsoperation für das jeweilige Element. Erlaubte Werte sind:

       EQ: Gleichheit (Vorgabewert)

       NEQ: Ungleichheit

       LT: Kleiner

       LTEQ: Kleiner oder gleich

       GT: Größer

       GTEQ: Größer oder gleich

       LIKE: Gleichartigkeit (von Strings). Im zugehörigen Wert können hier dann auch die SQL-Platzhalter „%“ bzw. „_“ verwendet werden.

Sie können den Parameter beispielsweise so einsetzen:

<key1>

  <col2 compareOperation=”NEQ”>val2old</col2>

  <col4 compareOperation=”LIKE”>val%</col4>

</key1>

 

SELECT col1,col2,col3 FROM dbTableName  WHERE ((col2<>’val2old’ ANDcol4 LIKE ’val%’) OR (col2=’val2old2’))

       hasQuot= YES|NO

Beim Aufbau der WHERE-Bedingung des SQL-Statements wird als Vorgabe aufgrund des Tabellenspaltentyps entschieden, ob die Werte in Hochkomma (textartige Spaltentypen) oder nicht in Hochkommata (numerische Spaltentypen) gesetzt werden. In seltenen Fällen (z.B. bei der Verwendung von Funktionen) müssen Sie diese Verhalten eventuell übersteuern.

       Setzen Sie YES , um immer Hochkomma zu setzen

       Setzen Sie  NO , um niemals Hochkomma um Werte mit diesem Attribut in der SQL-Syntax zu setzen.

       isNull= TRUE

Werte mit diesem Attribut werden beim Aufbau der WHERE-Bedingung ignoriert. Dieses Attribut hat die gleiche Wirkung, als ob der zugehörige Wert nicht vorhanden sei.

Ergebnis

Antwortdokumente können nur bei synchronem Aufruf vom Integration Server oder der AEX ausgewertet werden, da im asynchronen Fall der Inhalt des Antwortdokuments nicht mehr zugänglich ist.

Die Antwort wird für jedes Statement-Element in einem eigenen Element <StatementName_response> abgelegt.

Die Struktur der Antwortdokumente ist in den Beschreibungen der Statements enthalten.

 

 

 

 

 

Ende des Inhaltsbereichs