Ihre Vorlage für Anlagenwartungsdaten
Ihre Vorlage für Anlagenwartungsdaten
- Empfohlene Attribute zur Erfassung
- Kritische Instandhaltungsaktivitäten zur Verfolgung
- Technische Extraktionsanleitung für SAP PM
Attribute der Anlageninstandhaltung
| Name | Beschreibung | ||
|---|---|---|---|
| Aktivitätsname Activity | Die spezifische Aufgabe oder Statusänderung, die aufgetreten ist. | ||
| Beschreibung Stellt den im Instandhaltungsprozess durchgeführten Schritt dar, z.B. 'Instandhaltungsauftrag erstellt', 'Warenausgang gebucht' oder 'Auftragsvorgang bestätigt'. Diese werden typischerweise aus den Statusverwaltungstabellen (JEST) für Statusänderungen oder Transaktionstabellen (AFRU für Bestätigungen, MKPF für Materialbewegungen) abgeleitet. Dieses Attribut bestimmt die Knoten in der Prozesskarte. Bedeutung Dies definiert das 'Was' des Prozesses, unerlässlich für die Entdeckung des Prozessflusses und seiner Varianten. Datenquelle Abgeleitet aus JEST (Status), AFRU (Bestätigungen), QMEL (Meldungen) Beispiele Instandhaltungsauftrag erstelltAuftrag freigegebenTechnisch abgeschlossen | |||
| Ereignis-Timestamp EventTimestamp | Das genaue Datum und die Uhrzeit, zu der die Aktivität stattfand. | ||
| Beschreibung Erfasst den genauen Zeitpunkt, zu dem ein Ereignis stattgefunden hat. Bei Statusänderungen ist dies die Zeit der Systemstatusaktualisierung; bei Vorgängen ist es die Bestätigungszeit. Genaue Zeitstempel sind entscheidend für die Berechnung von Zykluszeiten, Durchlaufzeiten und die Identifizierung von Engpässen zwischen Prozessschritten wie 'Planung' und 'Ausführung'. Bedeutung Erforderlich, um Ereignisse korrekt zu sequenzieren und alle dauerbasierten KPIs zu berechnen. Datenquelle JEST (UDATE/UTIME), AFRU (ISDD/ISDZ), MKPF (CPUDT/CPUTM) Beispiele 2023-10-15T08:30:00Z2023-10-15T14:45:12Z | |||
| Instandhaltungsarbeitsauftrag MaintenanceWorkOrder | Die eindeutige Kennung für den Instandhaltungsarbeitsauftrag. | ||
| Beschreibung Der Instandhaltungsarbeitsauftrag ist das zentrale Dokument in SAP Plant Maintenance (Tabelle AUFK, Feld AUFNR). Er verknüpft die Instandhaltungsanforderung (Meldung) mit den Ausführungsressourcen, Materialien und Kosten. In der Process Mining Analyse dient dies als Case ID und ermöglicht die Rekonstruktion des End-to-End-Lebenszyklus eines Instandhaltungsauftrags von der Erstellung bis zum technischen und geschäftlichen Abschluss. Bedeutung Es ist der eindeutige Schlüssel, der alle Aktivitäten, Kosten und Timestamps zusammenführt und die Visualisierung des Prozessflusses ermöglicht. Datenquelle SAP Tabelle AUFK, Feld AUFNR Beispiele 00004001234540012345000040098765 | |||
| Letzte Datenaktualisierung LastDataUpdate | Timestamp der letzten Datenextraktion. | ||
| Beschreibung Zeigt an, wann die Daten zuletzt im Process Mining Datenmodell aktualisiert wurden. Dies ermöglicht Analysten zu verstehen, wie aktuell die Erkenntnisse sind und hilft, die Datenaktualität für Dashboards zu validieren, die den Echtzeit-Backlog oder die SLA-Einhaltung überwachen. Bedeutung Entscheidend für die Data Governance und den Aufbau von Vertrauen in die Dashboards. Datenquelle ETL-Zeitstempel Beispiele 2023-11-01T12:00:00Z | |||
| Quellsystem SourceSystem | Das System, aus dem die Daten stammen. | ||
| Beschreibung Identifiziert den spezifischen SAP-Mandanten oder die Instanz (z.B. 'SAP_PM_PROD'). In Landschaften mit mehreren ERP-Systemen hilft dieses Attribut, Datensätze zu unterscheiden, die identische IDs haben könnten, aber zu verschiedenen juristischen Einheiten oder Systemumgebungen gehören. Bedeutung Gewährleistet Daten-Einzigartigkeit und -Linie in Mehrsystemumgebungen. Datenquelle Systemkonfiguration / Extraktionsprotokoll Beispiele SAP_ECC_P01SAP_S4H_100 | |||
| Erstellt von Benutzer CreatedByUser | Der Benutzername der Person, die den Auftrag erstellt hat. | ||
| Beschreibung Identifiziert den Benutzer (ERNAM), der für die Initiierung des Arbeitsauftrags verantwortlich ist. Dies ist im generischen Modell auf 'Benutzer' abgebildet. Es ermöglicht die Analyse der manuellen vs. automatisierten Erstellung und hilft beim Auditing der Aktivität 'Instandhaltungsauftrag erstellt'. Bedeutung Ermöglicht die Analyse des Benutzerverhaltens und das Auditing. Datenquelle SAP Tabelle AUFK, Feld ERNAM Beispiele JSMITHBSERVICEDDAVIS | |||
| Funktionslokation FunctionalLocation | Der hierarchische Standort, an dem die Anlage installiert ist. | ||
| Beschreibung Repräsentiert den Ort in der technischen Struktur, an dem die Wartungsaufgabe ausgeführt wird (TPLNR). Im Gegensatz zu Geräten, die beweglich sind, ist der technische Platz statisch. Dieses Attribut unterstützt das Dashboard 'Technische Prüfungszykluszeiten', indem es Leistungsvergleiche zwischen verschiedenen Bereichen der Anlage ermöglicht (z.B. Kesselraum vs. Verpackungslinie). Bedeutung Ermöglicht räumliche und hierarchische Analyse der Instandhaltungsleistung. Datenquelle SAP Tabelle IFLOT, Feld TPLNR (oder via AUFK-TPLNR) Beispiele PLANT1-BLD2-LN01US-TX-DAL-01 | |||
| Geplantes Enddatum TargetFinishDate | Das geplante Fertigstellungsdatum für die Wartungsarbeiten. | ||
| Beschreibung Dieses Datum (typischerweise Basisfinish-Datum - GLTRP) stellt die Frist für den Arbeitsauftrag dar. Es wird mit dem tatsächlichen Abschluss-Timestamp verglichen, um den KPI 'SLA-Einhaltungsrate' zu berechnen. Es ist die Basis zur Bestimmung, ob ein Arbeitsauftrag pünktlich oder verspätet ist. Bedeutung Der Referenzpunkt für alle Berechnungen zur Liefertermintreue (On-Time Delivery, OTD). Datenquelle SAP Tabelle AFKO, Feld GLTRP Beispiele 2023-12-012023-12-15 | |||
| Gerätenummer EquipmentNumber | Identifikator für die spezifische physische Anlage, die instandgehalten wird. | ||
| Beschreibung Die Equipmentnummer (EQUNR) identifiziert die einzelne Maschine oder das Anlagenobjekt. Durch die Aggregation von Daten in diesem Feld können Analysten das Dashboard 'Anlagenwartungskosten und Durchsatz' erstellen, um 'Problem-Anlagen' zu finden, die häufige, kostspielige Reparaturen erfordern. Dies ermöglicht eine zuverlässigkeitsorientierte Wartungsanalyse. Bedeutung Verbindet die Prozessleistung mit spezifischen physischen Anlagen. Datenquelle 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 Das Hauptarbeitsplatz (VAPLZ) repräsentiert die Gruppe von Technikern oder Maschinen, die die physische Arbeit ausführen werden. Dieses Attribut wird auf 'Team' abgebildet und ist entscheidend für die Analyse der Ausführungseffizienz, wie z.B. die 'mittlere Reparaturzeit' pro Team. Es hilft, zwischen internen Mitarbeitern und externen Dienstleistern zu unterscheiden. Bedeutung Ermöglicht eine Performance-Analyse auf Ressourcenebene. Datenquelle SAP Tabelle AFKO, Feld VAPLZ (oder AUFK-VAPLZ je nach Konfiguration) Beispiele MECH_01ELEC_TEAMEXT_CONT | |||
| Instandhaltungsauftragsart MaintenanceOrderType | Kategorisiert den Arbeitsauftrag (z.B. präventiv, korrektive). | ||
| Beschreibung Der Auftragstyp (AUART) in SAP PM unterscheidet die Art der Wartungsarbeit. Gängige Typen sind PM01 (Korrektur), PM02 (Präventiv) und PM03 (Instandsetzung). Dieses Attribut ist entscheidend für den 'Notfallarbeitsauftrag-Auswirkungsmonitor' und zur Segmentierung von Prozessvarianten, da sich präventive Workflows erheblich von reaktiven unterscheiden. Bedeutung Grundlegend für die Segmentierung der Analyse zwischen geplanten und ungeplanten Arbeiten. Datenquelle SAP Tabelle AUFK, Feld AUART Beispiele PM01PM02PM03 | |||
| Instandhaltungspriorität MaintenancePriority | Das dem Arbeitsauftrag zugewiesene Dringlichkeitsniveau. | ||
| Beschreibung Gibt die Priorität (PRIOK) der Instandhaltungsaufgabe an, z.B. '1-Very High', '2-High' oder '3-Medium'. Dieses Feld ist die direkte Eingabe für den KPI 'Notfall-Instandhaltungsauftragsquote'. Die Analyse des Flusses nach Priorität hilft zu identifizieren, ob hochpriorisierte Aufträge im Vergleich zu Routinearbeiten tatsächlich beschleunigt durch das System geleitet werden. Bedeutung Wichtiger Treiber für die SLA-Analyse und die Identifizierung von Notfallarbeiten. Datenquelle SAP Tabelle AFKO, Feld PRIOK (oder AUFK via View) Beispiele 1-Emergency2-High3-Medium4-Low | |||
| Instandhaltungswerk MaintenancePlant | Das Logistikwerk, das für die Instandhaltung verantwortlich ist. | ||
| Beschreibung Das Werk (WERKS) ist die primäre Organisationseinheit in der Logistik. Es trennt Daten nach physischer Einrichtung. Dieses Attribut ist entscheidend für das Benchmarking der Leistung an verschiedenen Standorten und wird auf 'BusinessUnit' abgebildet, um eine übergeordnete organisatorische Filterung in Dashboards zu unterstützen. Bedeutung Primärer Organisationsfilter für das Benchmarking von Anlagen. Datenquelle SAP Tabelle AUFK, Feld WERKS Beispiele 100020003000 | |||
| Meldungsnummer NotificationNumber | Die Instandhaltungsmeldung, die diesen Auftrag ausgelöst hat. | ||
| Beschreibung Die Meldungsnummer (QMNUM) verknüpft den Arbeitsauftrag zurück mit der initialen Anforderung (Meldung). Diese Verknüpfung ist notwendig, um die volle Durchlaufzeit von 'Wartungsanfrage erhalten' bis zur Fertigstellung zu berechnen. Ohne sie würde die Analyse die initiale Erkennungs- und Berichtsphase des Wartungslebenszyklus verpassen. Bedeutung Verbindet die Ausführungsphase wieder mit der Antrags-/Erkennungsphase. Datenquelle SAP Tabelle AUFK, Feld QMNUM Beispiele 1000050010000501 | |||
| Planungsgruppe ResponsiblePlannerGroup | Die Gruppe der Planer, die für die Bearbeitung des Auftrags verantwortlich ist. | ||
| Beschreibung Die Planungsgruppe (INGRP) identifiziert das spezifische Team oder die Abteilung, die für die Planung der Wartungsarbeiten verantwortlich ist. Dies wird auf 'Abteilung' abgebildet und ist entscheidend für das Dashboard 'Ressourcenauslastung und Planung', um zu identifizieren, welche Planungsteams Engpässe in der Vorbereitungsphase darstellen. Bedeutung Identifiziert das administrative Team, das den Planungsprozess verantwortet. Datenquelle SAP Tabelle AUFK, Feld INGRP Beispiele M01ELEMEC | |||
| Systemstatus SystemStatus | Der aktuelle technische Status des Auftrags (z.B. REL, TECO). | ||
| Beschreibung Eine verkettete Zeichenfolge oder Liste aktiver Systemstatus (aus JEST), die aktuell auf den Auftrag angewendet werden. Gängige Werte sind CRTD (Created), REL (Released), TECO (Technically Completed) und CLSD (Closed). Dies hilft beim Filtern von offenen vs. geschlossenen Cases im 'Backlog and Work In Progress Monitor'. Bedeutung Der primäre Indikator für die Lebenszyklusphase des Auftrags. Datenquelle SAP Funktionsbaustein STATUS_TEXT_EDIT oder Tabelle JEST Beispiele REL CNFTECOCRTD MACM | |||
| Aktivitätsdauer ActivityDuration | Benötigte Zeit zur Durchführung der spezifischen Aktivität. | ||
| Beschreibung Die Dauer des spezifischen Schritts, besonders nützlich für Aktivitäten wie 'Vorgang bestätigt', bei denen Arbeitsstunden erfasst werden. Dies entspricht der 'ProcessingTime' im generischen Modell und wird zur Berechnung der Effizienz und Arbeitsauslastung verwendet. Bedeutung Misst den tatsächlich aufgewendeten Aufwand für Aufgaben. Datenquelle SAP Tabelle AFRU, Feld ISDD/ISDZ vs. IEDD/IEDZ Beispiele 2,5 Stunden45 Minuten | |||
| Geplante Arbeitsstunden PlannedLaborHours | Die geschätzten Arbeitsstunden für den Auftrag. | ||
| Beschreibung Die gesamte geplante Arbeitsleistung (ARBEI) aus den Auftragsvorgängen. Der Vergleich mit der tatsächlichen Aktivitätsdauer hilft im Dashboard 'Planungs- und Schätzleistung', die Genauigkeit der Wartungsplanung zu beurteilen. Bedeutung Basismetrik für die Analyse der Planungsgenauigkeit. Datenquelle SAP Tabelle AFKO (Summe der geplanten Arbeitsleistung des Vorgangs) Beispiele 4.08.512.0 | |||
| Gesamte Istkosten TotalActualCost | Die gesamten Istkosten, die dem Arbeitsauftrag zugeordnet wurden. | ||
| Beschreibung Aggregierte Kosten für Arbeit, Materialien und Dienstleistungen (aus Tabelle PMCO). Dieses Attribut unterstützt das Dashboard 'Kosten und Durchsatz der Anlageninstandhaltung' und ermöglicht es Managern, die finanziellen Auswirkungen von Instandhaltungsaktivitäten zu sehen. Es ist entscheidend für die Bestimmung der Kosteneffizienz von Reparatur gegenüber Ersatz von Anlagen. Bedeutung Bietet die finanzielle Dimension zu den operativen Prozessdaten. Datenquelle SAP Tabelle PMCO (Summe des Wertetyps 04 - Ist) Beispiele 150.002500.500.00 | |||
| Ist Nacharbeit IsRework | Kennzeichen, das angibt, ob der Auftrag Nacharbeitsaktivitäten umfasste. | ||
| Beschreibung Ein berechneter Boolean-Wert, der anzeigt, ob eine Prozessschleife aufgetreten ist, insbesondere wenn die Aktivität 'Maintenance Task Executed' mehr als einmal stattfand oder wenn der Status von 'Technically Completed' zu 'In Process' zurückgesetzt wurde. Dies unterstützt den KPI 'Instandhaltungs-Nacharbeitsquote' und hilft, Qualitätsprobleme zu identifizieren. Bedeutung Unterstützt direkt die Qualitätskontrollanalyse. Datenquelle Berechnet aus dem Prozessfluss Beispiele truefalsch | |||
| Ist Notfallarbeit IsEmergencyWork | Kennzeichen, das angibt, ob der Arbeitsauftrag ein Notfall ist. | ||
| Beschreibung Ein boolesches Attribut, das basierend auf der Instandhaltungspriorität berechnet wird. Wenn die Priorität '1' (oder der spezifische Code für Notfall in der Konfiguration) ist, ist dieses Flag wahr. Dies vereinfacht das Filtern und das Erstellen des KPIs 'Notfall-Instandhaltungsauftragsquote' ohne komplexe Logik in der Dashboard-Schicht. Bedeutung Vereinfacht die Filterung für die Analyse kritischer reaktiver Wartung. Datenquelle Berechnet aus Instandhaltungspriorität Beispiele truefalsch | |||
Instandhaltungsaktivitäten für Anlagen
| Aktivität | Beschreibung | ||
|---|---|---|---|
| Auftragsvorgang bestätigt | Stellt die Erfassung der tatsächlich von einem Techniker für einen bestimmten Vorgang aufgewendeten Zeit dar. Dies erfasst die tatsächliche Ausführungsarbeit an der Anlage. | ||
| Bedeutung Diese Aktivität ist die primäre Datenquelle für die Berechnung der mittleren Reparaturzeit und der Arbeitskosten. Datenquelle Tabelle AFRU (Auftragsrückmeldungen). Erfassen Protokolliert, wenn Transaktion IW41 ausgeführt wurde Ereignistyp explicit | |||
| Geschäftlicher Abschluss gesetzt | Kennzeichnet den finalen administrativen Abschluss des Arbeitsauftrags, der weitere Kostenbuchungen verhindert. Erfasst über die Statusänderung auf CLSD (Geschlossen). | ||
| Bedeutung Stellt das absolute Ende des Auftragslebenszyklus dar, entscheidend für Datenintegrität und Aufzeichnungs-Compliance. Datenquelle Tabelle JCDS, Status I0046 (CLSD). Erfassen Protokolliert, wenn Status in JCDS auf CLSD aktualisiert wird Ereignistyp explicit | |||
| Instandhaltungsauftrag erstellt | Kennzeichnet die Generierung des Instandhaltungsarbeitsauftragsobjekts im System. Explizit erfasst aus dem Creation Timestamp der Auftragsstammdatentabelle. | ||
| Bedeutung Dies ist das zentrale Anker-Event für den Case, das den Übergang von der Anfrage zur Planung und Ausführung markiert. Datenquelle Tabelle AUFK, Feld ERDAT (Datum) und ERFZEIT (Uhrzeit). Erfassen Protokolliert, wenn Transaktion IW31 ausgeführt wurde Ereignistyp explicit | |||
| Instandhaltungsauftrag freigegeben | Zeigt an, dass die Planung abgeschlossen ist und der Auftrag zur Ausführung freigegeben wurde. Erfasst durch Monitoring der Statusänderung auf REL in den Systemstatus-Logs. | ||
| Bedeutung Dieser Meilenstein trennt die Planungsphase von der Ausführungsphase, entscheidend für die Messung der Planungs- und Schätzungsdurchlaufzeit. Datenquelle Tabelle JCDS (Statusänderungsbelege), Status I0002 (REL). Erfassen Protokolliert, wenn Status in JCDS auf REL aktualisiert wird Ereignistyp explicit | |||
| Technische Fertigstellung gesetzt | Kennzeichnet die Instandhaltungsarbeit als physisch und technisch beendet. Erfasst über die Statusänderung auf TECO (Technically Completed). | ||
| Bedeutung Der wichtigste Endpunkt für die operative Analyse, der anzeigt, dass die Anlage wiederhergestellt und die Wartung abgeschlossen ist. Datenquelle Tabelle JCDS, Status I0045 (TECO). Erfassen Protokolliert, wenn Status in JCDS auf TECO aktualisiert wird Ereignistyp explicit | |||
| Warenausgang gebucht | Erfasst den physischen Verbrauch von Ersatzteilen oder Materialien für den Arbeitsauftrag. Erhoben aus Materialbelegköpfen, die mit dem Auftrag verknüpft sind. | ||
| Bedeutung Bestätigt, dass Teile verfügbar sind und entnommen wurden, was sich direkt auf die Analyse der Wartezeit für Teileverfügbarkeit auswirkt. Datenquelle Tabelle MSEG/MKPF, Bewegungsart 261 (Warenausgang für Auftrag). Erfassen Protokolliert, wenn Transaktion MIGO/MB1A ausgeführt wurde Ereignistyp explicit | |||
| `Bestellanforderung` erstellt | Signalisiert, dass eine Anforderung für externe Beschaffung oder Dienstleistungen generiert wurde. Dies verbindet den internen Wartungsauftrag mit der externen Lieferkette. | ||
| Bedeutung Entscheidend für die Analyse von Verzögerungen, die durch externe Anbieter oder die Beschaffung von Nicht-Lagermaterial verursacht werden. Datenquelle Tabelle EBAN, verknüpft über Kontierung mit AUFK-AUFNR. Erfassen Protokolliert, wenn EBAN-Datensatz erstellt wurde Ereignistyp explicit | |||
| Arbeitsauftrag geplant | Zeigt die spezifische Terminierung von Vorgängen auf eine Kapazität oder ein Datum an. Abgeleitet aus der Zuweisung des Dispatch-Status zu Vorgängen. | ||
| Bedeutung Misst die Effizienz der Ressourcenallokation und unterstützt das Dashboard für Ressourcenauslastung und Planung. Datenquelle Tabelle JCDS (Statusänderungsbelege) für Vorgänge (ObjTyp OV), Status I0009 (DSPT). Erfassen Statusfeld vor/nachher vergleichen Ereignistyp inferred | |||
| Auftragskosten abgerechnet | Zeigt an, dass die auf den Auftrag gesammelten Kosten auf das Controlling-Objekt (z.B. Kostenstelle) übertragen wurden. Erfasst aus dem Controlling-Dokument. | ||
| Bedeutung Verfolgt den finanziellen Abschlussaspekt und unterstützt den KPI 'Dauer der Finanzabrechnung'. Datenquelle Tabelle COBK (CO-Objekt: Belegkopf), mit Auftrag verknüpft. Erfassen Protokolliert, wenn Abrechnungstransaktion KO88 ausgeführt wurde Ereignistyp explicit | |||
| Instandhaltungsmeldung erstellt | Erfasst die initiale Erstellung einer Instandhaltungsmeldung, die oft der Auslöser für einen Arbeitsauftrag ist. Diese Aktivität, erfasst über den Erstellungs-Timestamp der QMEL-Tabelle, verknüpft die vorgelagerte Anfrage mit dem Ausführungsauftrag. | ||
| Bedeutung Diese Aktivität markiert den Beginn des End-to-End-Wartungsprozesses und ermöglicht die Berechnung der Reaktionszeiten zwischen Fehlererkennung und Auftragserstellung. Datenquelle Tabelle QMEL, Feld ERDAT (Erstellungsdatum) und MZEIT (Uhrzeit). Verknüpft mit Auftrag über QMEL-AUFNR. Erfassen Protokolliert, wenn Datensatz in QMEL-Tabelle erstellt wurde Ereignistyp explicit | |||
| Instandhaltungspriorität geändert | Protokolliert eine Aktualisierung des Prioritätsniveaus des Arbeitsauftrags, z.B. die Eskalation zum Notfall. Abgeleitet aus Änderungsbelegen, die mit den Auftragsstammdaten verknüpft sind. | ||
| Bedeutung Die Nachverfolgung von Prioritätsänderungen erklärt Prozessabweichungen und unterstützt den 'Notfallarbeitsauftrag-Auswirkungsmonitor' durch die Identifizierung reaktiver Eskalationen. Datenquelle Tabelle CDPOS/CDHDR für Objektklasse AUFTRAG, Feld PRIOK. Erfassen Protokolliert in Änderungsbelegen (CDPOS) Ereignistyp explicit | |||
| Materialkomponente hinzugefügt | Erfasst die Hinzufügung von Ersatzteilen oder Materialien zur Komponentenliste des Arbeitsauftrags. Erhoben aus der Erstellung einer Reservierungsposition. | ||
| Bedeutung Identifiziert den Beginn des Beschaffungszyklus für benötigte Teile und unterstützt das Dashboard 'Durchlaufzeiten der Ersatzteilbeschaffung'. Datenquelle Tabelle RESB, Feld BDTER (Bedarfsdatum) oder Erstellungs-Timestamp. Erfassen Protokolliert, wenn Position zu RESB hinzugefügt wurde Ereignistyp explicit | |||
| Messwert erfasst | Protokolliert die Erfassung eines Messbelegs, wie z.B. eine Zählerablesung oder Zustandsbewertung. Dient oft als Event der technischen Inspektion. | ||
| Bedeutung Essentiell für die zustandsbasierte Instandhaltung und die Verfolgung der Zykluszeiten technischer Inspektionen. Datenquelle Tabelle IMRG (Messbeleg), verknüpft mit Equipment oder Technischem Platz. Erfassen Protokolliert, wenn Messbeleg erstellt wurde Ereignistyp explicit | |||
| Technische Fertigstellung rückgängig gemacht | Erfasst den Widerruf des Status 'Technisch abgeschlossen', was darauf hinweist, dass der Auftrag wieder geöffnet wurde. Dies erzeugt eine Nacharbeitsschleife im Prozessmodell. | ||
| Bedeutung Primärer Indikator für den KPI der Wartungsnacharbeitsquote, der vorzeitige Abschlüsse oder Qualitätsprobleme aufzeigt. Datenquelle Tabelle JCDS, Status I0045 (TECO) Wechsel zu Inaktiv. Erfassen Protokolliert, wenn TECO-Status deaktiviert wurde Ereignistyp explicit | |||
Extraktionsleitfäden
Schritte
Datenschnittstelle identifizieren: Bestimmen Sie, wie Sie auf die SAP S/4HANA SQL-Schnittstelle zugreifen werden. Dies geschieht typischerweise über SAP HANA Studio, die ABAP Development Tools (ADT) in Eclipse oder eine DBaaS-Verbindungszeichenfolge, falls die HANA-Datenbank Ihrer Analyseschicht ausgesetzt ist.
CDS View Verfügbarkeit überprüfen: Stellen Sie sicher, dass die Standard Core Data Services (CDS) Views in Ihrem S/4HANA-System aktiv sind. Die primär benötigten Views sind I_MaintenanceOrder, I_MaintenanceOrderOperation, I_MaintenanceNotification, I_MaintOrderConfirmation und I_MeasurementDocument. Sie benötigen außerdem Zugriff auf die Systemstatus-Historientabelle JCDS und die Änderungsbelegtabellen (CDHDR/CDPOS), um den vollständigen Eventverlauf zu rekonstruieren, da Standard-CDS Views oft nur den aktuellen Zustand zeigen.
SQL-Umgebung vorbereiten: Öffnen Sie Ihren SQL-Editor. Stellen Sie sicher, dass Ihr Benutzer SELECT-Berechtigungen für die oben aufgeführten DDL SQL Views (üblicherweise Schema SAPABAP1 oder ähnlich) besitzt.
Extraktionsabfrage ausführen: Kopieren Sie das bereitgestellte SQL-Skript in Ihren Editor. Ersetzen Sie den Platzhalter [Ihre Mandantennummer] durch Ihre spezifische SAP-Mandanten-ID (z.B. 100). Wenn Sie nach einem bestimmten Datumsbereich filtern, aktualisieren Sie die Event Timestamp-Filter in den WHERE-Klauseln.
Daten-Transformation: Die Abfrage übernimmt die meisten Transformationen, wie das Umwandeln von Timestamps und das Zuordnen von Statuscodes zu lesbarem Text. Stellen Sie jedoch sicher, dass die Event Timestamp-Spalte beim Export in das ISO 8601-Format (JJJJ-MM-TTTHH:MM:SS) formatiert ist, falls Ihr Zielsystem dies erfordert.
Ergebnis exportieren: Führen Sie die Abfrage aus und exportieren Sie die Ergebnisse in eine CSV- oder Parquet-Datei. Stellen Sie sicher, dass die Kodierung auf UTF-8 eingestellt ist, um Sonderzeichen in Benutzernamen oder Beschreibungen zu verarbeiten.
Spaltenzuordnung validieren: Öffnen Sie eine Stichprobe des Exports und stellen Sie sicher, dass die Spalten MaintenanceWorkOrder, Activity und EventTimestamp vollständig gefüllt sind. Überprüfen Sie, dass die Aktivitätsspalte die in den Anforderungen aufgeführten spezifischen Strings enthält (z.B. Maintenance Order Created, Goods Issue Posted).
Upload zu ProcessMind: Importieren Sie die validierte Flatfile in ProcessMind. Ordnen Sie die Aktivitätsspalte dem Aktivitäts-ID-Feld zu, MaintenanceWorkOrder dem Case ID-Feld und EventTimestamp dem Timestamp-Feld zu.
Konfiguration
- Client-Filter: SAP-Systeme sind mandantenfähig. Filtern Sie immer nach
MANDToderClient(z.B. '100'), um doppelte Daten oder mandantenübergreifende Datenlecks zu vermeiden. - Datumsbereich: Es wird empfohlen, das
CreationDatedes Instandhaltungsauftrags auf die letzten 6 bis 12 Monate zu filtern. Eine Abfrage des gesamten Verlaufs vonJCDS(Status) oderCDPOS(Änderungsbelege) ohne Datumsfilter kann zu Performance-Timeouts führen. - Sprachschlüssel: Die Abfrage ist standardmäßig auf Englisch ('E') eingestellt. Wenn Ihr Unternehmen eine andere primäre Sprache für Textbeschreibungen verwendet, passen Sie den Sprachfilter an.
- Systemzugang: Erfordert Zugriff auf das ABAP Core Data Services Schema oder die zugrunde liegenden HANA-Tabellen. Der Zugriff auf die Rohdaten-Tabellen JCDS und CDHDR ist entscheidend für die historische Statusanalyse, da reine CDS-Views oft snapshot-basiert sind.
- Auftragsarten: Die Abfrage extrahiert alle Auftragsarten. Sie können
MaintenanceOrderType(z.B. nur PM01, PM02) filtern, wenn Sie nur spezifische Instandhaltungsszenarien analysieren möchten.
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
Datenschnittstelle identifizieren: Bestimmen Sie, wie Sie auf die SAP S/4HANA SQL-Schnittstelle zugreifen werden. Dies geschieht typischerweise über SAP HANA Studio, die ABAP Development Tools (ADT) in Eclipse oder eine DBaaS-Verbindungszeichenfolge, falls die HANA-Datenbank Ihrer Analyseschicht ausgesetzt ist.
CDS View Verfügbarkeit überprüfen: Stellen Sie sicher, dass die Standard Core Data Services (CDS) Views in Ihrem S/4HANA-System aktiv sind. Die primär benötigten Views sind I_MaintenanceOrder, I_MaintenanceOrderOperation, I_MaintenanceNotification, I_MaintOrderConfirmation und I_MeasurementDocument. Sie benötigen außerdem Zugriff auf die Systemstatus-Historientabelle JCDS und die Änderungsbelegtabellen (CDHDR/CDPOS), um den vollständigen Eventverlauf zu rekonstruieren, da Standard-CDS Views oft nur den aktuellen Zustand zeigen.
SQL-Umgebung vorbereiten: Öffnen Sie Ihren SQL-Editor. Stellen Sie sicher, dass Ihr Benutzer SELECT-Berechtigungen für die oben aufgeführten DDL SQL Views (üblicherweise Schema SAPABAP1 oder ähnlich) besitzt.
Extraktionsabfrage ausführen: Kopieren Sie das bereitgestellte SQL-Skript in Ihren Editor. Ersetzen Sie den Platzhalter [Ihre Mandantennummer] durch Ihre spezifische SAP-Mandanten-ID (z.B. 100). Wenn Sie nach einem bestimmten Datumsbereich filtern, aktualisieren Sie die Event Timestamp-Filter in den WHERE-Klauseln.
Daten-Transformation: Die Abfrage übernimmt die meisten Transformationen, wie das Umwandeln von Timestamps und das Zuordnen von Statuscodes zu lesbarem Text. Stellen Sie jedoch sicher, dass die Event Timestamp-Spalte beim Export in das ISO 8601-Format (JJJJ-MM-TTTHH:MM:SS) formatiert ist, falls Ihr Zielsystem dies erfordert.
Ergebnis exportieren: Führen Sie die Abfrage aus und exportieren Sie die Ergebnisse in eine CSV- oder Parquet-Datei. Stellen Sie sicher, dass die Kodierung auf UTF-8 eingestellt ist, um Sonderzeichen in Benutzernamen oder Beschreibungen zu verarbeiten.
Spaltenzuordnung validieren: Öffnen Sie eine Stichprobe des Exports und stellen Sie sicher, dass die Spalten MaintenanceWorkOrder, Activity und EventTimestamp vollständig gefüllt sind. Überprüfen Sie, dass die Aktivitätsspalte die in den Anforderungen aufgeführten spezifischen Strings enthält (z.B. Maintenance Order Created, Goods Issue Posted).
Upload zu ProcessMind: Importieren Sie die validierte Flatfile in ProcessMind. Ordnen Sie die Aktivitätsspalte dem Aktivitäts-ID-Feld zu, MaintenanceWorkOrder dem Case ID-Feld und EventTimestamp dem Timestamp-Feld zu.
Konfiguration
- Client-Filter: SAP-Systeme sind mandantenfähig. Filtern Sie immer nach
MANDToderClient(z.B. '100'), um doppelte Daten oder mandantenübergreifende Datenlecks zu vermeiden. - Datumsbereich: Es wird empfohlen, das
CreationDatedes Instandhaltungsauftrags auf die letzten 6 bis 12 Monate zu filtern. Eine Abfrage des gesamten Verlaufs vonJCDS(Status) oderCDPOS(Änderungsbelege) ohne Datumsfilter kann zu Performance-Timeouts führen. - Sprachschlüssel: Die Abfrage ist standardmäßig auf Englisch ('E') eingestellt. Wenn Ihr Unternehmen eine andere primäre Sprache für Textbeschreibungen verwendet, passen Sie den Sprachfilter an.
- Systemzugang: Erfordert Zugriff auf das ABAP Core Data Services Schema oder die zugrunde liegenden HANA-Tabellen. Der Zugriff auf die Rohdaten-Tabellen JCDS und CDHDR ist entscheidend für die historische Statusanalyse, da reine CDS-Views oft snapshot-basiert sind.
- Auftragsarten: Die Abfrage extrahiert alle Auftragsarten. Sie können
MaintenanceOrderType(z.B. nur PM01, PM02) filtern, wenn Sie nur spezifische Instandhaltungsszenarien analysieren möchten.
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 = ' '