2026-06-16 09:01:52 +02:00
2026-06-11 11:45:31 +02:00
2026-06-12 11:41:37 +02:00
2026-06-16 09:01:52 +02:00
2026-06-03 06:47:41 +00:00
2026-06-04 15:45:13 +02:00
2026-06-03 08:53:42 +02:00
2026-06-12 08:56:18 +02:00
2026-06-16 08:52:35 +02:00

Dokumentation zum Modul für Datenanalyse "wattanalyse"

erstellt von: d-opt-GmbH, Oberneumarker Str. 59, 08496 Neumark

erstellt für: WATTANA GmbH, Gewerbering 19, 09337 Hohenstein-Ernstthal

Datum der letzten Änderung: 16.06.2026

Zweck der Anwendung

Die Anwendung erlaubt die Auswertung gesammelter Produktionsstandmeldungen, also von Rückmeldungen zum aktuellen Auftragsstatus der Lieferenten von Wattana, auch Konfektionäre genannt. Hierfür wurden gemeinsam verschiedene Kennzahlen erarbeitet, die über die Aufträge bzw. die Konfektionäre ermittelt werden können. Diese Kennzahlen sollen in nachfolgenden Schritten für die Erarbeitung eines Ampelsystems herangezogen werden, um die Kritikalität von Produktionsaufträgen visuell zu verdeutlichen und Maßnahmen zur fristgerechten Lieferung einleiten zu können.

Funktionsprinzip

Allgemein

Die Anwendung besteht aus einer isolierten Python-Umgebung mit allen erforderlichen Abhängigkeiten sowie zusätzlichen Ordnern, in denen Daten sowie Konfiguration abliegen. Den Kern bildet eine Datenverarbeitungs-Pipeline, die über einen Modulaufruf angestoßen wird. Um die Pipeline zu starten, befindet sich im Wurzelverzeichnis ein Startup-PowerShell-Skript mit dem Namen "startup.ps1".

Die Verarbeitungs-Pipeline ist aktuell zustandslos, was bedeutet, dass sie über das Startup-Skript angestoßen wird und nach erfolgtem Durchlauf automatisch endet. Es wird kein Prozess gestartet, der manuell wieder beendet werden müsste. Ebenso existieren keine externen Trigger, um die Pipeline zu starten. Dies geschieht stets über den Modulaufruf mithilfe des Skripts.

Systemausgaben und Debugging

Die Anwendung legt unter dem Pfad "data → logs" Log-Dateien an. Damit können Fehler identifiziert und die Anwendung debuggt werden. Standardmäßig ist die Log-Ausgabe für STDOUT oder STDERR deaktiviert. Bei der Ausführung des Skripts sind deshalb im Terminal normalerweise keine Ausgaben ersichtlich. Sollte das aktuelle Verhalten nicht gewünscht sein, so kann dies in Abstimmung mit d-opt angepasst werden. Darüber hinaus kann das Start-Skript "startup.ps1" auch mit der Option "-enableOutput" aufgerufen werden. Damit werden nach Abschluss der Verarbeitungs-Pipeline kurze Rückmeldungen im Terminal ausgegeben, ob die Verarbeitung erfolgreich war oder Fehler aufgetreten sind. Diese enthalten jedoch keine Fehler-Details. Diese sind ausschließlich in den Log-Dateien vorzufinden.

Datenfluss

Wattana-Datenbank

Die Anwendung muss die zu verarbeitenden Daten aus Wattanas Datenbank abrufen und auch dort hineinschreiben. Hierbei handelt es sich um eine Oracle-Datenbank. Die Anwendung nutzt zur Kommunikation den offiziell von Oracle bereitgestellten und gewarteten Datenbanktreiber. Durch Wattana muss ein Datenbank-Nutzer eingerichtet werden, mit dem die erforderlichen Daten abgerufen und auch wieder zurückgeschrieben werden. Die Konfiguration der Datenbankverbindung und des Nutzers erfolgt über die vorhandene Konfigurationsdatei (siehe Abschnitt "Konfiguration → IT"). Details zu notwendigen Tabellen und Views sind den nachfolgenden Abschnitten zu entnehmen.

Import (von Wattana)

Die Anwendung benötigt Zugriff auf eine Tabelle oder View mit den Produktionsstandmeldungen sowie mit der Auftragsübersicht aus dem internen ERP-System "MIS", wie sie bereits durch Wattana als CSV-Auszüge bereitgestellt wurden. Die Konfiguration der Namen der Views und Tabellen erfolgt über die vorhandene Konfigurationsdatei (siehe Abschnitt "Konfiguration"). So ist sichergestellt, dass im Programmcode die korrekten SQL-Abfragen formuliert werden können.

Export (zu Wattana)

Der Export zu Wattana geschieht nach aktuellem Projektstand über zwei Tabellen, in welche die Ergebnisse zurückgeschrieben werden. Diese weisen folgende Schemata auf:

CREATE TABLE WATTANA.KPI_PRODUKTIONSAUFTRAEGE (
    ID NUMBER(1) PRIMARY KEY,
    AKTUALISIERT_AM TIMESTAMP,
    MITTLERE_ANZAHL_TAGE_LIEFERTERMINUNTERSCHREITUNG NUMBER(10),
    MITTLERE_ANZAHL_TAGE_LIEFERTERMINUEBERSCHREITUNG NUMBER(10),
    STANDARDABWEICHUNG_TAGE_LIEFERTERMINABWEICHUNG NUMBER(10,4),
    MITTLERE_ANZAHL_ANPASSUNGEN_LIEFERTERMIN NUMBER(10),
    MITTLERE_ABSTAENDE_ZWISCHEN_MELDUNGEN NUMBER(10),
    MITTLERE_DURCHLAUFZEIT_ANZAHL_TAGE NUMBER(10),
    CONSTRAINT CHK_SINGLE_ROW CHECK (ID = 1)
);

CREATE TABLE WATTANA.KPI_KONFEKTIONAERE (
    ID NUMBER PRIMARY KEY,
    AKTUALISIERT_AM TIMESTAMP,
    KONFEKTIONAER VARCHAR2(200),
    KONFEKTIONAER_ID NUMBER,
    QUOTE_ERSTBESTAETIGUNG NUMBER(7,4),
    PROZENT_LIEFERTREUE NUMBER(7,4),
    ANTEIL_PROZENT_LIEFERTERMINUNTERSCHREITUNG NUMBER(7,4),
    ANTEIL_PROZENT_LIEFERTERMINUEBERSCHREITUNG NUMBER(7,4),
    MITTLERE_ANZAHL_TAGE_LIEFERTERMINUNTERSCHREITUNG NUMBER(10),
    MITTLERE_ANZAHL_TAGE_LIEFERTERMINUEBERSCHREITUNG NUMBER(10),
    STANDARDABWEICHUNG_TAGE_LIEFERTERMINABWEICHUNG NUMBER(10,4),
    MITTLERE_ANZAHL_ANPASSUNGEN_LIEFERTERMIN NUMBER(10),
    MITTLERE_ABSTAENDE_ZWISCHEN_MELDUNGEN NUMBER(10),
    MITTLERE_DURCHLAUFZEIT_ANZAHL_TAGE NUMBER(10),
    MITTLERER_QUALITAETSSCORE_PSM NUMBER(5,4)
);

Die Tabelle "KPI_PRODUKTIONSAUFTRAEGE" enthält das Aggregat der Kennzahlen über alle Aufträge, die in den Produktionsstandmeldungen enthalten sind. Diese besteht demzufolge immer nur aus einem Eintrag, welcher überschrieben wird.

Die Tabelle "KPI_KONFEKTIONAERE" enthält die Kennzahlen über alle Konfektionäre. Sie enthält demzufolge immer so viele Einträge, wie unterschiedliche Konfektionäre in den Produktionsstandmeldungen enthalten sind. Diese Tabelle wird ebenfalls überschrieben.

Die hier festgelegten Tabellennamen sind nur beispielhaft für den Nutzer "WATTANA" erstellt worden und müssen nicht den tatsächlichen entsprechen. Die Konfiguration der Namen dieser beiden Tabellen erfolgt über die vorhandene Konfigurationsdatei (siehe Abschnitt "Konfiguration").

Konfiguration

Die Konfiguration erfolgt über eine TOML-Datei, die über das Applikationsverzeichnis unter "config → wattana.toml" zu finden ist. Diese enthält zwei Tabellen oder "Überschriften":

  • Datenbank: relevant für den folgenden Abschnitt "IT"
  • Datenpipelines_PSM: relevant für den Abschnitt "Auswertung"

IT

relevanter Abschnitt der Konfiguration: "Datenbank"

In diesem Teil der Konfiguration werden alle IT-seitigen Einstellungen vorgenommen. Das betrifft gegenwärtig die Konfiguration von:

  • Datenbanknutzer über:
    • Nutzer
    • Passwort
  • Datenbankverbindung über:
    • Host
    • Port
    • Service_Name
  • Import der Daten über:
    • Tabellenname_Produktionsstandmeldung: Name der Tabelle/View, wo die Produktionsstandmeldungen zu finden sind
    • Tabellenname_MIS_Auftraege: Name der Tabelle/View, wo die Liste der Produktionsaufträge zu finden ist
  • Export der Daten über:
    • Tabellenname_KPI_Auftraege: Name der Tabelle, wo die Kennzahlen aus Auftragssicht gespeichert werden können
    • Tabellenname_KPI_Konfektionaere: Name der Tabelle, wo die Kennzahlen aus Konfektionärssicht gespeichert werden können

Auswertung

relevanter Abschnitt der Konfiguration: "Datenpipelines_PSM"

In diesem Teil der Konfiguration werden alle Einstellungen vorgenommen, die das Verhalten bei den Auswertungen beeinflussen. Das betrifft gegenwärtig die Konfiguration von:

  • Vorverarbeitung über:
    • Vorverarbeitung_Anzahl_Jahre_in_Zukunft_zulaessig: Dieser Parameter bestimmt, ab wann ein Datum in der Zukunft unzulässig ist. Ausgehend vom aktuellen Datum wird der dort als Ganzzahl angegebene Wert als Anzahl der Jahre in die Zukunft interpretiert. Alle Datumswerte darüber, werden als unzulässig markiert und in der Auswertung nicht berücksichtigt. Aktuell wird dieser Filter für folgende Merkmale angewandt: Meldezeitpunkt, Wareneingang am, Zuschnitt am.
  • Auswertung der Terminabweichungen über:
    • Terminabweichung_untere_Schranke: Schranke in Anzahl an Tagen, ab wann ein Auftrag als verfrüht gilt. Dieser Wert muss kleiner oder gleich der oberen Schranke sein (siehe nachfolgender Parameter), sonst kommt es zu einem Abbruch.
    • Terminabweichung_obere_Schranke: Schranke in Anzahl an Tagen, ab wann ein Auftrag als verspätet gilt. Dieser Wert muss größer oder gleich der unteren Schranke sein (siehe vorangegangener Parameter), sonst kommt es zu einem Abbruch.
    • Nutze_Schranken_Terminabweichung_KPI_Berechnung: kann true (aktiviert) oder false (deaktiviert) sein. Dieser Parameter gibt an, ob bei der KPI-Berechnung die benutzerdefinierten Schranken (siehe beide Parameter zuvor) genutzt werden sollen oder nicht. Ist diese Option deaktiviert, wird eine Abweichung < 0 als verfrüht und eine > 0 als verspätet gewertet.
  • Bewertung der Datenqualität für zurückgemeldeten Produktionsvolumen. Entgegen der ursprünglichen KPI-Excel-Tabelle wurde nun zur Qualitätsbewertung der gemeldeten Stückzahlen ein Scoring-System eingeführt, da es die Vergleichbarkeit verbessert. Es gibt drei Kategorien, für die ein nutzerdefinierter Score festgelegt werden kann. Der Maximalwert eines Scores sollte kleiner als 10 sein. Die Definition geschieht über:
    • Score_Qualitaet_Produktionsmengen_fehlend: Dieser Score wird vergeben, wenn alle Einträge für die Stückzahlen als "0" oder gar nicht zurückgemeldet wurden.
    • Score_Qualitaet_Produktionsmengen_unplausibel: Dieser Score wird vergeben, wenn die Einträge für die Stückzahlen nicht plausibel sind. Plausible Einträge sind so definiert, dass die zurückgemeldeten Stückzahlen gemäß dem Fortschritt in der Fertigung anwachsen müssen. Die Stückzahlen eines vorgelagerter Prozessschritts dürfen nicht kleiner als die eines nachgelagerten sein.
    • Score_Qualitaet_Produktionsmengen_plausibel: Dieser Score wird vergeben, wenn die Einträge für die Stückzahlen plausibel sind. Dieser Score sollte immer der Maximal- oder Minimalwert über alle drei Kategorien sein. Erreicht ein Konfektionär einen durchschnittlichen Wert nahe diesem, gelten seine gemeldeten Produktionsvolumina als zuverlässig.

Systemanforderungen

CPU

Die Anwendung stellt keine besonderen Anforderungen an das ausführende System. Es werden gängige x86-CPU-Generationen unterstützt. Die im Hintergrund verwendeten Bibliotheken benötigen zum Teil moderne CPU-Befehlssätze, um die maximale Geschwindigkeit zu erreichen. Häufig haben diese aber auch eine Rückfalloption auf ältere Instruktionen, wodurch die Ausführungsgeschwindigkeit minimal sinken kann. Für neuere Prozessoren ab Baujahr 2018 sollte das jedoch keine Rolle spielen.

RAM

Die RAM-Auslastung hängt primär von der Größe der zu verarbeitenden Datenbestände ab. Bei internen Tests mit den bereitgestellten Daten wurde für den gesamten Prozess eine maximale RAM-Belegung von 180 MB gemessen. Je mehr Produktionsstandmeldungen vorhanden sind, desto größer wird der Speicherbedarf. Auf eine inkrementelle Verarbeitungslogik wurde zunächst verzichtet, da die Größe der zu verarbeitenden Datenbestände unkritisch sein sollte.

Description
first project with Wattana: analysis of production state messages obtained from customers
Readme 691 KiB
Languages
Python 94.2%
PowerShell 5.8%