# Merge-Regeln ## Matching Primaerer Matching-Schluessel ist die Artikelnummer: - RollCalc: `nr` - ERP: beobachtet `SL_ITEM_NO` - manuelle Daten: `nr` Artikelnummern werden als Strings behandelt. Fuehrende Nullen bleiben erhalten. Normalisierung in Phase 0: nur fuehrende und nachgestellte Leerzeichen entfernen. ## Merge-Reihenfolge 1. ERP-Stammdaten 2. bestehende RollCalc-Berechnungsdaten 3. manuelle Ergaenzungen und explizite Korrekturen Diese Reihenfolge ist eine Prioritaetsregel, aber keine Erlaubnis fuer stille Konfliktbereinigung. ## Mehrfache ERP-Treffer Wenn dieselbe Artikelnummer mehrfach im ERP-Export vorkommt, darf Phase 1 keinen Datensatz stillschweigend auswaehlen. Der Artikel muss im Report erscheinen. Falls mehrere ERP-Zeilen fachlich gueltig sind, braucht es eine bestaetigte Auswahlregel. ## Fehlende Treffer - Nur in RollCalc: Artikel bleibt als moeglicher Bestandsartikel sichtbar und wird reportet. - Nur im ERP: Artikel wird als neuer oder nicht in RollCalc gepflegter Artikel reportet. - Nur manuell: Artikel wird reportet, weil kein gesicherter Stammdatensatz vorhanden ist. ## Konflikte Widerspruechliche Werte zwischen Quellen werden nicht stillschweigend ueberschrieben. Konflikte muessen mindestens Quelle, Artikelnummer, Feld, Quellwert und Zielwert enthalten. ## Feldprioritaeten - ERP: Stammdaten, soweit Feld und Bedeutung bestaetigt sind. - RollCalc: bestehende Berechnungsparameter wie `thickness`, `area_weight` und bisherige Kerninformationen. - Manuell: Zusatzdaten und explizit freigegebene Overrides. ## Erlaubte manuelle Overrides In Phase 0 vorgesehen: - `core_diameter` - `core_type` - `area_weight` Weitere Overrides muessen im Datenwoerterbuch dokumentiert werden. ## Reporting Geplante Reports: - `data/reports/merge-report.csv` - `data/reports/unmatched-rollcalc-articles.csv` - `data/reports/unmatched-erp-articles.csv` - `data/reports/validation-report.json` Reports koennen sensible Inhalte enthalten und werden nicht versioniert. ## Deterministische Ausgabe Die exportierte JSON-Datei soll stabil sortiert werden, voraussichtlich nach normalisierter Artikelnummer. Das genaue Sortierverhalten wird in Phase 1 getestet.