9.5 KiB
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: 12.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 über das Skript.
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").
Import (von Wattana)
Die Anwendung benötigt Zugriff auf eine Tabelle oder View mit den Produktionsstandmeldungen sowie die 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").
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:
NutzerPasswort
- Datenbankverbindung über:
HostPortService_Name
- Import der Daten über:
Tabellenname_Produktionsstandmeldung: Name der Tabelle/View, wo die Produktionsstandmeldungen zu finden sindTabellenname_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önnenTabellenname_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 giltTerminabweichung_obere_Schranke: Schranke in Anzahl an Tagen, ab wann ein Auftrag als verspätet giltNutze_Schranken_Terminabweichung_KPI_Berechnung: kanntrue(aktiviert) oderfalse(deaktiviert) sein. Dieser Parameter gibt an, ob der KPI-Berechnung die benutzerdefinierten Schranken (siehe beide Anstriche zuvor) genutzt werden sollen oder nicht. Ist diese Option deaktiviert, wird eine Abweichung< 0als verfrüht und eine> 0als verspätet gewertet.
- Bewertung der Datenqualität für zurückgemeldeten Produktionsvolumen. Entgegen der ursprünglichen 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.
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 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.