CSV-Konfiguration

Die Art und Weise, in der CSV-Daten beim Einlesen verarbeitet werden, wird in einer XML-Konfigurationsdatei angegeben. Der Name dieser Datei wird dem Kommandozeilenprogramm runcsv2ppm als Argument übergeben.

In der Konfigurationsdatei können Sie z. B. das Trennzeichen bestimmen oder Spaltenüberschriften umbenennen.

Das Format der XML-Datei ist durch folgende DTD vorgegeben:

s_csv_2_DTD_4

XML-Element bzw. -Attribut

Beschreibung

Beispiel

csvextractor

Konfiguration des CSV-Einlesevorgangs

Siehe unten

fieldseparator

Trenner

,

mask

Maskierungszeichen (eingelesene Werte werden demaskiert)

"

hasheaderline

CSV-Dateien liegen mit Kopfzeile vor

renamefield

Umbenennen einer Datenspalte

Siehe unten

name

Aus CSV-Dateien erzeugter Name einer Datenspalte

MATERIAL
oder
FIELD_3

newname

Neuer Name der Datenspalte

Artikel
-bezeichnung

skipstartlines

Zu ignorierende Anfangszeilen

skipendlines

Zu ignorierende Endzeilen

numberoflines

Anzahl an Anfangszeilen, die ignoriert werden sollen. Gezählt wird ab der ersten Zeile.

10

pattern

Zeichenmuster zum Auffinden einer Datenzeile, ab der Zeilen ausgelesen werden (skipstartlines: standardmäßig wird gefundene Zeile mit ausgelesen) bzw. bis zu der Zeilen ausgelesen werden (skipendlines: gefundene Zeile wird mit allen nachfolgenden Zeilen nicht ausgelesen).
Folgende Platzhalter sind erlaubt:
* Kein bzw. beliebig viele Zeichen
? Genau ein beliebiges Zeichen
\ Maskierungszeichen für die Suche nach Platzhaltern bzw. Maskierungs-zeichen in der Form:
\\ bzw. \* bzw. \?
Die erste Zeile von oben, die dem angegebenen Muster entspricht, wird ausgewählt.

Der Ausdruck
*10?\\\\\*269
sucht Werte wie z.B.  555108\\*269 oder 104\\*269 aber z.B. nicht  104\\555269

ignorethisline
(nur bei pattern in skipstartlines)

Datenzeile, die das gesuchte Muster enthält, im Auslesevorgang ignorieren (yes) bzw. nicht ignorieren (no). Vorgabewert: no

ja

mincolumn
number

Angabe einer Mindestspaltenzahl zur Festlegung von Anfang und/oder Ende des auszulesenden Datenbereichs. skipstartlines: ab der ersten gefundenen Zeile (inklusiv) mit mindestens der angegebenen Spaltenzahl werden Zeilen ausgelesen. skipendlines: bis zur ersten gefundenen Zeile (exklusiv) mit weniger als der angegebenen Spaltenzahl werden Zeilen ausgelesen.

4

Beispielkonfiguration (csvconfig.xml)

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE csvextractor SYSTEM 'csvextractor.dtd'>

<csvextractor>

<fieldseparator>;</fieldseparator>

<mask>"</mask>

<hasheaderline/>

<renamefield name="FIELD_3" newname=

"Erfasser der Auftragsposition"/>

<renamefield name="MATERIAL" newname="Artikelbezeichnung"/>

<skipstartlines>

<pattern ignorethisline="yes">###*</pattern>

</skipstartlines>

<skipendlines>

<pattern>5???;*;*;*;*</pattern>

</skipendlines>

</csvextractor>

Einzulesende CSV-Datei (example.csv)

Die Datei besteht aus einer Kommentarzeile, einer Kopfzeile und fünf Datensätzen:

### Auftragsdaten 25.03.2006 ###

AUFTRAGSNUMMER;POSITION;;MATERIAL;MENGE

4711;10;"Harry, ""A"" Williams";Mobile 6600;3

4811;23;"Ben, ""B"" Snyder";Mobile 6601;2

4911;15;"George, ""C"" Nyland";Mobile 6602;1

5011;6;"George, ""C"" Nyland";Mobile 5405;2

5211;23;"George, ""C"" Nyland";Mobile 5410;1

Ausgabedatei im PPM-System-Event-Format (event.xml)

Der CSV-System-Event-Generator erzeugt mithilfe der CSV-Beispielkonfiguration folgende XML-Ausgabedatei:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE eventlist SYSTEM "event.dtd">

<eventlist>

<event>

<attribute type="AUFTRAGSNUMMER">4711</attribute>

<attribute type="POSITION">10</attribute>

<attribute type="Erfasser der Auftragsposition"

>Harry, "A" Williams</attribute>

<attribute type="Artikelbezeichnung">Mobile 6600

</attribute>

<attribute type="MENGE">3</attribute>

</event>

<event>

<attribute type="AUFTRAGSNUMMER">4811</attribute>

<attribute type="POSITION">23</attribute>

<attribute type="Erfasser der Auftragsposition"

>Ben, "B" Snyder</attribute>

<attribute type="Artikelbezeichnung">Mobile 6601

</attribute>

<attribute type="MENGE">2</attribute>

</event>

<event>

<attribute type="AUFTRAGSNUMMER">4911</attribute>

<attribute type="POSITION">15</attribute>

<attribute type="Erfasser der Auftragsposition"

>George, "C" Nyland</attribute>

<attribute type="Artikelbezeichnung">Mobile 6602

</attribute>

<attribute type="MENGE">1</attribute>

</event>

</eventlist>

Folgender Kommandozeilenaufruf erzeugt aus jedem Datensatz der CSV-Daten entsprechend den Angaben in der CSV-Konfigurationsdatei jeweils ein System-Event in der XML-Ausgabedatei:

runcsv2ppm -i example.csv -csvconfig csvconfig.xml -outfile event -nozip

Für alle System-Events wird der beim Einlesen automatisch für die dritte Datenspalte vergebene Name FIELD_3 durch Erfasser der Auftragsposition ersetzt, die Datenspalte MATERIAL wird in Artikelbezeichnung umbenannt. Die maskierten Werte des Attributtyps Erfasser der Auftragsposition werden demaskiert. Die Kommentarzeile wird gemäß den Angaben zu skipstartlines im Auslesevorgang ignoriert. Die beiden letzten Zeilen des Datenbereichs werden gemäß den Angaben zu skipendlines ignoriert (Auftragsnummern 5011, 5211).