Ihr Daten-Template für die Anlagenwartung
Ihr Daten-Template für die Anlagenwartung
- Wesentliche Datenfelder für Wartungsprotokolle
- Standardmeilensteine des Prozesses und Phasen von Arbeitsaufträgen
- Technische Extraktionslogik für Hexagon EAM
Attribute der Anlageninstandhaltung
| Name | Beschreibung | ||
|---|---|---|---|
| Aktivität ActivityName | Die konkrete Aufgabe oder Statusänderung, die stattgefunden hat. | ||
| Beschreibung Dieses Attribut bezeichnet den ausgeführten Prozessschritt, etwa „Work Order Created“ oder „Material Issued“. Es wird aus der Historie der Statusänderungen oder aus bestimmten Transaktionsereignissen abgeleitet, die für den Arbeitsauftrag protokolliert wurden. Warum das wichtig ist Es definiert die Reihenfolge im Event Log und ermöglicht die Rekonstruktion des Prozessablaufs sowie die Analyse von Engpässen. Bezugsquelle Hexagon-EAM-Tabelle R5EVENTHISTORY, Feld EVH_STATUS, auf Beschreibungen abgebildet, oder Audit Logs Beispiele Arbeitsauftrag erstelltArbeitsauftrag eingeplantArbeitsauftrag abgeschlossenMaterial ausgegeben | |||
| Instandhaltungsarbeitsauftrag WorkOrderNumber | Die eindeutige Kennung des Instandhaltungsarbeitsauftrags. | ||
| Beschreibung Dieses Attribut stellt den eindeutigen Primärschlüssel des Instandhaltungs-Case dar. Es verfolgt den Arbeitsauftrag von der ursprünglichen Anforderung über Planung und Ausführung bis zum endgültigen finanziellen Abschluss. Als zentrale Case-Kennung verbindet es Aktivitätsprotokolle, Arbeitszeiten und Materialverbrauch. Warum das wichtig ist Es identifiziert die konkrete Instanz des Instandhaltungsprozesses und ermöglicht die durchgängige Verfolgung von Durchlaufzeiten und Prozessvarianten. Bezugsquelle Hexagon-EAM-Tabelle R5EVENTS, Feld EVT_CODE Beispiele WO-100234WO-100235WO-100236104592 | |||
| Letzte Datenaktualisierung LastDataUpdate | Der Timestamp, zu dem der Datensatz zuletzt extrahiert oder aktualisiert wurde. | ||
| Beschreibung Dieses Attribut erfasst, wann die Daten zuletzt aus dem Quellsystem abgerufen wurden. Es hilft Analysten, die Aktualität der Daten einzuschätzen und mögliche Latenzprobleme in der Reporting-Pipeline zu erkennen. Warum das wichtig ist Es schafft Vertrauen in die Aktualität der Analyse und unterstützt die Fehlerbehebung bei Problemen mit der Datensynchronisierung. Bezugsquelle Systemzeit bei der Extraktion Beispiele 2023-10-25T12:00:00Z2023-10-26T00:00:00Z | |||
| Quellsystem SourceSystem | Der Name des Systems, aus dem die Daten stammen. | ||
| Beschreibung Dieses Attribut bezeichnet das führende System für die Daten. In diesem Kontext ist es fest auf den Namen des jeweiligen EAM-Systems gesetzt, um die Daten von möglichen Altsystemen oder externen Auftragnehmersystemen zu unterscheiden. Warum das wichtig ist Es stellt eine eindeutige Datenherkunft sicher, insbesondere beim Zusammenführen von Daten aus mehreren Instandhaltungsinstanzen. Bezugsquelle Fest codierter Wert Beispiele Hexagon EAMInfor EAMDatastream 7i | |||
| Timestamp EventTimestamp | Datum und Uhrzeit, zu denen die Aktivität stattgefunden hat. | ||
| Beschreibung Dieses Attribut erfasst den genauen Zeitpunkt, zu dem ein Ereignis oder eine Statusänderung im System gespeichert wurde. Damit lassen sich die Dauer zwischen Aktivitäten und die gesamte Durchlaufzeit des Arbeitsauftrags berechnen. Warum das wichtig ist Genaue Timestamps sind entscheidend für die Analyse von Durchlaufzeiten, die Erkennung von Verzögerungen und die Berechnung der SLA-Einhaltung. Bezugsquelle Hexagon-EAM-Tabelle R5EVENTHISTORY, Feld EVH_DATE Beispiele 2023-10-12T08:30:00Z2023-10-12T14:15:00Z2023-10-13T09:00:00Z | |||
| Abteilung MaintenanceDepartment | Die Abteilung oder der Arbeitsbereich, die beziehungsweise der für die Ausführung der Arbeit verantwortlich ist. | ||
| Beschreibung Dieses Attribut bezeichnet das Team oder die Instandhaltungswerkstatt, dem beziehungsweise der der Arbeitsauftrag zugewiesen ist, etwa Elektrotechnik, Mechanik oder Gebäudetechnik. Dadurch lassen sich Leistungen verschiedener technischer Teams vergleichen. Warum das wichtig ist Es unterstützt das Dashboard zur Technician Labor Productivity und hilft, Ressourcen effektiv auf verschiedene Fachbereiche zu verteilen. Bezugsquelle Hexagon-EAM-Tabelle R5EVENTS, Feld EVT_MRC Beispiele Elektrische WerkstattMechanische InstandhaltungGebäudetechnikFuhrzeugwartung | |||
| Anlage AssetCode | Die eindeutige Kennung des instand zu haltenden Geräts oder Standorts. | ||
| Beschreibung Dieses Attribut verknüpft den Arbeitsauftrag mit einem bestimmten Gerät oder Standort. Damit lassen sich Ausfallhäufigkeiten je Anlage analysieren und problematische Anlagen oder Geräte mit Austauschbedarf erkennen. Warum das wichtig ist Es bildet die Grundlage für die Berechnung von Zuverlässigkeitskennzahlen der Anlagen und zeigt, auf welche Bereiche sich der Instandhaltungsaufwand konzentriert. Bezugsquelle Hexagon-EAM-Tabelle R5EVENTS, Feld EVT_OBJECT Beispiele PUMP-001HVAC-204FLEET-99CONVEYOR-A | |||
| Arbeitsauftragstyp WorkOrderType | Ordnet den Arbeitsauftrag als präventiv, korrektiv oder als Notfallauftrag ein. | ||
| Beschreibung Dieses Attribut klassifiziert die Art der Instandhaltungsarbeit. Es dient zur Analyse des Verhältnisses von geplanter präventiver Instandhaltung zu reaktiven Notfallreparaturen. Dieses Verhältnis ist ein wichtiger Indikator für den Zustand der Anlagen und den Reifegrad des Instandhaltungsmanagements. Warum das wichtig ist Es unterstützt das Dashboard zur Analyse des Preventive Maintenance Ratio und hilft, Möglichkeiten zur Reduzierung reaktiver Arbeiten zu erkennen. Bezugsquelle Hexagon-EAM-Tabelle R5EVENTS, Feld EVT_TYPE Beispiele PPMCOREMGPRJ | |||
| Benutzer UpdatedBy | Die Benutzer-ID der Person, die die Aktivität ausgeführt hat. | ||
| Beschreibung Dieses Attribut erfasst die Anmelde-ID der Person, die für das Auslösen der Statusänderung oder Aktualisierung verantwortlich ist. Es dient dazu, die Arbeitsauslastung des Teams zu analysieren, Schulungsbedarf zu erkennen und die Compliance des Prozesses zu prüfen. Warum das wichtig ist Damit lassen sich das Benutzerverhalten und die Ressourcennutzung über den gesamten Instandhaltungslebenszyklus hinweg analysieren. Bezugsquelle Hexagon-EAM-Tabelle R5EVENTHISTORY, Feld EVH_USER Beispiele JSMITHADAVISSYSTEMMGR_USR | |||
| Priorität PriorityCode | Die dem Arbeitsauftrag zugewiesene Dringlichkeitsstufe. | ||
| Beschreibung Dieses Attribut gibt die Bedeutung des Arbeitsauftrags an, von Routine bis Notfall. Es steuert die Ressourcenplanung und ist entscheidend für die Überwachung der SLA-Einhaltung sowie die Erkennung missbräuchlicher Priorisierungen. Warum das wichtig ist Es ist für das Dashboard zur Analyse von Priority Escalation und Resource Audit erforderlich, damit kritische Aufgaben korrekt priorisiert werden. Bezugsquelle Hexagon-EAM-Tabelle R5EVENTS, Feld EVT_PRIORITY Beispiele KritischHochMittelNiedrig | |||
| Tatsächliche Arbeitsstunden ActualLaborHours | Die Gesamtzahl der für den Arbeitsauftrag gebuchten Stunden. | ||
| Beschreibung Dieses Attribut summiert die von Technikern für den Arbeitsauftrag erfasste Zeit. Es dient zur Messung der Produktivität, zur Berechnung der Arbeitskosten und zur Analyse der Abweichung von den geschätzten Stunden. Warum das wichtig ist Es ist die wichtigste Datenquelle für das Dashboard zur Produktivität der Techniker und die KPI zur Abweichung der Arbeitsstunden. Bezugsquelle Hexagon-EAM-Tabelle R5BOOKEDHOURS, Feld BOO_HOURS (nach Arbeitsauftrag summiert) Beispiele 2.54.012.00.5 | |||
| Zieldatum für den Abschluss TargetCompletionDate | Die geplante Frist für den Arbeitsauftrag. | ||
| Beschreibung Dieses Attribut bezeichnet das Datum, bis zu dem die Instandhaltungsarbeiten voraussichtlich abgeschlossen sein sollen. Der Vergleich mit dem tatsächlichen Abschlussdatum bildet die Grundlage für die Berechnung der SLA-Einhaltung und der Termintreue. Warum das wichtig ist Es ist für den Contractor-SLA-Einhaltungsmonitor und die Bewertung der Planungsgenauigkeit entscheidend. Bezugsquelle Hexagon-EAM-Tabelle R5EVENTS, Feld EVT_TARGET Beispiele 2023-11-012023-11-152023-12-01 | |||
| Beschreibung des Arbeitsauftrags WorkOrderDescription | Eine kurze Textzusammenfassung der Instandhaltungsaufgabe. | ||
| Beschreibung Dieses Attribut enthält die Betreffzeile oder eine Kurzbeschreibung des Problems. Es liefert Analysten Kontext, wenn sie einzelne problematische Fälle untersuchen oder Muster in unstrukturierten Texten erkennen. Warum das wichtig ist Es liefert den erforderlichen Kontext für die manuelle Prüfung der Prozessdaten. Bezugsquelle Hexagon-EAM-Tabelle R5EVENTS, Feld EVT_DESC Beispiele Undichte Pumpendichtung reparierenMonatliche HVAC-InspektionFörderband austauschen | |||
| Datum der Materialanforderung MaterialRequisitionDate | Das Datum, an dem Ersatzteile angefordert wurden. | ||
| Beschreibung Dieses Attribut erfasst den Timestamp, zu dem die Materialanforderung an das Ersatzteillager oder den Einkauf übermittelt wurde. Die Analyse der Zeitspanne bis zu „Material ausgegeben“ zeigt die Effizienz der Lieferkette. Warum das wichtig ist Es wird für das Dashboard zu Beschaffungsdurchlaufzeiten von Ersatzteilen benötigt. Bezugsquelle Hexagon-EAM-Tabelle R5REQUISITIONS oder verknüpfte Transaktionstabelle Beispiele 2023-10-012023-10-05 | |||
| Erstellungsdatum DateCreated | Das Datum, an dem der Arbeitsauftrag ursprünglich erstellt wurde. | ||
| Beschreibung Dieses Attribut markiert den Beginn des Lebenszyklus eines Arbeitsauftrags. Es dient als Ausgangspunkt für die Berechnung der durchschnittlichen Planungszeit und des Alters von Rückstandspositionen. Warum das wichtig ist Es wird für das Dashboard zur Geschwindigkeit der Instandhaltungsplanung und die KPI zum Rückstandsalter benötigt. Bezugsquelle Hexagon-EAM-Tabelle R5EVENTS, Feld EVT_CREATED Beispiele 2023-09-012023-09-15 | |||
| Ist Nacharbeit IsRework | Kennzeichen, das angibt, ob der Arbeitsauftrag wiederholte technische Arbeiten umfasste. | ||
| Beschreibung Dieses berechnete Attribut erkennt Fälle, in denen der Prozess nach einer Qualitätsprüfung oder einem Abschlussstatus zu einem aktiven Bearbeitungsstatus zurückkehrt. So lassen sich Qualitätsprobleme und Schulungslücken gezielt erkennen. Warum das wichtig ist Es steuert das Dashboard zu technischer Nacharbeit und Qualitätskontrolle sowie die KPI zur Nacharbeitsquote in der Instandhaltung. Bezugsquelle Berechnet auf Grundlage von Aktivitätswiederholungen Beispiele truefalse | |||
| Ist vorbeugend IsPreventive | Kennzeichen, das angibt, ob der Arbeitsauftrag vorbeugende Instandhaltung betrifft. | ||
| Beschreibung Dieses boolesche Attribut ermöglicht die einfache Filterung und Kategorisierung von Arbeitsaufträgen. Es erleichtert die Berechnung der KPI zum Anteil vorbeugender Instandhaltung, indem geplante Arbeiten von reaktiven Reparaturen getrennt werden. Warum das wichtig ist Es bildet eine zentrale Segmentierung für das Dashboard zur Analyse des Anteils vorbeugender Instandhaltung. Bezugsquelle Abgeleitet aus WorkOrderType Beispiele truefalse | |||
| Kritikalität der Anlage AssetCriticality | Eine Bewertung der betrieblichen Bedeutung der Anlage. | ||
| Beschreibung Dieses Attribut zeigt, wie kritisch die Anlage für den Geschäftsbetrieb ist. Häufig wird damit geprüft, ob Arbeitsaufträge mit hoher Priorität tatsächlich kritische Anlagen betreffen. So lassen sich mögliche Manipulationen des Prozesses erkennen. Warum das wichtig ist Es unterstützt das Dashboard zur Prioritätseskalation und Ressourcenprüfung, indem es die Priorität mit dem Anlagenwert in Beziehung setzt. Bezugsquelle Hexagon-EAM-Tabelle R5OBJECTS, Feld OBJ_CRITICALITY (Verknüpfung über EVT_OBJECT erforderlich) Beispiele A - UnverzichtbarB - KritischC - NachrangigD - Niedrig | |||
| Notfalleskalation EmergencyEscalationFlag | Kennzeichen, das angibt, ob die Priorität nach der Erstellung auf „Notfall“ erhöht wurde. | ||
| Beschreibung Dieses boolesche Attribut erkennt Arbeitsaufträge, die zunächst mit einer niedrigeren Priorität angelegt und später auf „Notfall“ hochgestuft wurden. Häufige Vorkommnisse können auf eine unzureichende Ersteinstufung oder auf eine gezielte Umgehung des Systems für eine schnellere Bearbeitung hindeuten. Warum das wichtig ist Es unterstützt das Dashboard zur Prioritätseskalation und Ressourcenprüfung sowie die KPI zur Notfalleskalationsquote. Bezugsquelle Abgeleitet aus dem Prüfpfad des Feldes Priority Beispiele truefalse | |||
| Qualitätskontrolle bestanden QualityControlPassed | Kennzeichen, das angibt, ob der Schritt der Qualitätskontrolle dokumentiert wurde. | ||
| Beschreibung Dieses boolesche Attribut prüft, ob eine bestimmte Aktivität der Qualitätskontrolle oder ein Checklistenpunkt als abgeschlossen markiert wurde. Damit wird die Einhaltung von Sicherheitsvorschriften und internen Standards sichergestellt. Warum das wichtig ist Es steuert die KPI zur Compliance-Rate der Qualitätskontrolle und unterstützt das Dashboard zu Compliance und Dokumentationsintegrität. Bezugsquelle Abgeleitet aus Checklisten-Tabellen oder der Aktivitätshistorie Beispiele truefalse | |||
| SLA-Status SLAState | Gibt an, ob der Arbeitsauftrag die Service-Level-Vereinbarung eingehalten hat. | ||
| Beschreibung Dieses berechnete Attribut vergleicht das tatsächliche Abschlussdatum mit dem Zieldatum für den Abschluss. Es ordnet den Case den Kategorien „Innerhalb des SLA“ oder „SLA verletzt“ zu und vereinfacht damit die Berichterstattung zur Leistung von Auftragnehmern und internen Teams. Warum das wichtig ist Es ist die direkte Datenquelle für die KPI zur SLA-Einhaltungsquote. Bezugsquelle Berechnet: Tatsächliches Enddatum <= Zieldatum Beispiele Innerhalb des SLASLA verletztOffen | |||
| Tatsächliche Gesamtkosten TotalActualCost | Die für den Arbeitsauftrag erfassten finanziellen Gesamtkosten. | ||
| Beschreibung Dieses Attribut erfasst die aggregierten Kosten für Arbeitsleistung, Materialien und Dienstleistungen. Es ist für die Analyse des finanziellen Abschlusses sowie für die Bewertung der Kostenauswirkungen von Notfall- und vorbeugender Instandhaltung unerlässlich. Warum das wichtig ist Es unterstützt das Dashboard zum finanziellen Abschluss und zur Abschlussgeschwindigkeit sowie datenbasierte Entscheidungen auf Grundlage der Kosten. Bezugsquelle Hexagon-EAM-Tabelle R5EVENTS, Feld EVT_ACTCOST (oder eine vergleichbare Summenspalte) Beispiele 150.002500.5075.25 | |||
Aktivitäten der Anlageninstandhaltung
| Aktivität | Beschreibung | ||
|---|---|---|---|
| Arbeitsauftrag abgeschlossen | Die technische Arbeit ist beendet und der Techniker hat den Auftrag als abgeschlossen markiert. Die Anlage wird wieder in Betrieb genommen. | ||
| Warum das wichtig ist Wichtiger Meilenstein für die End-to-End-Lebenszyklusdauer und die Mean Time to Repair. Stoppt die Stillstandszeituhr. Bezugsquelle Hexagon EAM r5statuslog. Wechsel zu „C“ (Completed) oder „F“ (Finished). Erfassen Wird protokolliert, wenn eine Transaktion für r5statuslog ausgeführt wird Ereignistyp explicit | |||
| Arbeitsauftrag erstellt | Die erste Erstellung des Datensatzes für den Instandhaltungsarbeitsauftrag im System. Dieses Ereignis legt den Case an und erfasst den ersten Timestamp für den gesamten Instandhaltungslebenszyklus. | ||
| Warum das wichtig ist Kennzeichnet den Beginn der Prozessinstanz und bildet die Grundlage für die Messung der gesamten Lösungszeit. Entscheidend für die Berechnung des Alters des Rückstands. Bezugsquelle Hexagon-EAM-Tabelle R5EVENTS. Wird protokolliert, wenn mit evt_code ein neuer Datensatz eingefügt wird. Erfassen Wird protokolliert, wenn die Transaktion INSERT für r5events ausgeführt wird Ereignistyp explicit | |||
| Arbeitsauftrag genehmigt | Die Statusänderung zeigt, dass der Arbeitsauftrag die Prüfung von Planung und Aufwandsschätzung bestanden hat. Damit ist die Ausführung der Arbeit freigegeben. | ||
| Warum das wichtig ist Unterstützt die Analyse der Maintenance Planning Velocity, indem das Ende der Planungsphase markiert wird. Prüfung der Compliance bei der Funktionstrennung. Bezugsquelle Hexagon-EAM-Tabelle r5statuslog. Suchen Sie nach dem Wechsel zum Status „A“ (Approved) oder zum entsprechenden Systemstatus. Erfassen Wird protokolliert, wenn eine Transaktion für r5statuslog ausgeführt wird Ereignistyp explicit | |||
| Arbeitsauftrag geschlossen | Der Arbeitsauftrag ist finanziell gesperrt und archiviert. Weitere Kosten oder Arbeitszeiten können nicht mehr gebucht werden. | ||
| Warum das wichtig ist Prozessende. Entscheidend für die Analyse von Financial Settlement Processed und die Festschreibung der endgültigen Kosten. Bezugsquelle Hexagon EAM r5statuslog. Wechsel zu „C“ (Closed) oder „L“ (Locked/Closed). Erfassen Wird protokolliert, wenn eine Transaktion für r5statuslog ausgeführt wird Ereignistyp explicit | |||
| Arbeitsauftrag gestartet | Die Techniker haben mit der tatsächlichen Arbeit an der Anlage begonnen. Dies wird häufig durch den Statuswechsel zu In Progress oder durch den ersten Timestamp eines Arbeitszeiteintrags gekennzeichnet. | ||
| Warum das wichtig ist Endpunkt für die Berechnung des Rückstands und Ausgangspunkt für die tatsächliche Arbeitszeit. Entscheidend für die SLA Adherence Rate. Bezugsquelle Hexagon EAM r5statuslog. Wechsel zu „In Progress“, häufig mit dem Statuscode „I“ oder „IP“. Erfassen Wird protokolliert, wenn eine Transaktion für r5statuslog ausgeführt wird Ereignistyp explicit | |||
| Arbeitsstunden erfasst | Ein Techniker erfasst die geleisteten Stunden für den Arbeitsauftrag. Diese Aktivität kann pro Case mehrfach auftreten. | ||
| Warum das wichtig ist Grundlage für die Dashboards zu Labor Hour Variance und Technician Labor Productivity. Zeigt den tatsächlichen Aufwand im Vergleich zum Plan. Bezugsquelle Hexagon-EAM-Tabelle r5booklabor. Jede Zeile stellt einen Zeiterfassungseintrag für den Arbeitsauftrag dar. Erfassen Wird protokolliert, wenn die Transaktion INSERT für r5booklabor ausgeführt wird Ereignistyp explicit | |||
| Material ausgegeben | Ersatzteile werden physisch aus dem Lager ausgegeben und dem Arbeitsauftrag belastet. Dies stellt den Materialverbrauch dar. | ||
| Warum das wichtig ist Endpunkt für die Material Availability Lead Time. Erkennen Sie Verzögerungen, bei denen die Arbeit beginnt, anschließend aber wegen fehlender Teile unterbrochen wird. Bezugsquelle Hexagon-EAM-Tabelle r5translines. Transaktionstyp „I“ (Issue), mit dem Arbeitsauftrag verknüpft. Erfassen Wird protokolliert, wenn die Transaktion INSERT für r5translines ausgeführt wird Ereignistyp explicit | |||
| Arbeitsauftrag abgenommen | Eine abschließende administrative Genehmigung ist in der Regel für Compliance-Zwecke oder die Bezahlung von Auftragnehmern erforderlich. Sie bestätigt die Richtigkeit aller Daten. | ||
| Warum das wichtig ist Überwachen Sie diesen Schritt für die Analyse des Work Order Approval Cycle. Verzögerungen wirken sich auf die Geschwindigkeit der finanziellen Abrechnung aus. Bezugsquelle Hexagon EAM r5statuslog, Wechsel zu „Signed Off“, oder Protokoll der elektronischen Signaturerfassung. Erfassen Vergleichen Sie das Statusfeld vor und nach der Änderung Ereignistyp inferred | |||
| Arbeitsauftrag eingeplant | Dem Arbeitsauftrag wird ein geplanter Starttermin oder eine bestimmte Ressource zugewiesen. Dadurch wechselt der Auftrag vom Rückstand in den aktiven Zeitplan. | ||
| Warum das wichtig ist Entscheidend für die Analyse der Technician Labor Productivity und für das Verständnis der Effizienz der Ressourcenverteilung. Bezugsquelle Hexagon-EAM-Tabelle r5events, Aktualisierung von evt_schedstart, oder r5statuslog, Wechsel zu „S“ (Scheduled). Erfassen Vergleichen Sie das Statusfeld vor und nach der Änderung oder prüfen Sie die Aktualisierung von evt_schedstart Ereignistyp inferred | |||
| Checklistenpunkt verifiziert | Eine bestimmte Aufgabe oder ein Prüfschritt innerhalb des Arbeitsauftrags wird als abgeschlossen markiert. Dies zeigt den detaillierten Fortschritt innerhalb des Auftrags. | ||
| Warum das wichtig ist Entscheidend für Compliance und die Integrität der Dokumentation. Belegt, dass Sicherheitsprüfungen systematisch protokolliert wurden. Bezugsquelle Hexagon EAM r5checklist oder r5activities. Statusänderung einer bestimmten Aktivitäts- oder Aufgabenposition. Erfassen Wird protokolliert, wenn die Transaktion UPDATE für r5checklist ausgeführt wird Ereignistyp explicit | |||
| Materialanforderung erstellt | Eine Anforderung für Ersatzteile oder Materialien wird mit dem Arbeitsauftrag verknüpft. Damit beginnt der Teilprozess der Lieferkette. | ||
| Warum das wichtig ist Ausgangspunkt für die Durchlaufzeiten der Ersatzteilbeschaffung. Hohe Werte weisen auf eine Abhängigkeit von der Lagerverfügbarkeit hin. Bezugsquelle Hexagon-EAM-Tabelle r5requisitions. Verknüpft über req_evt (Arbeitsauftragscode). Erfassen Wird protokolliert, wenn die Transaktion INSERT für r5requisitions ausgeführt wird Ereignistyp explicit | |||
| Priorität aktualisiert | Nach der ursprünglichen Erstellung wurde die Prioritätsstufe des Arbeitsauftrags geändert. Dabei werden der Timestamp und der neue Prioritätswert erfasst. | ||
| Warum das wichtig ist Erforderlich für das Dashboard zur Analyse von Priority Escalation und Resource Audit, um missbräuchliche Priorisierungen oder eine schleichende Ausweitung des Umfangs zu erkennen. Bezugsquelle Hexagon EAM r5audittrail, sofern das Audit aktiviert ist, oder aus Snapshots abgeleitet. Häufig aus dem Audit Log des Feldes evt_priority abgeleitet. Erfassen Wird protokolliert, wenn die Transaktion UPDATE für evt_priority ausgeführt wird Ereignistyp explicit | |||
| Qualitätskontrolle bestanden | Ein Vorgesetzter oder Prüfer überprüft die abgeschlossene Arbeit und genehmigt ihre Qualität. Dieser Schritt validiert die Reparatur vor dem Abschluss. | ||
| Warum das wichtig ist Unterstützt die KPI Quality Control Compliance Rate. Schleifen ab diesem Punkt weisen auf technische Nacharbeiten hin. Bezugsquelle Hexagon EAM r5statuslog, Wechsel zu „Review“ oder „QC“, oder r5audittrail bei der Validierung eines bestimmten UDF. Erfassen Vergleichen Sie das Statusfeld vor und nach der Änderung Ereignistyp inferred | |||
Extraktionsleitfäden
Schritte
- Melden Sie sich mit einem Benutzerkonto mit Berechtigungen für Advanced Reporting Authoring bei der Hexagon-EAM-Anwendung an.
- Öffnen Sie das Modul Reports, das sich normalerweise im Menü Administration oder Reports befindet, und starten Sie die Oberfläche für Advanced Reporting, häufig Cognos oder einen integrierten SQL-Report-Builder.
- Starten Sie den Assistenten zum Erstellen eines neuen Reports und wählen Sie „SQL“ oder „Free-hand SQL“ als Datenquellentyp. Dadurch können Sie die Datenbank direkt abfragen, anstatt das standardmäßige Business-Object-Modell zu verwenden.
- Kopieren Sie das im Abschnitt Query bereitgestellte SQL-Skript und fügen Sie es in das Fenster für die Dataset-Definition ein.
- Ersetzen Sie Platzhalter wie [Your Organization Code] und Datumsbereiche durch die für Ihre Umgebung passenden Werte.
- Validieren Sie die Abfragesyntax im Editor, um sicherzustellen, dass die Datenbankplattform, Oracle oder SQL Server, die UNION-Anweisungen akzeptiert.
- Ordnen Sie die resultierenden Spalten der Report-Layout-Liste zu. Stellen Sie sicher, dass WorkOrderNumber, ActivityName und EventTimestamp deutlich sichtbar sind.
- Konfigurieren Sie den Report so, dass er ausdrücklich im CSV- oder Excel-Format exportiert wird. So erhalten Sie eine Tabellenstruktur ohne verbundene Zellen oder Formatierungsüberschriften.
- Führen Sie den Report für einen Prüfzeitraum aus, zum Beispiel für die letzten 100 Arbeitsaufträge, um die Datenstruktur zu überprüfen.
- Planen Sie den Report nach erfolgreicher Prüfung regelmäßig ein oder führen Sie ihn für das vollständige Extraktionszeitfenster aus.
- Laden Sie die Ausgabedatei herunter und prüfen Sie die Datumsformate. Stellen Sie nach Möglichkeit sicher, dass die Timestamps Sekunden enthalten, damit die Reihenfolge präzise bestimmt werden kann.
- Importieren Sie die resultierende CSV-Datei in ProcessMind. Ordnen Sie die Spalte SourceSystem als Case-Attribut und ActivityName als Aktivitätsklassifizierer zu.
Konfiguration
- Datumsbereich: Es wird empfohlen, EVT_DATE (Erstellungsdatum) für ein rollierendes Zeitfenster von 6 bis 12 Monaten zu filtern, damit die Abfrageleistung erhalten bleibt.
- Organisationsfilter: Hexagon EAM wird häufig von mehreren Organisationen verwendet. Stellen Sie sicher, dass die Abfrage einen Filter für Ihren spezifischen Organisationscode enthält, damit keine Daten anderer Geschäftsbereiche einfließen.
- Datenbanksyntax: Die folgende Abfrage verwendet soweit möglich ANSI-Standard-SQL. Hexagon EAM läuft jedoch üblicherweise auf Oracle oder SQL Server. Für Datumsfunktionen wie SYSDATE und GETDATE können geringfügige Anpassungen erforderlich sein.
- Statuskonfiguration: Die Zuordnung von Statuscodes wie „A“, „C“ und „R“ zu Activity Names wie „Work Order Approved“ muss der spezifischen Statuskonfiguration Ihres Systems entsprechen.
- Berechtigungen: Das Benutzerkonto, mit dem der Report ausgeführt wird, benötigt Lesezugriff auf die Tabellen R5EVENTS, R5EVENTSTATUS, R5BOOKEDHOURS, R5TRANSACTIONS und R5AUDITVALUES.
a Beispielabfrage sql
/* 1. Work Order Created */
SELECT
evt_code AS WorkOrderNumber,
'Work Order Created' AS ActivityName,
evt_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
evt_type AS WorkOrderType,
evt_priority AS PriorityCode,
evt_mrc AS MaintenanceDepartment,
evt_updatedby AS UpdatedBy,
evt_target AS TargetCompletionDate,
evt_object AS AssetCode,
NULL AS ActualLaborHours
FROM r5events
WHERE evt_type IN ('JOB', 'PPM') -- Filter for relevant WO types
AND evt_created >= '2023-01-01' -- [Set Start Date]
AND evt_org = 'YOUR_ORG' -- [Set Organization]
UNION ALL
/* 2. Priority Updated (Requires Audit Log) */
SELECT
aud_code AS WorkOrderNumber,
'Priority Updated' AS ActivityName,
aud_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
aud_value AS PriorityCode,
NULL AS MaintenanceDepartment,
aud_user AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5auditvalues
WHERE aud_table = 'R5EVENTS'
AND aud_field = 'EVT_PRIORITY'
AND aud_org = 'YOUR_ORG'
UNION ALL
/* 3. Status Changes (Approved, Scheduled, Started, Completed, Signed Off, Closed) */
/* This block maps generic status codes to specific ProcessMind activities */
SELECT
est_event AS WorkOrderNumber,
CASE est_status
WHEN 'A' THEN 'Work Order Approved'
WHEN 'S' THEN 'Work Order Scheduled'
WHEN 'IP' THEN 'Work Order Started'
WHEN 'C' THEN 'Work Order Completed'
WHEN 'QC' THEN 'Quality Control Passed'
WHEN 'SO' THEN 'Work Order Signed Off'
WHEN 'CL' THEN 'Work Order Closed'
ELSE 'Status Change: ' + est_status
END AS ActivityName,
est_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
est_auth AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5eventstatus
WHERE est_status IN ('A', 'S', 'IP', 'C', 'QC', 'SO', 'CL')
AND est_org = 'YOUR_ORG'
UNION ALL
/* 4. Material Requisition Created */
SELECT
req_event AS WorkOrderNumber,
'Material Requisition Created' AS ActivityName,
req_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
req_createdby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5requisitions
WHERE req_event IS NOT NULL
AND req_org = 'YOUR_ORG'
UNION ALL
/* 5. Material Issued */
SELECT
trl_event AS WorkOrderNumber,
'Material Issued' AS ActivityName,
trl_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
trl_user AS UpdatedBy,
NULL AS TargetCompletionDate,
trl_part AS AssetCode, -- Storing Part ID in Asset column for context
NULL AS ActualLaborHours
FROM r5translines
WHERE trl_type = 'I' -- I = Issue
AND trl_event IS NOT NULL
AND trl_org = 'YOUR_ORG'
UNION ALL
/* 6. Labor Hours Recorded */
SELECT
boo_event AS WorkOrderNumber,
'Labor Hours Recorded' AS ActivityName,
boo_entered AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
boo_mrc AS MaintenanceDepartment,
boo_person AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
boo_hours AS ActualLaborHours
FROM r5bookedhours
WHERE boo_event IS NOT NULL
AND boo_org = 'YOUR_ORG'
UNION ALL
/* 7. Checklist Item Verified */
SELECT
ckv_event AS WorkOrderNumber,
'Checklist Item Verified' AS ActivityName,
ckv_entrydate AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
ckv_enteredby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5checklistvalues
WHERE ckv_completed = '+' -- Logic for completed item depends on config
AND ckv_event IS NOT NULL
AND ckv_org = 'YOUR_ORG' Schritte
- Identifizieren Sie die Datenbankverbindung: Stellen Sie sicher, dass Ihnen Anmeldedaten mit Lesezugriff, üblicherweise für ein Servicekonto, auf die Oracle- oder SQL-Server-Backend-Datenbank von Hexagon EAM vorliegen.
- Ermitteln Sie die Kerntabellen: Bestätigen Sie den Zugriff auf R5EVENTS (Arbeitsauftragskopf), R5STATUS (Statushistorie), R5BOOKEDHOURS (Arbeitszeit), R5TRANSACTIONS (Materialien) und R5AUDITVALUES (Audit-Log).
- Ordnen Sie die Statuscodes zu: Hexagon EAM verwendet konfigurierbare Statuscodes wie A, C, O und R. Prüfen Sie Ihre Systemkonfiguration, Bildschirm: Administration -> Codes, und ordnen Sie Ihre ein- oder zweistelligen Codes den Aktivitäten Approved, Scheduled, Started, Completed, QC Passed, Signed Off und Closed zu.
- Konfigurieren Sie die Abfrage: Öffnen Sie das unten bereitgestellte SQL-Skript. Ersetzen Sie die Platzhalter für Statuscodes wie „APPR“, „SCHD“ und „COMP“ durch die tatsächlichen Codes Ihres Systems.
- Legen Sie den Datumsbereich fest: Aktualisieren Sie die WHERE-Klauseln, um nach EVT_DATE oder TRN_DATE zu filtern und ein bestimmtes Zeitfenster auszuwählen, üblicherweise die letzten 12 Monate. So bleibt die Abfrageleistung erhalten.
- Führen Sie die Extraktion aus: Starten Sie die Abfrage in Ihrem SQL-Client, etwa SQL Developer, SSMS oder Toad.
- Prüfen Sie die Audit-Daten: Wenn die Aktivität „Priority Updated“ keine Zeilen liefert, prüfen Sie, ob die Audit-Funktion für die Tabelle R5EVENTS in den Einstellungen Ihres EAM-Systems aktiviert ist.
- Validieren Sie die Checklisten-Daten: Stellen Sie sicher, dass R5CHECKLISTVALUES für Ihre Version die richtige Tabelle ist. Ältere Versionen verwenden für den Abschluss auf Aufgabenebene möglicherweise R5ACTIVITIES.
- Exportieren Sie die Daten: Speichern Sie das Ergebnis als CSV- oder Parquet-Datei. Formatieren Sie die Spalte Timestamp nach ISO 8601 (YYYY-MM-DD HH:MM:SS), um Parsing-Fehler zu vermeiden.
- Importieren Sie die Daten in ProcessMind: Laden Sie die flache Datei in die ProcessMind-Oberfläche hoch und ordnen Sie WorkOrderNumber der Case ID, ActivityName der Activity und EventTimestamp dem Timestamp zu.
Konfiguration
- Filter für das Zeitfenster: Die Abfrage wählt derzeit alle Daten aus. Es wird dringend empfohlen, im grundlegenden CTE oder in jedem SELECT-Block einen Filter wie WHERE EVT_DATE >= SYSDATE - 365 (Oracle) oder GetDate() - 365 (SQL Server) hinzuzufügen.
- Zuordnung der Statuscodes: Sie müssen die Zeichenfolgen im SQL, etwa „APPR“, „COMP“ und „QC“, durch die tatsächlichen Codes aus Ihrem R5STATUS-Satz ersetzen.
- Audit-Konfiguration: Die Extraktion von „Priority Updated“ basiert auf der Tabelle R5AUDITVALUES. Wenn das Auditing für die Spalte EVT_PRIORITY deaktiviert ist, fehlt diese Aktivität.
- Organisation/Mandant: Wenn Ihre EAM-Instanz mehrere Organisationen hostet, fügen Sie einen Filter für EVT_ORG oder EVT_MRC (Abteilung) hinzu, damit keine Daten vermischt werden.
- Sprache: Die Abfrage setzt standardmäßige englische Spaltenüberschriften voraus. Wenn Ihre Datenbank lokalisierte Spaltennamen verwendet, passen Sie die Abfrage entsprechend an.
a Beispielabfrage sql
/* 1. Work Order Created */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Created' AS ActivityName,
E.EVT_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
E.EVT_CREATEDBY AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
WHERE E.EVT_TYPE IN ('JOB', 'PPM') -- Filter for Standard and Preventive WOs
UNION ALL
/* 2. Priority Updated (From Audit Log) */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Priority Updated' AS ActivityName,
A.AUD_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
A.AUD_VALUE AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
A.AUD_USER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5AUDITVALUES A ON E.EVT_CODE = A.AUD_KEY1
WHERE A.AUD_TABLE = 'R5EVENTS'
AND A.AUD_FIELD = 'EVT_PRIORITY'
UNION ALL
/* 3. Work Order Approved */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Approved' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'APPR' -- Replace with your Approved status code
UNION ALL
/* 4. Material Requisition Created */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Material Requisition Created' AS ActivityName,
R.REQ_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
R.REQ_CREATEDBY AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5REQUISITIONS R ON E.EVT_CODE = R.REQ_EVENT
UNION ALL
/* 5. Work Order Scheduled */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Scheduled' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'SCHD' -- Replace with your Scheduled status code
UNION ALL
/* 6. Work Order Started */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Started' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS IN ('STRT', 'INPRG') -- Replace with your Started/In Progress status codes
UNION ALL
/* 7. Material Issued */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Material Issued' AS ActivityName,
T.TRN_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
T.TRN_USER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5TRANSACTIONS T ON E.EVT_CODE = T.TRN_EVENT
WHERE T.TRN_TYPE = 'ISSUE' -- Indicates material issue from store
UNION ALL
/* 8. Labor Hours Recorded */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Labor Hours Recorded' AS ActivityName,
B.BOO_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
B.BOO_PERSON AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
B.BOO_HOURS AS ActualLaborHours
FROM R5EVENTS E
JOIN R5BOOKEDHOURS B ON E.EVT_CODE = B.BOO_EVENT
UNION ALL
/* 9. Checklist Item Verified */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Checklist Item Verified' AS ActivityName,
C.CKV_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
C.CKV_ENTEREDBY AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5CHECKLISTVALUES C ON E.EVT_CODE = C.CKV_EVENT
WHERE C.CKV_COMPLETED = '+' -- Assuming '+' indicates checked/complete
UNION ALL
/* 10. Work Order Completed */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Completed' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'COMP' -- Replace with your Completed status code
UNION ALL
/* 11. Quality Control Passed */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Quality Control Passed' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'QC' -- Replace with your QC Passed status code
UNION ALL
/* 12. Work Order Signed Off */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Signed Off' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'SIGNOFF' -- Replace with your Sign Off status code
UNION ALL
/* 13. Work Order Closed */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Closed' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'CLOS' -- Replace with your Closed status code Schritte
- Bestätigen Sie, dass Hexagon EAM Databridge Outbound für die für diese Extraktion erforderlichen Wartungsdaten zu Arbeitsaufträgen installiert, lizenziert und autorisiert ist. Prüfen Sie die Konfiguration der Outbound Transaction, das Ziel, die Planungsfunktion sowie den Zugriff auf die Quelltabellen oder -Views. Verwenden Sie [Configure based on your system] für den passenden Pfad im Administrationsmenü, da Menünamen und Transaktionskennungen je nach EAM-Version variieren.
- Ermitteln Sie die maßgeblichen Hexagon-EAM-Tabellen oder -Views für Arbeitsauftragsköpfe, Statushistorie von Arbeitsaufträgen, Prioritätshistorie, Materialanforderungen, Materialentnahmen, Arbeitszeitbuchungen, Checklisten- oder Prüfergebnisse, Planungseinsätze, Qualitätsfreigaben, Abzeichnungen und Abschlussdatensätze. Ersetzen Sie jeden Platzhalter [Your ... table name] in der Abfrage durch das entsprechende Objekt Ihrer Umgebung. Gehen Sie nicht davon aus, dass ein aktueller Arbeitsauftragskopf historische Änderungen enthält.
- Konfigurieren Sie Databridge Outbound so, dass bei jeder relevanten Änderung eines Arbeitsauftrags eine XML- oder CSV-Transaktion veröffentlicht wird. Nehmen Sie Arbeitsauftragsnummer, Ereignistyp, Event Timestamp, Quellbenutzer, Priorität, Arbeitsauftragstyp, Abteilung, geplantes Abschlussdatum, Anlage, tatsächlich geleistete Arbeitsstunden sowie einen Aktualisierungs- oder Extraktionszeitpunkt auf. Richten Sie separate Outbound-Zuordnungen ein, wenn sich die Quellstrukturen für Status-, Arbeitszeit-, Material-, Checklisten-, Planungs-, Qualitäts-, Abzeichnungs- oder Abschlussereignisse unterscheiden.
- Konfigurieren Sie die Outbound-Nutzdaten so, dass jeder Geschäftsvorgang als einzelner Ereignisdatensatz dargestellt wird. Senden Sie nicht nur den aktuellen Status des Arbeitsauftrags. Für wiederholte Arbeitszeiteinträge, Materialentnahmen, Checklistenpositionen, Prioritätsänderungen oder andere wiederkehrende Vorgänge muss jeweils ein Datensatz ausgegeben werden. Ordnen Sie den Databridge-Ereignistyp einem der 13 erforderlichen ActivityName-Werte zu.
- Legen Sie die XML- oder CSV-Ausgabe von Databridge in einem kontrollierten Staging-Bereich ab. Laden Sie sie anschließend in die von der Abfrage referenzierten Datenbankobjekte oder ersetzen Sie die Quellobjekte der Abfrage durch die Staging-Tabellen. Bewahren Sie die ursprüngliche Ereigniskennung, Arbeitsauftragsnummer, Event Timestamp, den Quellbenutzer und LastDataUpdate auf. Wenn Databridge XML sendet, wandeln Sie wiederholte Ereignisknoten vor der Aktivitätszuordnung in Zeilen um. Wenn CSV gesendet wird, validieren Sie Trennzeichen, Anführungszeichen, Kodierung und Timestamp-Formate.
- Ersetzen Sie in der Abfrage die Platzhalter für verbindungsspezifische Objekte, Datumsparameter und Unternehmensfilter. Die Abfrage verwendet für jede Aktivität eine normalisierte Ereignisquelle und führt die Ergebnisse mit UNION ALL zusammen. Stellen Sie sicher, dass die in den einzelnen Blöcken verwendeten Quellspalten kompatible Datentypen besitzen. Wenn eine Quelle ein empfohlenes Attribut nicht bereitstellt, geben Sie für dieses Attribut NULL zurück, statt einen Wert zu erfinden.
- Führen Sie die Abfrage zunächst für einen Zeitraum von etwa drei bis sechs Monaten aus. Bestätigen Sie, dass das Ergebnis die erforderlichen Spalten WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem und LastDataUpdate sowie die verfügbaren empfohlenen Attribute enthält. Sortieren Sie die Ausgabe nach WorkOrderNumber, EventTimestamp und ActivityName. Behalten Sie doppelte Zeilen bei, wenn sie unterschiedliche Quellvorgänge darstellen.
- Gleichen Sie die extrahierten Zeilen mit den Databridge-Zustellzahlen, den Quelltransaktionszahlen und einer Stichprobe von Arbeitsaufträgen in Hexagon EAM ab. Untersuchen Sie fehlende Statushistorien, doppelte Zustellungen, ungültige Timestamps und Ereignisse außerhalb des ausgewählten Datumsbereichs. Wenden Sie eine stabile Deduplizierungsregel nur an, wenn dasselbe Quellereignis mehr als einmal zugestellt wurde.
- Exportieren Sie das Endergebnis als UTF-8-CSV oder in einem anderen von ProcessMind unterstützten Event-Log-Format. Verwenden Sie eine Zeile pro Ereignis, ein einheitliches Timestamp-Format mit Zeitzonenverarbeitung und ordnen Sie WorkOrderNumber als Case-ID, ActivityName als Activity und EventTimestamp als Event Timestamp zu. Laden Sie die Datei in ProcessMind hoch und prüfen Sie, ob alle 13 Activity Names im Ereignismodell verfügbar sind.
Konfiguration
- Konfigurieren Sie Hexagon EAM Databridge Outbound für die ereignisbezogene Zustellung im XML- oder CSV-Format. Die genauen Transaktionsnamen, Administrationsbildschirme und Menüpfade hängen von der installierten Hexagon-EAM-Version ab. Verwenden Sie daher [Configure based on your system], statt einen versionsspezifischen Pfad anzunehmen.
- Konfigurieren Sie WorkOrderNumber als Case-ID von ProcessMind, ActivityName als Aktivitätsfeld und EventTimestamp als Event Timestamp. SourceSystem sollte mit Hexagon EAM befüllt werden, während LastDataUpdate den Extraktions- oder Aktualisierungszeitpunkt angibt.
- Richten Sie Outbound-Zuordnungen für alle 13 Aktivitäten ein: Work Order Created, Priority Updated, Work Order Approved, Material Requisition Created, Work Order Scheduled, Work Order Started, Material Issued, Labor Hours Recorded, Checklist Item Verified, Work Order Completed, Quality Control Passed, Work Order Signed Off und Work Order Closed.
- Bewahren Sie historische Vorgänge auf. Ein aktuelles Statusfeld allein kann nicht jede Statusänderung, Prioritätsaktualisierung, Arbeitszeiterfassung, Materialentnahme, Checklistenprüfung, Genehmigung oder Abzeichnung rekonstruieren.
- Verwenden Sie für die erste Extraktion einen Zeitraum von drei bis sechs Monaten. Verwenden Sie für inkrementelle Ladevorgänge den Zustell- oder LastDataUpdate-Wasserstand von Databridge und ein kleines Überlappungsfenster, um verspätet eintreffende Transaktionen zu berücksichtigen.
- Wenden Sie Filter für Unternehmen, Standort, Organisation, Arbeitsauftragstyp, Abteilung und Status nur an, wenn sie für die Analyse erforderlich sind. Verwenden Sie [Your company filter] oder [Configure based on your system] für organisationsspezifische Einschränkungen.
- Beziehen Sie geschlossene Arbeitsaufträge ein, wenn die Analyse den vollständigen Lebenszyklus abdeckt. Ein Filter auf offene Arbeitsaufträge würde Abschluss-, Qualitäts-, Abzeichnungs- und Schließaktivitäten ausschließen.
- Konfigurieren Sie die Zeitzonenverarbeitung ausdrücklich. Konvertieren Sie alle Quell-Timestamps vor dem Upload in ProcessMind in eine vereinbarte Zeitzone und bewahren Sie die ursprüngliche Zeitzone oder den Offset auf, sofern verfügbar.
- Filtern Sie bei großen Datenmengen bereits an der Quelle, begrenzen Sie das Extraktionsfenster, indexieren oder partitionieren Sie Event Timestamp und Arbeitsauftragsnummer und legen Sie Databridge-Dateien vor der Transformation in einem Staging-Bereich ab. Vermeiden Sie es, die vollständige historische XML-Nutzlast wiederholt zu analysieren.
- Zu den erforderlichen Voraussetzungen gehören die Verfügbarkeit von Databridge Outbound, die Berechtigung zum Lesen der relevanten EAM-Daten, Zugriff auf das Outbound-Ziel oder die Staging-Datenbank sowie Zugriff auf Arbeitsauftrags-, Status-, Material-, Arbeitszeit-, Checklisten-, Planungs-, Genehmigungs-, Qualitäts-, Abzeichnungs- und Abschlussdaten.
- Wenn ein erforderliches Geschäftsereignis nicht als native Databridge-Transaktion verfügbar ist, konfigurieren Sie eine Quell-View oder eine Staging-Transformation, die eine explizite Ereigniszeile ausgibt. ProcessMind leitet fehlende Aktivitäten nicht aus anderen Zeilen ab.
a Beispielabfrage sql
WITH
created_events AS (
SELECT
CAST(c.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Created' AS VARCHAR(100)) AS ActivityName,
CAST(c.[CreatedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(c.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(c.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(c.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(c.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(c.[CreatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(c.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(c.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(c.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order creation table or view] c
WHERE c.[CreatedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND c.[CreatedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
priority_events AS (
SELECT
CAST(p.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Priority Updated' AS VARCHAR(100)) AS ActivityName,
CAST(p.[PriorityChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(p.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(p.[NewPriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(p.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your priority history table or view] p
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = p.[WorkOrderNumber]
WHERE p.[PriorityChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND p.[PriorityChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
approved_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Approved' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] = '[Your approved status value]'
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
requisition_events AS (
SELECT
CAST(r.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Material Requisition Created' AS VARCHAR(100)) AS ActivityName,
CAST(r.[RequisitionCreatedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(r.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(r.[CreatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your material requisition table or view] r
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = r.[WorkOrderNumber]
WHERE r.[RequisitionCreatedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND r.[RequisitionCreatedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
scheduled_events AS (
SELECT
CAST(a.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Scheduled' AS VARCHAR(100)) AS ActivityName,
CAST(a.[ScheduledTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(a.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(a.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(a.[ScheduledStartDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order scheduling table or view] a
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = a.[WorkOrderNumber]
WHERE a.[ScheduledTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND a.[ScheduledTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
started_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Started' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] IN ('[Your in progress status value]', '[Your started status value]')
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
issued_events AS (
SELECT
CAST(i.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Material Issued' AS VARCHAR(100)) AS ActivityName,
CAST(i.[IssueTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(i.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(i.[IssuedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your material issue table or view] i
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = i.[WorkOrderNumber]
WHERE i.[IssueTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND i.[IssueTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
labor_events AS (
SELECT
CAST(l.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Labor Hours Recorded' AS VARCHAR(100)) AS ActivityName,
CAST(l.[LaborEntryTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(l.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(l.[RecordedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(l.[LaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your labor transaction table or view] l
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = l.[WorkOrderNumber]
WHERE l.[LaborEntryTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND l.[LaborEntryTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
checklist_events AS (
SELECT
CAST(k.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Checklist Item Verified' AS VARCHAR(100)) AS ActivityName,
CAST(k.[VerifiedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(k.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(k.[VerifiedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your checklist verification table or view] k
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = k.[WorkOrderNumber]
WHERE k.[VerifiedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND k.[VerifiedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
completed_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Completed' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] = '[Your completed status value]'
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
quality_events AS (
SELECT
CAST(q.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Quality Control Passed' AS VARCHAR(100)) AS ActivityName,
CAST(q.[QualityApprovalTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(q.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(q.[ApprovedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your quality approval table or view] q
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = q.[WorkOrderNumber]
WHERE q.[QualityResult] = '[Your quality passed value]'
AND q.[QualityApprovalTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND q.[QualityApprovalTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
signoff_events AS (
SELECT
CAST(f.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Signed Off' AS VARCHAR(100)) AS ActivityName,
CAST(f.[SignOffTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(f.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(f.[SignedOffBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order sign-off table or view] f
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = f.[WorkOrderNumber]
WHERE f.[SignOffTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND f.[SignOffTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
closed_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Closed' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] = '[Your closed status value]'
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
)
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM created_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM priority_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM approved_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM requisition_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM scheduled_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM started_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM issued_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM labor_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM checklist_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM completed_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM quality_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM signoff_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM closed_events
ORDER BY WorkOrderNumber, EventTimestamp, ActivityName; Bereit für den Start?
Überführen Sie Ihre Wartungsdaten mithilfe dieses Templates in konkrete Erkenntnisse. Unser Team unterstützt Sie während der Vorbereitung Ihrer Daten bei technischen Fragen.
Reduzieren Sie Verzögerungen in der Anlagenwartung und steigern Sie noch heute Ihre Leistung
Verkürzen Sie Ihre Durchlaufzeit um 30 Prozent und beseitigen Sie verborgene Bottlenecks.
Keine Kreditkarte erforderlich. In wenigen Minuten eingerichtet.