Initialize Article Data Manager project

This commit is contained in:
2026-07-29 10:53:21 +02:00
commit 83639b9957
51 changed files with 1100 additions and 0 deletions
+82
View File
@@ -0,0 +1,82 @@
# 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?