Show TOC

XML im File-/FTP-Empfänger-Adapter in Textformat umwandelnLocate this document in the navigation structure

Verwendung

Sie können die Konvertierung einer XML-konform dargestellten Tabelle in reines Textformat vornehmen.

Voraussetzungen
  • Sie haben im File-/FTP-Empfänger-Adapter das Message-Protokoll Umwandlung des Datei-Inhalts ausgewählt.
  • Es wird eine XML-Struktur erwartet, die die aufgeführte Struktur als Knoten mit beliebig vielen Elementen ohne weitere Unterknoten gefüllt enthält.
  • Die erwartete Dokumentstruktur sieht in der Regel folgendermaßen aus:

    <root>...

    <nameA>

    <value1>value</value1>

    <value2>value</value2>

    <value3>value</value3>

    </nameA>

    <nameB>

    <value4>value</value4>

    </nameB>

    ...

    </root>...

Vorgehensweise
  1. Sie können alle Elementnamen frei definieren.
  2. Unterhalb des Wurzelelements sind beliebig viele verschiedene Unterstrukturen möglich, die auf verschiedene CSV-Strukturen abgebildet werden können.

Parameter zur Dateistruktur definieren

  1. Geben Sie unter Recordset-Struktur die Unterstrukturen nach dem Muster NameA,NameB,... an.

    Es genügt die Angabe einer einzigen Struktur, wenn alle Unterstrukturen mit den gleichen Parametern konvertiert werden sollen. Die Angaben werden automatisch auf alle Unterstrukturen angewendet.

    Wenn Sie mehr als eine Struktur angeben, muss die Liste alle im Dokument vorkommenden Strukturen enthalten. Die Liste muss vollständig sein, sonst wird zur Laufzeit ein Verarbeitungsfehler ausgelöst.

Parameter zur Recordset-Strukturen definieren

  1. Setzen Sie Parameter für alle angegebenen Recordset-Strukturen NameA, NameB,... in der folgenden Tabelle:
    • NameA.addHeaderLine

      Geben Sie an, ob in der Textdatei eine Kopfzeile mit Spaltennamen vorhanden sein soll. Folgende Werte sind erlaubt:

      • 0, keine Kopfzeile
      • 1, Kopfzeile mit Spaltennamen aus XML-Dokument
      • 2, wie 1, gefolgt von Leerzeile
      • 3, Kopfzeile ist als NameA.headerLine in der Konfiguration hinterlegt und wird übernommen.
      • 4, wie 3, gefolgt von Leerzeile

        Diese Angabe ist nur erlaubt, wenn genau eine Struktur definiert wird.

    • NameA.headerLine

      Geben Sie die Kopfzeile an, die in der Textdatei erzeugt wird, wenn NameA.addHeaderLine den Wert 3 oder 4 hat. In diesem Fall ist die Angabe zwingend erforderlich.

    • NameA.fieldFixedLengths

      Geben Sie eine Zeichenkette an, die eine Liste von festen Spaltenbreiten enthält, die durch Kommata getrennt sind und die die Anzahl und Länge der in der Textdatei erzeugten Spalten bestimmen.

      Die Angabe von NameA.fieldFixedLengths ist zwingend, wenn bei NameA.fieldSeparator keine Angabe gemacht wird.

    • NameA.fixedLengthTooShortHandling

      Geben Sie an, wie bei einer Angabe von NameA.fieldFixedLengths Überschreitungen von dort definierten Spaltenbreiten durch die tatsächlich im Dokument gefundenen Werte behandelt werden sollen. Erlaubte Werte sind:

      • Error

        Abbruch der Verarbeitung des Dokuments

      • Cut

        Schneidet den vorgefundenen Werte auf die maximal erlaubte Länge ab

      • Ignore

        Der gefundene Wert wird ungeachtet der Längenüberschreitung komplett übernommen. Nachfolgende Spalten verschieben sich dadurch entsprechend.

    • NameA.fieldFixedLengthType

      Geben Sie an, in welcher Form die die Angaben unter NameA.fieldFixedLengths gezählt werden:

      char (Vorgabewert): Zählt die Anzahl der Zeichen.

      byte: Zählt die Byte-Länge der Zeichen.

    • NameA.fieldSeparator

      Geben Sie eine Zeichenkette an. Sie wird bei allen Spalten außer der letzten als Trennzeichen angefügt. Sie können diese Zeichenkette auch zusätzlich zu NameA.fieldFixedLengths angeben.

      Haben Sie bei NameA.fieldFixedLengths keine Angabe gemacht, ist dies die einzige Angabe zur Identifikation der einzelnen Spalten einer Reihe.

      Haben Sie bei NameA.fieldFixedLengths eine Angabe gemacht, wird die Länge des Trennzeichens nicht auf diese Länge angerechnet.

      Hinweis

      Bestimmen Sie mindestens NameA.fieldFixedLengths oder NameA.fieldSeparator.

      Wenn Sie ausschließlich NameA.fieldSeparator spezifiziert haben, können die Strukturen des XML-Dokuments unterschiedlich viele Elemente besitzen, die in der Textdatei durch den Wert von NameA.fieldSeparator getrennt aneinandergefügt werden. Bei der Angabe von NameA.fieldFixedLengths ist das nicht möglich, da durch die Aufzählung der Spaltenbreiten auch die Anzahl der Spalten festgelegt wird.

    • NameA.endSeparator

      Eine hier angegebene Zeichenkette wird bei der letzten Spalte als Abschlusszeichen angefügt.

      Sie können diese Angabe auch zusätzlich zu NameA.fieldFixedLengths machen. Ein gewollter Zeilenumbruch nach dem Abschlusszeichen muss explizit durch Anhängen von ´nl´ (einschließlich der Hochkommata) an die Zeichenkette definiert werden.

      Der Vorschlagswert ist ein Zeilenumbruch (also kein explizites Trennzeichen nach der letzten Spalte; statt dessen sind die Strukturen zeilenweise angeordnet).

    • NameA.beginSeparator

      Eine hier angegebene Zeichenkette wird bei der ersten Spalte vorangestellt. Diese Angabe können Sie auch zusätzlich zu NameA.fieldFixedLengths machen.

      Der Vorschlagswert ist eine leere Zeichenkette (also kein Trennzeichen vor der ersten Spalte).

Sonderzeichen in Zeichenketten für Trennzeichen definieren

  1. Sie können in allen Zeichenketten für Trennzeichen (NameA.fieldSeparator, NameA.beginSeparator, und NameA.endSeparator) nicht-druckbaren ASCII-Zeichen angeben.
    • Fügen Sie diese Zeichen in der Form ´0xHH´ (einschließlich Hochkommata) jeweils einzeln in die Zeichenketten ein. HH stellt das als Hexadezimalwert kodierte Zeichen dar.
    • Fügen Sie einen Zeilenumbruch als Zeichen ´nl´ (einschließlich Hochkommata) ein. nl steht für new line.
    • Das Sonderzeichen ´0´ bedeutet kein Separatorzeichen.

Feste Spaltenbreite des Textdokuments definieren

  1. Enthalten die Trennzeichen keine Zeilenumbrüche, wird das Textdokument als einzeiliger Text erzeugt. Wollen Sie die Textbreite beschränken, verwenden Sie den Parameter NameA.absoluteRowWidth=<noOfColumns>. <noOfColumns> gibt die maximal Anzahl der Spalten an.

    Sie können diesen Parameter auch zusammen mit der Angabe eines Zeilenumbruchs bei xml.endSeparator setzen.

    Dieser Wert setzt die Angabe NameA.addHeaderLine=0 voraus.