83 lines
2.8 KiB
Markdown
83 lines
2.8 KiB
Markdown
# 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?
|