Initialize Article Data Manager project
This commit is contained in:
@@ -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?
|
||||
Reference in New Issue
Block a user