CSV-Eingabe
Die CLI liest CSV-Dateien mit dem Mapping, das Sie über YAML oder --col-*-Optionen bereitstellen.
Header Mode
Standardmäßig erwartet die CLI eine Headerzeile und Mappings verwenden Headernamen:
columns:
vatId: "VatId"
name: "CompanyName"
Beispiel-CSV:
VatId;CompanyName;Street;PostalCode;City
DE123456789;Example GmbH;Main Street 1;80331;Munich
Die CLI validiert, dass jede gemappte Spalte im Header existiert.
No-Header Mode
Verwenden Sie --no-header, wenn die CSV keine Headerzeile hat:
optimus check customers.csv --no-header --col-vat-id 1 --col-name 2 --standard
Im No-Header Mode müssen gemappte Spalten 1-basierte Indizes sein:
columns:
vatId: "1"
name: "2"
Führen Sie nach Änderungen an No-Header-Mappings --dry-run aus. Die Vorschau zeigt die ersten 5 prüfbaren Zeilen, die an die API gesendet würden, sodass Sie bestätigen können, dass jeder Index auf den erwarteten Wert zeigt.
Trennzeichen
Setzen Sie das Eingabetrennzeichen bei Bedarf explizit:
optimus check customers.csv --map mapping.yml --in-delimiter ";"
Oder in YAML:
input:
delimiter: ";"
Wenn kein Trennzeichen über CLI oder YAML konfiguriert ist, kann der Reader es automatisch erkennen.
Encodings
Unterstützte Eingabe-Encodings sind:
utf-8windows-1252iso-8859-1
Setzen Sie das Encoding mit:
optimus check customers.csv --map mapping.yml --standard --in-encoding windows-1252
Oder:
input:
encoding: windows-1252
Zeilen Vor Dem Header Überspringen
Verwenden Sie --skip-rows, wenn die Datei Metadatenzeilen vor dem Header hat:
optimus check customers.csv --map mapping.yml --standard --skip-rows 2
YAML-Äquivalent:
input:
skipRows: 2
Übersprungene Datensätze
Standardmäßig werden Zeilen mit leeren USt-IdNrn. übersprungen:
filter:
skipEmptyVatId: true
Sie können auch USt-IdNrn. überspringen, die einem regulären Ausdruck entsprechen:
filter:
skipPattern: "^TEST"
Übersprungene Zeilen werden weiterhin in die Ergebnis-CSV geschrieben, mit vat_id_status auf SKIPPED.
Passthrough-Spalten
Verwenden Sie customColumns für lokale Werte, die Sie in der Ergebnis-CSV behalten möchten:
customColumns:
customer_number: "CustomerNumber"
Passthrough-Werte werden gelesen, bevor Zeilenfilter angewendet werden. Dadurch können übersprungene Zeilen weiterhin Ihre lokalen Kennungen in der Ergebnis-CSV enthalten.