2.7 KiB
Importer
RollCalc-JSON-Importer
Der RollCalc-JSON-Importer liest die bestehende RollCalc-Datei article-data.json ein und überführt gültige Datensätze in typisierte RollCalcArticle-Objekte.
Öffentliche API:
from pathlib import Path
from article_data_manager.importers.rollcalc_json import load_rollcalc_articles
articles = load_rollcalc_articles(Path("data/source/rollcalc/article-data.json"))
Eingabeformat
Erwartet wird eine UTF-8-Datei mit einem JSON-Array. Jeder Array-Eintrag muss ein JSON-Objekt sein.
Pflichtfelder:
nrnamethicknessarea_weightcore_type
Datentypen:
nr: String, nicht leer, ohne führende oder nachgestellte Leerzeichenname: Stringthickness: JSON-Zahl, kein Booleanarea_weight: JSON-Zahl, kein Booleancore_type: JSON-Zahl, kein Boolean
Integer-Zahlen aus JSON werden intern als Python-float gespeichert, sofern sie in numerischen Feldern stehen. Strings wie "6.722", null und Booleans werden nicht als Zahlen akzeptiert.
Unbekannte Felder
Zusätzliche unbekannte Felder werden akzeptiert und ignoriert. Sie werden nicht in das aktuelle interne Modell übernommen. Dadurch bleibt der Importer kompatibel mit möglichen RollCalc-Erweiterungen, validiert die bekannten Felder aber weiterhin strikt.
Dubletten
Doppelte Artikelnummern innerhalb einer Datei sind ein Validierungsfehler. Maßgeblich ist die exakte Stringdarstellung, daher sind "00001" und "1" unterschiedliche Artikelnummern.
Fehlerverhalten
Der Importer verwendet eigene Exceptions:
RollCalcImportErrorRollCalcFileErrorRollCalcJsonSyntaxErrorRollCalcValidationError
Fehlermeldungen enthalten Datei, Datensatzindex und Feldname, soweit anwendbar. Vollständige Datensätze werden nicht in Fehlermeldungen ausgegeben.
Quelldatei
Der Importer liest die Quelldatei nur. Er schreibt, verändert oder repariert die Datei nicht und erzeugt keine Ausgabe auf stdout oder stderr.
ERP Explorer
Der ERP Explorer unter article_data_manager.tools.erp_explorer ist ein internes Analysewerkzeug und kein ERP-Importer. Er liest einen ERP-CSV-Export, profiliert alle Spalten, zählt doppelte Artikelnummern in SL_ITEM_NO und kann optional RollCalc-Artikelnummern gegen den ERP-Export abgleichen.
Öffentliche API:
from pathlib import Path
from article_data_manager.tools.erp_explorer import profile_erp_csv, write_erp_profile_report
profile = profile_erp_csv(Path("data/source/erp/production-key-data.csv"))
write_erp_profile_report(Path("data/source/erp/production-key-data.csv"))
Der Report wird standardmäßig als data/reports/erp_profile_report.txt geschrieben. Der Explorer verändert weder ERP-CSV noch RollCalc-JSON und erzeugt keine article-data.json.