Show TOC

StrictXml2PlainBean (XML in Text) im Modul-Prozessor einfügenLocate this document in the navigation structure

Verwendung

Mit diesem Modul können Sie ein XML-Dokument, das sich in der Main-Payload der XI-Message befindet, in reines Textformat umwandeln.

Sie können festlegen, ob ein Datensatztyp (Recordset) im Dokument in Text mit fester Spaltenbreite oder in eine separierte Liste mit einem von Ihnen definierten Trennzeichen abgebildet werden soll.

Innerhalb eines XML-Dokuments können unterschiedliche Datensatztypen entweder separiert oder mit fester Spaltenlänge abgebildet werden (gemischte Abbildung).

Die Struktur des Dokuments wird aufgrund der von Ihnen im Modul gemachten Angaben überprüft. Werden im Dokument Strukturen gefunden, die nicht Ihrer Definition entsprechen, wird zur Laufzeit ein Verarbeitungsfehler ausgelöst.

Sie können das Modul in Empfänger-Adaptern einsetzen.

Sie können das Modul beispielsweise im File-/FTP-Empfänger-Adapter anstelle des Message-Protokolls Umwandlung des Datei-Inhalts verwenden. Das Modul bietet mehr Konvertierungsmöglichkeiten und eine Überprüfung der Struktur, die umgewandelt wird.

Weitere Informationen: XML im File-/FTP-Empfänger-Adapter in Textformat umwandeln

Vorgehensweise

Modul in die Verarbeitungssequenz einfügen

  1. Fügen Sie das Modul vor dem Adaptermodul ein.

    Besteht der Adapter aus mehreren Modulen, finden Sie Informationen über die Position des Moduls unter: Modulkette für SAP-Adapter im Modul-Prozessor erweitern

    • Geben Sie unter Modulname AF_Modules/StrictXml2PlainBeanein.
    • Wählen Sie unter Modultyp Local Enterprise Bean.

    Der Modulschlüssel wird vorgeschlagen.

Parameter in der Modulkonfiguration einfügen

  1. Geben Sie in der Modulkonfiguration Parameternamen und Parameterwerte zum Modulschlüssel des Moduls an.
  2. Machen Sie Angaben zur Konvertierungsart des XML-Dokuments:

    Die Angabe genau eines Parameters ist zwingend und schließt die Angabe des anderen Parameters aus.

    • Wollen Sie für jeden im XML-Dokument vorkommenden Datensatztyp eine andere Konvertierungsart definieren machen Sie folgende Angaben:
      • Geben Sie unter Parametername recordTypes an.
      • Geben Sie unter Parameterwert die vollständige Komma-separierte Liste aller Namen der im zu konvertierenden Dokument vorkommenden Datensatztypen an.

        Die Datensatztypen könnten beispielsweise heißen: RecordType1,RecordType2,RecordType3

    • Wollen Sie für jeden im XML-Dokument vorkommenden Datensatztyp dieselbe Konvertierungsart festlegen, machen Sie folgende Angaben:
      • Geben Sie unter Parametername singleRecordType an.
      • Geben Sie unter Parameterwert den Namen eines Datensatztyps an, der zur Konvertierung aller im XML-Dokument vorkommenden Elemente verwendet werden soll.
  3. Für jeden Datensatztyp legen Sie weitere Parameter fest.

    Die Parameter sind im Folgenden mit dem Präfix<RecordType> angegeben. Verwenden Sie in Ihrer Konfiguration stattdessen jeweils den Namen des Datensatztyps.

Angaben zur Konvertierungsart Liste mit Trennzeichen machen

  1. Geben Sie für Parameter<RecordType>.fieldSeparator das Feldtrennzeichen an, das zwischen den einzelnen Feldern eines Records geschrieben wird.

    Die Angabe ist zwingend erforderlich.

Angaben zur Konvertierungsart Liste mit fester Spaltenbreite machen

  1. Geben Sie für Parameter<RecordType>.fieldLengths 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 bestimmt.
    Tipp

    Sie möchten beispielsweise einen Datensatz mit drei Elementen schreiben, die die Spaltenbreite fünf, zehn und 15 Zeichen haben. Geben Sie an:

    <RecordType>.fieldLengths = 5,10,15

    Die Angabe ist zwingend erforderlich.

  2. Geben Sie für<RecordType>.fieldLengthExceeded an, wie Felder behandelt werden sollen, die die konfigurierte Spaltenbreite überschreiten. Zulässige Werte für den Parameterwert sind:
    • error (Vorgabewert)

      Unterbricht die Verarbeitung der Message mit einem Fehler

    • cut

      Schneidet überschüssige Zeichen ab

    • ignore

      Ignoriert die Spaltenbreitenbeschränkung

Weitere Angaben machen

  1. Geben Sie für<RecordType>.beginSeparator eine Zeichenkette an.

    Sie wird der ersten Spalte eines Datensatzes vorangestellt.

  2. Geben Sie<RecordType>.endSeparator eine Zeichenkette an.

    Sie wird bei der letzten Spalte eines Datensatzes als Abschlusszeichen angefügt. Vorgabewert ist\r\n .

    Geben Sie eine Zeichenkette an. Sie wird bei der letzten Spalte eines Datensatzes als Abschlusszeichen angefügt. Vorgabewert ist\r\n .

  3. Geben Sie für contentType den MIME-Typ der konvertierten Payload an.

    Vorgabewert ist text/plain .

  4. Geben Sie für addHeaderLine an, ob dem Ergebnis der Konvertierung eine Kopfzeile vorangestellt werden soll.

    Definieren Sie den Parameter nur, wenn Sie zuvor singleRecordType definiert haben.

    Legen Sie fest, ob dem Ergebnis der Konvertierung eine Kopfzeile vorangestellt werden soll.

    • none (Vorgabewert)

      Fügt keine Kopfzeile ein

    • fromXML

      Die Kopfzeile wird aus den Elementnamen des ersten Datensatzes des XML-Dokuments generiert.

    • fromConfiguration

      Die Kopfzeile wird durch den Konfigurationsparameter headerLine bestimmt.

  5. Geben unter headerLine einen Wert an, wird er dem Ergebnis der Konvertierung als Kopfzeile vorangestellt.

    Definieren Sie den Parameter nur, wenn Sie zuvor addHeaderLine=fromConfiguration gesetzt haben.

  6. Geben Sie für fixedLineWidth die maximale Zeilenlänge n (in Zeichen) an, die in das Ausgabedokument geschrieben werden soll.

    Alle n Zeichen wird in das Ausgabedokument ein Trennzeichen eingefügt, das durch lineSeparator festgelegt wird.

  7. Geben Sie für lineSeparator die Zeichenkette an, die am Ende jeder mit fixedLineWidth geschriebenen Zeile in das Ausgabedokument geschrieben wird.

    Vorgabewert ist\r\n .

    Definieren Sie den Parameter nur, wenn Sie zuvor fixedLineWidth definiert haben.

Sonderzeichen verwenden

  1. Sie können Sonderzeichen bei den Parametern<RecordType>.fieldSeparator , <RecordType>.beginSeparator , <RecordType>.endSeparator , headerLine und lineSeparator verwenden.
    • Tabulator:\t
    • Carriage Return (CR):\r
    • Line Feed (LF):\n
    • Beliebige Zeichen:\x<code>

      <code> bezeichnet den hexadezimalen Character-Code des darzustellenden Zeichens.

Beispiel

Ein zu konvertierendes Dokument hat genau drei Ebenen; die Datensatztypen befinden sich auf der zweiten Ebene, während sich die eigentlichen Daten auf der dritten Ebene befinden.

<root>

<RecordType1>

<column-name1>column-value</column-name1>

<column-name2>column-value</column-name2>

<column-name3>column-value</column-name3>

</RecordType1>

<RecordType2>

<data>column-value</data>

<data2>column-value</data2>

<data3>column-value</data3>

</RecordType2>

</root>

Für das Dokument können Sie eine Konfiguration für die beiden Datensatztypen RecordType1 und RecordType2 festlegen. Dazugeben Sie an: recordTypes=RecordType1,RecordType2

Sie haben dann die Möglichkeit, für jeden Datensatztyp eine andere Umwandlung zu definieren.

Verwenden Sie den Parameter singleRecordType , dann werden beide Datensatztypen gleich umgewandelt.