Ihr Daten-Template für die Anlagenwartung
Ihr Daten-Template für die Anlagenwartung
- Wichtige Datenfelder für Wartungsprotokolle
- Standard-Meilensteine im Prozess und Phasen des Arbeitsauftrags
- Technische Extraktionslogik für Hexagon EAM
Attribute der Anlagenwartung
| Name | Beschreibung | ||
|---|---|---|---|
| Aktivität ActivityName | Die konkrete Aufgabe oder Statusänderung, die stattgefunden hat. | ||
| Beschreibung Dieses Attribut bezeichnet den ausgeführten Prozessschritt, etwa „Arbeitsauftrag erstellt“ oder „Material ausgegeben“. Es wird aus dem Verlauf der Statusänderungen oder aus bestimmten Transaktionsereignissen zum Arbeitsauftrag abgeleitet. Warum das wichtig ist Es legt die Reihenfolge im Event Log fest und ermöglicht so die Rekonstruktion des Prozessablaufs und die Engpassanalyse. Woher beziehen Hexagon EAM, Tabelle R5EVENTHISTORY, Feld EVH_STATUS (Beschreibungen zugeordnet) oder Auditprotokolle Beispiele Arbeitsauftrag erstelltArbeitsauftrag eingeplantArbeitsauftrag abgeschlossenMaterial ausgegeben | |||
| Instandhaltungsarbeitsauftrag WorkOrderNumber | Die eindeutige Kennung des Instandhaltungsarbeitsauftrags. | ||
| Beschreibung Dieses Attribut ist der eindeutige Primärschlüssel des Instandhaltungs-Cases. Es verfolgt den Arbeitsauftrag von der ersten Anforderung über Planung und Ausführung bis zum endgültigen finanziellen Abschluss. Als zentrale Case-ID dient es dazu, Aktivitätsprotokolle, Arbeitsstunden und Materialverbrauch miteinander zu verknüpfen. Warum das wichtig ist Damit wird die konkrete Instanz des Instandhaltungsprozesses identifiziert. So lassen sich Durchlaufzeiten und Prozessvarianten durchgängig verfolgen. Woher beziehen Hexagon EAM, Tabelle R5EVENTS, Feld EVT_CODE Beispiele Arbeitsauftrag-100234Arbeitsauftrag-100235Arbeitsauftrag-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 Verzögerungen in der Berichtskette zu erkennen. Warum das wichtig ist Es schafft Vertrauen in die Aktualität der Analyse und unterstützt die Fehlersuche bei Problemen mit der Datensynchronisierung. Woher beziehen Systemzeitpunkt 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 gibt das führende System für die Daten an. In diesem Fall ist der Name des jeweiligen EAM-Systems fest hinterlegt, damit sich die Daten von möglichen Altdaten oder Systemen externer Auftragnehmer unterscheiden lassen. Warum das wichtig ist So bleibt die Datenherkunft nachvollziehbar, insbesondere wenn Daten aus mehreren Instandhaltungsinstanzen zusammengeführt werden. Woher beziehen Fest hinterlegter 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 verbucht wurde. Damit lassen sich die Dauer zwischen Aktivitäten und die gesamte Zykluszeit des Arbeitsauftrags berechnen. Warum das wichtig ist Genaue Timestamps sind entscheidend, um Durchlaufzeiten zu analysieren, Verzögerungen zu erkennen und die SLA-Einhaltung zu berechnen. Woher beziehen 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 bzw. der für die Ausführung der Arbeit verantwortlich ist. | ||
| Beschreibung Dieses Attribut gibt das Team oder die Instandhaltungswerkstatt an, dem bzw. der der Arbeitsauftrag zugewiesen ist, zum Beispiel Elektrotechnik, Mechanik oder Gebäudetechnik. So lassen sich die Leistungen verschiedener technischer Teams vergleichen. Warum das wichtig ist Es unterstützt das Dashboard zur Produktivität der Techniker und hilft dabei, Ressourcen effektiv auf die verschiedenen Gewerke zu verteilen. Woher beziehen Hexagon-EAM-Tabelle R5EVENTS, Feld EVT_MRC Beispiele ElektrowerkstattMechanische InstandhaltungGebäudetechnikFuhrparkservice | |||
| Anlage AssetCode | Die eindeutige Kennung des instand gehaltenen Geräts oder Standorts. | ||
| Beschreibung Dieses Attribut ordnet den Arbeitsauftrag einem bestimmten Gerät oder Standort zu. Damit lassen sich Ausfallhäufigkeiten je Anlage analysieren und Anlagen mit häufigen Störungen oder möglichem Ersatzbedarf erkennen. Warum das wichtig ist Es ist grundlegend für die Berechnung von Kennzahlen zur Anlagenzuverlässigkeit und zeigt, auf welche Anlagen sich der Instandhaltungsaufwand konzentriert. Woher beziehen Hexagon-EAM-Tabelle R5EVENTS, Feld EVT_OBJECT Beispiele PUMPE-001HLK-204FUHRPARK-99FÖRDERBAND-A | |||
| Arbeitsauftragstyp WorkOrderType | Ordnet den Arbeitsauftrag als vorbeugend, korrektiv oder als Notfall ein. | ||
| Beschreibung Dieses Attribut klassifiziert die Art der Instandhaltungsarbeit. Es dient dazu, den Anteil geplanter vorbeugender Instandhaltung mit dem Anteil reaktiver Notfallreparaturen zu vergleichen. Dieser Wert 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 Anteils vorbeugender Instandhaltung und hilft, Möglichkeiten zur Verringerung reaktiver Arbeiten zu erkennen. Woher beziehen 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 die Statusänderung oder Aktualisierung ausgelöst hat. Es dient dazu, die Arbeitslast im Team 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 während des gesamten Instandhaltungszyklus analysieren. Woher beziehen Hexagon-EAM-Tabelle R5EVENTHISTORY, Feld EVH_USER Beispiele JSMITHADAVISSYSTEMMGR_USR | |||
| Geplantes Abschlussdatum TargetCompletionDate | Der geplante Fertigstellungstermin des Arbeitsauftrags. | ||
| Beschreibung Dieses Attribut gibt an, bis zu welchem Datum die Instandhaltungsarbeiten voraussichtlich abgeschlossen sein sollen. Der Vergleich mit dem tatsächlichen Abschlussdatum ist entscheidend, um die SLA-Einhaltung und die termingerechte Fertigstellung zu berechnen. Warum das wichtig ist Es ist entscheidend für das Dashboard zur Überwachung der SLA-Einhaltung von Auftragnehmern und für die Bewertung der Planungsgenauigkeit. Woher beziehen Hexagon-EAM-Tabelle R5EVENTS, Feld EVT_TARGET Beispiele 2023-11-012023-11-152023-12-01 | |||
| Priorität PriorityCode | Die Dringlichkeitsstufe des Arbeitsauftrags. | ||
| Beschreibung Dieses Attribut gibt die Bedeutung des Arbeitsauftrags an, von Routine bis Notfall. Es beeinflusst die Ressourceneinsatzplanung und ist entscheidend, um die SLA-Einhaltung zu überwachen und missbräuchliche Prioritätsänderungen zu erkennen. Warum das wichtig ist Damit das Dashboard „Prioritätseskalation und Ressourcenprüfung“ aussagekräftig ist, müssen kritische Aufgaben korrekt priorisiert werden. Woher beziehen Hexagon-EAM-Tabelle R5EVENTS, Feld EVT_PRIORITY Beispiele KritischHochMittelNiedrig | |||
| Tatsächliche Arbeitsstunden ActualLaborHours | Die Gesamtzahl der Stunden, die für den Arbeitsauftrag erfasst wurden. | ||
| Beschreibung Dieses Attribut summiert die von Technikern für den Arbeitsauftrag erfasste Arbeitszeit. Es dient zur Messung der Produktivität, zur Berechnung der Arbeitskosten und zum Vergleich mit 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 bei den Arbeitsstunden. Woher beziehen Hexagon-EAM-Tabelle R5BOOKEDHOURS, Feld BOO_HOURS (Summe je Arbeitsauftrag) Beispiele 2.54.012.00.5 | |||
| Beschreibung des Arbeitsauftrags WorkOrderDescription | Eine kurze Zusammenfassung der Instandhaltungsaufgabe. | ||
| Beschreibung Dieses Attribut enthält den Betreff oder eine Kurzbeschreibung des Problems. Es liefert Analysten den nötigen Kontext, wenn sie einzelne problematische Fälle genauer untersuchen oder Muster in unstrukturierten Texten erkennen. Warum das wichtig ist Es liefert den nötigen Kontext für die manuelle Prüfung der Prozessdaten. Woher beziehen Hexagon-EAM-Tabelle R5EVENTS, Feld EVT_DESC Beispiele Undichte Pumpendichtung reparierenMonatliche HLK-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 Lager oder den Einkauf übermittelt wurde. Die Zeitspanne bis zur Ausgabe des Materials zeigt, wie effizient die Lieferkette arbeitet. Warum das wichtig ist Es wird für das Dashboard zu Beschaffungsdurchlaufzeiten für Ersatzteile benötigt. Woher beziehen Hexagon-EAM-Tabelle R5REQUISITIONS oder verknüpfte Transaktionstabelle Beispiele 2023-10-012023-10-05 | |||
| Erstellungsdatum DateCreated | Das Datum, an dem der Arbeitsauftrag ursprünglich angelegt 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 offener Rückstände. Warum das wichtig ist Es wird für das Dashboard zur Geschwindigkeit der Instandhaltungsplanung und die KPI zum Alter offener Rückstände benötigt. Woher beziehen Hexagon-EAM-Tabelle R5EVENTS, Feld EVT_CREATED Beispiele 2023-09-012023-09-15 | |||
| Kritikalität der Anlage AssetCriticality | Ein Wert, der die betriebliche Bedeutung der Anlage angibt. | ||
| Beschreibung Dieses Attribut gibt an, wie wichtig die Anlage für den Geschäftsbetrieb ist. Es dient häufig dazu, zu prüfen, ob Arbeitsaufträge mit hoher Priorität tatsächlich kritische Anlagen betreffen. So lassen sich mögliche Fehlanwendungen des Prozesses aufdecken. Warum das wichtig ist Es unterstützt das Dashboard „Prioritätseskalation und Ressourcenprüfung“, indem es die Priorität mit dem Anlagenwert in Beziehung setzt. Woher beziehen Hexagon-EAM-Tabelle R5OBJECTS, Feld OBJ_CRITICALITY (Verknüpfung über EVT_OBJECT erforderlich) Beispiele A - UnverzichtbarB - KritischC - NachrangigD - Niedrig | |||
| Nacharbeit IsRework | Kennzeichen dafür, 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 Arbeitsstatus zurückkehrt. So lassen sich Qualitätsprobleme und Schulungsbedarf erkennen. Warum das wichtig ist Es bildet die Grundlage für das Dashboard zu technischen Nacharbeiten und Qualitätskontrolle sowie für die KPI zur Nacharbeitsquote in der Instandhaltung. Woher beziehen Berechnet anhand wiederholter Aktivitäten Beispiele truefalse | |||
| Notfalleskalation EmergencyEscalationFlag | Kennzeichen dafür, ob die Priorität nach der Erstellung auf „Notfall“ erhöht wurde. | ||
| Beschreibung Dieses boolesche Attribut erkennt Arbeitsaufträge, die zunächst eine niedrigere Priorität hatten und später auf „Notfall“ hochgestuft wurden. Häufige Eskalationen können auf eine unzureichende Ersteinschätzung oder eine gezielte Umgehung des Systems hindeuten, um schneller bedient zu werden. Warum das wichtig ist Es unterstützt das Dashboard „Prioritätseskalation und Ressourcenprüfung“ sowie die KPI zur Notfalleskalationsquote. Woher beziehen Abgeleitet aus dem Prüfprotokoll des Feldes Priority Beispiele truefalse | |||
| Qualitätsprüfung bestanden QualityControlPassed | Kennzeichen dafür, ob der QC-Schritt dokumentiert wurde. | ||
| Beschreibung Dieses boolesche Attribut prüft, ob eine bestimmte Qualitätskontrollaktivität oder ein Checklistenpunkt als abgeschlossen markiert wurde. So lässt sich die Einhaltung von Sicherheitsvorschriften und internen Standards überprüfen. Warum das wichtig ist Es bildet die Grundlage für die KPI zur Einhaltung der Qualitätskontrolle und unterstützt das Dashboard zu Compliance und Dokumentationsintegrität. Woher beziehen Abgeleitet aus Checklisten oder dem Aktivitätsverlauf Beispiele truefalse | |||
| SLA-Status SLAState | Gibt an, ob der Arbeitsauftrag die vereinbarte Serviceleistung erfüllt hat. | ||
| Beschreibung Dieses berechnete Attribut vergleicht das tatsächliche Abschlussdatum mit dem geplanten Abschlussdatum. Es ordnet den Case den Kategorien „SLA eingehalten“ oder „Frist überschritten“ zu und vereinfacht so 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. Woher beziehen Berechnet: Tatsächliches Enddatum <= Zieldatum Beispiele SLA eingehaltenFrist überschrittenOffen | |||
| Tatsächliche Gesamtkosten TotalActualCost | Die für den Arbeitsauftrag erfassten Gesamtkosten. | ||
| Beschreibung Dieses Attribut erfasst die Gesamtkosten für Arbeit, Material und Dienstleistungen. Es ist wichtig für die Analyse der finanziellen Abrechnung und zeigt, welche Kosten durch Notfall- im Vergleich zu vorbeugender Instandhaltung entstehen. Warum das wichtig ist Es unterstützt das Dashboard zur finanziellen Abrechnung und Abschlussdauer sowie datenbasierte Entscheidungen zu Kosten. Woher beziehen Hexagon-EAM-Tabelle R5EVENTS, Feld EVT_ACTCOST (oder eine ähnliche Summenspalte) Beispiele 150.002500.5075.25 | |||
| Vorbeugende Instandhaltung IsPreventive | Kennzeichen dafür, ob es sich beim Arbeitsauftrag um vorbeugende Instandhaltung handelt. | ||
| Beschreibung Dieses boolesche Attribut erleichtert das Filtern und Kategorisieren von Arbeitsaufträgen. Es vereinfacht die Berechnung der KPI für den Anteil vorbeugender Instandhaltung, indem es geplante Arbeiten von reaktiven Reparaturen trennt. Warum das wichtig ist Es bildet eine grundlegende Segmentierung für das Dashboard zur Analyse des Anteils vorbeugender Instandhaltung. Woher beziehen Abgeleitet aus WorkOrderType Beispiele truefalse | |||
Aktivitäten der Anlagenwartung
| Aktivität | Beschreibung | ||
|---|---|---|---|
| Arbeitsauftrag abgeschlossen | Die technischen Arbeiten sind 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 Messung der Gesamtdauer des Instandhaltungszyklus und der mittleren Reparaturdauer. Beendet die Erfassung der Ausfallzeit. Woher beziehen Hexagon EAM, r5statuslog. Übergang zu 'C' (Completed) oder 'F' (Finished). Erfassung Wird protokolliert, wenn eine Transaktion für r5statuslog ausgeführt wird. Ereignistyp explicit | |||
| Arbeitsauftrag begonnen | Die Techniker haben mit den tatsächlichen Arbeiten an der Anlage begonnen. Dies wird häufig durch einen Statuswechsel zu In Progress oder den ersten Timestamp einer Arbeitszeiterfassung gekennzeichnet. | ||
| Warum das wichtig ist Endpunkt für die Berechnung des Auftragsrückstands und Startpunkt für die Messung der tatsächlichen Arbeitszeit am Gerät. Wichtig für die SLA-Einhaltungsquote. Woher beziehen Hexagon EAM, r5statuslog. Übergang zu 'In Progress' (häufig Statuscode 'I' oder 'IP'). Erfassung Wird protokolliert, wenn eine Transaktion für r5statuslog ausgeführt wird. Ereignistyp explicit | |||
| Arbeitsauftrag erstellt | Der Instandhaltungsarbeitsauftrag wird erstmals im System angelegt. Dieses Ereignis eröffnet den Case und erfasst den ersten Timestamp des gesamten Instandhaltungszyklus. | ||
| Warum das wichtig ist Kennzeichnet den Beginn der Prozessinstanz und bildet die Grundlage für die Messung der gesamten Bearbeitungsdauer. Wichtig für die Berechnung des Alters offener Aufträge. Woher beziehen Hexagon EAM, Tabelle r5events. Wird protokolliert, wenn ein neuer Datensatz mit evt_code eingefügt wird. Erfassung Wird protokolliert, wenn eine INSERT-Transaktion für r5events ausgeführt wird. Ereignistyp explicit | |||
| Arbeitsauftrag freigegeben | Die Statusänderung zeigt an, dass der Arbeitsauftrag die Prüfung von Planung und Aufwandsschätzung bestanden hat. Damit ist die Ausführung der Arbeiten autorisiert. | ||
| Warum das wichtig ist Unterstützt die Analyse der Planungsgeschwindigkeit in der Instandhaltung, indem das Ende der Planungsphase markiert wird. Dient außerdem der Prüfung der Funktionstrennung. Woher beziehen Hexagon EAM, Tabelle r5statuslog. Suchen Sie nach dem Übergang zum Status 'A' (Approved) oder dem entsprechenden Systemstatus. Erfassung Wird protokolliert, wenn eine Transaktion für r5statuslog ausgeführt wird. Ereignistyp explicit | |||
| Arbeitsauftrag geschlossen | Der Arbeitsauftrag ist finanziell abgeschlossen und archiviert. Weitere Kosten oder Arbeitsstunden können nicht mehr gebucht werden. | ||
| Warum das wichtig ist Prozessende. Entscheidend für die Analyse abgeschlossener finanzieller Abrechnungen und die Festschreibung der endgültigen Kosten. Woher beziehen Hexagon EAM, r5statuslog. Übergang zu 'C' (Closed) oder 'L' (Locked/Closed). Erfassung Wird protokolliert, wenn eine Transaktion für r5statuslog ausgeführt wird. Ereignistyp explicit | |||
| Arbeitsstunden erfasst | Ein Techniker erfasst die für den Arbeitsauftrag geleisteten Stunden. Diese Aktivität kann pro Case mehrfach auftreten. | ||
| Warum das wichtig ist Grundlage für Dashboards zu Abweichungen bei Arbeitsstunden und zur Arbeitsproduktivität von Technikern. Zeigt den tatsächlichen Aufwand im Vergleich zum Plan. Woher beziehen Hexagon EAM, Tabelle r5booklabor. Jede Zeile entspricht einem Zeiterfassungseintrag für den Arbeitsauftrag. Erfassung Wird protokolliert, wenn eine INSERT-Transaktion für r5booklabor ausgeführt wird. Ereignistyp explicit | |||
| Material ausgegeben | Ersatzteile werden physisch aus dem Lager entnommen und dem Arbeitsauftrag belastet. Damit wird der Materialverbrauch erfasst. | ||
| Warum das wichtig ist Endpunkt für die Durchlaufzeit bis zur Materialverfügbarkeit. Zeigt Verzögerungen, wenn die Arbeit beginnt und dann wegen fehlender Teile unterbrochen wird. Woher beziehen Hexagon EAM, Tabelle r5translines. Transaktionstyp 'I' (Issue), verknüpft mit dem Arbeitsauftrag. Erfassung Wird protokolliert, wenn eine INSERT-Transaktion für r5translines ausgeführt wird. Ereignistyp explicit | |||
| Arbeitsauftrag abgezeichnet | Für Compliance oder die Bezahlung von Auftragnehmern ist meist eine abschließende administrative Freigabe erforderlich. Sie bestätigt die Richtigkeit aller Daten. | ||
| Warum das wichtig ist Überwachen Sie diesen Schritt für die Analyse des Freigabezyklus von Arbeitsaufträgen. Verzögerungen wirken sich auf die Geschwindigkeit der finanziellen Abrechnung aus. Woher beziehen Hexagon EAM, r5statuslog (Übergang zu 'Signed Off') oder Protokoll der elektronischen Signatur. Erfassung Vergleichen Sie das Statusfeld vor und nach der Änderung. Ereignistyp inferred | |||
| Arbeitsauftrag eingeplant | Dem Arbeitsauftrag wird ein geplanter Starttermin oder eine bestimmte Ressource zugewiesen. Damit wechselt er aus dem Rückstand in den aktiven Zeitplan. | ||
| Warum das wichtig ist Wichtig für die Analyse der Arbeitsproduktivität von Technikern und der Effizienz der Ressourcenzuweisung. Woher beziehen Hexagon EAM, Tabelle r5events (Aktualisierung von evt_schedstart) oder r5statuslog (Übergang zu 'S' für Scheduled). Erfassung Vergleichen Sie das Statusfeld vor und nach der Änderung oder prüfen Sie die Aktualisierung von evt_schedstart. Ereignistyp inferred | |||
| Checklistenpunkt geprüft | Eine bestimmte Aufgabe oder ein Prüfschritt im Arbeitsauftrag wird als abgeschlossen markiert. Damit wird der Fortschritt innerhalb des Auftrags im Detail erfasst. | ||
| Warum das wichtig ist Wichtig für Compliance und die Integrität der Dokumentation. Belegt, dass Sicherheitsprüfungen systematisch protokolliert wurden. Woher beziehen Hexagon EAM, Tabelle r5checklist oder r5activities. Statusänderung eines bestimmten Aktivitäts- oder Aufgabenpostens. Erfassung Wird protokolliert, wenn eine UPDATE-Transaktion 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 Analyse der Beschaffungsdurchlaufzeiten von Ersatzteilen. Hohe Fallzahlen weisen auf eine Abhängigkeit von der Lagerverfügbarkeit hin. Woher beziehen Hexagon EAM, Tabelle r5requisitions. Verknüpft über req_evt (Arbeitsauftragscode). Erfassung Wird protokolliert, wenn eine INSERT-Transaktion für r5requisitions ausgeführt wird. Ereignistyp explicit | |||
| Priorität aktualisiert | Die Priorität des Arbeitsauftrags wurde nach seiner erstmaligen Erstellung geändert. Erfasst werden der Timestamp und der neue Prioritätswert. | ||
| Warum das wichtig ist Wichtig für das Dashboard zur Prioritätserhöhung und Ressourcenprüfung, um missbräuchliche Prioritätsänderungen oder eine schleichende Ausweitung des Umfangs zu erkennen. Woher beziehen Hexagon EAM r5audittrail (wenn die Audit-Funktion aktiviert ist) oder aus Snapshots abgeleitet. Häufig aus dem Auditprotokoll des Felds evt_priority ermittelt. Erfassung Wird protokolliert, wenn eine UPDATE-Transaktion für evt_priority ausgeführt wird. Ereignistyp explicit | |||
| Qualitätsprüfung bestanden | Eine Führungskraft oder ein Prüfer kontrolliert die abgeschlossenen Arbeiten und bestätigt die Qualität. Dieser Schritt prüft die Reparatur vor dem Abschluss des Auftrags. | ||
| Warum das wichtig ist Unterstützt die Kennzahl zur Einhaltung der Qualitätskontrolle. Rücksprünge an dieser Stelle weisen auf technische Nacharbeiten hin. Woher beziehen Hexagon EAM, r5statuslog (Übergang zu 'Review' oder 'QC') oder r5audittrail für die Validierung eines bestimmten UDF. Erfassung Vergleichen Sie das Statusfeld vor und nach der Änderung. Ereignistyp inferred | |||
Anleitungen zur Datenextraktion
Schritte
- Melden Sie sich mit einem Benutzerkonto mit Berechtigungen zum Erstellen erweiterter Berichte bei der Hexagon-EAM-Anwendung an.
- Öffnen Sie das Modul „Berichte“, das sich üblicherweise im Menü „Administration“ oder „Berichte“ befindet, und starten Sie die Oberfläche für das erweiterte Reporting, häufig Cognos oder einen integrierten SQL-Berichtsgenerator.
- Starten Sie den Assistenten zum Erstellen eines neuen Berichts und wählen Sie als Datenquellentyp „SQL“ oder „Freihand-SQL“. Damit können Sie die Datenbank direkt abfragen, statt das Standardmodell für Geschäftsobjekte zu verwenden.
- Kopieren Sie das SQL-Skript aus dem Abfrageabschnitt unten und fügen Sie es in das Fenster für die Dataset-Definition ein.
- Ersetzen Sie Platzhalter wie [Your Organization Code] und Datumsbereiche durch konkrete Werte aus Ihrer Umgebung.
- Prüfen Sie die Abfragesyntax im Editor, um sicherzustellen, dass Ihre Datenbankplattform (Oracle oder SQL Server) die UNION-Anweisungen akzeptiert.
- Ordnen Sie die Ergebnisspalten dem Berichtslayout zu. Achten Sie darauf, dass WorkOrderNumber, ActivityName und EventTimestamp gut sichtbar sind.
- Richten Sie den Export des Berichts im CSV- oder Excel-Format ein, damit die Daten tabellarisch und ohne verbundene Zellen oder Formatierungsüberschriften ausgegeben werden.
- Führen Sie den Bericht für einen Prüfzeitraum aus, zum Beispiel für die letzten 100 Arbeitsaufträge, und kontrollieren Sie die Datenstruktur.
- Planen Sie nach erfolgreicher Prüfung eine regelmäßige Ausführung des Berichts oder führen Sie ihn für den gesamten Extraktionszeitraum aus.
- Laden Sie die Ausgabedatei herunter und prüfen Sie die Datumsformate. Wenn möglich, sollten die Timestamps Sekunden enthalten, damit sich die Ereignisse präzise sortieren lassen.
- Importieren Sie die resultierende CSV-Datei in ProcessMind. Ordnen Sie die Spalte SourceSystem einem Case-Attribut und ActivityName dem Aktivitätsklassifikator zu.
Konfiguration
- Datumsbereich: Filtern Sie vorzugsweise nach EVT_DATE (Erstellungsdatum) und verwenden Sie ein rollierendes Zeitfenster von 6 bis 12 Monaten, damit die Abfrage leistungsfähig bleibt.
- Organisationsfilter: Hexagon EAM wird häufig von mehreren Organisationen genutzt. Filtern Sie nach Ihrem spezifischen Organisationscode, damit keine Daten anderer Geschäftseinheiten einfließen.
- Datenbanksyntax: Die Abfrage unten verwendet nach Möglichkeit ANSI-Standard-SQL. Hexagon EAM läuft jedoch meist auf Oracle oder SQL Server. Datumsfunktionen müssen gegebenenfalls angepasst werden, zum Beispiel SYSDATE statt GETDATE.
- Statuskonfiguration: Die Zuordnung von Statuscodes, etwa „A“, „C“ oder „R“, zu Aktivitätsnamen wie „Arbeitsauftrag genehmigt“ muss der Statuskonfiguration Ihres Systems entsprechen.
- Berechtigungen: Das Benutzerkonto, mit dem der Bericht ausgeführt wird, benötigt Lesezugriff auf die Tabellen R5EVENTS, R5EVENTSTATUS, R5BOOKEDHOURS, R5TRANSACTIONS und R5AUDITVALUES.
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
- Datenbankverbindung ermitteln: Stellen Sie sicher, dass Sie über Zugangsdaten mit Lesezugriff verfügen, in der Regel für ein Dienstkonto der Oracle- oder SQL-Server-Backend-Datenbank von Hexagon EAM.
- Kerntabellen ermitteln: Prüfen Sie den Zugriff auf R5EVENTS (Arbeitsauftragsköpfe), R5STATUS (Statusverlauf), R5BOOKEDHOURS (Arbeitsstunden), R5TRANSACTIONS (Materialien) und R5AUDITVALUES (Audit-Protokoll).
- Statuscodes zuordnen: Hexagon EAM verwendet konfigurierbare Statuscodes, zum Beispiel A, C, O und R. Prüfen Sie die Systemkonfiguration (Bildschirm: Administration -> Codes) und ordnen Sie Ihre ein- oder zweistelligen Codes den Aktivitäten Genehmigt, Eingeplant, Gestartet, Abgeschlossen, Qualitätskontrolle bestanden, Abgezeichnet und Geschlossen zu.
- Abfrage konfigurieren: Öffnen Sie das unten bereitgestellte SQL-Skript. Ersetzen Sie die Platzhalter für Statuscodes, etwa „APPR“, „SCHD“ und „COMP“, durch die tatsächlichen Codes Ihres Systems.
- Datumsbereich festlegen: Passen Sie die WHERE-Klauseln an, um nach EVT_DATE oder TRN_DATE zu filtern und einen bestimmten Zeitraum auszuwählen. Üblicherweise eignen sich die letzten 12 Monate, damit die Abfrage leistungsfähig bleibt.
- Extraktion ausführen: Führen Sie die Abfrage in Ihrem SQL-Client aus, zum Beispiel SQL Developer, SSMS oder Toad.
- Audit-Daten prüfen: Wenn die Aktivität „Priorität aktualisiert“ keine Zeilen zurückgibt, prüfen Sie in den EAM-Systemeinstellungen, ob die Audit-Funktion für die Tabelle R5EVENTS aktiviert ist.
- Checklisten-Daten prüfen: Stellen Sie sicher, dass R5CHECKLISTVALUES für Ihre Version die richtige Tabelle ist. Ältere Versionen verwenden möglicherweise R5ACTIVITIES für den Abschluss auf Aufgabenebene.
- Daten exportieren: Speichern Sie das Ergebnis als CSV- oder Parquet-Datei. Formatieren Sie die Timestamp-Spalte nach ISO 8601 (YYYY-MM-DD HH:MM:SS), um Parsing-Fehler zu vermeiden.
- In ProcessMind importieren: Laden Sie die Datei in ProcessMind hoch und ordnen Sie WorkOrderNumber der Case-ID, ActivityName der Aktivität und EventTimestamp dem Timestamp zu.
Konfiguration
- Zeitfensterfilter: Die Abfrage wählt derzeit alle Daten aus. Es wird dringend empfohlen, in der 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: Ersetzen Sie die Zeichenfolgen in der SQL-Abfrage, etwa „APPR“, „COMP“ und „QC“, durch die tatsächlichen Codes aus Ihrem R5STATUS-Satz.
- Audit-Konfiguration: Die Extraktion der Aktivität „Priorität aktualisiert“ greift auf die Tabelle R5AUDITVALUES zu. Ist das Audit für die Spalte EVT_PRIORITY deaktiviert, fehlt diese Aktivität.
- Organisation/Mandant: Wenn Ihre EAM-Instanz mehrere Organisationen umfasst, filtern Sie nach EVT_ORG oder EVT_MRC (Abteilung), damit die Daten getrennt bleiben.
- Sprache: Die Abfrage setzt standardmäßige englische Spaltenüberschriften voraus. Passen Sie sie an, wenn Ihre Datenbank lokalisierte Spaltennamen verwendet.
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
- Prüfen Sie, ob Hexagon EAM Databridge Outbound installiert, lizenziert und für die Wartungsdaten der Arbeitsaufträge autorisiert ist, die für diese Extraktion benötigt werden. Kontrollieren Sie die Konfiguration der ausgehenden Transaktion, das Ziel, die Planungsmöglichkeiten und den Zugriff auf die Quelltabellen oder -ansichten. 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 -Ansichten für Arbeitsauftragsköpfe, Statusverlauf, Prioritätsverlauf, Materialanforderungen, Materialentnahmen, Arbeitszeitbuchungen, Checklisten- oder Prüfergebnisse, Planungseinteilungen, Qualitätsfreigaben, Abzeichnungen und Abschlüsse. Ersetzen Sie jeden Platzhalter [Your ... table name] in der Abfrage durch das entsprechende Objekt in Ihrer Umgebung. Gehen Sie nicht davon aus, dass der aktuelle Arbeitsauftragskopf historische Änderungen enthält.
- Konfigurieren Sie Databridge Outbound so, dass bei jeder relevanten Änderung an einem Arbeitsauftrag eine XML- oder CSV-Transaktion veröffentlicht wird. Nehmen Sie Arbeitsauftragsnummer, Ereignistyp, Ereignis-Timestamp, Quellbenutzer, Priorität, Arbeitsauftragstyp, Abteilung, geplantes Abschlussdatum, Anlage, tatsächliche Arbeitsstunden sowie einen Aktualisierungs- oder Extraktions-Timestamp auf. Richten Sie separate ausgehende Zuordnungen ein, wenn sich die Quelltransaktionsstrukturen für Status-, Arbeitszeit-, Material-, Checklisten-, Planungs-, Qualitäts-, Abzeichnungs- oder Abschlussereignisse unterscheiden.
- Konfigurieren Sie die ausgehende Nutzlast so, dass jeder Geschäftsvorfall als einzelner Ereignisdatensatz dargestellt wird. Senden Sie nicht nur den jeweils aktuellen Status des Arbeitsauftrags. Geben Sie für wiederholte Arbeitszeiteinträge, Materialentnahmen, Checklistenpunkte, Prioritätsänderungen und andere wiederkehrende Vorgänge jeweils einen eigenen Datensatz aus. Ordnen Sie den Databridge-Ereignistyp einem der 13 erforderlichen Werte für ActivityName zu.
- Speichern Sie die XML- oder CSV-Ausgabe von Databridge zunächst an einem kontrollierten Bereitstellungsort. Laden Sie sie anschließend in die in der Abfrage referenzierten Datenbankobjekte oder ersetzen Sie die Abfragequellen durch Bereitstellungstabellen. Bewahren Sie die ursprüngliche Ereigniskennung, Arbeitsauftragsnummer, den Ereignis-Timestamp, den Quellbenutzer und LastDataUpdate auf. Wenn Databridge XML sendet, wandeln Sie wiederholte Ereignisknoten vor der Aktivitätszuordnung in Zeilen um. Prüfen Sie bei CSV-Dateien 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. Achten Sie darauf, dass die Quellspalten in jedem Block kompatible Datentypen haben. 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. Prüfen Sie, ob 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 Quellereignisse darstellen.
- Gleichen Sie die extrahierten Zeilen mit den Zustellungszahlen von Databridge, den Quelltransaktionszahlen und einer Stichprobe von Arbeitsaufträgen in Hexagon EAM ab. Untersuchen Sie fehlende Statusverläufe, doppelte Zustellungen, ungültige Timestamps und Ereignisse außerhalb des ausgewählten Zeitraums. Wenden Sie eine stabile Deduplizierungsregel nur dann an, wenn dasselbe Quellereignis mehrfach 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 und ein einheitliches Timestamp-Format mit festgelegter Zeitzonenbehandlung. Ordnen Sie WorkOrderNumber der Case-Kennung, ActivityName der Aktivität und EventTimestamp dem Ereignis-Timestamp zu. Laden Sie die Datei in ProcessMind hoch und prüfen Sie, ob alle 13 Aktivitätsnamen im Prozessmodell verfügbar sind.
Konfiguration
- Konfigurieren Sie Hexagon EAM Databridge Outbound für die ereignisbezogene Übermittlung von XML- oder CSV-Daten. 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 vorauszusetzen.
- Legen Sie WorkOrderNumber als Case-Kennung in ProcessMind, ActivityName als Aktivitätsfeld und EventTimestamp als Ereignis-Timestamp fest. Füllen Sie SourceSystem mit Hexagon EAM und verwenden Sie LastDataUpdate für den Extraktions- oder Aktualisierungszeitpunkt.
- Richten Sie ausgehende Zuordnungen für alle 13 Aktivitäten ein: Arbeitsauftrag erstellt, Priorität aktualisiert, Arbeitsauftrag genehmigt, Materialanforderung erstellt, Arbeitsauftrag eingeplant, Arbeitsauftrag gestartet, Material entnommen, Arbeitsstunden erfasst, Checklistenpunkt geprüft, Arbeitsauftrag abgeschlossen, Qualitätskontrolle bestanden, Arbeitsauftrag abgezeichnet und Arbeitsauftrag geschlossen.
- Bewahren Sie historische Ereignisse auf. Ein aktuelles Statusfeld allein reicht nicht aus, um alle Statusübergänge, Prioritätsänderungen, Arbeitszeiteinträge, Materialentnahmen, Checklistenprüfungen, Genehmigungen oder Abzeichnungen nachzuvollziehen.
- Verwenden Sie für die erste Extraktion einen Zeitraum von drei bis sechs Monaten. Nutzen Sie bei inkrementellen Ladevorgängen den Zustellungszeitpunkt von Databridge oder den LastDataUpdate-Wasserstand und berücksichtigen Sie einen kurzen Überlappungszeitraum, damit verspätet eintreffende Transaktionen erfasst werden.
- 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 abdecken soll. Ein Filter auf offene Arbeitsaufträge lässt Aktivitäten zum Abschluss, zur Qualitätsprüfung, zur Abzeichnung und zum Schließen aus.
- Legen Sie die Zeitzonenbehandlung ausdrücklich fest. Wandeln Sie alle Quell-Timestamps vor dem Upload in ProcessMind in eine vereinbarte Zeitzone um und bewahren Sie, sofern verfügbar, die ursprüngliche Zeitzone oder den Offset auf.
- Filtern Sie bei großen Datenmengen bereits an der Quelle, begrenzen Sie den Extraktionszeitraum, indexieren oder partitionieren Sie Ereignis-Timestamp und Arbeitsauftragsnummer und stellen Sie Databridge-Dateien vor der Umwandlung bereit. Vermeiden Sie es, die gesamte historische XML-Nutzlast wiederholt zu verarbeiten.
- Zu den erforderlichen Voraussetzungen gehören die Verfügbarkeit von Databridge Outbound, die Berechtigung zum Lesen der relevanten EAM-Daten, der Zugriff auf das ausgehende Ziel oder die Bereitstellungsdatenbank sowie der 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, richten Sie eine Quellansicht oder eine Umwandlung in der Bereitstellung ein, die eine explizite Ereigniszeile ausgibt. ProcessMind leitet fehlende Aktivitäten nicht aus anderen Zeilen ab.
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; Möchten Sie loslegen?
Überführen Sie Ihre Wartungsdaten mithilfe dieses Templates in konkrete Erkenntnisse. Unser Team unterstützt Sie bei technischen Fragen während der Datenaufbereitung.
Verkürzen Sie Verzögerungen bei der Anlagenwartung und steigern Sie noch heute die Leistung
Verkürzen Sie Ihre Zykluszeit um 30 Prozent und beseitigen Sie verborgene Engpässe.
Keine Kreditkarte erforderlich. In wenigen Minuten eingerichtet.