Show TOC

XML-Dokumente für Message-Protokoll XML SQL-Format definierenLocate this document in the navigation structure

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 (
    dbTableNameactionUPDATEINSERTUPDATE_INSERTDELETE,SELECT, EXECUTESQL-QUERY
    )und das Attribut mit dem Wert , , , oder an.
  4. Wird das optionale Element <table>verwendet, wird der angegebene Wert als Datenbanktabellenname verwendet.
    Ändern Sie den Namen des Tags nicht.
    <table><dbTableName>
    muss das erste Element des Blocks innerhalb von 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
    DELETEaccess
    ) ein Element mit Namen 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:

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' AND col4 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/vom PCK ausgewertet werden, da im asynchronen Fall der Inhalt des Antwortdokuments nicht mehr zugänglich ist.

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

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