Skip to main content
Skip table of contents

CSV Converter

Dieser Adapter liest ein CSV-Textdokument (comma separated values) aus dem vorhergehenden Prozess-Schritt ein und gibt für die angegebenen Datensätze ein XML-Dokument in UTF-8-Zeichenkodierung aus, das ggf. die Spaltenbezeichnungen als Elementnamen verwendet.

Zeilen vor Beginn der CSV-Datenzeilen sowie Kommentarzeilen können ausgelassen werden. Sowohl CR (carriage return) als auch CRLF (carriage return line feed) werden als Zeilenumbrüche interpretiert. Mit Operation Iterate kann der Adapter das Input-Dokument schrittweise durchlaufen und für jede Iteration im X4-Prozess wird ein Ergebnis-Dokument ausgegeben.

Eigenschaften (Properties)

Operation

Bestimmt, welche Operation der Funktions-Adapter durchführt

Mögliche Werte:

  • Parse : CSV-Textdokument in einem Schritt einlesen

  • Iterate : CSV-Textdokument schrittweise einlesen

  • Clear : Iterator eines CSV Converters zurücksetzen, der dieselbe ID besitzt wie der gewünschte CSV Converter mit der Operation Iterate (siehe Parameter id)

Parameter

Adapter

Hauptklasse des Adapters (nicht verändern!)

Mögliche Werte: de.softproject.integration.adapter.csv.CsvAdapter: Hauptklasse (Standard)

start

Erste Datenzeile, die eingelesen werden soll (die Zählung beginnt bei 0; wenn die CSV-Datei eine Zeile mit Spaltenbezeichnungen enthält, dann wird diese ausgelassen.)

Mögliche Werte:

  • Beliebige positive ganze Zahl

  • 0: Alle Datenzeilen ab der ersten Zeile einlesen (Standard)

count

Anzahl der Datensätze, die eingelesen werden sollen (bei Operation Iterate pro Durchgang)

Mögliche Werte:

  • Beliebige positive ganze Zahl

  • 0: Keine Beschränkung, d. h. alle Datensätze auf einmal einlesen (Standard)

id

Eindeutige ID des CSV Converter Adapter-Bausteins innerhalb des Prozess-Kontextes oder der Prozess-Instanz (wenn Sie mehrere voneinander unabhängig iterierende CSV Converter Adapter in demselben Prozess-Kontext verwenden möchten)

Mögliche Werte:

  • 0 : Aktuelle Action-ID (Nummer des Prozess-Schritts) als ID verwenden; Beachten Sie hierbei, dass ein CSV Converter Adapter in einem Subprozess die gleiche Action-ID besitzen könnte. (Standard)

  • Beliebige ganze Zahl außer 0 , um den jeweiligen CSV Converter Adapter-Baustein innerhalb des Prozess-Kontextes eindeutig zu kennzeichnen; Empfehlung: einen Wert >1000 verwenden, um nicht zufällig eine bereits bestehende Action-ID zu verwenden.

columnNamesInFirstRow

Datenfelder der ersten Zeile in der CSV-Textdatei als Spaltenbezeichnungen interpretieren und Datenfeld-Elemente im XML-Dokument entsprechend benennen, falls es sich um gültige XML-Elementnamen handelt

Mögliche Werte:

  • Aktiviert: Die erste Zeile im CSV-Textdokument enthält Spaltenbezeichnungen, die sich als gültige XML-Elementnamen (ohne Namespace-Angaben) eignen.

  • Deaktiviert: CSV-Textdokument beginnt direkt mit Datenzeilen; die Elemente werden <Column> oder <Column_n> (bei aktiviertem Parameter useIndexedColumns) benannt. (Standard)

normalizeHeaderNames

Gibt an, wie die Kopfzeilen normalisiert werden sollen, falls darin Zeichen enthalten sind, die nicht XML-konform sind, z. B. Leer- oder Sonderzeichen.

Mögliche Werte:

  • Special element name (Standard): Name der Kopfzeile nicht anpassen, sondern durch <Column> ersetzen (Bsp: author book → <Column>)
  • Skip non compliant characters: Nicht-XML-konforme Zeichen überspringen (Bsp: author book → <authorbook>)
  • Replace with dash: Nicht-XML-konforme Zeichen werden durch - ersetzt (Bsp: author book → <author-book>)
  • Replace with underscore: Nicht-XML-konforme Zeichen werden durch _ ersetzt (Bsp: author book → <author_book>)
columnNamesAfterStart

Werte aus der Zeile, die in Parameter start angegeben wurde, als Spaltenbezeichnungen interpretieren und im XML-Dokument die Elemente entsprechend benennen, falls es sich um gültige XML-Elementnamen handelt

Mögliche Werte:

  • Aktiviert: Die übersprungenen Reihen ignorieren und den Spaltenbezeichnungen aus der ersten verarbeiteten Zeile verwenden

  • Deaktiviert: Die erste verarbeitete Zeile enthält keine Spaltenbezeichnungen; die Elemente werden <Column> oder <Column_n> (bei aktiviertem Parameter useIndexedColumns) benannt. (Standard)

delimiter

Das Trennzeichen zwischen den einzelnen Datenfeldern einer Zeile im CSV-Textdokument

Mögliche Werte:

  • Ein beliebiges Zeichen (keine Escape-Sequenzen wie \t )

  • ; : Semikolon (Standard)

rowName

Elementname im ausgegebenen XML-Dokument, das jede Datenzeile umschließt

Mögliche Werte: XML-Elementname (ohne Namespace)

excel

Bestimmt, ob das CSV-Textdokument von MS Excel erzeugt wurde (kein Standard-CSV-Format) und dementsprechend konvertiert werden muss

Mögliche Werte:

  • Aktiviert: CSV-Textdokument im MS Excel CSV-Format verarbeiten

  • Deaktiviert: Standard-CSV-Textdokument verarbeiten (Standard)

useIndexedColumns

Den Datenelementnamen die entsprechende Spaltennummer (beginnend bei 0) hinzufügen, wenn keine Spaltenbezeichnungen verfügbar sind

Mögliche Werte:

  • Aktiviert: Spaltennummer an den Elementnamen anhängen (z. B. <Column_0>)

  • Deaktiviert: Alle Datenelemente erhalten den Namen <Column> (Standard)

commentStart

Präfix zur Kennzeichnung von Kommentarzeilen; zutreffende Zeilen werden ausgelassen.

Mögliche Werte:

  • Beliebige Zeichenkette (jedoch keine Trenn- oder Anführungszeichen) (z. B. ****)

  • (leer): Keine Kommentarbehandlung; Zeilen werden als Datensätze interpretiert. (Standard)

inputEncoding

Definiert, welche Zeichenkodierung im Adapter-Input verwendet wird.

Mögliche Werte:

  • UTF-8
  • windows-1252
  • ISO-8859-1


Als Zeichenkodierung für den Adapter-Output wird immer UTF-8 verwendet.

Statuswerte

-1

Fehler bei der Ausführung des Adapters (Details siehe Server-Log)

0

Der Adapter gibt keine Daten (mehr) aus. Dieser Status kann bei Operation Iterate als Abbruchbedingung einer Schleife im X4-Prozess ausgewertet werden und gibt an, dass keine weiteren Datensätze verfügbar sind.

1

Der Adapter gibt ein Ergebnis aus. Dieser Status kann bei Operation Iterate als Schleifeneintrittsbedingung im X4-Prozess ausgewertet werden und gibt an, dass ein weiterer Datensatz verfügbar ist.


Input

Der Adapter erwartet eine beliebige strukturierte CSV-Textdatei (ggf. auch von MS Excel erzeugt) mit einem beliebigen Trennzeichen und optionalen Kommentarzeilen.

Output

Dieser Funktions-Adapter gibt ein UTF-8-kodiertes XML-Dokument mit folgender Struktur aus. Für jede verarbeitete Zeile wird ein Element erzeugt, das ggf. den Namen aus Parameter rowName enthält:

HTML/XML
<Csv>
   <!-- Wenn Spaltenbezeichnungen übernommen werden -->
   <Elementname rowNo="Zeilennummer im Ausgangsdokument">
      <Spaltenbezeichnung>Wert</Spaltenbezeichnung>
      <!--...-->
   </Elementname>

   <!-- Wenn keine Spaltenbezeichnungen verfügbar sind -->
   <Elementname rowNo="Zeilennummer im Ausgangsdokument">
      <Column>Wert</Column>
      <!--...-->
   </Elementname>

   <!-- Wenn keine Spaltenbezeichnungen verfügbar sind
        und Parameter 'useIndexedColumns' aktiviert ist -->
   <Elementname rowNo="Zeilennummer im Ausgangsdokument">
      <Column_Spaltennummer>Wert</Column_Spaltennummer>
      <!--...-->
   </Elementname>
</Csv>

Beispiel

Eine CSV-Textdatei mit Kommentaren soll verarbeitet werden, die erst in der zweiten Zeile die Spaltenbeschreibungen enthält, beispielsweise:

NONE
**** This line is just a comment and should not be processed. ****
"METADATA","Value 1","Value 2","Value 3","Value 4","Value 5"
"CustomerID","CompanyName","ContactName","ContactTitle","Address","PostalCode"
"ALFKI","Alfreds Futterkiste","Maria Anders","Sales","Obere Str. 57","12209"
**** This line is just a comment and should not be processed. ****
"ANTON","Moreno Taquería","Antonio Moreno","Owner","Mataderos  2312","05023"

Hierzu wird der Adapter-Parameter columnNamesAfterStart aktiviert und Parameter start auf 1 gesetzt, weil sowohl Kommentar- als auch Spaltenbeschriftungszeile nicht mitgezählt werden. Mit dem Wert Dataset  für Parameter rowName wird beispielsweise folgendes XML-Dokument erzeugt:

HTML/XML
<Csv>
  <Dataset rowNo="2">
    <CustomerID>ALFKI</CustomerID>
    <CompanyName>Alfreds Futterkiste</CompanyName>
    <ContactName>Maria Anders</ContactName>
    <ContactTitle>Sales</ContactTitle>
    <Address>Obere Str. 57</Address>
    <PostalCode>12209</PostalCode>
  </Dataset>
  <Dataset rowNo="3">
    <CustomerID>ANTON</CustomerID>
    <CompanyName>Moreno Taquería</CompanyName>
    <ContactName>Antonio Moreno</ContactName>
    <ContactTitle>Owner</ContactTitle>
    <Address>Mataderos 2312</Address>
    <PostalCode>05023</PostalCode>
  </Dataset>
</Csv>
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.