Article Data Manager

Article Data Manager ist ein eigenständiges Python-Projekt zur Pflege, Validierung und späteren Erzeugung der statischen article-data.json für den bestehenden Roll Calculator.

Status: frühe Entwicklungsphase. Phase 0 legt Struktur, Dokumentation, Beispieldaten und erste technische Leitplanken an. Der produktive Merge-Prozess und eine Weboberfläche sind noch nicht implementiert.

Problemstellung

Die Artikeldaten für RollCalc sollen langfristig aus mehreren Quellen nachvollziehbar zusammengeführt werden:

  • bestehende RollCalc-Artikeldaten
  • ERP-Export im CSV-Format
  • manuell gepflegte Zusatz- und Korrekturdaten
  • später weitere technische oder produktionsbezogene Quellen

Das Projekt trennt Quelldaten, manuelle Daten und generierte Ergebnisse, damit keine stillen Datenkorrekturen oder unklare Überschreibungen entstehen.

Abgrenzung zum Roll Calculator

Der Roll Calculator bleibt externer Konsument der erzeugten article-data.json. Article Data Manager wird nicht in das RollCalc-Repository integriert. Importlogik, Datenvalidierung, Merge-Regeln und Reports werden hier entwickelt, damit RollCalc nicht mit Datenpflege- und ERP-Komplexität belastet wird.

Datenfluss

ERP-Export
     +
bestehende RollCalc-Daten
     +
manuelle Zusatzdaten
     |
     v
Import -> Normalisierung -> Validierung -> Merge -> Export
     |
     +--> Reports
     |
     +--> article-data.json fuer RollCalc

Verzeichnisstruktur

src/article_data_manager/   Python-Paket
tests/                      Tests und nicht vertrauliche Fixtures
examples/                   reduzierte Beispieldaten
data/source/                lokale echte Quelldaten, nicht versioniert
data/manual/                lokale manuelle Daten, nicht versioniert
data/generated/             generierte Artefakte, nicht versioniert
data/reports/               Reports, nicht versioniert
docs/                       Architektur, Datenmodell und Regeln
scripts/                    spaetere Hilfsskripte

Ausgangsdaten und Analyse

Die lokalen Ausgangsdateien wurden unter incoming/ gefunden und werden nicht versioniert:

  • incoming/article-data_.json
  • incoming/Liste Schluesseldaten Produktion.csv

Beobachtungen:

  • RollCalc-JSON: 274 Artikel, Felder nr, name, thickness, area_weight, core_type.
  • nr ist im JSON durchgehend String; mindestens eine Artikelnummer beginnt mit 0.
  • ERP-CSV: 1786 Datenzeilen, UTF-8 mit BOM, Delimiter ,.
  • ERP-CSV enthaelt deutsche Dezimalzahlen wie "6,00" und Werte mit Punkt wie 1.548.
  • SL_ITEM_NO ist in allen ERP-Zeilen befuellt; mindestens eine Artikelnummer beginnt mit 0.
  • Es wurden 247 Artikelnummern mit mehrfachen ERP-Treffern erkannt. Die fachliche Bedeutung ist offen.

Installation

Voraussetzung: Python 3.12 oder neuer.

python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e ".[dev]"

Geplante CLI-Nutzung

article-data-manager inspect-csv data/source/erp/production-key-data.csv
article-data-manager merge
article-data-manager validate data/generated/article-data.json

Die CLI-Kommandos sind in Phase 0 nur als Platzhalter vorgesehen.

Implementierte Importer

Der RollCalc-JSON-Importer ist als Python-API verfügbar:

from pathlib import Path

from article_data_manager.importers.rollcalc_json import load_rollcalc_articles

articles = load_rollcalc_articles(Path("data/source/rollcalc/article-data.json"))

Er validiert die bestehende RollCalc-JSON-Struktur strikt, erhält Artikelnummern als Strings und verändert die Quelldatei nicht. Details stehen in docs/importers.md.

Tests

ruff check .
pytest

Umgang mit produktiven ERP-Daten

Produktive ERP-Exporte, RollCalc-Quelldateien, manuelle Arbeitsdateien, Reports und generierte Dateien duerfen nicht ungeprueft in Git eingecheckt werden. Versioniert werden nur anonymisierte oder reduzierte Beispiele und Fixtures.

S
Description
Helper Tool für RollCalc und Production Knowledge Expert
Readme MIT
88 KiB
Languages
Python 100%