Files
article-data-manager/docs/erp-enrichment.md
2026-07-29 14:32:15 +02:00

3.8 KiB

ERP Enrichment Dry Run

Der ERP Enrichment Dry Run reichert ausschließlich vorhandene RollCalc-Artikel mit ausgewählten ERP-Feldern an. Die RollCalc-Datei definiert die relevante Artikelmenge und Reihenfolge. ERP-Artikel ohne RollCalc-Entsprechung werden ignoriert.

Es handelt sich nicht um einen vollständigen ERP-Import, keinen Merge-Prozess und keinen produktiven RollCalc-Export.

Öffentliche API

from pathlib import Path

from article_data_manager.enrichment.erp import (
    enrich_rollcalc_articles_from_erp,
    write_enrichment_outputs,
)

result = enrich_rollcalc_articles_from_erp(
    Path("data/source/rollcalc/article-data.json"),
    Path("data/source/erp/production-key-data.csv"),
)
write_enrichment_outputs(
    result,
    Path("data/generated/article-data.erp-enriched-dry-run.json"),
    Path("data/reports/erp-enrichment-report.csv"),
)

Übernommene ERP-Felder

ERP-Feld Zielfeld Bedeutung Einheit
ROP_PRODUCT_WIDTH product_width_m ERP-Produktbreite m
ROP_RATE_OF_PRODUCTION line_speed_m_min Liniengeschwindigkeit m/min
SL_MINIMUM_PRODUCTION_QUANTITY minimum_production_quantity Mindestproduktionsmenge ERP-Originaleinheit
WPL_WORKPLACE_TEXT workplace geplanter Arbeitsplatz beziehungsweise geplante Anlage Text

ROP_RATE_OF_PRODUCTION ist die für Rollenwechselbetrachtungen maßgebliche Liniengeschwindigkeit in m/min. SL_PRODUCTION_SPEED wird nicht verwendet, weil dessen Einheit artikelabhängig sein kann. kg_qm wird nicht übernommen, weil area_weight aus QC beziehungsweise aus der bestehenden RollCalc-Datenquelle stammt.

ROP_PRODUCT_WIDTH wird als ERP-Produktbreite übernommen, ohne Sonderfälle fachlich zu interpretieren.

Internes Dry-Run-Format

Die vorhandene RollCalc-Struktur bleibt erhalten und wird um ein separates erp-Objekt ergänzt:

{
  "nr": "214700",
  "name": "Stex H 751 (Tfix 751), 6,00 x 50 m",
  "thickness": 6.722,
  "area_weight": 0.0,
  "core_type": 0.0,
  "erp": {
    "product_width_m": 6.0,
    "line_speed_m_min": 18.5,
    "minimum_production_quantity": 5000.0,
    "workplace": "Anlage 3"
  }
}

Das erp-Objekt ist auch vorhanden, wenn kein ERP-Treffer existiert. Fehlende, widersprüchliche oder ungültige ERP-Werte erscheinen dort als null.

Vor produktiver Verwendung in RollCalc muss dessen Ladeverhalten für das zusätzliche erp-Objekt geprüft werden. Langfristig soll ein eigener RollCalc-Export nur die für RollCalc vorgesehenen Felder ausgeben. ERP-Produktionsinformationen müssen nicht zwangsläufig Bestandteil des RollCalc-Exports werden.

Mehrfachtreffer und Status

ERP-Zeilen werden ausschließlich über SL_ITEM_NO der RollCalc-Artikelnummer nr zugeordnet. Artikelnummern werden nicht numerisch konvertiert oder umformatiert.

Mehrfachtreffer werden feldweise ausgewertet:

  • keine ERP-Zeile: no_erp_match
  • keine gefüllten Werte: missing
  • genau ein Wert: unique
  • mehrere Zeilen mit identischem Wert: same_value_multiple_rows
  • mehrere unterschiedliche Werte: conflict
  • nicht interpretierbarer numerischer Wert: invalid

Leere Werte zählen nicht als eigener Konfliktwert. Konflikte und ungültige Werte werden berichtet und nicht automatisch aufgelöst.

Artikelstatus:

  • complete: alle vier Felder haben unique oder same_value_multiple_rows
  • partial: mindestens ein Feld ist missing, aber kein Feld ist conflict oder invalid
  • conflict: mindestens ein Feld ist conflict oder invalid
  • no_erp_match: keine ERP-Zeile zur RollCalc-Artikelnummer

Ausgaben

Standardpfade:

  • data/generated/article-data.erp-enriched-dry-run.json
  • data/reports/erp-enrichment-report.csv

Die Quelldateien werden nicht verändert. Produktive Dry-Run-Ergebnisse werden nicht versioniert.