# Datenmodell ## Internes kanonisches Artikelmodell Phase 0 definiert ein flaches Modell: | Feld | Typ | Einheit | Status | | --- | --- | --- | --- | | `nr` | `str` | keine | Pflichtfeld | | `name` | `str | null` | keine | optional | | `width` | `float | null` | m | optional | | `thickness` | `float | null` | mm | optional | | `area_weight` | `float | null` | g/m2 | optional | | `core_diameter` | `int | null` | mm | optional | | `core_type` | `str | null` | keine | optional | `nr` wird immer als String behandelt. Fuehrende Nullen bleiben erhalten. ## RollCalc-Ausgabemodell Das geplante Ausgabemodell ist RollCalc-kompatibel und bleibt flach: ```json { "nr": "214700", "name": "Stex H 751 (Tfix 751), 6,00 x 50 m", "width": 6.0, "thickness": 6.722, "area_weight": 0.0, "core_diameter": 100, "core_type": "cardboard" } ``` ## Null-Werte und unbekannte Werte Fehlende Werte sollen intern bevorzugt als `null` beziehungsweise `None` modelliert werden. Ob RollCalc `null`, fehlende Felder oder `0` erwartet, ist offen und darf nicht ohne dokumentierte Entscheidung geaendert werden. Der Wert `0` darf nicht automatisch als unbekannt interpretiert werden. Im vorhandenen RollCalc-JSON treten `area_weight: 0.0` und `core_type: 0.0` auf. Die fachliche Bedeutung ist offen. ## Beobachtete RollCalc-JSON-Struktur Lokale Datei: `incoming/article-data_.json`, nicht versioniert. - 274 Artikel. - Felder: `nr`, `name`, `thickness`, `area_weight`, `core_type`. - `nr`: 274 Strings. - `name`: 274 Strings. - `thickness`: 273 Floats, 1 Integer. - `area_weight`: 273 Floats, 1 Integer. - `core_type`: 274 Floats. - Mindestens eine Artikelnummer beginnt mit `0`. ## Herkunftsmetadaten Spaeter koennen Herkunftsmetadaten pro Feld sinnvoll werden: - Quelle - Importzeitpunkt - Originalfeld - Originalwert - Normalisierungsregel - manueller Freigabestatus Diese Metadaten gehoeren nicht zwingend in die RollCalc-Ausgabedatei. ## Offene fachliche Fragen - Welche ERP-Spalte enthaelt eindeutig die fuer RollCalc relevante Produktbreite? - Ist die ERP-Breite Nennbreite, Produktionsbreite oder Verkaufsbreite? - Welche Einheit verwendet die ERP-Spalte? - Koennen Artikelnummern im ERP mehrfach vorkommen? - Falls ja: aus welchem fachlichen Grund? - Welcher ERP-Datensatz ist bei Mehrfachtreffern massgeblich? - Welche Bedeutung hat das bisherige Feld `core_type` mit numerischen Werten? - Soll `core_type` kuenftig Textwerte oder Codes verwenden? - Darf `0.0` bei `area_weight`, `thickness` oder `core_type` als unbekannt interpretiert werden? - Welche Felder benoetigt RollCalc zwingend? - Unterstuetzt RollCalc `null`? - Soll der Artikelname aus dem ERP uebernommen oder nur zum Abgleich verwendet werden? - Welche manuellen Felder duerfen ERP-Werte ueberschreiben? - Wie wird die Qualitaet oder Freigabe manueller Daten gekennzeichnet?