Ihr Daten-Template für die Anlageninstandhaltung
Ihr Daten-Template für die Anlageninstandhaltung
- Empfohlene Attribute für die Erfassung
- Wichtige Instandhaltungsaktivitäten zur Nachverfolgung
- Technische Hinweise zur Extraktion aus SAP PM
Attribute der Anlageninstandhaltung
| Name | Beschreibung | ||
|---|---|---|---|
| Aktivitätsname Activity | Die konkrete Aufgabe oder Statusänderung, die stattgefunden hat. | ||
| Beschreibung Stellt den im Instandhaltungsprozess ausgeführten Schritt dar, beispielsweise „Instandhaltungsauftrag erstellt“, „Warenausgang gebucht“ oder „Auftragsvorgang bestätigt“. Diese Aktivitäten werden typischerweise aus den Statusverwaltungstabellen (JEST) für Statusänderungen oder aus Transaktionstabellen, AFRU für Rückmeldungen und MKPF für Materialbewegungen, abgeleitet. Dieses Attribut bestimmt die Knoten in der Prozesslandkarte. Warum das wichtig ist Es definiert das „Was“ des Prozesses und ist entscheidend, um den Prozessablauf und Varianten zu erkennen. Bezugsquelle Abgeleitet aus JEST (Status), AFRU (Rückmeldungen), QMEL (Meldungen) Beispiele Instandhaltungsauftrag erstelltAuftrag freigegebenTechnisch abgeschlossen | |||
| Ereigniszeitpunkt EventTimestamp | Das genaue Datum und die genaue Uhrzeit, zu denen die Aktivität stattgefunden hat. | ||
| Beschreibung Erfasst den genauen Zeitpunkt eines Ereignisses. Bei Statusänderungen stammt dieser aus dem Zeitpunkt der Aktualisierung des Systemstatus, bei Vorgängen aus dem Rückmeldezeitpunkt. Präzise Timestamps sind entscheidend für die Berechnung von Durchlauf- und Vorlaufzeiten sowie für die Identifizierung von Engpässen zwischen Prozessschritten wie „Planung“ und „Ausführung“. Warum das wichtig ist Erforderlich, um Ereignisse korrekt zu sequenzieren und alle zeitbasierten KPIs zu berechnen. Bezugsquelle JEST (UDATE/UTIME), AFRU (ISDD/ISDZ), MKPF (CPUDT/CPUTM) Beispiele 2023-10-15T08:30:00Z2023-10-15T14:45:12Z | |||
| Instandhaltungsarbeitsauftrag MaintenanceWorkOrder | Die eindeutige Kennung des Instandhaltungsarbeitsauftrags. | ||
| Beschreibung Der Instandhaltungsarbeitsauftrag ist das zentrale Dokument in SAP Plant Maintenance, Tabelle AUFK, Feld AUFNR. Er verknüpft den Instandhaltungsbedarf, die Meldung, mit den Ausführungsressourcen, Materialien und Kosten. In der Process-Mining-Analyse dient er als Case ID und ermöglicht die Rekonstruktion des durchgängigen Lebenszyklus eines Instandhaltungsauftrags von der Erstellung bis zum technischen und kaufmännischen Abschluss. Warum das wichtig ist Dieser eindeutige Schlüssel verbindet alle Aktivitäten, Kosten und Timestamps und ermöglicht die Visualisierung des Prozessablaufs. Bezugsquelle SAP-Tabelle AUFK, Feld AUFNR Beispiele 00004001234540012345000040098765 | |||
| Letzte Datenaktualisierung LastDataUpdate | Timestamp der letzten Datenextraktion. | ||
| Beschreibung Gibt an, wann die Daten zuletzt im Process-Mining-Datenmodell aktualisiert wurden. So können Analysten die Aktualität der Erkenntnisse einschätzen und die Datenaktualität für Dashboards prüfen, die den Echtzeit-Backlog oder die SLA-Einhaltung überwachen. Warum das wichtig ist Entscheidend für die Data Governance und das Vertrauen in die Dashboards. Bezugsquelle ETL-Timestamp Beispiele 2023-11-01T12:00:00Z | |||
| Quellsystem SourceSystem | Das System, aus dem die Daten stammen. | ||
| Beschreibung Identifiziert den spezifischen SAP-Mandanten oder die SAP-Instanz, zum Beispiel „SAP_PM_PROD“. In einer Systemlandschaft mit mehreren ERP-Systemen hilft dieses Attribut, Datensätze zu unterscheiden, die möglicherweise identische IDs haben, aber zu unterschiedlichen Rechtsträgern oder Systemumgebungen gehören. Warum das wichtig ist Stellt die Eindeutigkeit und Herkunft der Daten in Umgebungen mit mehreren Systemen sicher. Bezugsquelle Systemkonfiguration / Extraktionsprotokoll Beispiele SAP_ECC_P01SAP_S4H_100 | |||
| Angelegt von Benutzer CreatedByUser | Der Benutzername der Person, die den Auftrag erstellt hat. | ||
| Beschreibung Identifiziert den für die Initiierung des Arbeitsauftrags verantwortlichen Benutzer (ERNAM). Im generischen Modell wird dieses Feld dem Attribut „User“ zugeordnet. Es ermöglicht die Analyse manueller und automatisierter Erstellung und unterstützt die Prüfung der Aktivität „Maintenance Order Created“. Warum das wichtig ist Ermöglicht die Analyse des Benutzerverhaltens und Prüfungen. Bezugsquelle SAP-Tabelle AUFK, Feld ERNAM Beispiele JSMITHBSERVICEDDAVIS | |||
| Equipmentnummer EquipmentNumber | Kennung des konkreten physischen Assets, an dem die Instandhaltung durchgeführt wird. | ||
| Beschreibung Die Equipmentnummer (EQUNR) identifiziert die einzelne Maschine oder das Asset. Durch die Aggregation der Daten nach diesem Feld können Analysten das Dashboard „Asset Maintenance Cost and Throughput“ erstellen und Equipment mit häufigen, kostenintensiven Reparaturen identifizieren. Damit wird eine zuverlässigkeitsorientierte Instandhaltungsanalyse möglich. Warum das wichtig ist Verknüpft die Prozessleistung mit konkreten physischen Assets. Bezugsquelle SAP-Tabelle AUFK, Feld EQUNR Beispiele 10004567PUMP-001HVAC-202 | |||
| Hauptarbeitsplatz MainWorkCenter | Der primäre Arbeitsplatz oder das Team, das mit der Ausführung des Auftrags betraut ist. | ||
| Beschreibung Der Hauptarbeitsplatz (VAPLZ) steht für die Gruppe von Technikern oder Maschinen, die die physischen Arbeiten ausführt. Dieses Attribut wird auf „Team“ abgebildet und ist für die Analyse der Ausführungseffizienz wichtig, etwa der „Mean Time to Repair“ je Team. Es hilft, interne Arbeitskräfte von externen Dienstleistern zu unterscheiden. Warum das wichtig ist Ermöglicht eine Leistungsanalyse auf Ressourcenebene. Bezugsquelle SAP-Tabelle AFKO, Feld VAPLZ (oder AUFK-VAPLZ, abhängig von der Konfiguration) Beispiele MECH_01ELEC_TEAMEXT_CONT | |||
| Instandhaltungsauftragsart MaintenanceOrderType | Kategorisiert den Arbeitsauftrag, zum Beispiel präventiv oder korrektiv. | ||
| Beschreibung Die Auftragsart (AUART) in SAP PM unterscheidet die Art der Instandhaltungsarbeit. Zu den gängigen Typen gehören PM01 (korrektiv), PM02 (präventiv) und PM03 (Aufarbeitung). Dieses Attribut ist für den „Emergency Work Order Impact Monitor“ und die Segmentierung von Prozessvarianten entscheidend, da sich präventive Workflows deutlich von reaktiven unterscheiden. Warum das wichtig ist Grundlage für die getrennte Analyse geplanter und ungeplanter Arbeiten. Bezugsquelle SAP-Tabelle AUFK, Feld AUART Beispiele PM01PM02PM03 | |||
| Instandhaltungspriorität MaintenancePriority | Die dem Arbeitsauftrag zugewiesene Dringlichkeitsstufe. | ||
| Beschreibung Gibt die Priorität (PRIOK) der Instandhaltungsaufgabe an, zum Beispiel „1-Sehr hoch“, „2-Hoch“ oder „3-Mittel“. Dieses Feld liefert direkt die Daten für die KPI „Emergency Work Order Ratio“. Die Analyse des Prozessflusses nach Priorität zeigt, ob Aufträge mit hoher Priorität im Vergleich zu Routinearbeiten tatsächlich schneller durch das System laufen. Warum das wichtig ist Wichtiger Faktor für die SLA-Analyse und die Ermittlung von Notfallarbeiten. Bezugsquelle SAP-Tabelle AFKO, Feld PRIOK (oder AUFK über eine View) Beispiele 1-Notfall2-Hoch3-Mittel4-Niedrig | |||
| Instandhaltungswerk MaintenancePlant | Das für die Instandhaltung verantwortliche logistische Werk. | ||
| Beschreibung Das Werk (WERKS) ist die zentrale Organisationseinheit in der Logistik. Es trennt die Daten nach physischer Betriebsstätte. Dieses Attribut ist für Leistungsvergleiche zwischen verschiedenen Standorten entscheidend und wird auf „BusinessUnit“ abgebildet, um eine übergeordnete organisatorische Filterung in Dashboards zu ermöglichen. Warum das wichtig ist Zentraler Organisationsfilter für den Vergleich von Betriebsstätten. Bezugsquelle SAP-Tabelle AUFK, Feld WERKS Beispiele 100020003000 | |||
| Meldungsnummer NotificationNumber | Die Instandhaltungsmeldung, durch die dieser Auftrag ausgelöst wurde. | ||
| Beschreibung Die Meldungsnummer (QMNUM) verknüpft den Arbeitsauftrag mit der ursprünglichen Anfrage (Meldung). Diese Verbindung ist erforderlich, um die vollständige Durchlaufzeit vom Eingang der Instandhaltungsanfrage bis zum Abschluss zu berechnen. Ohne sie bleibt die anfängliche Erkennungs- und Meldephase des Instandhaltungszyklus unberücksichtigt. Warum das wichtig ist Verknüpft die Ausführungsphase mit der Anfrage- und Erkennungsphase. Bezugsquelle SAP-Tabelle AUFK, Feld QMNUM Beispiele 1000050010000501 | |||
| Planergruppe ResponsiblePlannerGroup | Die Gruppe von Planern, die für die Bearbeitung des Auftrags verantwortlich ist. | ||
| Beschreibung Die Planergruppe (INGRP) identifiziert das zuständige Team oder die zuständige Abteilung für die Planung der Instandhaltungsarbeiten. Sie wird auf „Department“ abgebildet und ist für das Dashboard „Resource Utilization and Scheduling“ entscheidend, um Planungsteams zu identifizieren, die in der Vorbereitungsphase Engpässe verursachen. Warum das wichtig ist Identifiziert das administrative Team, das für den Planungsprozess verantwortlich ist. Bezugsquelle SAP-Tabelle AUFK, Feld INGRP Beispiele M01ELEMEC | |||
| Systemstatus SystemStatus | Der aktuelle technische Status des Auftrags, zum Beispiel REL oder TECO. | ||
| Beschreibung Eine verkettete Zeichenfolge oder Liste der derzeit auf den Auftrag angewendeten aktiven Systemstatus aus JEST. Häufige Werte sind CRTD (Created), REL (Released), TECO (Technically Completed) und CLSD (Closed). Damit lassen sich offene und geschlossene Cases im „Backlog and Work In Progress Monitor“ filtern. Warum das wichtig ist Der wichtigste Indikator für die Phase im Lebenszyklus des Auftrags. Bezugsquelle SAP-Funktionsbaustein STATUS_TEXT_EDIT oder Tabelle JEST Beispiele REL CNFTECOCRTD MACM | |||
| Technischer Platz FunctionalLocation | Der hierarchische Standort, an dem das Asset installiert ist. | ||
| Beschreibung Bezeichnet den Ort in der technischen Struktur, an dem die Instandhaltungsaufgabe ausgeführt wird (TPLNR). Anders als Equipment, das bewegt werden kann, bleibt der Technische Platz statisch. Dieses Attribut unterstützt das Dashboard „Technical Inspection Cycle Times“, indem es Leistungsvergleiche zwischen verschiedenen Anlagenbereichen ermöglicht, zum Beispiel zwischen Kesselhaus und Verpackungslinie. Warum das wichtig ist Ermöglicht eine räumliche und hierarchische Analyse der Instandhaltungsleistung. Bezugsquelle SAP-Tabelle IFLOT, Feld TPLNR (oder über AUFK-TPLNR) Beispiele PLANT1-BLD2-LN01US-TX-DAL-01 | |||
| Zielenddatum TargetFinishDate | Das geplante Abschlussdatum der Instandhaltungsarbeiten. | ||
| Beschreibung Dieses Datum, in der Regel das Basisenddatum (GLTRP), bezeichnet die Frist für den Arbeitsauftrag. Es wird mit dem tatsächlichen Abschluss-Timestamp verglichen, um die KPI „SLA Adherence Rate“ zu berechnen. Damit wird bestimmt, ob ein Arbeitsauftrag fristgerecht oder verspätet abgeschlossen wurde. Warum das wichtig ist Referenzpunkt für alle Berechnungen zur termingerechten Lieferung (OTD). Bezugsquelle SAP-Tabelle AFKO, Feld GLTRP Beispiele 2023-12-012023-12-15 | |||
| Geplante Arbeitsstunden PlannedLaborHours | Die geschätzten Arbeitsstunden für den Auftrag. | ||
| Beschreibung Die gesamte geplante Arbeit (ARBEI) aus den Vorgängen des Auftrags. Der Vergleich mit der tatsächlichen Aktivitätsdauer unterstützt das Dashboard „Planning and Estimation Performance“ bei der Bewertung der Genauigkeit der Wartungsplanung. Warum das wichtig ist Basiskennzahl für die Analyse der Planungsgenauigkeit. Bezugsquelle SAP-Tabelle AFKO, Summe der geplanten Arbeit aus Vorgängen Beispiele 4.08.512.0 | |||
| Ist Nacharbeit IsRework | Kennzeichen dafür, ob der Auftrag Nacharbeitsaktivitäten umfasste. | ||
| Beschreibung Ein berechnetes boolesches Attribut, das erkennt, ob eine Prozessschleife aufgetreten ist. Dies ist insbesondere der Fall, wenn die Aktivität „Maintenance Task Executed“ mehr als einmal ausgeführt wurde oder der Status von „Technically Completed“ zu „In Process“ zurückgesetzt wurde. Das unterstützt den KPI „Maintenance Rework Rate“ und hilft bei der Identifizierung von Qualitätsproblemen. Warum das wichtig ist Unterstützt die Analyse der Qualitätskontrolle direkt. Bezugsquelle Berechnet aus dem Prozessfluss Beispiele truefalse | |||
| Ist Notfallarbeit IsEmergencyWork | Kennzeichen dafür, ob es sich bei dem Arbeitsauftrag um einen Notfallauftrag handelt. | ||
| Beschreibung Ein boolesches Attribut, das anhand der Wartungspriorität berechnet wird. Wenn die Priorität „1“ oder der in der Konfiguration festgelegte Code für Notfälle lautet, ist dieses Kennzeichen wahr. Dadurch wird das Filtern und Erstellen des KPIs „Emergency Work Order Ratio“ vereinfacht, ohne komplexe Logik in der Dashboard-Ebene zu benötigen. Warum das wichtig ist Vereinfacht die Filterung für die Analyse kritischer reaktiver Wartungsarbeiten. Bezugsquelle Berechnet aus MaintenancePriority Beispiele truefalse | |||
| Tatsächliche Gesamtkosten TotalActualCost | Die insgesamt auf dem Arbeitsauftrag gebuchten tatsächlichen Kosten. | ||
| Beschreibung Aggregierte Kosten für Arbeitsleistung, Materialien und Dienstleistungen aus der Tabelle PMCO. Dieses Attribut unterstützt das Dashboard „Asset Maintenance Cost and Throughput“ und zeigt den finanziellen Einfluss der Instandhaltungsaktivitäten. Es ist entscheidend, um die Wirtschaftlichkeit einer Reparatur im Vergleich zum Austausch eines Assets zu bestimmen. Warum das wichtig ist Ergänzt die operativen Prozessdaten um die finanzielle Dimension. Bezugsquelle SAP-Tabelle PMCO (Summe des Werttyps 04, tatsächlich) Beispiele 150.002500.500.00 | |||
Aktivitäten der Anlageninstandhaltung
| Aktivität | Beschreibung | ||
|---|---|---|---|
| Auftragsvorgang bestätigt | Stellt die Erfassung der tatsächlichen Zeit dar, die ein Techniker für einen bestimmten Vorgang aufgewendet hat. Damit wird die tatsächliche Ausführung der Arbeiten an der Anlage erfasst. | ||
| Warum das wichtig ist Diese Aktivität ist die wichtigste Datenquelle für die Berechnung der mittleren Reparaturzeit und der Arbeitskosten. Bezugsquelle Tabelle AFRU (Auftragsrückmeldungen). Erfassen Protokolliert, wenn die Transaktion IW41 ausgeführt wird Ereignistyp explicit | |||
| Instandhaltungsauftrag erstellt | Kennzeichnet die Erstellung des Instandhaltungsarbeitsauftrags im System. Die Aktivität wird ausdrücklich aus dem Erstellungszeitpunkt der Tabelle mit den Auftragsstammdaten ermittelt. | ||
| Warum das wichtig ist Dies ist das zentrale Ankerereignis des Cases. Es markiert den Übergang von der Anfrage zur Planung und Ausführung. Bezugsquelle Tabelle AUFK, Felder ERDAT (Datum) und ERFZEIT (Uhrzeit). Erfassen Protokolliert, wenn die Transaktion IW31 ausgeführt wird Ereignistyp explicit | |||
| Instandhaltungsauftrag freigegeben | Zeigt an, dass die Planung abgeschlossen und der Auftrag zur Ausführung freigegeben ist. Die Aktivität wird durch die Überwachung des Statuswechsels auf REL in den Systemstatusprotokollen erfasst. | ||
| Warum das wichtig ist Dieser Meilenstein trennt die Planungs- von der Ausführungsphase und ist entscheidend für die Messung der Planungs- und Schätzungsdurchlaufzeit. Bezugsquelle Tabelle JCDS (Statusänderungsbelege), Status I0002 (REL). Erfassen Protokolliert, wenn der Status in JCDS auf REL aktualisiert wird Ereignistyp explicit | |||
| Kaufmännischen Abschluss gesetzt | Kennzeichnet den endgültigen administrativen Abschluss des Arbeitsauftrags und verhindert weitere Kostenbuchungen. Die Aktivität wird über den Statuswechsel auf CLSD (geschlossen) erfasst. | ||
| Warum das wichtig ist Stellt das endgültige Ende des Auftragslebenszyklus dar und ist entscheidend für Datenqualität und Compliance bei Aufzeichnungen. Bezugsquelle Tabelle JCDS, Status I0046 (CLSD). Erfassen Protokolliert, wenn der Status in JCDS auf CLSD aktualisiert wird Ereignistyp explicit | |||
| Technischer Abschluss gesetzt | Kennzeichnet, dass die Instandhaltungsarbeiten physisch und technisch abgeschlossen sind. Die Aktivität wird über den Statuswechsel auf TECO (technisch abgeschlossen) erfasst. | ||
| Warum das wichtig ist Dies ist der wichtigste Endpunkt für die operative Analyse. Er zeigt an, dass die Anlage wiederhergestellt und die Instandhaltung abgeschlossen ist. Bezugsquelle Tabelle JCDS, Status I0045 (TECO). Erfassen Protokolliert, wenn der Status in JCDS auf TECO aktualisiert wird Ereignistyp explicit | |||
| Warenausgang gebucht | Erfasst den physischen Verbrauch von Ersatzteilen oder Materialien für den Arbeitsauftrag. Die Aktivität wird aus mit dem Auftrag verknüpften Materialbelegköpfen ermittelt. | ||
| Warum das wichtig ist Bestätigt, dass Teile verfügbar und kommissioniert wurden. Dies wirkt sich direkt auf die Analyse der Wartezeit bis zur Teileverfügbarkeit aus. Bezugsquelle Tabelle MSEG/MKPF, Bewegungsart 261 (Warenausgang für Auftrag). Erfassen Protokolliert, wenn die Transaktion MIGO/MB1A ausgeführt wird Ereignistyp explicit | |||
| Arbeitsauftrag eingeplant | Zeigt die konkrete Einplanung von Vorgängen auf eine Kapazität oder einen Termin an. Die Aktivität wird aus der Zuweisung des Status „Dispatch“ zu Vorgängen abgeleitet. | ||
| Warum das wichtig ist Misst die Effizienz der Ressourcenverteilung und unterstützt das Dashboard zur Ressourcenauslastung und Einsatzplanung. Bezugsquelle Tabelle JCDS (Statusänderungsbelege) für Vorgänge (Objekttyp OV), Status I0009 (DSPT). Erfassen Statusfeld vorher und nachher vergleichen Ereignistyp inferred | |||
| Auftragskosten abgerechnet | Zeigt an, dass die auf dem Auftrag gesammelten Kosten an das Controllingobjekt, beispielsweise eine Kostenstelle, übertragen wurden. Die Aktivität wird aus dem Controllingbeleg ermittelt. | ||
| Warum das wichtig ist Verfolgt den finanziellen Abschluss und unterstützt die KPI zur Dauer der finanziellen Abrechnung. Bezugsquelle Tabelle COBK (CO-Objekt: Belegkopf), mit dem Auftrag verknüpft. Erfassen Protokolliert, wenn die Abrechnungstransaktion KO88 ausgeführt wird Ereignistyp explicit | |||
| Bestellanforderung erstellt | Zeigt an, dass eine Anfrage für die externe Beschaffung von Materialien oder Dienstleistungen erstellt wurde. Dadurch wird der interne Instandhaltungsauftrag mit der externen Lieferkette verbunden. | ||
| Warum das wichtig ist Dies ist entscheidend für die Analyse von Verzögerungen durch externe Lieferanten oder die Beschaffung nicht lagergeführter Materialien. Bezugsquelle Tabelle EBAN, verknüpft über die Kontierungsinformationen mit AUFK-AUFNR. Erfassen Protokolliert, wenn ein EBAN-Datensatz erstellt wird Ereignistyp explicit | |||
| Instandhaltungsmeldung erstellt | Erfasst die erstmalige Erstellung einer Instandhaltungsmeldung, die häufig den Auslöser für einen Arbeitsauftrag bildet. Die Aktivität wird aus dem Erstellungszeitpunkt der Tabelle QMEL ermittelt und verknüpft die vorgelagerte Anfrage mit dem Ausführungsauftrag. | ||
| Warum das wichtig ist Diese Aktivität markiert den Beginn des durchgängigen Instandhaltungsprozesses. Dadurch lassen sich Reaktionszeiten zwischen der Fehlererkennung und der Auftragserstellung berechnen. Bezugsquelle Tabelle QMEL, Felder ERDAT (Erstellungsdatum) und MZEIT (Uhrzeit). Verknüpft mit dem Auftrag über QMEL-AUFNR. Erfassen Protokolliert, wenn ein Datensatz in der Tabelle QMEL erstellt wird Ereignistyp explicit | |||
| Instandhaltungspriorität geändert | Protokolliert eine Aktualisierung der Prioritätsstufe des Arbeitsauftrags, beispielsweise eine Eskalation auf „Notfall“. Die Aktivität wird aus Änderungsbelegen zu den Auftragsstammdaten abgeleitet. | ||
| Warum das wichtig ist Die Nachverfolgung von Prioritätsänderungen erklärt Prozessabweichungen und unterstützt den Monitor für die Auswirkungen von Notfallarbeitsaufträgen, indem reaktive Eskalationen sichtbar werden. Bezugsquelle Tabelle CDPOS/CDHDR für Objektklasse AUFTRAG, Feld PRIOK. Erfassen In Änderungsbelegen (CDPOS) protokolliert Ereignistyp explicit | |||
| Materialkomponente hinzugefügt | Erfasst das Hinzufügen von Ersatzteilen oder Materialien zur Komponentenliste des Arbeitsauftrags. Die Aktivität wird aus der Erstellung einer Reservierungsposition ermittelt. | ||
| Warum das wichtig ist Kennzeichnet den Beginn des Beschaffungszyklus für benötigte Teile und unterstützt das Dashboard zur Durchlaufzeit der Ersatzteilbeschaffung. Bezugsquelle Tabelle RESB, Feld BDTER (Bedarfstermin) oder Erstellungszeitpunkt. Erfassen Protokolliert, wenn eine Position zu RESB hinzugefügt wird Ereignistyp explicit | |||
| Messwert erfasst | Protokolliert die Eingabe eines Messbelegs, beispielsweise eines Zählerstands oder einer Zustandsbewertung. Die Aktivität dient häufig als Ereignis der technischen Inspektion. | ||
| Warum das wichtig ist Unverzichtbar für zustandsbasierte Instandhaltung und die Nachverfolgung der Durchlaufzeiten technischer Inspektionen. Bezugsquelle Tabelle IMRG (Messbeleg), verknüpft mit Equipment oder Technischem Platz. Erfassen Protokolliert, wenn ein Messbeleg erstellt wird Ereignistyp explicit | |||
| Technischen Abschluss zurückgenommen | Erfasst die Rücknahme des Status „Technisch abgeschlossen“ und zeigt an, dass der Auftrag wieder geöffnet wurde. Dadurch entsteht eine Nacharbeitschleife im Prozessmodell. | ||
| Warum das wichtig ist Wichtiger Indikator für die KPI zur Nacharbeitsquote in der Instandhaltung. Er macht verfrühte Abschlüsse oder Qualitätsprobleme sichtbar. Bezugsquelle Tabelle JCDS, Status I0045 (TECO) auf inaktiv geändert. Erfassen Protokolliert, wenn der TECO-Status deaktiviert wird Ereignistyp explicit | |||
Anleitungen zur Extraktion
Schritte
Identifizieren Sie die Schnittstelle zur Datenquelle: Legen Sie fest, wie Sie auf die SAP-S/4HANA-SQL-Schnittstelle zugreifen. Dies erfolgt in der Regel über SAP HANA Studio, die ABAP Development Tools (ADT) in Eclipse oder eine DBaaS-Verbindungszeichenfolge, wenn die HANA-Datenbank für Ihre Analytics-Schicht verfügbar ist.
Prüfen Sie die Verfügbarkeit der CDS-Views: Stellen Sie sicher, dass die standardmäßigen Core Data Services (CDS)-Views in Ihrem S/4HANA-System aktiv sind. Benötigt werden insbesondere I_MaintenanceOrder, I_MaintenanceOrderOperation, I_MaintenanceNotification, I_MaintOrderConfirmation und I_MeasurementDocument. Zusätzlich benötigen Sie Zugriff auf die Tabelle JCDS für die Systemstatushistorie sowie auf die Änderungstabellen (CDHDR/CDPOS), um die vollständige Ereignishistorie zu rekonstruieren, da standardmäßige CDS-Views häufig nur den aktuellen Status anzeigen.
Bereiten Sie die SQL-Umgebung vor: Öffnen Sie Ihren SQL-Editor. Stellen Sie sicher, dass Ihr Benutzer über SELECT-Berechtigungen für die DDL-SQL-Views verfügt, in der Regel im Schema SAPABAP1 oder einem vergleichbaren Schema, die für die oben genannten Artefakte verwendet werden.
Führen Sie die Extraktionsabfrage aus: Kopieren Sie das bereitgestellte SQL-Skript in Ihren Editor. Ersetzen Sie den Platzhalter [Your Client Number] durch Ihre konkrete SAP-Mandantennummer, zum Beispiel 100. Wenn Sie nach einem bestimmten Zeitraum filtern, aktualisieren Sie die EventTimestamp-Filter in den WHERE-Klauseln.
Transformieren Sie die Daten: Die Abfrage übernimmt die meisten Transformationen, etwa die Umwandlung von Timestamps und die Zuordnung von Statuscodes zu lesbarem Text. Stellen Sie jedoch sicher, dass die Spalte EventTimestamp beim Export im ISO-8601-Format (YYYY-MM-DDTHH:MM:SS) ausgegeben wird, sofern Ihr Zielsystem dies voraussetzt.
Exportieren Sie das Ergebnis: Führen Sie die Abfrage aus und exportieren Sie die Ergebnisse als CSV- oder Parquet-Datei. Verwenden Sie UTF-8 als Codierung, damit Sonderzeichen in Benutzernamen oder Beschreibungen korrekt verarbeitet werden.
Prüfen Sie die Spaltenzuordnung: Öffnen Sie einen Ausschnitt des Exports und stellen Sie sicher, dass die Spalten MaintenanceWorkOrder, Activity und EventTimestamp vollständig befüllt sind. Prüfen Sie, ob die Spalte Activity die in den Anforderungen aufgeführten konkreten Werte enthält, zum Beispiel Maintenance Order Created und Goods Issue Posted.
Laden Sie die Daten in ProcessMind hoch: Importieren Sie die geprüfte flache Datei in ProcessMind. Ordnen Sie die Spalte Activity dem Feld Activity ID, MaintenanceWorkOrder dem Feld Case ID und EventTimestamp dem Feld Timestamp zu.
Konfiguration
- Mandantenfilter: SAP-Systeme sind mandantenfähig. Filtern Sie immer nach
MANDToderClient, zum Beispiel '100', um doppelte Daten oder eine mandantenübergreifende Offenlegung zu vermeiden. - Zeitraum: Es empfiehlt sich, das
CreationDatedes Instandhaltungsauftrags auf die letzten sechs bis zwölf Monate zu begrenzen. Eine Abfrage der vollständigen Historie vonJCDS(Status) oderCDPOS(Änderungsbelege) ohne Datumsfilter kann zu Zeitüberschreitungen führen. - Sprachschlüssel: Die Abfrage verwendet standardmäßig Englisch ('E'). Wenn Ihr Unternehmen eine andere Hauptsprache für Textbeschreibungen verwendet, passen Sie den Sprachfilter an.
- Systemzugriff: Erforderlich ist Zugriff auf das ABAP-Core-Data-Services-Schema oder die zugrunde liegenden HANA-Tabellen. Der Zugriff auf die Rohdaten in JCDS und CDHDR ist für die historische Statusanalyse entscheidend, da reine CDS-Views häufig nur Momentaufnahmen liefern.
- Auftragsarten: Die Abfrage extrahiert alle Auftragsarten. Wenn Sie nur bestimmte Instandhaltungsszenarien analysieren möchten, können Sie
MaintenanceOrderTypefiltern, zum Beispiel auf PM01 und PM02.
a Beispielabfrage sql
/* Activity 1: Maintenance Notification Created */
SELECT
CAST(N.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Notification Created' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(N.CreationDate, ' '), N.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
N.MaintenanceOrderType,
N.MaintenancePriority,
N.Equipment AS EquipmentNumber,
N.FunctionalLocation,
N.MaintenancePlant,
N.MaintenancePlannerGroup AS ResponsiblePlannerGroup,
N.MainWorkCenter,
N.MaintenanceNotification AS NotificationNumber,
CAST(NULL AS DATE) AS TargetFinishDate,
N.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintenanceNotification N
JOIN I_MaintenanceOrder O ON N.MaintenanceOrder = O.MaintenanceOrder
WHERE N.MaintenanceOrder IS NOT NULL AND N.MaintenanceOrder <> ''
UNION ALL
/* Activity 2: Maintenance Order Created */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Order Created' AS Activity,
O.CreationDate AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
O.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintenanceOrder O
UNION ALL
/* Activity 3: Maintenance Priority Changed */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Priority Changed' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(H.UDATE, ' '), H.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
H.USERNAME AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM CDHDR H
JOIN CDPOS P ON H.OBJECTCLAS = P.OBJECTCLAS AND H.OBJECTID = P.OBJECTID AND H.CHANGENR = P.CHANGENR
JOIN I_MaintenanceOrder O ON O.MaintenanceOrder = H.OBJECTID
WHERE H.OBJECTCLAS = 'ORDER'
AND P.TABNAME = 'AFKO'
AND P.FNAME = 'PRIOK'
UNION ALL
/* Activity 4: Maintenance Order Released */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Order Released' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0002' /* REL Status */
AND J.INACT = ' '
UNION ALL
/* Activity 5: Material Component Added */
SELECT
CAST(C.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Material Component Added' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(C.CreationDate, ' '), COALESCE(C.CreationTime, '000000')), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
O.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintenanceOrderComponent C
JOIN I_MaintenanceOrder O ON C.MaintenanceOrder = O.MaintenanceOrder
UNION ALL
/* Activity 6: Purchase Requisition Created */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Purchase Requisition Created' AS Activity,
PR.CreationDate AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
PR.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_PurchasingDocumentItem PR
JOIN I_MaintenanceOrder O ON PR.ServiceMaintenanceOrder = O.MaintenanceOrder
WHERE PR.PurchasingDocumentCategory = 'B' /* Requisition */
UNION ALL
/* Activity 7: Goods Issue Posted */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Goods Issue Posted' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(MD.CreationDate, ' '), MD.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
MD.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaterialDocumentItem MD
JOIN I_MaintenanceOrder O ON MD.MaintenanceOrder = O.MaintenanceOrder
WHERE MD.GoodsMovementType = '261'
UNION ALL
/* Activity 8: Work Order Scheduled (Operation Dispatched) */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Work Order Scheduled' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrderOperation OP ON J.OBJNR = OP.MaintenanceOrderOperationInternalID
JOIN I_MaintenanceOrder O ON OP.MaintenanceOrder = O.MaintenanceOrder
WHERE J.STAT = 'I0019' /* DSP Dispatched Status */
AND J.INACT = ' '
UNION ALL
/* Activity 9: Order Operation Confirmed */
SELECT
CAST(CNF.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Order Operation Confirmed' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(CNF.CreationDate, ' '), CNF.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
CNF.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintOrderConfirmation CNF
JOIN I_MaintenanceOrder O ON CNF.MaintenanceOrder = O.MaintenanceOrder
WHERE CNF.IsReversed = ' '
UNION ALL
/* Activity 10: Measurement Reading Recorded */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Measurement Reading Recorded' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(M.CreationDate, ' '), M.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
M.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MeasurementDocument M
JOIN I_MaintenanceOrder O ON M.MaintenanceOrder = O.MaintenanceOrder
UNION ALL
/* Activity 11: Technical Completion Set */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Technical Completion Set' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0045' /* TECO Status */
AND J.INACT = ' '
UNION ALL
/* Activity 12: Technical Completion Reversed */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Technical Completion Reversed' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0045' /* TECO Status */
AND J.INACT = 'X' /* Inactive indicates it was removed/reversed */
AND J.CHIND = 'U' /* Update indicator */
UNION ALL
/* Activity 13: Order Cost Settled */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Order Cost Settled' AS Activity,
JE.CreationDateTime AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
JE.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_ActualPlanJrnlEntryItem JE
JOIN I_MaintenanceOrder O ON JE.OrderID = O.MaintenanceOrder
WHERE JE.BusinessTransactionType = 'KOAO' /* Settlement */
UNION ALL
/* Activity 14: Business Completion Set */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Business Completion Set' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0046' /* CLSD Status */
AND J.INACT = ' ' Schritte
- Bestätigen Sie, dass direkter Lesezugriff auf AUFK, AFVC, JEST, QMEL, RESB, EBAN, MSEG, MKPF, AFRU, IMRG sowie auf die zutreffenden Tabellen für Änderungsbelege und Controlling-Belege verfügbar ist. Prüfen Sie die exakten physischen Namen und Feldzuordnungen in Ihrer SAP-Datenbank, da sich verfügbare Felder und replizierte Tabellenstrukturen je nach Bereitstellung unterscheiden.
- Konfigurieren Sie die Extraktionsverbindung, Zugangsdaten, das Start- und Enddatum der Extraktion sowie unternehmensspezifische Filter. Verwenden Sie für die erste Validierung einen rollierenden Zeitraum von drei bis sechs Monaten. Erweitern Sie ihn erst, wenn die Prüfungen zu Leistung und Vollständigkeit erfolgreich abgeschlossen sind.
- Extrahieren Sie Auftragskopfdaten aus AUFK, Vorgangsdaten aus AFVC und Statusdatensätze aus JEST. Verknüpfen Sie auftragsbezogene Datensätze über das in Ihrem SAP-Schema verwendete Auftragsnummernfeld. JEST ist in vielen SAP-Implementierungen eine Tabelle für den aktuellen Status. Historische Status-Timestamps erfordern daher eine Quelle für die Statushistorie oder Änderungsbelege. Konfigurieren Sie [Your status history table] und die zugehörigen Timestamp-Felder, wenn JEST keine Statusänderungshistorie enthält.
- Extrahieren Sie die Anlage von Meldungen aus QMEL, die Anlage von Komponenten aus RESB, die Anlage von Bestellanforderungen aus EBAN, Warenausgangsinformationen aus MSEG und MKPF, Rückmeldungen aus AFRU, Messwerte aus IMRG sowie Controlling-Abrechnungsbelege aus [Your controlling document table]. Extrahieren Sie Prioritätsänderungen aus [Your order change document table] und [Your change document item table]. Diese Quellen sind erforderlich, da AUFK, AFVC und JEST allein nicht alle 14 angeforderten Aktivitäten liefern können.
- Vereinheitlichen Sie alle Quell-Timestamps auf eine Zeitzone und einen einheitlichen Timestamp-Datentyp. Wandeln Sie SAP-Datums- und Zeitfelder oder Datenbank-Timestamp-Felder in EventTimestamp um. Bewahren Sie die im System verfügbare Genauigkeit des Quell-Timestamps. Wenden Sie das konfigurierte Extraktionsfenster auf EventTimestamp an, nicht nur auf das Anlagedatum des Auftrags.
- Erstellen Sie für jedes Vorkommen in der Quelle eine Ereigniszeile. Verlassen Sie sich nicht darauf, dass ProcessMind Ereignisse ableitet. Weisen Sie den in der Abfrage exakt vorgegebenen Activity-Wert zu, befüllen Sie MaintenanceWorkOrder, EventTimestamp, SourceSystem, LastDataUpdate und die verfügbaren empfohlenen Attribute. Bewahren Sie Quellkennungen auf, wenn sie für die Untersuchung von Duplikaten hilfreich sind.
- Entfernen Sie nur identische Quellereignisse anhand stabiler Quellschlüssel. Fassen Sie keine separaten Statusänderungen, Rückmeldungen, Materialbewegungen, Messwerte oder Abrechnungsbelege zusammen, die zu unterschiedlichen Zeitpunkten aufgetreten sind. Wenn mehrere Quelldatensätze ein Geschäftsergebnis darstellen, dokumentieren Sie die gewählte Priorität der Quellen in der Extraktionsspezifikation.
- Validieren Sie, dass alle 14 Activity-Werte als explizite Zeilen vorkommen, jede Zeile eine Fallkennung und einen Timestamp enthält und alle Timestamps innerhalb des angeforderten Extraktionszeitraums liegen. Vergleichen Sie die Anzahlen für dieselben Filter mit SAP-Berichten oder den Anzahlen in den Quelltabellen.
- Exportieren Sie das Ergebnis als UTF-8-CSV oder in einem anderen von ProcessMind unterstützten Event-Log-Format. Verwenden Sie eine Zeile pro Ereignis, nehmen Sie die erforderlichen Spalten mit den exakt konfigurierten Namen auf, bewahren Sie ISO-8601-Timestamps auf, sofern unterstützt, und laden Sie die Datei in ProcessMind hoch oder konfigurieren Sie dort die Datenbankverbindung. Legen Sie MaintenanceWorkOrder als Fallkennung, Activity als Aktivitätsspalte und EventTimestamp als Timestamp-Spalte fest.
Konfiguration
- Quelltabellen und Zuordnungen: AUFK liefert Auftragskopfdaten, AFVC Vorgangsdaten und JEST Systemstatusdaten. Für alle 14 Aktivitäten werden außerdem QMEL, RESB, EBAN, MSEG, MKPF, AFRU, IMRG, Quellen für Änderungsbelege und Quellen für Controlling-Belege benötigt. Prüfen Sie vor der Ausführung die exakten Feldnamen in Ihrer SAP-Datenbank.
- Erforderliche Ausgabespalten: MaintenanceWorkOrder, Activity, EventTimestamp, SourceSystem und LastDataUpdate müssen in jeder Ereigniszeile vorhanden sein.
- Empfohlene Ausgabespalten: MaintenanceOrderType, MaintenancePriority, EquipmentNumber, FunctionalLocation, MaintenancePlant, ResponsiblePlannerGroup, MainWorkCenter, NotificationNumber, TargetFinishDate, CreatedByUser und SystemStatus sollten befüllt werden, sofern sie verfügbar sind.
- Zeitraum: Beginnen Sie mit drei bis sechs Monaten. Verwenden Sie eine inklusive Startgrenze und eine exklusive Endgrenze, um doppelte Ereignisse zwischen inkrementellen Läufen zu vermeiden. Teilen Sie historische Nachladungen nach Monaten oder einem anderen von der Datenbank unterstützten Zeitraum auf.
- Filter: Konfigurieren Sie [Company Code filter], [Order Type filter], [Maintenance Plant filter], [Notification Type filter] und [Document Type filter] entsprechend dem Berichtsumfang. Verwenden Sie keine Filter, durch die Aufträge ohne Meldungen, Vorgänge, Komponenten, Bestellanforderungen, Rückmeldungen, Messungen oder Abrechnungsbelege ausgeschlossen werden.
- Statushistorie: JEST bildet häufig Statuszuweisungen ab. Für historische Statusänderungen können jedoch [Your status history table] oder Änderungsbelege erforderlich sein. Konfigurieren Sie die Quelle, die den Timestamp der Statusänderung und die Historie der Statusübergänge enthält.
- Prioritätshistorie: Für Prioritätsänderungen benötigen Sie [Your order change document table] und [Your change document item table] mit der relevanten Objektkennung, dem Feldnamen, dem alten Wert, dem neuen Wert und dem Timestamp der Änderung.
- Wert des Quellsystems: Ersetzen Sie [Your SAP system identifier] durch den stabilen Namen des Quellsystems, den Ihr Unternehmen verwendet.
- Letzte Datenaktualisierung: Ersetzen Sie [Your extraction timestamp] durch den Timestamp, der zu Beginn oder am Ende des Extraktionslaufs erzeugt wird. Verwenden Sie für alle Zeilen dieses Laufs denselben Wert.
- Leistung: Indizieren oder partitionieren Sie Join- und Filterspalten, sofern dies zulässig ist. Begrenzen Sie das Extraktionsfenster, wählen Sie nur erforderliche Spalten aus, verarbeiten Sie große Zeiträume in Batches und materialisieren Sie Zwischenextrakte, wenn direkte Joins über mehrere Schemata zu langsam sind.
- Voraussetzungen: Datenbankverbindung, Leseberechtigung für alle konfigurierten Quelltabellen, Zugriff auf die relevanten Daten aus Plant Maintenance, Materials Management, Controlling und Messwesen sowie die Genehmigung zur Extraktion operativer Daten. Prüfen Sie alle Replikations- oder Lizenzbeschränkungen der Datenbankplattform.
a Beispielabfrage sql
WITH
params AS (
SELECT
CAST('[Start date and time]' AS TIMESTAMP) AS start_ts,
CAST('[End date and time]' AS TIMESTAMP) AS end_ts,
CAST('[Your SAP system identifier]' AS VARCHAR(100)) AS source_system,
CAST('[Your extraction timestamp]' AS TIMESTAMP) AS last_data_update
),
order_base AS (
SELECT
a.[Order number field] AS MaintenanceWorkOrder,
a.[Order type field] AS MaintenanceOrderType,
a.[Priority field] AS MaintenancePriority,
a.[Equipment field] AS EquipmentNumber,
a.[Functional location field] AS FunctionalLocation,
a.[Maintenance plant field] AS MaintenancePlant,
a.[Planner group field] AS ResponsiblePlannerGroup,
a.[Main work center field] AS MainWorkCenter,
a.[Notification number field] AS NotificationNumber,
a.[Target finish date field] AS TargetFinishDate,
a.[Created by field] AS CreatedByUser,
a.[System status field] AS SystemStatus,
a.[Creation date field] AS OrderCreationDate,
a.[Creation time field] AS OrderCreationTime
FROM AUFK a
WHERE a.[Order number field] IS NOT NULL
AND a.[Company code field] = '[Your company code filter]'
),
base_events AS (
SELECT
o.MaintenanceWorkOrder,
'Maintenance Notification Created' AS Activity,
CAST(q.[Notification creation timestamp field] AS TIMESTAMP) AS EventTimestamp,
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN QMEL q ON q.[Notification number field] = o.NotificationNumber
CROSS JOIN params p
WHERE q.[Notification creation timestamp field] >= p.start_ts
AND q.[Notification creation timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Maintenance Order Created',
CAST(o.OrderCreationDate || ' ' || o.OrderCreationTime AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o CROSS JOIN params p
WHERE CAST(o.OrderCreationDate || ' ' || o.OrderCreationTime AS TIMESTAMP) >= p.start_ts
AND CAST(o.OrderCreationDate || ' ' || o.OrderCreationTime AS TIMESTAMP) < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Maintenance Priority Changed',
CAST(c.[Change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, c.[New priority value field], o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN [Your order change document table] h ON h.[Order object identifier field] = o.MaintenanceWorkOrder
JOIN [Your change document item table] c ON c.[Change document number field] = h.[Change document number field]
CROSS JOIN params p
WHERE c.[Changed field name field] = '[Your priority field name]'
AND CAST(c.[Change timestamp field] AS TIMESTAMP) >= p.start_ts
AND CAST(c.[Change timestamp field] AS TIMESTAMP) < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Maintenance Order Released',
CAST(s.[Status change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, 'REL'
FROM order_base o
JOIN [Your status history table] s ON s.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE s.[Status code field] = 'REL'
AND s.[Status change timestamp field] >= p.start_ts
AND s.[Status change timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Material Component Added',
CAST(r.[Reservation creation timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN RESB r ON r.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE r.[Reservation line creation timestamp field] >= p.start_ts
AND r.[Reservation line creation timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Purchase Requisition Created',
CAST(e.[Purchase requisition creation timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN EBAN e ON e.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE e.[Purchase requisition creation timestamp field] >= p.start_ts
AND e.[Purchase requisition creation timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Goods Issue Posted',
CAST(m.[Material document timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN MSEG m ON m.[Order number field] = o.MaintenanceWorkOrder
JOIN MKPF k ON k.[Material document number field] = m.[Material document number field]
AND k.[Material document year field] = m.[Material document year field]
CROSS JOIN params p
WHERE m.[Movement type field] IN ('201', '261')
AND k.[Material document timestamp field] >= p.start_ts
AND k.[Material document timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Work Order Scheduled',
CAST(v.[Dispatch status timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN AFVC v ON v.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE v.[Dispatch status field] = '[Your dispatch status value]'
AND v.[Dispatch status timestamp field] >= p.start_ts
AND v.[Dispatch status timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Order Operation Confirmed',
CAST(f.[Confirmation timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN AFRU f ON f.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE f.[Confirmation timestamp field] >= p.start_ts
AND f.[Confirmation timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Measurement Reading Recorded',
CAST(i.[Measurement document timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN IMRG i ON i.[Equipment field] = o.EquipmentNumber
CROSS JOIN params p
WHERE i.[Measurement document timestamp field] >= p.start_ts
AND i.[Measurement document timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Technical Completion Set',
CAST(s.[Status change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, 'TECO'
FROM order_base o
JOIN [Your status history table] s ON s.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE s.[Status code field] = 'TECO'
AND s.[Status change timestamp field] >= p.start_ts
AND s.[Status change timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Technical Completion Reversed',
CAST(s.[Status change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, s.[Resulting system status field]
FROM order_base o
JOIN [Your status history table] s ON s.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE s.[Previous status code field] = 'TECO'
AND s.[Status code field] <> 'TECO'
AND s.[Status change timestamp field] >= p.start_ts
AND s.[Status change timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Order Cost Settled',
CAST(c.[Controlling document timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN [Your controlling document table] c ON c.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE c.[Controlling document timestamp field] >= p.start_ts
AND c.[Controlling document timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Business Completion Set',
CAST(s.[Status change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, 'CLSD'
FROM order_base o
JOIN [Your status history table] s ON s.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE s.[Status code field] = 'CLSD'
AND s.[Status change timestamp field] >= p.start_ts
AND s.[Status change timestamp field] < p.end_ts
)
SELECT
e.MaintenanceWorkOrder,
e.Activity,
e.EventTimestamp,
p.source_system AS SourceSystem,
p.last_data_update AS LastDataUpdate,
e.MaintenanceOrderType,
e.MaintenancePriority,
e.EquipmentNumber,
e.FunctionalLocation,
e.MaintenancePlant,
e.ResponsiblePlannerGroup,
e.MainWorkCenter,
e.NotificationNumber,
e.TargetFinishDate,
e.CreatedByUser,
e.SystemStatus
FROM base_events e
CROSS JOIN params p
WHERE e.MaintenanceWorkOrder IS NOT NULL
AND e.EventTimestamp IS NOT NULL
AND e.EventTimestamp >= p.start_ts
AND e.EventTimestamp < p.end_ts
ORDER BY e.MaintenanceWorkOrder, e.EventTimestamp, e.Activity; Bereit für den Start?
Verwenden Sie diese Ressourcen, um Ihre Instandhaltungs-Workflows abzubilden und Einsparpotenziale zu erkennen. Unser Rahmen stellt sicher, dass Ihre Datenstruktur die erforderliche Grundlage für vollständige Transparenz in Ihren Abläufen bietet.
Beseitigen Sie heute Engpässe in der SAP-Anlageninstandhaltung
Verkürzen Sie Ihre Instandhaltungszykluszeit ab sofort um 30 Prozent
Keine Kreditkarte erforderlich, Einrichtung in fünf Minuten