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 Extraktionshinweise für SAP PM
Attribute der Anlageninstandhaltung
| Name | Beschreibung | ||
|---|---|---|---|
| Aktivitätsname Activity | Die konkrete Aufgabe oder Statusänderung, die stattgefunden hat. | ||
| Beschreibung Gibt den ausgeführten Schritt im Instandhaltungsprozess an, zum Beispiel „Instandhaltungsauftrag angelegt“, „Warenausgang gebucht“ oder „Auftragsvorgang rückgemeldet“. Statusänderungen werden üblicherweise aus den Statusverwaltungstabellen (JEST) abgeleitet, Rückmeldungen aus den Transaktionstabellen (AFRU) und Materialbewegungen aus MKPF. Dieses Attribut bestimmt die Knoten in der Prozessübersicht. Warum das wichtig ist Dieses Attribut beschreibt, was im Prozess geschieht. Es ist entscheidend, um den Prozessfluss und seine Varianten zu ermitteln. Woher beziehen Abgeleitet aus JEST (Status), AFRU (Rückmeldungen), QMEL (Meldungen) Beispiele Instandhaltungsauftrag angelegtAuftrag freigegebenTechnisch abgeschlossen | |||
| Ereignis-Timestamp EventTimestamp | Das genaue Datum und die Uhrzeit, zu denen die Aktivität stattgefunden hat. | ||
| Beschreibung Erfasst den genauen Zeitpunkt eines Ereignisses. Bei Statusänderungen stammt dieser aus dem Zeitpunkt der Systemstatusaktualisierung, bei Vorgängen aus dem Zeitpunkt der Rückmeldung. Genaue Timestamps sind entscheidend für die Berechnung von Zyklus- und Durchlaufzeiten sowie für das Erkennen von Engpässen zwischen Prozessschritten wie „Planung“ und „Ausführung“. Warum das wichtig ist Erforderlich, um Ereignisse korrekt zu ordnen und alle zeitbasierten KPIs zu berechnen. Woher beziehen JEST (UDATE/UTIME), AFRU (ISDD/ISDZ), MKPF (CPUDT/CPUTM) Beispiele 2023-10-15T08:30:00Z2023-10-15T14:45:12Z | |||
| Instandhaltungsauftrag MaintenanceWorkOrder | Die eindeutige Kennung des Instandhaltungsauftrags. | ||
| Beschreibung Der Instandhaltungsauftrag ist das zentrale Dokument in SAP Plant Maintenance (Tabelle AUFK, Feld AUFNR). Er verknüpft den Instandhaltungsbedarf (Meldung) mit den Ressourcen, Materialien und Kosten für die Ausführung. In der Process-Mining-Analyse dient er als Case-ID. So lässt sich der gesamte Lebenszyklus eines Instandhaltungsauftrags von der Anlage bis zum technischen und kaufmännischen Abschluss rekonstruieren. Warum das wichtig ist Dieser eindeutige Schlüssel verknüpft alle Aktivitäten, Kosten und Timestamps miteinander und ermöglicht die Visualisierung des Prozessflusses. Woher beziehen SAP-Tabelle AUFK, Feld AUFNR Beispiele 00004001234540012345000040098765 | |||
| Letzte Datenaktualisierung LastDataUpdate | Timestamp der letzten Datenextraktion. | ||
| Beschreibung Zeigt an, wann die Daten im Process-Mining-Datenmodell zuletzt aktualisiert wurden. So können Analysten beurteilen, wie aktuell die Erkenntnisse sind, und die Aktualität der Daten für Dashboards prüfen, die den Echtzeit-Auftragsbestand oder die Einhaltung von SLAs überwachen. Warum das wichtig ist Entscheidend für die Data Governance und das Vertrauen in die Dashboards. Woher beziehen ETL-Timestamp Beispiele 2023-11-01T12:00:00Z | |||
| Quellsystem SourceSystem | Das System, aus dem die Daten stammen. | ||
| Beschreibung Kennzeichnet den jeweiligen SAP-Mandanten oder die SAP-Instanz, zum Beispiel „SAP_PM_PROD“. In einer Systemlandschaft mit mehreren ERP-Systemen hilft dieses Attribut, Datensätze mit identischen IDs zu unterscheiden, die verschiedenen Rechtseinheiten oder Systemumgebungen angehören. Warum das wichtig ist Sichert die Eindeutigkeit und Herkunft der Daten in Umgebungen mit mehreren Systemen. Woher beziehen Systemkonfiguration / Extraktionsprotokoll Beispiele SAP_ECC_P01SAP_S4H_100 | |||
| Benutzer, der den Auftrag erstellt hat CreatedByUser | Der Benutzername der Person, die den Auftrag erstellt hat. | ||
| Beschreibung Gibt den Benutzer (ERNAM) an, der für die Anlage des Auftrags verantwortlich ist. Im generischen Modell wird dieses Feld dem Attribut „Benutzer“ zugeordnet. So lässt sich analysieren, ob Aufträge manuell oder automatisiert angelegt wurden. Außerdem unterstützt das Attribut die Prüfung der Aktivität „Instandhaltungsauftrag erstellt“. Warum das wichtig ist Ermöglicht die Analyse des Benutzerverhaltens und die Prüfung von Vorgängen. Woher beziehen SAP-Tabelle AUFK, Feld ERNAM Beispiele JSMITHBSERVICEDDAVIS | |||
| Equipmentnummer EquipmentNumber | Kennung der konkreten physischen Anlage, an der die Instandhaltung durchgeführt wird. | ||
| Beschreibung Die Equipmentnummer (EQUNR) identifiziert die einzelne Maschine oder Anlage. Durch die Aggregation der Daten nach diesem Feld können Analysten im Dashboard zu Instandhaltungskosten und Durchsatz von Anlagen erkennen, welche Anlagen häufig kostspielige Reparaturen erfordern. Das ermöglicht eine zuverlässigkeitsorientierte Instandhaltungsanalyse. Warum das wichtig ist Verknüpft die Prozessleistung mit konkreten physischen Anlagen. Woher beziehen SAP-Tabelle AUFK, Feld EQUNR Beispiele 10004567PUMPE-001HLK-202 | |||
| Geplantes Enddatum TargetFinishDate | Das geplante Abschlussdatum der Instandhaltungsarbeiten. | ||
| Beschreibung Dieses Datum, in der Regel das Basis-Enddatum (GLTRP), gibt die Frist für den Auftrag an. Es wird mit dem tatsächlichen Abschlusszeitpunkt verglichen, um die KPI „SLA-Einhaltungsquote“ zu berechnen. Anhand dieses Datums lässt sich feststellen, ob ein Auftrag fristgerecht oder verspätet abgeschlossen wurde. Warum das wichtig ist Referenzwert für alle Berechnungen der Termintreue (OTD). Woher beziehen SAP-Tabelle AFKO, Feld GLTRP Beispiele 2023-12-012023-12-15 | |||
| Hauptarbeitsplatz MainWorkCenter | Der primäre Arbeitsplatz oder das Team, das mit der Ausführung des Auftrags betraut ist. | ||
| Beschreibung Der Hauptarbeitsplatz (VAPLZ) bezeichnet die Gruppe von Technikern oder Maschinen, die die Arbeiten vor Ort ausführt. Dieses Attribut wird dem Feld „Team“ zugeordnet und ist wichtig für die Analyse der Ausführungseffizienz, etwa der mittleren Reparaturzeit je Team. Es hilft, interne Arbeitskräfte von externen Auftragnehmern zu unterscheiden. Warum das wichtig ist Ermöglicht die Analyse der Leistung auf Ressourcenebene. Woher beziehen SAP-Tabelle AFKO, Feld VAPLZ (oder je nach Konfiguration AUFK-VAPLZ) Beispiele MECH_01ELEKTRIK_TEAMEXT_AUFTRAGNEHMER | |||
| Instandhaltungsauftragsart MaintenanceOrderType | Kategorisiert den Arbeitsauftrag, zum Beispiel als vorbeugende oder korrektive Instandhaltung. | ||
| Beschreibung Die Auftragsart (AUART) in SAP PM unterscheidet die Art der Instandhaltungsarbeit. Zu den gängigen Arten gehören PM01 (korrektiv), PM02 (vorbeugend) und PM03 (Aufarbeitung). Dieses Attribut ist wichtig für den Monitor zu den Auswirkungen von Notfall-Arbeitsaufträgen und für die Segmentierung von Prozessvarianten, da sich vorbeugende Abläufe deutlich von reaktiven unterscheiden. Warum das wichtig ist Grundlage für die getrennte Analyse geplanter und ungeplanter Arbeiten. Woher beziehen SAP-Tabelle AUFK, Feld AUART Beispiele PM01PM02PM03 | |||
| Instandhaltungspriorität MaintenancePriority | Die Dringlichkeitsstufe des Arbeitsauftrags. | ||
| Beschreibung Gibt die Priorität (PRIOK) der Instandhaltungsaufgabe an, zum Beispiel „1-Sehr hoch“, „2-Hoch“ oder „3-Mittel“. Dieses Feld ist die direkte Datengrundlage für die KPI „Anteil der Notfall-Arbeitsaufträge“. Die Analyse des Prozessflusses nach Priorität zeigt, ob Aufträge mit hoher Priorität tatsächlich schneller bearbeitet werden als Routineaufträge. Warum das wichtig ist Wichtige Grundlage für die SLA-Analyse und die Erkennung von Notfallarbeiten. Woher beziehen SAP-Tabelle AFKO, Feld PRIOK (oder AUFK über eine Sicht) Beispiele 1-Notfall2-Hoch3-Mittel4-Niedrig | |||
| Instandhaltungswerk MaintenancePlant | Das für die Instandhaltung zuständige Logistikwerk. | ||
| Beschreibung Das Werk (WERKS) ist die zentrale Organisationseinheit in der Logistik. Es trennt Daten nach physischen Standorten. Dieses Attribut ist wichtig, um die Leistung verschiedener Standorte zu vergleichen. Es wird dem Feld „Geschäftseinheit“ zugeordnet und ermöglicht übergeordnete Organisationsfilter in Dashboards. Warum das wichtig ist Zentraler Organisationsfilter für den Vergleich von Standorten. Woher beziehen 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 mit der ursprünglichen Anfrage (Meldung). Diese Verknüpfung ist erforderlich, um die gesamte Durchlaufzeit vom Eingang der Instandhaltungsanfrage bis zum Abschluss zu berechnen. Ohne sie bleibt die anfängliche Erkennungs- und Meldephase des Instandhaltungslebenszyklus in der Analyse unberücksichtigt. Warum das wichtig ist Verknüpft die Ausführungsphase wieder mit der Anforderungs- bzw. Erkennungsphase. Woher beziehen SAP-Tabelle AUFK, Feld QMNUM Beispiele 1000050010000501 | |||
| Planergruppe ResponsiblePlannerGroup | Die Gruppe der Planer, die für die Bearbeitung des Auftrags zuständig ist. | ||
| Beschreibung Die Planergruppe (INGRP) bezeichnet das Team oder die Abteilung, die für die Planung der Instandhaltungsarbeiten zuständig ist. Sie wird dem Feld „Abteilung“ zugeordnet und ist wichtig für das Dashboard zur Ressourcenauslastung und Einsatzplanung. Damit lässt sich erkennen, welche Planungsteams in der Vorbereitungsphase Engpässe verursachen. Warum das wichtig ist Kennzeichnet das administrative Team, das für den Planungsprozess zuständig ist. Woher beziehen SAP-Tabelle AUFK, Feld INGRP Beispiele M01ELEMEC | |||
| Systemstatus SystemStatus | Der aktuelle technische Status des Auftrags, z. B. REL oder TECO. | ||
| Beschreibung Eine zusammengeführte Zeichenfolge oder Liste der aktiven Systemstatus aus JEST, die dem Auftrag derzeit zugewiesen sind. Häufige Werte sind CRTD (Angelegt), REL (Freigegeben), TECO (Technisch abgeschlossen) und CLSD (Geschlossen). Damit lassen sich offene und geschlossene Cases im „Monitor für Rückstand und laufende Arbeiten“ filtern. Warum das wichtig ist Der wichtigste Indikator für die aktuelle Phase im Auftragslebenszyklus. Woher beziehen SAP-Funktionsbaustein STATUS_TEXT_EDIT oder Tabelle JEST Beispiele REL CNFTECOCRTD MACM | |||
| Technischer Platz FunctionalLocation | Der hierarchisch strukturierte Standort, an dem die Anlage installiert ist. | ||
| Beschreibung Gibt den Ort in der technischen Struktur an, an dem die Instandhaltungsaufgabe ausgeführt wird (TPLNR). Anders als ein Equipment, das bewegt werden kann, bleibt der Technische Platz unverändert. Dieses Attribut unterstützt das Dashboard zu den Durchlaufzeiten technischer Prüfungen und ermöglicht Leistungsvergleiche zwischen verschiedenen Anlagenbereichen, etwa zwischen Kesselhaus und Verpackungslinie. Warum das wichtig ist Ermöglicht eine räumliche und hierarchische Analyse der Instandhaltungsleistung. Woher beziehen SAP-Tabelle IFLOT, Feld TPLNR (oder über AUFK-TPLNR) Beispiele WERK1-GEB2-LN01US-TX-DAL-01 | |||
| Geplante Arbeitsstunden PlannedLaborHours | Die geschätzten Arbeitsstunden für den Auftrag. | ||
| Beschreibung Die Summe der geplanten Arbeit (ARBEI) aus den Auftragsvorgängen. Im Dashboard „Planungs- und Schätzgenauigkeit“ lässt sich dieser Wert mit der tatsächlichen Aktivitätsdauer vergleichen, um die Genauigkeit der Instandhaltungsplanung zu beurteilen. Warum das wichtig ist Grundlegende Kennzahl für die Analyse der Planungsgenauigkeit. Woher beziehen SAP-Tabelle AFKO (Summe der geplanten Arbeit für Vorgänge) Beispiele 4.08.512.0 | |||
| Nacharbeit IsRework | Kennzeichen dafür, ob der Auftrag Nacharbeiten umfasst. | ||
| Beschreibung Ein berechnetes boolesches Attribut, das Prozessschleifen erkennt. Es wird gesetzt, wenn die Aktivität „Instandhaltungsaufgabe ausgeführt“ mehr als einmal auftritt oder der Status von „Technisch abgeschlossen“ zu „In Bearbeitung“ zurückgesetzt wird. Das Attribut unterstützt die KPI „Nacharbeitsquote in der Instandhaltung“ und hilft, Qualitätsprobleme zu erkennen. Warum das wichtig ist Unterstützt direkt die Analyse der Qualitätskontrolle. Woher beziehen Berechnet aus dem Prozessfluss Beispiele truefalse | |||
| Notfallauftrag IsEmergencyWork | Kennzeichen dafür, ob es sich um einen Notfallauftrag handelt. | ||
| Beschreibung Ein boolesches Attribut, das anhand der Instandhaltungspriorität berechnet wird. Ist die Priorität „1“ oder der in der Konfiguration festgelegte Notfallcode, wird das Kennzeichen auf „true“ gesetzt. So lassen sich Notfallaufträge einfach filtern und die KPI „Anteil der Notfallaufträge“ ohne komplexe Logik im Dashboard berechnen. Warum das wichtig ist Vereinfacht die Filterung für die Analyse kritischer reaktiver Instandhaltung. Woher beziehen Berechnet aus MaintenancePriority Beispiele truefalse | |||
| Tatsächliche Gesamtkosten TotalActualCost | Die tatsächlich auf den Auftrag gebuchten Gesamtkosten. | ||
| Beschreibung Zusammengefasste Kosten für Arbeitsleistung, Material und Dienstleistungen aus der Tabelle PMCO. Dieses Attribut unterstützt das Dashboard „Kosten und Durchsatz der Anlageninstandhaltung“. Führungskräfte können damit die finanziellen Auswirkungen der Instandhaltungsaktivitäten nachvollziehen. Es ist entscheidend, um die Wirtschaftlichkeit einer Reparatur im Vergleich zum Austausch einer Anlage zu beurteilen. Warum das wichtig ist Ergänzt die operativen Prozessdaten um die finanzielle Dimension. Woher beziehen SAP-Tabelle PMCO (Summe des Werttyps 04, Ist) Beispiele 150.002500.500.00 | |||
Aktivitäten der Anlageninstandhaltung
| Aktivität | Beschreibung | ||
|---|---|---|---|
| Auftragsvorgang rückgemeldet | Erfasst die tatsächliche Zeit, die ein Techniker für einen bestimmten Vorgang aufgewendet hat. Damit wird die tatsächlich ausgeführte Arbeit an der Anlage abgebildet. | ||
| Warum das wichtig ist Diese Aktivität ist die wichtigste Datenquelle für die Berechnung der mittleren Reparaturzeit und der Arbeitskosten. Woher beziehen Tabelle AFRU (Auftragsrückmeldungen). Erfassung Wird erfasst, wenn die Transaktion IW41 ausgeführt wird Ereignistyp explicit | |||
| Instandhaltungsauftrag angelegt | Kennzeichnet die Anlage des Instandhaltungsauftrags im System. Die Aktivität wird direkt anhand des Erstellungs-Timestamps in der Tabelle der Auftragsstammdaten ermittelt. | ||
| Warum das wichtig ist Dieses zentrale Ereignis für den Case markiert den Übergang von der Anfrage zur Planung und Ausführung. Woher beziehen Tabelle AUFK, Felder ERDAT (Datum) und ERFZEIT (Uhrzeit). Erfassung Wird erfasst, 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 anhand der Änderung des Systemstatus auf REL in den Statusprotokollen ermittelt. | ||
| Warum das wichtig ist Dieser Meilenstein trennt die Planungsphase von der Ausführungsphase. Das ist entscheidend für die Messung der Planungs- und Schätzungsdurchlaufzeit. Woher beziehen Tabelle JCDS (Statusänderungsbelege), Status I0002 (REL). Erfassung Wird erfasst, wenn der Status in JCDS auf REL wechselt Ereignistyp explicit | |||
| Kaufmännischen Abschluss gesetzt | Kennzeichnet den endgültigen administrativen Abschluss des Arbeitsauftrags und verhindert weitere Kostenbuchungen. Die Aktivität wird anhand der Statusänderung auf CLSD (geschlossen) ermittelt. | ||
| Warum das wichtig ist Markiert das endgültige Ende des Auftragslebenszyklus und ist entscheidend für Datenqualität und Compliance bei der Dokumentation. Woher beziehen Tabelle JCDS, Status I0046 (CLSD). Erfassung Wird erfasst, wenn der Status in JCDS auf CLSD wechselt Ereignistyp explicit | |||
| Technischen Abschluss gesetzt | Kennzeichnet, dass die Instandhaltungsarbeiten physisch und technisch abgeschlossen sind. Die Aktivität wird anhand der Statusänderung auf TECO (technisch abgeschlossen) ermittelt. | ||
| Warum das wichtig ist Der wichtigste Endpunkt für die operative Analyse: Die Anlage ist wiederhergestellt und die Instandhaltung abgeschlossen. Woher beziehen Tabelle JCDS, Status I0045 (TECO). Erfassung Wird erfasst, wenn der Status in JCDS auf TECO wechselt Ereignistyp explicit | |||
| Warenausgang gebucht | Erfasst den tatsächlichen Verbrauch von Ersatzteilen oder Materialien für den Arbeitsauftrag. Die Aktivität wird anhand der mit dem Auftrag verknüpften Materialbelegköpfe ermittelt. | ||
| Warum das wichtig ist Bestätigt, dass die Teile verfügbar und entnommen sind. Das wirkt sich direkt auf die Analyse der Wartezeit auf verfügbare Teile aus. Woher beziehen Tabelle MSEG/MKPF, Bewegungsart 261 (Warenausgang für Auftrag). Erfassung Wird erfasst, wenn die Transaktion MIGO/MB1A ausgeführt wird Ereignistyp explicit | |||
| Arbeitsauftrag eingeplant | Zeigt an, dass Vorgänge einer Kapazität oder einem Termin konkret zugeordnet wurden. Die Aktivität wird aus der Zuweisung des Status „Disposition“ zu den Vorgängen abgeleitet. | ||
| Warum das wichtig ist Misst die Effizienz der Ressourcenzuweisung und unterstützt das Dashboard zur Ressourcenauslastung und Einsatzplanung. Woher beziehen Tabelle JCDS (Statusänderungsbelege) für Vorgänge (Objekttyp OV), Status I0009 (DSPT). Erfassung Statusfeld vorher und nachher vergleichen Ereignistyp inferred | |||
| Auftragskosten abgerechnet | Zeigt an, dass die auf dem Auftrag gesammelten Kosten an das Controlling-Objekt, zum Beispiel eine Kostenstelle, übertragen wurden. Die Aktivität wird anhand des Controlling-Belegs ermittelt. | ||
| Warum das wichtig ist Verfolgt den finanziellen Abschluss und unterstützt die KPI zur Dauer der finanziellen Abrechnung. Woher beziehen Tabelle COBK (CO-Objekt: Belegkopf), mit dem Auftrag verknüpft. Erfassung Wird erfasst, wenn die Abrechnungstransaktion KO88 ausgeführt wird Ereignistyp explicit | |||
| Bestellanforderung angelegt | Zeigt an, dass eine Anfrage zur externen Beschaffung von Materialien oder Dienstleistungen erstellt wurde. Damit wird der interne Instandhaltungsauftrag mit der externen Lieferkette verknüpft. | ||
| Warum das wichtig ist Wichtig für die Analyse von Verzögerungen durch externe Lieferanten oder die Beschaffung von nicht lagergeführten Materialien. Woher beziehen Tabelle EBAN, Verknüpfung über die Kontierung mit AUFK-AUFNR. Erfassung Wird erfasst, wenn ein Datensatz in EBAN angelegt wird Ereignistyp explicit | |||
| Instandhaltungsmeldung angelegt | Erfasst die erstmalige Anlage einer Instandhaltungsmeldung, die häufig einen Arbeitsauftrag auslöst. Die Aktivität wird anhand des Erstellungs-Timestamps in 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. Damit lassen sich Reaktionszeiten zwischen der Fehlererkennung und der Auftragserstellung berechnen. Woher beziehen Tabelle QMEL, Felder ERDAT (Erstellungsdatum) und MZEIT (Uhrzeit). Verknüpfung mit dem Auftrag über QMEL-AUFNR. Erfassung Wird erfasst, wenn ein Datensatz in der Tabelle QMEL angelegt wird Ereignistyp explicit | |||
| Instandhaltungspriorität geändert | Erfasst eine Änderung der Priorität des Arbeitsauftrags, zum Beispiel eine Hochstufung auf „Notfall“. Die Aktivität wird aus den Ä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 Notfall-Arbeitsaufträgen, indem er reaktive Hochstufungen sichtbar macht. Woher beziehen Tabelle CDPOS/CDHDR für Objektklasse AUFTRAG, Feld PRIOK. Erfassung Wird in den Änderungsbelegen (CDPOS) erfasst Ereignistyp explicit | |||
| Materialkomponente hinzugefügt | Erfasst das Hinzufügen von Ersatzteilen oder Materialien zur Komponentenliste des Arbeitsauftrags. Die Aktivität wird anhand der Anlage einer Reservierungsposition ermittelt. | ||
| Warum das wichtig ist Kennzeichnet den Beginn der Beschaffung benötigter Teile und unterstützt das Dashboard zu den Beschaffungsdurchlaufzeiten für Ersatzteile. Woher beziehen Tabelle RESB, Feld BDTER (Bedarfstermin) oder Erstellungs-Timestamp. Erfassung Wird erfasst, wenn eine Position zu RESB hinzugefügt wird Ereignistyp explicit | |||
| Messwert erfasst | Erfasst die Eingabe eines Messbelegs, zum Beispiel eines Zählerstands oder einer Zustandsbewertung. Häufig dient dies als Ereignis für eine technische Prüfung. | ||
| Warum das wichtig ist Wichtig für die zustandsorientierte Instandhaltung und die Nachverfolgung technischer Prüfungsdurchlaufzeiten. Woher beziehen Tabelle IMRG (Messbeleg), verknüpft mit Equipment oder Technischem Platz. Erfassung Wird erfasst, wenn ein Messbeleg angelegt 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 im Prozessmodell eine Nacharbeitsschleife. | ||
| Warum das wichtig ist Wichtigster Indikator für die KPI zur Nacharbeitsquote in der Instandhaltung. Er macht verfrühte Abschlüsse und Qualitätsprobleme sichtbar. Woher beziehen Tabelle JCDS, Status I0045 (TECO) wird auf inaktiv gesetzt. Erfassung Wird erfasst, wenn der Status TECO deaktiviert wird Ereignistyp explicit | |||
Extraktionsanleitungen
Schritte
Schnittstelle zur Datenquelle bestimmen: Legen Sie fest, wie Sie auf die SQL-Schnittstelle von SAP S/4HANA zugreifen. Üblicherweise erfolgt dies über SAP HANA Studio, die ABAP Development Tools (ADT) in Eclipse oder eine DBaaS-Verbindungszeichenfolge, wenn die HANA-Datenbank für Ihre Analyseschicht verfügbar ist.
Verfügbarkeit der CDS Views prüfen: Stellen Sie sicher, dass die standardmäßigen Core Data Services (CDS) Views in Ihrem S/4HANA-System aktiv sind. Benötigt werden vor allem I_MaintenanceOrder, I_MaintenanceOrderOperation, I_MaintenanceNotification, I_MaintOrderConfirmation und I_MeasurementDocument. Außerdem benötigen Sie Zugriff auf die Systemstatushistorientabelle JCDS und die Änderungsbelegtabelle CDHDR/CDPOS, um den vollständigen Ereignisverlauf zu rekonstruieren. Standard-CDS-Views zeigen häufig nur den aktuellen Status.
SQL-Umgebung vorbereiten: Ö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, und zwar für die oben aufgeführten Objekte.
Extraktionsabfrage ausführen: Kopieren Sie das bereitgestellte SQL-Skript in Ihren Editor. Ersetzen Sie den Platzhalter [Your Client Number] durch Ihre SAP-Mandantennummer, zum Beispiel 100. Wenn Sie einen bestimmten Zeitraum filtern, passen Sie die EventTimestamp-Filter in den WHERE-Klauseln an.
Daten transformieren: Die Abfrage übernimmt die meisten Transformationen, etwa die Umwandlung von Timestamps und die Zuordnung von Statuscodes zu verständlichen Texten. Falls Ihr Zielsystem es erfordert, stellen Sie beim Export sicher, dass die Spalte EventTimestamp im ISO-8601-Format (YYYY-MM-DDTHH:MM:SS) vorliegt.
Ergebnis exportieren: Führen Sie die Abfrage aus und exportieren Sie die Ergebnisse als CSV- oder Parquet-Datei. Verwenden Sie UTF-8, damit Sonderzeichen in Benutzernamen und Beschreibungen korrekt dargestellt werden.
Spaltenzuordnung prüfen: Öffnen Sie einen Ausschnitt des Exports und prüfen Sie, ob die Spalten MaintenanceWorkOrder, Activity und EventTimestamp vollständig befüllt sind. Kontrollieren Sie, ob die Spalte Activity die in den Anforderungen aufgeführten Werte enthält, zum Beispiel Maintenance Order Created und Goods Issue Posted.
In ProcessMind hochladen: Importieren Sie die geprüfte 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 können mehrere Mandanten umfassen. Filtern Sie immer nach
MANDToderClient(z. B. '100'), um doppelte Daten oder mandantenübergreifende Datenzugriffe zu vermeiden. - Datumsbereich: Es empfiehlt sich, das
CreationDatedes Instandhaltungsauftrags auf die letzten 6 bis 12 Monate zu begrenzen. Eine Abfrage der gesamten Historie ausJCDS(Status) oderCDPOS(Änderungsbelege) ohne Datumsfilter kann zu Zeitüberschreitungen führen. - Sprachenschlüssel: Standardmäßig verwendet die Abfrage Englisch ('E'). Wenn Ihre Organisation für Textbeschreibungen eine andere Hauptsprache verwendet, passen Sie den Sprachfilter an.
- Systemzugriff: Erforderlich ist der Zugriff auf das ABAP-Core-Data-Services-Schema oder die zugrunde liegenden HANA-Tabellen. Für die historische Statusanalyse ist der Zugriff auf die Rohdatentabellen JCDS und CDHDR entscheidend, da reine CDS Views häufig nur einen Snapshot enthalten.
- Auftragsarten: Die Abfrage extrahiert alle Auftragsarten. Wenn Sie nur bestimmte Instandhaltungsszenarien analysieren möchten, können Sie
MaintenanceOrderTypefiltern, zum Beispiel auf PM01 und PM02.
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
- Prüfen Sie, ob direkter Lesezugriff auf AUFK, AFVC, JEST, QMEL, RESB, EBAN, MSEG, MKPF, AFRU, IMRG sowie die relevanten Änderungsbeleg- und Controllingbelegtabellen verfügbar ist. Ermitteln Sie die genauen physischen Tabellennamen und Feldzuordnungen in Ihrer SAP-Datenbank, da Feldverfügbarkeit und replizierte Tabellenstrukturen je nach Bereitstellung variieren.
- Richten Sie die Extraktionsverbindung, Zugangsdaten, das Start- und Enddatum der Extraktion sowie etwaige unternehmensspezifische Filter ein. Verwenden Sie für die erste Prüfung einen rollierenden Zeitraum von drei bis sechs Monaten. Erweitern Sie ihn erst, wenn Leistung und Vollständigkeit geprüft wurden.
- 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. In vielen SAP-Implementierungen enthält JEST nur den aktuellen Status. Für historische Statuszeitpunkte benötigen Sie daher eine Statushistorie oder Änderungsbelege. Konfigurieren Sie [Your status history table] und die zugehörigen Timestamp-Felder, falls 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, Warenausgänge aus MSEG und MKPF, Rückmeldungen aus AFRU, Messwerte aus IMRG sowie 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 abdecken.
- Vereinheitlichen Sie alle Quell-Timestamps auf eine Zeitzone und einen einzigen Timestamp-Datentyp. Wandeln Sie SAP-Datums- und Zeitfelder oder Datenbank-Timestamp-Felder in EventTimestamp um. Bewahren Sie die im System verfügbare Genauigkeit der Quell-Timestamps. Wenden Sie den konfigurierten Extraktionszeitraum auf EventTimestamp an, nicht nur auf das Auftragsanlagedatum.
- Erstellen Sie für jedes Vorkommen in den Quelldaten eine Ereigniszeile. Überlassen Sie es nicht ProcessMind, Ereignisse abzuleiten. Verwenden Sie exakt den in der Abfrage angegebenen Activity-Wert, befüllen Sie MaintenanceWorkOrder, EventTimestamp, SourceSystem, LastDataUpdate und die verfügbaren empfohlenen Attribute. Bewahren Sie Quell-IDs auf, wenn sie bei der Untersuchung von Duplikaten hilfreich sind.
- Entfernen Sie Duplikate nur bei identischen Quellereignissen anhand stabiler Quellschlüssel. Fassen Sie keine getrennten Statusänderungen, Rückmeldungen, Materialbewegungen, Messwerte oder Abrechnungsbelege zusammen, wenn sie zu unterschiedlichen Zeitpunkten aufgetreten sind. Wenn mehrere Quelldatensätze dasselbe Geschäftsereignis abbilden, dokumentieren Sie in der Extraktionsspezifikation, welche Quelle Vorrang hat.
- Prüfen Sie, ob alle 14 Aktivitätswerte als eigene Zeilen vorkommen, jede Zeile eine Case-ID und einen Timestamp enthält und alle Timestamps im angeforderten Extraktionszeitraum liegen. Vergleichen Sie die Datensatzanzahl mit SAP-Berichten oder den Quelltabellen für dieselben Filter.
- 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 nach Möglichkeit ISO-8601-Timestamps bei und laden Sie die Datei in ProcessMind hoch oder richten Sie dort die Datenbankverbindung ein. Legen Sie MaintenanceWorkOrder als Case-ID, Activity als Aktivitätsspalte und EventTimestamp als Timestamp-Spalte fest.
Konfiguration
- Quelltabellen und Zuordnungen: AUFK enthält Auftragskopfdaten, AFVC Vorgangsdaten und JEST Systemstatusdaten. Für alle 14 Aktivitäten sind außerdem QMEL, RESB, EBAN, MSEG, MKPF, AFRU, IMRG sowie Änderungsbeleg- und Controllingbelegquellen erforderlich. Prüfen Sie vor der Ausführung die genauen Feldnamen in Ihrer SAP-Datenbank.
- Erforderliche Ausgabespalten: MaintenanceWorkOrder, Activity, EventTimestamp, SourceSystem und LastDataUpdate müssen in jeder Ereigniszeile enthalten sein.
- Empfohlene Ausgabespalten: Befüllen Sie MaintenanceOrderType, MaintenancePriority, EquipmentNumber, FunctionalLocation, MaintenancePlant, ResponsiblePlannerGroup, MainWorkCenter, NotificationNumber, TargetFinishDate, CreatedByUser und SystemStatus, sofern verfügbar.
- Datumsbereich: Beginnen Sie mit drei bis sechs Monaten. Verwenden Sie einen inklusiven Start- und einen exklusiven Endzeitpunkt, damit bei inkrementellen Läufen keine Ereignisse doppelt erfasst werden. 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 Berichtsbereich. Verwenden Sie keine Filter, durch die Aufträge ohne Meldungen, Vorgänge, Komponenten, Bestellanforderungen, Rückmeldungen, Messungen oder Abrechnungsbelege ausgeschlossen werden.
- Statushistorie: JEST enthält üblicherweise Statuszuordnungen. 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 den Statusverlauf 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 Objekt-ID, dem Feldnamen, dem alten und neuen Wert sowie dem Änderungs-Timestamp.
- Quellsystemwert: Ersetzen Sie [Your SAP system identifier] durch den stabilen Namen des Quellsystems, den Ihre Organisation 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 Verknüpfungs- und Filterspalten, sofern zulässig. Begrenzen Sie den Extraktionszeitraum, wählen Sie nur erforderliche Spalten aus, verarbeiten Sie große Zeiträume in Stapeln und materialisieren Sie Zwischenauszüge, wenn direkte schemaübergreifende Verknüpfungen 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 Freigabe zur Extraktion operativer Daten. Prüfen Sie etwaige Replikations- oder Lizenzbeschränkungen der Datenbankplattform.
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; Möchten Sie loslegen?
Mit diesen Ressourcen können Sie Ihre Instandhaltungs-Workflows abbilden und Einsparpotenziale ermitteln. Unser Rahmenwerk stellt sicher, dass Ihre Daten die richtige Struktur haben, damit Sie Ihre Abläufe transparent nachvollziehen können.
Beseitigen Sie noch heute Engpässe in der SAP-Anlageninstandhaltung
Verkürzen Sie Ihren Instandhaltungszyklus ab sofort um 30 Prozent
Keine Kreditkarte erforderlich ... Einrichtung in 5 Minuten