Ihr Daten-Template für die Produktionsplanung
Ihr Daten-Template für die Produktionsplanung
- Empfohlene Attribute für die Analyse der Produktionsplanung
- Wichtige Aktivitäten der Produktionsplanung zur Nachverfolgung
- Detaillierte Anleitung zum Datenexport aus SAP S/4HANA
Attribute der Produktionsplanung
| Name | Beschreibung | ||
|---|---|---|---|
| Aktivität Activity | Der Name des konkreten Ereignisses oder der Aufgabe, die zu einem bestimmten Zeitpunkt im Fertigungsplanungsprozess stattgefunden hat. | ||
| Beschreibung Dieses Attribut erfasst einzelne Schritte und Meilensteine im Lebenszyklus eines Fertigungsauftrags. Beispiele sind „Fertigungsauftrag angelegt“, „Materialverfügbarkeit geprüft“, „Fertigung gestartet“ und „Auftrag finanziell abgeschlossen“. Jede Aktivität steht für eine konkrete Aktion oder Statusänderung, die im System dokumentiert ist. Die Analyse der Abfolge und Häufigkeit dieser Aktivitäten bildet den Kern des Process Mining. Sie macht den Prozessablauf sichtbar, zeigt Abweichungen von der Standardvorgehensweise auf und hilft, Aktivitäten zu erkennen, die Verzögerungen verursachen oder häufig Nacharbeit erfordern, etwa „Fertigungsplan angepasst“. Warum das wichtig ist Das Attribut definiert die Prozessschritte und ermöglicht es, den tatsächlichen Fertigungsablauf und seine Varianten zu erkennen und darzustellen. Woher beziehen Abgeleitet aus Statusänderungen in Tabellen wie JEST und JCDS, verwendeten Transaktionscodes (z. B. CO01 zum Anlegen) oder bestimmten Rückmeldedatensätzen in AFRU. Beispiele Produktionsauftrag angelegtProduktionsauftrag freigegebenProduktion gestartetAbschlussrückmeldung erfasstWareneingang gebucht | |||
| Fertigungsauftrag ProductionOrder | Die eindeutige Kennung eines Fertigungsauftrags. Sie dient als primäre Case-ID für den Fertigungsplanungsprozess. | ||
| Beschreibung Die Fertigungsauftragsnummer ist ein von SAP S/4HANA generierter eindeutiger Schlüssel, mit dem alle Aktivitäten zur Herstellung einer bestimmten Produktmenge verwaltet und nachverfolgt werden. Sie verknüpft alle zugehörigen Ereignisse von der Planung und Freigabe bis zur Ausführung und abschließenden Abrechnung. Im Process Mining ist dieses Attribut entscheidend, um alle zugehörigen Ereignisse zu einer durchgängigen Prozessinstanz zusammenzufassen. Die Analyse nach Fertigungsauftrag ermöglicht es, wichtige Kennzahlen wie die Zykluszeit und die Termintreue zu messen sowie Engpässe in bestimmten Fertigungsläufen zu erkennen. Warum das wichtig ist Dieses grundlegende Attribut verknüpft alle Prozessschritte und ermöglicht eine vollständige Analyse des Fertigungslebenszyklus auf Case-Ebene, vom Anfang bis zum Abschluss. Woher beziehen Dies ist die Fertigungsauftragsnummer. Sie ist in SAP-Tabellen wie AFKO (Feld AUFNR) und AFPO zu finden. Beispiele 100056710008341001299 | |||
| Startzeit StartTime | Der Timestamp, der angibt, wann eine bestimmte Aktivität oder ein Ereignis begonnen hat. | ||
| Beschreibung Dieses Attribut enthält Datum und Uhrzeit jedes erfassten Ereignisses im Fertigungsprozess. Es bildet die zeitliche Grundlage für alle zeitbezogenen Prozessanalysen. Die Startzeit ist entscheidend, um Zeitspannen zwischen Aktivitäten und die gesamte Zykluszeit eines Fertigungsauftrags zu berechnen und den zeitlichen Ablauf der Ereignisse nachzuvollziehen. Durch den Abgleich tatsächlicher Timestamps mit geplanten Terminen lassen sich Engpässe, Wartezeiten und die Termintreue analysieren. Warum das wichtig ist Das Attribut ordnet alle Ereignisse chronologisch ein und ermöglicht so die Analyse von Prozessleistung, Zeitspannen und Engpässen. Woher beziehen Diese Informationen finden sich üblicherweise bei Statusänderungen in den Änderungsbelegtabellen (CDHDR/CDPOS), bei Ausführungsschritten in den Rückmeldungstabellen (AFRU) und bei Anlagedaten in den Kopftabellen (AFKO). Beispiele 2023-10-26T09:00:00Z2023-10-26T14:30:00Z2023-10-27T08:15:00Z | |||
| Letzte Datenaktualisierung LastDataUpdate | Der Timestamp, der angibt, wann die Daten zuletzt aktualisiert oder aus dem Quellsystem extrahiert wurden. | ||
| Beschreibung Dieses Attribut erfasst Datum und Uhrzeit des letzten Datenabrufs. Als wichtige Metadaten informiert es Benutzer darüber, wie aktuell die analysierten Daten sind. Der Zeitpunkt der letzten Aktualisierung ist wichtig, um die Analyse richtig einzuordnen. Er zeigt, ob Sie Echtzeitinformationen oder einen Datenstand von einem bestimmten Zeitpunkt betrachten. Das beeinflusst, wie relevant die Erkenntnisse und darauf basierenden Entscheidungen sind. Warum das wichtig ist So wissen Benutzer, wie aktuell die Daten sind, und können fundierte, relevante Geschäftsentscheidungen treffen. Woher beziehen Dieser Timestamp wird während des ETL-Prozesses (Extraktion, Transformation und Laden) erzeugt und hinzugefügt. Beispiele 2024-05-21T02:00:00Z2024-05-22T02:00:00Z2024-05-23T02:00:00Z | |||
| Quellsystem SourceSystem | Das System, aus dem die Daten zur Fertigungsplanung extrahiert wurden. | ||
| Beschreibung Dieses Attribut kennzeichnet die Herkunft der Daten. Das ist besonders in Umgebungen mit mehreren integrierten Systemen wichtig. Für diesen Prozess handelt es sich in der Regel um die jeweilige SAP-S/4HANA-Instanz. Bei umfassenderen Datenanalysen hilft die Kenntnis des Quellsystems, die Datenintegrität sicherzustellen und Daten aus verschiedenen Quellen korrekt einzuordnen. Als grundlegende Metadaten unterstützt es außerdem Data Governance und Rückverfolgbarkeit. Warum das wichtig ist Das Attribut liefert wichtige Metadaten für die Data Governance und macht Herkunft und Kontext der Prozessdaten nachvollziehbar. Woher beziehen Dabei handelt es sich üblicherweise um einen statischen Wert, der bei der Datenextraktion ergänzt wird, um den SAP-Mandanten und die System-ID (SID) zu kennzeichnen. Beispiele S4P_100S4H_PRD_200S4Q_300 | |||
| Arbeitsplatz WorkCenter | Die Maschine, Maschinengruppe oder der Montagebereich, die bzw. der für einen Arbeitsvorgang zuständig ist. | ||
| Beschreibung Ein Arbeitsplatz bezeichnet eine bestimmte operative Einheit innerhalb eines Werks, an der ein Fertigungsschritt ausgeführt wird. Das kann eine einzelne Maschine, eine Fertigungslinie oder eine Gruppe von Mitarbeitenden sein. Die Analyse der Prozessdaten nach Arbeitsplatz hilft, Kapazitätsengpässe zu erkennen und Ressourcen gezielt einzusetzen. Sie zeigt, welche Arbeitsplätze überlastet oder nicht ausgelastet sind und wo es während der Fertigung besonders häufig zu Verzögerungen kommt. Diese Informationen sind wichtig für das Dashboard zur Erkennung von Kapazitätsengpässen. Warum das wichtig ist Das Attribut zeigt, welche Maschinen oder Fertigungslinien Engpässe verursachen, und ermöglicht gezielte Verbesserungen bei Kapazität und Ressourcenauslastung. Woher beziehen Zu finden in den Vorgangsdaten eines Fertigungsauftrags, Tabelle AFVC (Feld ARBPL). Beispiele WC-ASSEMBLY-01WC-MILLING-05WC-PACKING | |||
| Auftragsstatus OrderStatus | Der aktuelle Bearbeitungsstatus des Fertigungsauftrags, zum Beispiel angelegt, freigegeben oder technisch abgeschlossen. | ||
| Beschreibung Der Auftragsstatus zeigt die aktuelle Phase des Fertigungsauftrags in seinem Lebenszyklus an. Er fasst die verschiedenen System- und Benutzerstatus zusammen, die dem Auftrag zugewiesen sind. Häufige Status sind CRTD (angelegt), REL (freigegeben), CNF (rückgemeldet), TECO (technisch abgeschlossen) und CLSD (geschlossen). Die Analyse des aktuellen Auftragsstatus gibt Aufschluss über den Stand der laufenden Arbeit. Im Process Mining erzeugt die zeitliche Nachverfolgung der Statusübergänge das Aktivitätsprotokoll. Dadurch lassen sich der Prozessablauf und die Dauer der einzelnen Phasen detailliert untersuchen. Warum das wichtig ist Das Attribut zeigt auf hoher Ebene, in welcher Phase des Lebenszyklus sich ein Auftrag befindet, und bildet eine wichtige Grundlage für die Ableitung der Aktivitätsabfolge im Process Mining. Woher beziehen Abgeleitet aus dem Systemstatus in Tabelle JEST, verknüpft über die Objektnummer in AFKO (Feld OBJNR). Beispiele CRTDRELTECOCLSD | |||
| Geplantes Enddatum PlannedEndDate | Das laut ursprünglicher Planung vorgesehene Abschlussdatum des Fertigungsauftrags. | ||
| Beschreibung Das geplante Enddatum gibt an, bis wann alle Fertigungsaktivitäten eines Auftrags abgeschlossen sein sollen. Es wird während der Terminplanung in der Fertigungsplanung festgelegt. Dieses Attribut ist wichtig, um die Termintreue zu messen. Durch den Vergleich des geplanten Enddatums mit dem tatsächlichen Abschluss-Timestamp können Unternehmen die Kennzahl zur Termintreue in der Fertigung berechnen und verspätete Aufträge erkennen. Diese Analyse ist entscheidend, um die Planungsgenauigkeit und die Kundenzufriedenheit zu verbessern. Warum das wichtig ist Das Attribut dient als Grundlage für die Messung der Termintreue und hilft, die Planungsgenauigkeit sowie die Effizienz der Ausführung zu bewerten. Woher beziehen Zu finden in der Kopftabelle AFKO des Fertigungsauftrags (Feld GLTRP). Beispiele 2023-11-152023-12-012024-01-20 | |||
| Materialnummer MaterialNumber | Die eindeutige Kennung des Produkts, das im Fertigungsauftrag hergestellt wird. | ||
| Beschreibung Die Materialnummer bezeichnet den Artikel, den der Fertigungsauftrag herstellen soll. Sie verknüpft den Fertigungsprozess mit den Materialstammdaten, einschließlich Stückliste und Arbeitsplan. Die Analyse nach Materialnummer zeigt, ob bestimmte Produkte häufiger von Verzögerungen, Nacharbeit oder Materialengpässen betroffen sind. So können Prozesse gezielt für einzelne Produkte optimiert werden, etwa durch angepasste Planungsparameter oder eine verbesserte Versorgung mit bestimmten Komponenten. Warum das wichtig ist Das Attribut ermöglicht Filter und Analysen nach Produkt und macht produktspezifische Ineffizienzen oder Engpässe sichtbar. Woher beziehen Zu finden in der Positionstabelle AFPO des Fertigungsauftrags (Feld MATNR). Beispiele RM-1001FG-2050SA-3100-B | |||
| Werk Plant | Der Fertigungsstandort, an dem der Fertigungsauftrag ausgeführt wird. | ||
| Beschreibung Das Werk ist eine Organisationseinheit in SAP, die einen Produktionsstandort oder eine Fertigungsstätte bezeichnet. Jeder Fertigungsauftrag wird einem bestimmten Werk zugeordnet, in dem die Fertigung stattfindet. Dieses Attribut ist wichtig für den Vergleich verschiedener Fertigungsstandorte. Durch die Aufschlüsselung der Prozessdaten nach Werk können Unternehmen die Leistung vergleichen, standortspezifische Probleme und bewährte Vorgehensweisen erkennen und regionale Unterschiede bei Effizienz, Kapazität oder Einhaltung von Standards nachvollziehen. Warum das wichtig ist Das Attribut ermöglicht den Leistungsvergleich verschiedener Fertigungsstandorte. So lassen sich bewährte Vorgehensweisen erkennen und teilen sowie standortspezifische Probleme angehen. Woher beziehen Zu finden in der Kopftabelle AFKO des Fertigungsauftrags (Feld DWERK). Beispiele 100017102000 | |||
| Auftragsart OrderType | Eine Klassifizierung des Fertigungsauftrags, die seinen Zweck festlegt und seine Bearbeitung steuert. | ||
| Beschreibung Die Auftragsart ist ein wichtiges Konfigurationselement in SAP PP. Sie legt fest, wie das System einen Fertigungsauftrag bearbeitet. Sie steuert Nummernkreise, die Auswahl von Stammdaten, Kalkulationsparameter und Abrechnungsregeln. Beispiele sind Standardfertigungsaufträge, Nacharbeitsaufträge und Prototypenaufträge. Die Analyse nach Auftragsart ermöglicht den Vergleich von Leistung und Ablauf verschiedener Fertigungsprozesse. So lässt sich feststellen, ob Nacharbeitsaufträge deutlich länger dauern oder bestimmte Auftragsarten häufiger Plananpassungen erfordern. Diese Erkenntnisse helfen, Verbesserungen gezielt umzusetzen. Warum das wichtig ist Das Attribut ermöglicht die Analyse nach Geschäftszweck des Auftrags und den Vergleich von Standardfertigung, Nacharbeit und anderen Prozessen. Woher beziehen Zu finden in der Kopftabelle AFKO des Fertigungsauftrags (Feld AUART). Beispiele PP01PP03ZP01 | |||
| Benutzer User | Die System-ID des Benutzers, der ein Ereignis zum Fertigungsauftrag angelegt, geändert oder rückgemeldet hat. | ||
| Beschreibung Dieses Attribut erfasst die SAP-Benutzer-ID, die einer bestimmten Transaktion oder Statusänderung zugeordnet ist, etwa der Freigabe eines Auftrags oder der Erfassung einer Rückmeldung. So lassen sich Aktionen im System nachvollziehen. Die Analyse nach Benutzer hilft, die Arbeitslast zu verstehen, Schulungsbedarf zu erkennen und die Einhaltung von Vorgehensweisen zu prüfen. Sie kann beispielsweise zeigen, ob bestimmte Benutzer häufig an Plananpassungen beteiligt sind oder ob Verzögerungen mit bestimmten Teams zusammenhängen. Warum das wichtig ist Das Attribut schafft Nachvollziehbarkeit und ermöglicht die Analyse der Arbeitslast, benutzerspezifischer Verhaltensmuster und möglicher Schulungsbedarfe. Woher beziehen Üblicherweise zu finden in den Änderungsbelegköpfen (CDHDR, Feld UNAME) oder in Rückmeldedatensätzen (AFRU, Feld PERNR für die Personalnummer). Beispiele CB9980000021JSMITHPLANNER01 | |||
| Endzeit EndTime | Der Timestamp, der angibt, wann eine bestimmte Aktivität oder ein Ereignis abgeschlossen wurde. | ||
| Beschreibung Dieses Attribut enthält Datum und Uhrzeit des Abschlusses jedes erfassten Ereignisses. Zusammen mit der Startzeit gibt es die Dauer der Aktivitäten an. Die Endzeit ist entscheidend, um die genaue Verarbeitungszeit einzelner Aktivitäten zu berechnen. Diese ist eine wichtige Grundlage für die Analyse von Kapazität und Ressourcenauslastung. So lässt sich zwischen aktiver Arbeitszeit und Leerlauf- oder Wartezeit unterscheiden und Engpässe lassen sich genauer erkennen. Warum das wichtig ist Damit lassen sich genaue Aktivitätsdauern berechnen, die für die Analyse der Ressourceneffizienz und das Erkennen von Engpässen wichtig sind. Woher beziehen Bei Ausführungsschritten in den Rückmeldungstabellen (AFRU) zu finden. Bei anderen Ereignissen kann die Endzeit der Startzeit entsprechen, wenn das Ereignis unmittelbar eintritt. Beispiele 2023-10-26T09:45:00Z2023-10-26T15:00:00Z2023-10-27T10:30:00Z | |||
| Fertigungspriorität ProductionPriority | Ein Code oder Wert, der einem Fertigungsauftrag zugewiesen wird, um seine Dringlichkeit oder Bedeutung anzugeben. | ||
| Beschreibung Planer und Terminplaner verwenden die Fertigungspriorität, um Aufträge zu ordnen und zu priorisieren, insbesondere bei begrenzten Ressourcen. Aufträge mit höherer Priorität sollten möglichst vor Aufträgen mit niedrigerer Priorität bearbeitet werden. Die Analyse dieses Attributs zeigt, ob die zugewiesenen Prioritäten in der Fertigung eingehalten werden. Das Dashboard zur Konsistenz der Fertigungspriorisierung vergleicht die Bearbeitungsreihenfolge mit der zugewiesenen Priorität und macht Abweichungen sichtbar. So lassen sich die Disziplin bei der Terminplanung und die Abstimmung zwischen Planung und Ausführung verbessern. Warum das wichtig ist Das Attribut zeigt, ob die Fertigungsplanung den geschäftlichen Prioritäten folgt und dringende Aufträge wie vorgesehen vorgezogen werden. Woher beziehen Häufig handelt es sich um ein benutzerdefiniertes Feld oder einen Wert, der aus anderen Auftragsparametern abgeleitet wird. Wo genau er zu finden ist, hängt von der Konfiguration ab. Beispiele HochMittelNiedrig15 | |||
| Geplantes Startdatum PlannedStartDate | Das laut ursprünglicher Planung vorgesehene Startdatum des Fertigungsauftrags. | ||
| Beschreibung Das geplante Startdatum gibt an, wann die Fertigungsaktivitäten eines Auftrags beginnen sollen. Es ist ein wichtiges Ergebnis der Terminplanung. Dieses Attribut bildet die Grundlage für die Analyse der Termintreue beim Start. Der Vergleich des geplanten Startdatums mit der tatsächlichen Startzeit zeigt Verzögerungen in der Vorbereitungsphase, etwa bei der Bereitstellung von Material oder der Auftragsfreigabe. Solche Verzögerungen können sich auf den gesamten Fertigungszeitplan auswirken. Warum das wichtig ist Das Attribut bildet die Grundlage für die Messung der Termintreue beim Start und hilft, Verzögerungen in der Vorbereitung zu erkennen, etwa bei der Auftragsfreigabe oder Materialverfügbarkeit. Woher beziehen Zu finden in der Kopftabelle AFKO des Fertigungsauftrags (Feld GSTRP). Beispiele 2023-11-102023-11-252024-01-15 | |||
| Materialverfügbarkeitsstatus MaterialAvailabilityStatus | Gibt an, ob alle für den Fertigungsauftrag benötigten Materialien verfügbar sind. | ||
| Beschreibung Dieser Status zeigt das Ergebnis der Materialverfügbarkeitsprüfung für einen Fertigungsauftrag an. Er kann bedeuten, dass alle Materialien verfügbar sind, einige fehlen oder die Prüfung noch nicht durchgeführt wurde. Der Status „Fehlbestand“ weist auf mögliche Verzögerungen hin. Dieses Attribut ist entscheidend für das Dashboard zur Analyse der Auswirkungen von Materialengpässen. Es hilft, Verzögerungen durch fehlende Materialien zu quantifizieren, indem der Fehlbestand mit der Zeit zwischen Auftragsfreigabe und Fertigungsstart in Beziehung gesetzt wird. Die Verbesserung dieser Kennzahl trägt zu einem reibungsloseren Fertigungsablauf bei. Warum das wichtig ist Das Attribut erklärt Verzögerungen zwischen Auftragsfreigabe und Fertigungsstart und hilft, die Auswirkungen von Problemen in der Lieferkette auf die Fertigung zu quantifizieren. Woher beziehen Dies ist ein Status, der häufig aus dem Gesamtstatus der Materialkomponenten abgeleitet wird. Er kann im Systemstatus (JEST) mit Statuswerten wie „MSPT“ (Materialfehlbestand) zu finden sein. Beispiele VerfügbarFehlbestandNicht geprüft | |||
| Nacharbeit erfolgt IsRework | Eine Kennzeichnung dafür, ob bei einem Fertigungsauftrag nach Beginn der Fertigung Nacharbeit oder wesentliche Plananpassungen erforderlich waren. | ||
| Beschreibung Dieses boolesche Attribut kennzeichnet Fertigungsaufträge, bei denen nach Fertigungsbeginn Korrekturmaßnahmen oder Planänderungen vorgenommen wurden. Auslöser kann eine explizite Nacharbeitsaktivität oder ein Ereignis „Fertigungsplan angepasst“ nach „Fertigung gestartet“ sein. Die Kennzeichnung ist wichtig für die Berechnung der Nacharbeitsquote in der Fertigung und für das Dashboard zu Nacharbeit und Änderungen in der Fertigung. Sie ermöglicht es, problematische Cases gezielt zu filtern und zu analysieren. So lassen sich die Ursachen von Qualitätsproblemen oder Prozessabweichungen aufdecken, die kostspielige Nacharbeit nach sich ziehen. Warum das wichtig ist Das Attribut grenzt Cases mit Nacharbeit ab und ermöglicht gezielte Analysen, um Qualitätsprobleme, Prozessabweichungen und damit verbundene Kosten zu verstehen und zu senken. Woher beziehen Berechnetes Feld. Wird auf „true“ gesetzt, wenn innerhalb desselben Case nach der Aktivität „Fertigung gestartet“ die Aktivität „Fertigungsplan angepasst“ auftritt oder eine bestimmte Nacharbeitsauftragsart verwendet wird. Beispiele truefalse | |||
| Rückgemeldete Menge TotalConfirmedQuantity | Die Gesamtmenge des Materials, deren Fertigung für den Auftrag rückgemeldet wurde. | ||
| Beschreibung Dieses Attribut gibt die kumulierte Menge an Fertig- oder Halbfertigerzeugnissen an, die über Fertigungsrückmeldungen erfasst wurde. Es zeigt den Fortschritt des Auftrags im Verhältnis zur geplanten Fertigstellungsmenge. Der Vergleich der rückgemeldeten mit der geplanten Menge hilft, den Fertigungsfortschritt zu überwachen und Ausbeuteprobleme oder Abweichungen zu erkennen. Als grundlegende Ausbringungskennzahl fließt das Attribut in verschiedene Leistungsberechnungen ein, darunter Ausschussquoten und Effizienz. Warum das wichtig ist Das Attribut erfasst die tatsächliche Ausbringung des Fertigungsauftrags. So lassen sich Fortschritt und Ausbeute überwachen und Abweichungen erkennen. Woher beziehen Aggregiert aus Rückmeldedatensätzen in AFRU (Feld LMNGA für die Ausbringungsmenge). Beispiele 9801000501200 | |||
| Termingerecht abgeschlossen IsOnTime | Eine Kennzeichnung dafür, ob der Fertigungsauftrag am geplanten Enddatum oder früher abgeschlossen wurde. | ||
| Beschreibung Dieses berechnete boolesche Attribut misst die Termintreue direkt, indem es das tatsächliche Abschlussdatum mit dem geplanten Enddatum vergleicht. Für jeden Fertigungsauftrag zeigt es eindeutig an, ob der Abschluss termingerecht erfolgte. Das Attribut bildet die Grundlage für die Kennzahl zur Termintreue in der Fertigung. Es vereinfacht die Analyse, indem Aufträge nach termingerechtem oder verspätetem Abschluss aufgeschlüsselt werden können. So lassen sich gemeinsame Merkmale oder Prozesspfade erkennen, die mit Verzögerungen verbunden sind. Warum das wichtig ist Das Attribut misst die Termintreue jedes Auftrags klar und einfach und erleichtert die Analyse der Ursachen von Verzögerungen. Woher beziehen Berechnetes Feld. Wird auf „true“ gesetzt, wenn der Timestamp der Aktivität „Auftrag technisch abgeschlossen“ kleiner oder gleich dem Attribut „Geplantes Enddatum“ ist. Beispiele truefalse | |||
Aktivitäten der Produktionsplanung
| Aktivität | Beschreibung | ||
|---|---|---|---|
| Abschlussrückmeldung erfasst | Diese Aktivität erfasst die Rückmeldung zum letzten Vorgang im Arbeitsplan des Produktionsauftrags. Sie zeigt an, dass alle geplanten Fertigungsschritte abgeschlossen sind. | ||
| Warum das wichtig ist Die Abschlussrückmeldung ist ein wichtiger Meilenstein und markiert das Ende der physischen Produktionsarbeit. Häufig dient sie als genauerer Endpunkt für die Messung der Durchlaufzeit in der Fertigung, bevor der Wareneingang gebucht wird. Woher beziehen Abgeleitet aus den Rückmeldungsdaten in der Tabelle AFRU. Ermittelt wird der Rückmeldungssatz zum letzten Vorgang (AFVC-VPLNR), bei dem das Kennzeichen für die Abschlussrückmeldung (AFRUD-AUERU) gesetzt ist. Erfassung Ermitteln Sie die letzte Vorgangsrückmeldung in AFRU, bei der das Kennzeichen für die Abschlussrückmeldung gesetzt ist. Ereignistyp inferred | |||
| Auftrag technisch abgeschlossen | Dieser administrative Abschlussschritt verhindert weitere logistische Änderungen am Auftrag, etwa Materialbewegungen oder Rückmeldungen. Aus logistischer Sicht gilt der Auftrag damit als abgeschlossen. | ||
| Warum das wichtig ist TECO ist ein endgültiger Endpunkt des Produktionsprozesses und entscheidend für die Berechnung der gesamten Durchlaufzeit des Produktionsauftrags. Der Status zeigt an, dass alle logistischen Aktivitäten abgeschlossen sind und der Auftrag abgerechnet werden kann. Woher beziehen Ein Benutzer löst das Ereignis aus, indem er den Status auf TECO (Technically Completed) setzt. Die Statusänderung wird mit dem entsprechenden Zeitstempel in der Tabelle JCDS erfasst. Erfassung Zeitstempel der Statusänderung auf 'TECO' in der Tabelle JCDS. Ereignistyp inferred | |||
| Produktion gestartet | Dieses Ereignis zeigt den Beginn der physischen Produktionsarbeiten für den Auftrag an. Es wird üblicherweise aus der ersten Rückmeldung aus der Fertigung oder der ersten Materialentnahme für den Auftrag abgeleitet. | ||
| Warum das wichtig ist Diese Aktivität markiert den Übergang von der Planung zur Ausführung. Für die Überwachung der Termintreue wird das tatsächliche Startdatum mit dem geplanten Startdatum verglichen. Woher beziehen Dieses Ereignis wird abgeleitet. Üblicherweise dient der früheste Zeitstempel einer Materialbuchung (Tabelle MSEG, Bewegungsart 261) oder einer Zeitrückmeldung (Tabelle AFRU) zum Auftrag als Grundlage. Erfassung Frühester Zeitstempel aus AFRU (Rückmeldungen) oder MSEG (Materialbewegungen) zum Auftrag. Ereignistyp inferred | |||
| Produktionsauftrag angelegt | Zu Beginn wird der Produktionsauftrag im System angelegt. Er dient als formaler Auftrag, eine festgelegte Produktmenge herzustellen. Das Ereignis wird erfasst, wenn ein Benutzer einen neuen Auftrag speichert und dessen Anfangsstatus auf CRTD (Created) gesetzt wird. | ||
| Warum das wichtig ist Dieses Ereignis markiert den Beginn des Lebenszyklus eines Produktionsauftrags. Die Zeit zwischen dem Anlegen und der Freigabe zeigt administrative oder planerische Verzögerungen, bevor die Produktion offiziell eingeplant wird. Woher beziehen Das Ereignis wird in der Tabelle AUFK (Auftragsstammdaten) mit dem Anlegedatum (ERDAT) erfasst. Der Status CRTD (Created) wird in den Tabellen JEST und JCDS protokolliert und über die Objektnummer des Auftrags (OBJNR) zugeordnet. Erfassung Zeitstempel aus AUFK-ERDAT oder aus dem Statusänderungsprotokoll für 'CRTD' in JCDS. Ereignistyp explicit | |||
| Produktionsauftrag freigegeben | Bei diesem wichtigen Meilenstein wird der Produktionsauftrag freigegeben und für die Ausführung in der Fertigung bereitgestellt. Danach können Materialentnahmen, Rückmeldungen und weitere Ausführungsschritte beginnen. | ||
| Warum das wichtig ist Dieses Ereignis markiert den offiziellen Beginn des ausführbaren Produktionsprozesses und ist ein wichtiger Messpunkt für die Durchlaufzeit. Die Zeit zwischen dem Anlegen und der Freigabe ist eine zentrale Kennzahl für die Effizienz vor Produktionsbeginn. Woher beziehen Ein Benutzer oder Systemjob löst die Freigabe ausdrücklich aus. Dadurch wird der Status REL gesetzt. Die Statusänderung wird mit Zeitstempel in der Tabelle JCDS erfasst. Das Freigabedatum ist häufig auch in AFKO-FTRMI gespeichert. Erfassung Zeitstempel der Statusänderung auf 'REL' in der Tabelle JCDS. Ereignistyp inferred | |||
| Produktionsplan angepasst | Dieses Ereignis bezeichnet eine wesentliche Änderung am freigegebenen Produktionsauftrag, etwa an der Menge, den Terminen oder der Stückliste. Die Änderung wird anhand von Änderungsbelegen ermittelt. | ||
| Warum das wichtig ist Häufige Anpassungen können auf instabile Planung oder schwankende Nachfrage hindeuten. Diese Aktivität bildet die Grundlage für die Kennzahl zur Änderungsrate des Produktionsplans und hilft, Ursachen für Prozessschwankungen zu erkennen. Woher beziehen Abgeleitet aus den Änderungsprotokollen in den Tabellen CDHDR (Änderungsbelegkopf) und CDPOS (Änderungsbelegpositionen) für das Produktionsauftragsobjekt (AUFK oder AFPO). Änderungen nach dem Freigabedatum gelten als Anpassungen. Erfassung Ermitteln Sie Änderungen an wichtigen Feldern, zum Beispiel Menge und Termine, in CDHDR/CDPOS nach der Freigabe. Ereignistyp inferred | |||
| Wareneingang gebucht | Dieses Ereignis erfasst den Eingang des fertigen Produkts aus der Fertigung in den Bestand. Dadurch erhöht sich der Lagerbestand des produzierten Materials. | ||
| Warum das wichtig ist Dieser wichtige Meilenstein steht für den Abschluss der Produktionsleistung. Häufig gilt er als Ende des Produktionszyklus, wenn Termintreue und Gesamtdurchlaufzeit gemessen werden. Woher beziehen Dies ist eine ausdrückliche Buchung, die in den Materialbelegtabellen MSEG (Positionsebene) und MKPF (Kopfebene) erfasst wird, üblicherweise mit der Bewegungsart 101. Die Belege sind mit dem Produktionsauftrag verknüpft. Erfassung Ermitteln Sie den mit dem Auftrag verknüpften Materialbeleg in MSEG mit der Bewegungsart 101. Ereignistyp explicit | |||
| Auftrag kaufmännisch abgeschlossen | Im letzten Abschlussschritt wird der Auftrag abgerechnet. Danach sind keine weiteren Finanzbuchungen möglich. Aus Sicht des Controllings und der Buchhaltung endet damit der Lebenszyklus des Auftrags. | ||
| Warum das wichtig ist Diese Aktivität liegt häufig außerhalb einer reinen Produktionsanalyse, ermöglicht aber einen vollständigen Überblick über den gesamten Ablauf. So lässt sich die Zeit zwischen dem logistischen Abschluss (TECO) und dem kaufmännischen Abschluss untersuchen. Woher beziehen Ein Benutzer löst das Ereignis aus, indem er den Status auf CLSD (Closed) setzt. Die Statusänderung wird mit dem entsprechenden Zeitstempel in der Tabelle JCDS erfasst. Erfassung Zeitstempel der Statusänderung auf 'CLSD' in der Tabelle JCDS. Ereignistyp inferred | |||
| Kapazitätsbedarf geplant | Bei dieser Aktivität werden die Vorgänge des Produktionsauftrags eingeplant und die verfügbaren Kapazitäten an den benötigten Arbeitsplätzen geprüft. Das System bewertet die Kapazitätsauslastung der Arbeitsplätze und gleicht sie bei entsprechender Konfiguration aus. Daraus ergeben sich die Produktionstermine. | ||
| Warum das wichtig ist Dieser Schritt ist entscheidend für einen realisierbaren Produktionsplan. Die Analyse seiner Dauer und Ergebnisse hilft, Kapazitätsengpässe zu erkennen und die Genauigkeit der Ressourcenplanung zu verbessern. Woher beziehen Das Ereignis wird in der Regel aus einem Systemstatus abgeleitet, der die Einplanung des Auftrags anzeigt, etwa SETC (Scheduling carried out). Auch eingetragene geplante Start- und Endtermine (AUFK-GSTRP, AUFK-GLTRP) weisen auf den Abschluss dieser Aktivität hin. Erfassung Abgeleitet aus eingetragenen geplanten Terminen in AUFK/AFKO oder einem einplanungsbezogenen Status in JEST. Ereignistyp inferred | |||
| Materialengpass aufgetreten | Dieses Ereignis zeigt an, dass die Produktion beeinträchtigt oder unterbrochen wurde, weil eine oder mehrere benötigte Komponenten nicht verfügbar waren. Das System setzt einen bestimmten Status am Auftrag, um dies kenntlich zu machen. | ||
| Warum das wichtig ist Die Erfassung von Materialengpässen ist für die Analyse ihrer Auswirkungen entscheidend. Sie hilft, Verzögerungen durch Probleme in der Lieferkette zu beziffern und die Materialplanung zu verbessern. Woher beziehen Das Ereignis wird aus der Aktivierung des Status 'MSPT' (Material shortage) für den Produktionsauftrag abgeleitet. Der Zeitstempel der Statusänderung ist in der Tabelle JCDS zu finden. Erfassung Zeitstempel der Statusänderung auf 'MSPT' in der Tabelle JCDS. Ereignistyp inferred | |||
| Materialverfügbarkeit geprüft | Dieses Ereignis bezeichnet die Prüfung durch das System oder einen Benutzer, ob alle benötigten Komponenten in der erforderlichen Menge und zum richtigen Zeitpunkt verfügbar sind. Die Prüfung erfolgt üblicherweise automatisch beim Anlegen oder Freigeben des Auftrags oder manuell. Dabei wird der Auftragsstatus aktualisiert. | ||
| Warum das wichtig ist Materialengpässe früh zu erkennen, ist entscheidend für eine vorausschauende Planung. Die Analyse dieser Aktivität zeigt, wie sich die Materialverfügbarkeit auf die Auftragsfreigabe und den pünktlichen Produktionsstart auswirkt. Woher beziehen Das Ereignis wird aus dem Auftragsstatus abgeleitet. Ein Status wie MACM (Material committed) oder eine Änderung des Materialverfügbarkeitstermins (AFKO-MSERF) weist auf eine erfolgte Prüfung hin. Auch das Fehlen eines Materialengpassstatus (MSPT) kann auf verfügbare Materialien hindeuten. Erfassung Abgeleitet aus Statusänderungen im Zusammenhang mit der Materialreservierung oder der Ausführung der Transaktion COMAC. Ereignistyp inferred | |||
| Produktionsauftrag storniert | Dieses Ereignis bezeichnet die Stornierung eines Produktionsauftrags vor seinem Abschluss. Es ist ein alternativer, nicht erfolgreicher Endzustand des Prozesses. | ||
| Warum das wichtig ist Die Analyse stornierter Aufträge kann Probleme in der Bedarfsplanung, den Stammdaten oder im Vertriebsprozess aufdecken. Eine hohe Stornierungsquote kann auf grundlegende Probleme hinweisen, die behoben werden müssen. Woher beziehen Das Ereignis wird aus dem gesetzten Systemstatus CACL (Cancellation) in der Tabelle JCDS abgeleitet. Alternativ kann auch ein Löschkennzeichen (AUFK-LOEKZ) auf eine Stornierung hinweisen. Erfassung Zeitstempel der Statusänderung auf 'CACL' in JCDS oder des Setzens des Löschkennzeichens in AUFK. Ereignistyp inferred | |||
| Produktionsrückmeldung erfasst | Dieses Ereignis bezeichnet die Erfassung des Fortschritts für einen bestimmten Vorgang im Produktionsauftrag. Dazu gehören die gebuchten Produktionsmengen, Ausschuss und die am Arbeitsplatz aufgewendete Zeit. | ||
| Warum das wichtig ist Rückmeldungen geben in Echtzeit Einblick in den Fortschritt in der Fertigung und sind wichtig, um den Produktionsstatus zu verfolgen. Ihre Häufigkeit und Zeitpunkte zeigen, wie der Ablauf voranschreitet und wo Verzögerungen zwischen Vorgängen entstehen. Woher beziehen Jede Rückmeldung wird ausdrücklich als Eintrag in der Tabelle AFRU (Auftragsrückmeldungen) mit einem Zeitstempel (BUDAT, UZEIT) und Angaben zum Vorgang erfasst. Erfassung Als Beleg in der Tabelle AFRU erfasst. Ereignistyp explicit | |||
| Ungeplanter Stillstand aufgetreten | Dieses berechnete Ereignis bezeichnet eine längere Leerlaufphase während der Produktionsausführung. Es wird nicht als ausdrückliches Systemereignis erfasst, sondern aus großen Zeitabständen zwischen aufeinanderfolgenden Produktionsrückmeldungen abgeleitet. | ||
| Warum das wichtig ist So lassen sich ungeplante Unterbrechungen durch Maschinenausfälle oder Qualitätsprobleme überwachen. Häufige oder lange Stillstände zu erkennen, ist wichtig, um Stabilität und Durchsatz in der Fertigung zu verbessern. Woher beziehen Das Ereignis wird anhand der Zeitstempel aufeinanderfolgender Aktivitäten vom Typ 'Produktionsrückmeldung erfasst' aus der Tabelle AFRU berechnet. Überschreitet der Abstand einen festgelegten Schwellenwert, wird er als ungeplanter Stillstand gekennzeichnet. Erfassung Berechnen Sie den Zeitabstand zwischen aufeinanderfolgenden Rückmeldungszeitstempeln (AFRU-BUDAT/UZEIT). Ereignistyp calculated | |||
Anleitungen zum Datenexport
Schritte
- Voraussetzungen prüfen: Stellen Sie sicher, dass Sie über einen Benutzer in SAP S/4HANA mit den erforderlichen Berechtigungen für den Zugriff auf die benötigten Core-Data-Services-Views (CDS-Views) verfügen. Dazu gehören
I_ProductionOrder,I_ProdOrdConfirmation,I_MaterialDocumentItem,I_ObjectStatusundI_ChangeDocument. Außerdem benötigen Sie Zugriff auf eine SQL-Ausführungsumgebung, die mit der SAP-HANA-Datenbank verbunden ist, zum Beispiel SAP HANA Studio, DBeaver oder ein externes ETL-Tool. - Systemdetails ermitteln: Notieren Sie die Kennung des Quellsystems, die Sie für das Attribut
SourceSystemverwenden. Dies ist ein von Ihnen festgelegter logischer Name, der die Herkunft der Daten angibt, zum BeispielS4H_PROD. - Exportparameter festlegen: Legen Sie vor der Abfrage die wichtigsten Parameter fest. Dazu gehören das Start- und Enddatum des Exportzeitraums sowie gegebenenfalls Filter wie
PlantoderProductionOrderType, um den Datenumfang einzugrenzen. - SQL-Abfrage vorbereiten: Kopieren Sie die vollständige SQL-Abfrage aus dem Abschnitt
queryin den ausgewählten SQL-Client oder das Datenexport-Tool. - Platzhalter konfigurieren: Ersetzen Sie die Platzhalter in der Abfrage durch Ihre Parameter. Dazu gehören
_StartDate,_EndDateund die Kennung des Quellsystems. Passen Sie außerdem den Schwellenwert für das EreignisUnplanned Halt Occurred(zum Beispiel'24:00:00') an Ihre betrieblichen Anforderungen an. - Exportabfrage ausführen: Führen Sie das konfigurierte SQL-Skript für die Datenbank des SAP-S/4HANA-Systems aus. Bei großen Datenmengen über einen längeren Zeitraum empfiehlt es sich, den Export in kleineren Abschnitten, etwa monatsweise, durchzuführen, um Leistungsprobleme zu vermeiden.
- Daten zunächst prüfen: Prüfen Sie die Ergebnisse nach Abschluss der Abfrage kurz. Kontrollieren Sie die Zeilenanzahl, ob alle Spalten vorhanden sind und ob die Spalte
Aktivitätverschiedene erwartete Ereignisse enthält. - Daten validieren: Führen Sie die Schritte im Abschnitt
validationStepsaus, um die Daten gründlicher zu prüfen. Vergleichen Sie einige Fertigungsaufträge mit den entsprechenden Angaben im SAP-System über die TransaktionCO03, um die Richtigkeit des exportierten Event Logs zu bestätigen. - Als CSV exportieren: Exportieren Sie das Ergebnis in eine CSV-Datei. Verwenden Sie die UTF-8-Kodierung, um Zeichenfehler zu vermeiden.
- Upload vorbereiten: Prüfen Sie, ob die CSV-Spaltenüberschriften den erforderlichen Attributnamen entsprechen:
ProductionOrder,Activity,StartTime,SourceSystemundLastDataUpdate. Stellen Sie vor dem Upload in das Process-Mining-Tool sicher, dass die SpalteStartTimeein gängiges Timestamp-Format wie ISO 8601 (YYYY-MM-DDTHH:MM:SS) verwendet.
Konfiguration
- Zentrale CDS-Views: Für den Export werden hauptsächlich standardisierte CDS-Views verwendet, die eine strukturierte, geschäftsorientierte Sicht auf die zugrunde liegenden SAP-Tabellen bieten. Zu den wichtigsten Views gehören:
I_ProductionOrder: für Daten auf Kopfebene und Ereignisse zur Auftragserstellung.I_ProdOrdConfirmation: für alle Rückmeldungen zu Arbeitsvorgängen.I_MaterialDocumentItem: für Warenbewegungen wie Entnahmen und Zugänge.I_ObjectStatus: zum Auslesen von Statusänderungen des Fertigungsauftrags.I_ChangeDocumentund zugehörige Views: zum Erfassen von Änderungen an wichtigen Auftragsfeldern.
- Filter für den Datumsbereich: Ein Datumsfilter ist entscheidend, um das Datenvolumen zu begrenzen. Die bereitgestellte Abfrage verwendet das Feld
CreationDatedes Fertigungsauftrags. Für eine erste Analyse empfiehlt sich in der Regel ein Zeitraum von drei bis sechs Monaten. - Wichtige Geschäftsfilter: Grenzen Sie den Datensatz zusätzlich anhand wichtiger Organisations- oder Stammdatenattribute ein. Häufig verwendete Filter sind:
Plant: zur Analyse eines bestimmten Fertigungsstandorts.ProductionOrderType: zur Eingrenzung auf Standardproduktion, Nacharbeit oder andere Auftragsarten.CompanyCode: zur Beschränkung auf eine bestimmte rechtliche Einheit.
- Schwellenwert für ungeplante Stillstände: Die Abfrage leitet Ereignisse vom Typ
Unplanned Halt Occurredab. Dazu ist ein Zeitschwellenwert erforderlich, der festlegt, ab welcher Dauer eine Unterbrechung zwischen Arbeitsvorgängen als erheblich gilt. Legen Sie diesen Wert anhand der üblichen Produktionsdurchlaufzeiten und betrieblichen Regeln fest. - Erforderliche Berechtigungen: Der SAP-Benutzer, der die Abfrage ausführt, benötigt Leseberechtigungen für alle CDS-Views und die zugrunde liegenden Tabellen. Fehlende Berechtigungen führen zu leeren oder unvollständigen Ergebnissen.
a Beispielabfrage sql
WITH BaseOrders AS (
SELECT
ProductionOrder,
Material AS MaterialNumber,
ProductionPlant AS Plant,
CreationDate,
CreationTime,
BasicEndDate AS PlannedEndDate,
TechnicalCompletionDate,
LastChangeDateTime
FROM I_ProductionOrder
-- P_CreationDateFrom and P_CreationDateTo are placeholders for your date range
WHERE CreationDate BETWEEN '[_StartDate]' AND '[_EndDate]'
-- Add other filters as needed, for example:
-- AND ProductionPlant IN ('[Your_Plant_1]', '[Your_Plant_2]')
-- AND ProductionOrderType = '[Your_Order_Type]'
)
SELECT
bo.ProductionOrder,
'Production Order Created' AS Activity,
TO_TIMESTAMP(bo.CreationDate || ' ' || LPAD(bo.CreationTime, 6, '0'), 'YYYYMMDD HH24MISS') AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
'CRTD' AS OrderStatus
FROM BaseOrders bo
UNION ALL
-- System status changes like Released, Technically Completed, Closed, Cancelled, Material Shortage
SELECT
os.ObjectInternalID AS ProductionOrder,
CASE os.SystemStatus
WHEN 'I0002' THEN 'Production Order Released'
WHEN 'I0043' THEN 'Material Availability Checked' -- Status: MACM (Material committed)
WHEN 'I0045' THEN 'Order Technically Completed'
WHEN 'I0046' THEN 'Order Financially Closed'
WHEN 'I0047' THEN 'Production Order Cancelled'
WHEN 'I0010' THEN 'Material Shortage Occurred' -- Status: MSPT (Material shortage)
END AS Activity,
os.StatusChangeDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
os.SystemStatus AS OrderStatus
FROM I_ObjectStatus AS os
JOIN BaseOrders AS bo ON os.ObjectInternalID = bo.ProductionOrder
WHERE os.SystemStatus IN ('I0002', 'I0043', 'I0045', 'I0046', 'I0047', 'I0010') AND os.StatusIsInactive = ''
UNION ALL
-- Production Started, inferred from the first goods issue or first confirmation
SELECT
s.ProductionOrder,
'Production Started' AS Activity,
s.StartEventTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
s.MaterialNumber,
s.Plant,
NULL AS WorkCenter,
s.PlannedEndDate,
NULL AS OrderStatus
FROM (
SELECT
bo.ProductionOrder,
bo.MaterialNumber,
bo.Plant,
bo.PlannedEndDate,
MIN(COALESCE(gm.PostingTime, cf.ConfirmationDateTime)) AS StartEventTime,
ROW_NUMBER() OVER(PARTITION BY bo.ProductionOrder ORDER BY MIN(COALESCE(gm.PostingTime, cf.ConfirmationDateTime))) as rn
FROM BaseOrders bo
LEFT JOIN I_MaterialDocumentItem gm ON bo.ProductionOrder = gm.ProductionOrder AND gm.GoodsMovementType IN ('261', '262') -- Goods Issue
LEFT JOIN I_ProdOrdConfirmation cf ON bo.ProductionOrder = cf.ProductionOrder
WHERE gm.ProductionOrder IS NOT NULL OR cf.ProductionOrder IS NOT NULL
GROUP BY bo.ProductionOrder, bo.MaterialNumber, bo.Plant, bo.PlannedEndDate
) s
WHERE s.rn = 1
UNION ALL
-- Production Confirmation Entered (for each confirmation)
SELECT
cf.ProductionOrder,
'Production Confirmation Entered' AS Activity,
cf.ConfirmationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
cf.WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
UNION ALL
-- Final Confirmation Entered
SELECT
cf.ProductionOrder,
'Final Confirmation Entered' AS Activity,
cf.ConfirmationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
cf.WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
WHERE cf.IsFinalConfirmation = 'X'
UNION ALL
-- Unplanned Halt Occurred (derived from gaps between confirmations)
SELECT
ProductionOrder,
'Unplanned Halt Occurred' AS Activity,
PreviousConfirmationTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
MaterialNumber,
Plant,
WorkCenter,
PlannedEndDate,
NULL AS OrderStatus
FROM (
SELECT
cf.ProductionOrder,
bo.MaterialNumber,
bo.Plant,
bo.PlannedEndDate,
cf.WorkCenter,
cf.ConfirmationDateTime,
LAG(cf.ConfirmationDateTime, 1) OVER (PARTITION BY cf.ProductionOrder ORDER BY cf.ConfirmationDateTime) AS PreviousConfirmationTime,
(SECONDS_BETWEEN(LAG(cf.ConfirmationDateTime, 1) OVER (PARTITION BY cf.ProductionOrder ORDER BY cf.ConfirmationDateTime), cf.ConfirmationDateTime) / 3600.0) as HoursDiff
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
) AS gaps
WHERE gaps.HoursDiff > 24 -- Configurable threshold in hours, e.g. 24 hours
UNION ALL
-- Goods Receipt Posted
SELECT
gm.ProductionOrder,
'Goods Receipt Posted' AS Activity,
gm.PostingTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_MaterialDocumentItem gm
JOIN BaseOrders bo ON gm.ProductionOrder = bo.ProductionOrder
WHERE gm.GoodsMovementType = '101'
UNION ALL
-- Capacity Requirements Planned (using Release event as a proxy)
SELECT
os.ObjectInternalID AS ProductionOrder,
'Capacity Requirements Planned' AS Activity,
os.StatusChangeDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
os.SystemStatus AS OrderStatus
FROM I_ObjectStatus AS os
JOIN BaseOrders AS bo ON os.ObjectInternalID = bo.ProductionOrder
WHERE os.SystemStatus = 'I0002' AND os.StatusIsInactive = '' -- Status 'REL' (Released)
UNION ALL
-- Production Plan Adjusted
SELECT
ch.ObjectValue AS ProductionOrder,
'Production Plan Adjusted' AS Activity,
ch.CreationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL as WorkCenter,
bo.PlannedEndDate,
NULL as OrderStatus
FROM I_ChangeDocument AS ch
JOIN BaseOrders bo ON ch.ObjectValue = bo.ProductionOrder
WHERE ch.ChangeDocumentObject = 'PRODORDER'
-- Monitoring changes in key fields like Total Quantity (GAMNG) or Basic Finish Date (GLTRP)
AND ch.FieldName IN ('GAMNG', 'GLTRP')
GROUP BY ch.ObjectValue, ch.CreationDateTime, bo.MaterialNumber, bo.Plant, bo.PlannedEndDate Schritte
- Prüfen Sie, ob direkter Lesezugriff auf das SAP-HANA-Schema mit den Fertigungsauftragsdaten verfügbar ist. Ermitteln Sie außerdem den Schemaeigentümer, die Mandantenbehandlung, die Timestamp-Konventionen und das Berechtigungsmodell. Verwenden Sie SAP HANA Database Explorer oder einen zugelassenen SQL-Client. Prüfen Sie vor der Fertigstellung der Abfrage, welche SAP-S/4HANA-Version und welcher aktivierte Umfang der Produktionsplanung vorliegen.
- Konfigurieren Sie die Verbindungszeichenfolge, Anmeldedaten, den Schemanamen, den Mandantenwert, das Start- und Enddatum des Exports sowie unternehmensspezifische Filter. Die Abfrage unten greift auf AUFK, AFPO, JEST und JCDS zu und verweist außerdem auf AFKO, AFVC, AFRU, RESB, MSEG, CDHDR und CDPOS. Prüfen Sie vor der Ausführung, ob diese Objekte in Ihrem System verfügbar sind und welche Felddefinitionen gelten, da Erweiterungen, Kompatibilitäts-Views und versionsabhängige Unterschiede möglich sind.
- Führen Sie die Abfrage im SAP HANA Database Explorer oder in Ihrem zugelassenen SQL-Ausführungstool aus. Die Abfrage erstellt für jede ausdrücklich exportierte Aktivität eine Zeile und führt die Aktivitätszeilen mit UNION ALL zusammen. ProcessMind leitet dabei keine Ereignisse ab.
- Prüfen Sie die Quelldaten und passen Sie die gekennzeichneten systemspezifischen Ausdrücke bei Bedarf an. Kontrollieren Sie insbesondere die Statuscodes für Materialverfügbarkeit, Kapazitätsplanung, technische Fertigstellung, finanziellen Abschluss und Stornierung. Prüfen Sie auch das Änderungsbelegobjekt und die Feldnamen, anhand derer Anpassungen am Produktionsplan ermittelt werden.
- Validieren Sie die Timestamp-Umwandlung und die Mandantenfilterung. SAP-Systeme können Datum und Uhrzeit in getrennten Feldern speichern. Außerdem verwenden manche Installationen UTC, andere die lokale Zeit des Werks oder Systems. Sorgen Sie für eine einheitliche Zeitzone der resultierenden
StartTime-Werte und schließen Sie ungültige oder initiale SAP-Datumswerte aus. - Exportieren Sie das Ergebnis als von ProcessMind unterstützte Textdatei, vorzugsweise als CSV oder UTF-8-Datei mit Trennzeichen. Behalten Sie die exakten Spaltennamen
ProductionOrder,Activity,StartTime,SourceSystem,LastDataUpdate,MaterialNumber,Plant,WorkCenter,PlannedEndDateundOrderStatusbei. - Sortieren Sie die exportierten Zeilen nach
ProductionOrderundStartTime. Verwenden Sie bei identischen Timestamps eine eindeutige sekundäre Sortierung, sofern Ihr Upload-Prozess dies unterstützt. Behalten Sie eine Zeile pro Ereignis bei, auch bei wiederholten Rückmeldungen und Statusänderungen, sofern sie getrennte Quelldatensätze darstellen. - Laden Sie die Datei in ProcessMind hoch und ordnen Sie
ProductionOrderder Case-ID,Activityder Aktivität undStartTimedem Ereignis-Timestamp zu. Ordnen Sie die übrigen Spalten entsprechend der ProcessMind-Importkonfiguration als Ereignis- oder Case-Attribute zu. Prüfen Sie, ob alle 14 Aktivitätsbezeichnungen exakt wie von der Abfrage ausgegeben erhalten bleiben.
Konfiguration
- Datumsbereich: Beginnen Sie mit einem rollierenden Zeitraum von drei bis sechs Monaten. Verwenden Sie für erste Tests einen kürzeren Zeitraum und erweitern Sie ihn erst, wenn Sie Zeilenanzahl und Abfrageleistung geprüft haben.
- Exportparameter: Ersetzen Sie [Your schema name], [Your client], [Extraction start date], [Extraction end date] und [Your source system name] durch die Werte aus Ihrer Umgebung. Verwenden Sie unternehmensspezifische Filter erst, nachdem Sie die relevanten Organisationsfelder und Werte geprüft haben.
- Statuskonfiguration: Prüfen Sie die genauen SAP-Statuscodes und Statusobjektkennungen, die in Ihrem System für CRTD, Freigabe, Materialverfügbarkeit, Kapazitätsplanung, technische Fertigstellung, finanziellen Abschluss und Stornierung verwendet werden. Statusprofile und kundenspezifische Erweiterungen können die verfügbaren Codes verändern.
- Änderungsbelege: Prüfen Sie das Änderungsbelegobjekt für Fertigungsaufträge sowie die Tabellen-, Feldnamen und Werteformate für Änderungen an Mengen, Terminen, Stücklisten und Arbeitsplänen. Die Abfrage wertet übereinstimmende Datensätze aus CDHDR und CDPOS als Hinweis auf eine Plananpassung.
- Timestamp-Verarbeitung: Vereinheitlichen Sie alle Quell-Timestamps auf eine Zeitzone. Prüfen Sie, ob Datums- und Uhrzeitfelder getrennt gespeichert werden, ob die Timestamps lokal oder in UTC vorliegen und wie initiale Datumswerte dargestellt werden.
- Leistung: Begrenzen Sie den Export anhand des Auftragsanlagedatums oder eines anderen indizierten Datumsfelds des Fertigungsauftrags. Filtern Sie nach Mandant, wählen Sie nur benötigte Spalten aus und führen Sie den Export in einem geeigneten Zeitfenster aus. Bei großen Datenmengen empfiehlt sich ein monatsweiser Export oder eine Aufteilung nach Auftragsbereichen mit schrittweiser Speicherung der Ergebnisse.
- Datenbankobjekte: Prüfen Sie, ob AUFK, AFPO, JEST, JCDS, AFKO, AFVC, AFRU, RESB, MSEG, CDHDR und CDPOS im ausgewählten Schema verfügbar und lesbar sind. Falls eine View oder ein Feld in Ihrer Version abweicht, ersetzen Sie es durch das entsprechende freigegebene oder zugelassene Objekt.
- Berechtigungen: Erforderlich sind Leseberechtigungen für das ausgewählte SAP-HANA-Schema und dessen Objekte sowie die Berechtigung zur SQL-Ausführung. Je nach Governance-Vorgaben können zusätzlich SAP-Anwendungsberechtigungen erforderlich sein.
- Fachlicher Umfang: Die Daten zur Produktionsplanung und -ausführung, zu Warenbewegungen, zur Statushistorie und zu Änderungsbelegen müssen für den ausgewählten Zeitraum verfügbar sein. Archivierte oder gelöschte Datensätze werden nicht zurückgegeben.
- ProcessMind-Zuordnung: Ordnen Sie
ProductionOrderder Case-ID,Activityder Aktivität undStartTimedem Ereignis-Timestamp zu. ProcessMind leitet fehlende Aktivitäten nicht aus Attributen ab.
a Beispielabfrage sql
WITH
params AS (
SELECT
'[Your client]' AS mandt,
TO_DATE('[Extraction start date]', 'YYYY-MM-DD') AS date_from,
TO_DATE('[Extraction end date]', 'YYYY-MM-DD') AS date_to,
'[Your source system name]' AS source_system,
CURRENT_UTCTIMESTAMP AS last_data_update
FROM DUMMY
),
orders AS (
SELECT
a.mandt,
LTRIM(a.aufnr, '0') AS production_order,
a.aufnr AS production_order_raw,
a.erdat AS order_created_date,
a.erfzeit AS order_created_time,
a.auart AS order_type,
a.werks AS plant,
a.objnr AS object_number,
a.ktext AS order_text,
p.matnr AS material_number,
p.psmng AS planned_quantity,
p.wemng AS delivered_quantity,
k.gstrp AS planned_start_date,
k.gltrp AS planned_end_date,
k.ftrmi AS release_date,
k.ftrmp AS release_time,
k.gamng AS total_order_quantity,
k.plnbez AS header_material_number,
k.plnty AS task_list_type,
k.plnnr AS task_list_group,
k.plnal AS task_list_group_counter
FROM [Your schema name].AUFK a
LEFT JOIN [Your schema name].AFPO p
ON p.mandt = a.mandt
AND p.aufnr = a.aufnr
LEFT JOIN [Your schema name].AFKO k
ON k.mandt = a.mandt
AND k.aufnr = a.aufnr
CROSS JOIN params x
WHERE a.mandt = x.mandt
AND a.erdat >= x.date_from
AND a.erdat < ADD_DAYS(x.date_to, 1)
),
status_history AS (
SELECT
o.*,
j.stat,
j.inact,
j.chgnr,
j.udate AS status_date,
j.utime AS status_time,
c.usnam AS status_user,
c.chind AS status_change_indicator
FROM orders o
INNER JOIN [Your schema name].JEST j
ON j.mandt = o.mandt
AND j.objnr = o.object_number
LEFT JOIN [Your schema name].JCDS c
ON c.mandt = j.mandt
AND c.objnr = j.objnr
AND c.stat = j.stat
AND c.chgnr = j.chgnr
WHERE COALESCE(j.inact, '') <> 'X'
),
operations AS (
SELECT
o.production_order,
o.mandt,
v.vornr,
v.arbid,
v.steus,
v.ltxa1,
v.aufpl,
v.aplzl,
cr.name1 AS work_center
FROM orders o
LEFT JOIN [Your schema name].AFVC v
ON v.mandt = o.mandt
AND v.aufpl = (SELECT MAX(k2.aufpl) FROM [Your schema name].AFKO k2 WHERE k2.mandt = o.mandt AND k2.aufnr = o.production_order_raw)
LEFT JOIN [Your schema name].CRHD cr
ON cr.mandt = v.mandt
AND cr.objty = 'A'
AND cr.objid = v.arbid
),
confirmations AS (
SELECT
o.production_order,
o.mandt,
r.rmzhl,
r.vornr,
r.budat AS confirmation_date,
r.ersda AS entry_date,
r.erzet AS entry_time,
r.ism01,
r.ism02,
r.ism03,
r.ism04,
r.ism05,
r.ism06,
r.xmnga,
r.stzhl,
r.stzhl AS reversal_counter,
r.lmnga AS confirmed_quantity,
r.xmnge AS scrap_quantity,
r.aufpl,
r.aplzl,
op.work_center
FROM orders o
INNER JOIN [Your schema name].AFRU r
ON r.mandt = o.mandt
AND r.aufnr = o.production_order_raw
LEFT JOIN operations op
ON op.production_order = o.production_order
AND op.mandt = r.mandt
AND op.vornr = r.vornr
),
first_confirmation AS (
SELECT production_order, MIN(TO_TIMESTAMP(TO_VARCHAR(entry_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(entry_time), 6, '0'), 'YYYYMMDDHH24MISS')) AS start_time
FROM confirmations
GROUP BY production_order
),
last_confirmation AS (
SELECT production_order, MAX(TO_TIMESTAMP(TO_VARCHAR(entry_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(entry_time), 6, '0'), 'YYYYMMDDHH24MISS')) AS final_time
FROM confirmations
GROUP BY production_order
),
first_goods_issue AS (
SELECT
o.production_order,
MIN(TO_TIMESTAMP(TO_VARCHAR(m.budat_mkpf, 'YYYYMMDD') || LPAD(TO_VARCHAR(m.cputm_mkpf), 6, '0'), 'YYYYMMDDHH24MISS')) AS start_time
FROM orders o
INNER JOIN [Your schema name].MSEG m
ON m.mandt = o.mandt
AND m.aufnr = o.production_order_raw
AND m.bwart IN ('261', '262')
GROUP BY o.production_order
),
first_receipt AS (
SELECT
o.production_order,
MIN(TO_TIMESTAMP(TO_VARCHAR(m.budat_mkpf, 'YYYYMMDD') || LPAD(TO_VARCHAR(m.cputm_mkpf), 6, '0'), 'YYYYMMDDHH24MISS')) AS receipt_time
FROM orders o
INNER JOIN [Your schema name].MSEG m
ON m.mandt = o.mandt
AND m.aufnr = o.production_order_raw
AND m.bwart IN ('101', '102')
GROUP BY o.production_order
),
plan_changes AS (
SELECT
o.production_order,
MIN(TO_TIMESTAMP(TO_VARCHAR(h.udate, 'YYYYMMDD') || LPAD(TO_VARCHAR(h.utime), 6, '0'), 'YYYYMMDDHH24MISS')) AS adjustment_time
FROM orders o
INNER JOIN [Your schema name].CDHDR h
ON h.mandant = o.mandt
AND h.objectid = o.production_order_raw
INNER JOIN [Your schema name].CDPOS p
ON p.mandant = h.mandant
AND p.objectclas = h.objectclas
AND p.objectid = h.objectid
AND p.changenr = h.changenr
WHERE h.objectclas IN ('ORDER', 'PP_ORDER')
AND p.tabname IN ('AFKO', 'AFPO', 'AFVC', 'RESB')
AND p.fname IN ('GAMNG', 'PSMNG', 'GSTRP', 'GLTRP', 'MATNR', 'BDMNG', 'VORNR')
GROUP BY o.production_order
),
status_times AS (
SELECT
production_order,
MIN(CASE WHEN stat IN ('I0001', 'CRTD') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS created_status_time,
MIN(CASE WHEN stat IN ('I0002', 'REL') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS released_time,
MIN(CASE WHEN stat IN ('I0003', 'MATC', 'MANC') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS material_available_time,
MIN(CASE WHEN stat IN ('I0004', 'CAPC', 'CAPA') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS capacity_planned_time,
MIN(CASE WHEN stat IN ('I0045', 'TECO') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS technically_completed_time,
MIN(CASE WHEN stat IN ('I0046', 'CLSD') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS financially_closed_time,
MIN(CASE WHEN stat IN ('I0076', 'DLFL', 'CANC') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS cancelled_time
FROM status_history
GROUP BY production_order
),
material_shortages AS (
SELECT
o.production_order,
MIN(TO_TIMESTAMP(TO_VARCHAR(j.status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(j.status_time), 6, '0'), 'YYYYMMDDHH24MISS')) AS shortage_time
FROM status_history j
INNER JOIN orders o
ON o.production_order = j.production_order
WHERE j.stat IN ('I0042', 'MANC', 'MSHT')
GROUP BY o.production_order
),
capacity_times AS (
SELECT
production_order,
MIN(COALESCE(released_time, created_status_time)) AS capacity_time
FROM status_times
GROUP BY production_order
),
base_attributes AS (
SELECT
o.production_order,
o.material_number,
o.plant,
COALESCE(op.work_center, '') AS work_center,
o.planned_end_date,
COALESCE(st.stat, '') AS current_status
FROM orders o
LEFT JOIN status_history st
ON st.production_order = o.production_order
AND st.inact = ''
LEFT JOIN operations op
ON op.production_order = o.production_order
AND op.vornr = (SELECT MIN(op2.vornr) FROM operations op2 WHERE op2.production_order = o.production_order)
),
events AS (
SELECT o.production_order, 'Production Order Created' AS activity, COALESCE(st.created_status_time, TO_TIMESTAMP(TO_VARCHAR(o.order_created_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(o.order_created_time), 6, '0'), 'YYYYMMDDHH24MISS')) AS start_time FROM orders o LEFT JOIN status_times st ON st.production_order = o.production_order
UNION ALL
SELECT production_order, 'Material Availability Checked', material_available_time FROM status_times WHERE material_available_time IS NOT NULL
UNION ALL
SELECT production_order, 'Capacity Requirements Planned', capacity_time FROM capacity_times WHERE capacity_time IS NOT NULL
UNION ALL
SELECT production_order, 'Production Order Released', released_time FROM status_times WHERE released_time IS NOT NULL
UNION ALL
SELECT o.production_order, 'Production Started', LEAST(COALESCE(fc.start_time, TO_TIMESTAMP('99991231235959', 'YYYYMMDDHH24MISS')), COALESCE(fg.start_time, TO_TIMESTAMP('99991231235959', 'YYYYMMDDHH24MISS'))) FROM orders o LEFT JOIN first_confirmation fc ON fc.production_order = o.production_order LEFT JOIN first_goods_issue fg ON fg.production_order = o.production_order WHERE fc.start_time IS NOT NULL OR fg.start_time IS NOT NULL
UNION ALL
SELECT production_order, 'Production Confirmation Entered', TO_TIMESTAMP(TO_VARCHAR(entry_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(entry_time), 6, '0'), 'YYYYMMDDHH24MISS') FROM confirmations
UNION ALL
SELECT production_order, 'Material Shortage Occurred', shortage_time FROM material_shortages WHERE shortage_time IS NOT NULL
UNION ALL
SELECT production_order, 'Production Plan Adjusted', adjustment_time FROM plan_changes WHERE adjustment_time IS NOT NULL
UNION ALL
SELECT c.production_order, 'Unplanned Halt Occurred', ADD_SECONDS(c.confirmation_time, 1) FROM (SELECT production_order, TO_TIMESTAMP(TO_VARCHAR(entry_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(entry_time), 6, '0'), 'YYYYMMDDHH24MISS') AS confirmation_time, LEAD(TO_TIMESTAMP(TO_VARCHAR(entry_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(entry_time), 6, '0'), 'YYYYMMDDHH24MISS')) OVER (PARTITION BY production_order ORDER BY entry_date, entry_time, rmzhl) AS next_confirmation_time FROM confirmations) c WHERE c.next_confirmation_time IS NOT NULL AND SECONDS_BETWEEN(c.confirmation_time, c.next_confirmation_time) >= 86400
UNION ALL
SELECT production_order, 'Final Confirmation Entered', final_time FROM last_confirmation WHERE final_time IS NOT NULL
UNION ALL
SELECT production_order, 'Goods Receipt Posted', receipt_time FROM first_receipt WHERE receipt_time IS NOT NULL
UNION ALL
SELECT production_order, 'Order Technically Completed', technically_completed_time FROM status_times WHERE technically_completed_time IS NOT NULL
UNION ALL
SELECT production_order, 'Order Financially Closed', financially_closed_time FROM status_times WHERE financially_closed_time IS NOT NULL
UNION ALL
SELECT production_order, 'Production Order Cancelled', cancelled_time FROM status_times WHERE cancelled_time IS NOT NULL
)
SELECT
e.production_order AS "ProductionOrder",
e.activity AS "Activity",
e.start_time AS "StartTime",
p.source_system AS "SourceSystem",
p.last_data_update AS "LastDataUpdate",
b.material_number AS "MaterialNumber",
b.plant AS "Plant",
NULLIF(b.work_center, '') AS "WorkCenter",
b.planned_end_date AS "PlannedEndDate",
b.current_status AS "OrderStatus"
FROM events e
INNER JOIN base_attributes b
ON b.production_order = e.production_order
CROSS JOIN params p
WHERE e.start_time IS NOT NULL
ORDER BY e.production_order, e.start_time, e.activity; Möchten Sie loslegen?
Machen Sie den ersten Schritt zu einer effizienteren Produktionsplanung. Bereiten Sie Ihre Daten mit diesem Template vor und gewinnen Sie wertvolle Erkenntnisse für die Optimierung.
Optimieren Sie noch heute Ihre Produktionsplanung
Erkennen und beseitigen Sie Engpässe und verkürzen Sie die Produktionsdurchlaufzeit um 30 %.
Keine Kreditkarte erforderlich