Votre modèle de données de maintenance des actifs
Votre modèle de données de maintenance des actifs
- Champs de données essentiels pour les journaux de maintenance
- Jalons de processus standard et étapes d'ordres de travail
- Logique d'extraction technique pour Hexagon EAM
Attributs de maintenance des actifs
| Nom | Description | ||
|---|---|---|---|
| Activité ActivityName | La tâche spécifique ou l'événement de changement de statut qui s'est produit. | ||
| Description Cet attribut désigne l'étape du processus en cours d'exécution, telle que « Ordre de travail créé » ou « Matériel émis ». Il est dérivé de l'historique des changements de statut ou d'événements transactionnels spécifiques enregistrés pour l'ordre de travail. Pourquoi c'est important Il définit la séquence du journal d'événements, permettant la reconstruction du flux de processus et l'analyse des goulots d'étranglement. Où obtenir Table Hexagon EAM R5EVENTHISTORY, champ EVH_STATUS (mappé aux descriptions) ou journaux d'audit Exemples Ordre de travail crééOrdre de travail planifiéOrdre de travail terminéMatériel émis | |||
| Dernière mise à jour des données LastDataUpdate | L'horodatage de la dernière extraction ou rafraîchissement de l'enregistrement. | ||
| Description Cet attribut suit le moment où les données ont été extraites pour la dernière fois du système source. Il aide les analystes à comprendre la fraîcheur des données et à identifier les problèmes potentiels de latence dans le pipeline de reporting. Pourquoi c'est important Il donne confiance dans l'actualité de l'analyse et aide au débogage des problèmes de synchronisation des données. Où obtenir Heure système lors de l'extraction Exemples 2023-10-25T12:00:00Z2023-10-26T00:00:00Z | |||
| Ordre de travail de maintenance WorkOrderNumber | L'identifiant unique de l'ordre de travail de maintenance. | ||
| Description Cet attribut représente la clé primaire unique pour le dossier de maintenance. Il suit l'ordre de travail de la demande initiale à la planification, l'exécution et la clôture financière finale. Il est utilisé comme identifiant central du dossier pour joindre les journaux d'activités, les heures de travail et la consommation de matériel. Pourquoi c'est important Il identifie l'instance spécifique du processus de maintenance, permettant un suivi de bout en bout des temps de cycle et des variantes de processus. Où obtenir Table Hexagon EAM R5EVENTS, champ EVT_CODE Exemples OT-100234OT-100235OT-100236104592 | |||
| Système source SourceSystem | Le nom du système d'où proviennent les données. | ||
| Description Cet attribut indique le système de référence pour les données. Dans ce contexte, il est codé en dur au nom du système EAM spécifique pour le distinguer des données héritées potentielles ou des systèmes d'entrepreneurs externes. Pourquoi c'est important Il garantit la clarté de la lignée des données, notamment lors de la fusion de données provenant de plusieurs instances de maintenance. Où obtenir Valeur codée en dur Exemples Hexagon EAMInfor EAMDatastream 7i | |||
| Timestamp EventTimestamp | La date et l'heure auxquelles l'activité s'est produite. | ||
| Description Cet attribut enregistre le moment exact où un événement ou un changement de statut a été validé dans le système. Il permet le calcul de la durée entre les activités et le temps de cycle global de l'ordre de travail. Pourquoi c'est important Des horodatages précis sont essentiels pour analyser les délais d'exécution, identifier les retards et calculer la conformité aux SLA. Où obtenir Table Hexagon EAM R5EVENTHISTORY, champ EVH_DATE Exemples 2023-10-12T08:30:00Z2023-10-12T14:15:00Z2023-10-13T09:00:00Z | |||
| Actif AssetCode | L'identifiant unique de l'équipement ou de l'installation en maintenance. | ||
| Description Cet attribut relie l'ordre de travail à un équipement ou un emplacement spécifique. Il permet l'analyse des fréquences de défaillance par actif et aide à identifier les « mauvais acteurs » ou les équipements nécessitant un remplacement. Pourquoi c'est important Il est fondamental pour le calcul des métriques de fiabilité des actifs et la compréhension de la concentration des efforts de maintenance. Où obtenir Table Hexagon EAM R5EVENTS, champ EVT_OBJECT Exemples PUMP-001CVC-204FLOTTE-99CONVOYEUR-A | |||
| Date d'achèvement cible TargetCompletionDate | La date limite prévue pour l'ordre de travail. | ||
| Description Cet attribut représente la date à laquelle les travaux de maintenance devraient être terminés. La comparaison de cette date avec la date d'achèvement réelle est essentielle pour calculer le respect des SLA et la performance à temps. Pourquoi c'est important Il est essentiel pour le moniteur de conformité aux SLA des contractants et pour évaluer la précision de la planification. Où obtenir Table Hexagon EAM R5EVENTS, champ EVT_TARGET Exemples 2023-11-012023-11-152023-12-01 | |||
| Département MaintenanceDepartment | Le service ou centre de travail responsable de l'exécution du travail. | ||
| Description Cet attribut identifie l'équipe ou l'atelier de maintenance assigné à l'ordre de travail, comme Électrique, Mécanique ou Installations. Il permet l'analyse comparative des performances entre différentes équipes techniques. Pourquoi c'est important Il prend en charge le dashboard de productivité de la main-d'œuvre des techniciens et aide à allouer efficacement les ressources entre les différents corps de métier. Où obtenir Table Hexagon EAM R5EVENTS, champ EVT_MRC Exemples Atelier électriqueMaintenance mécaniqueInstallationsService Flotte | |||
| Heures de travail réelles ActualLaborHours | Le nombre total d'heures enregistrées pour l'ordre de travail. | ||
| Description Cet attribut totalise le temps que les techniciens ont enregistré pour l'ordre de travail. Il est utilisé pour mesurer la productivité, calculer les coûts de main-d'œuvre et analyser les écarts par rapport aux heures estimées. Pourquoi c'est important C'est la principale source de données pour le dashboard de productivité de la main-d'œuvre des techniciens et le KPI d'écart d'heures de travail. Où obtenir Table Hexagon EAM R5BOOKEDHOURS, champ BOO_HOURS (Sommé par Ordre de Travail) Exemples 2.54.012.00.5 | |||
| Priorité PriorityCode | Le niveau d'urgence assigné à l'ordre de travail. | ||
| Description Cet attribut indique l'importance de l'ordre de travail, allant de la routine à l'urgence. Il pilote la planification des ressources et est crucial pour le suivi du respect des SLA et la détection des abus de priorité. Pourquoi c'est important Il est essentiel pour le dashboard d'escalade de priorité et d'audit des ressources de garantir que les tâches critiques sont correctement priorisées. Où obtenir Table Hexagon EAM R5EVENTS, champ EVT_PRIORITY Exemples CritiqueÉlevéMoyenFaible | |||
| Type d'ordre de travail WorkOrderType | Catégorise l'ordre de travail comme préventif, correctif ou d'urgence. | ||
| Description Cet attribut classifie la nature du travail de maintenance. Il est utilisé pour analyser le ratio de maintenance préventive planifiée par rapport aux réparations d'urgence réactives, ce qui est un indicateur clé de la santé des actifs et de la maturité de la gestion. Pourquoi c'est important Il prend en charge le dashboard d'analyse du ratio de maintenance préventive et aide à identifier les opportunités de réduire le travail réactif. Où obtenir Table Hexagon EAM R5EVENTS, champ EVT_TYPE Exemples PPMCOREMGPRJ | |||
| Utilisateur UpdatedBy | L'identifiant de l'utilisateur ayant réalisé l'activité. | ||
| Description Cet attribut capture l'ID de connexion de l'individu responsable du déclenchement du changement de statut ou de la mise à jour. Il est utilisé pour analyser la charge de travail de l'équipe, identifier les besoins en formation et auditer la conformité des processus. Pourquoi c'est important Il permet l'analyse du comportement des utilisateurs et de l'utilisation des ressources tout au long du cycle de vie de la maintenance. Où obtenir Table Hexagon EAM R5EVENTHISTORY, champ EVH_USER Exemples JSMITHADAVISSYSTEMMGR_USR | |||
| Contrôle qualité réussi QualityControlPassed | Indicateur signalant si l'étape de contrôle qualité a été documentée. | ||
| Description Cet attribut booléen vérifie si une activité de contrôle qualité spécifique ou un élément de liste de contrôle a été marqué comme terminé. Il assure la conformité aux réglementations de sécurité et aux normes internes. Pourquoi c'est important Il alimente le KPI du taux de conformité du contrôle qualité et prend en charge le dashboard de conformité et d'intégrité de la documentation. Où obtenir Dérivé des tables de liste de contrôle ou de l'historique d'activité Exemples truefaux | |||
| Coût réel total TotalActualCost | Le coût financier total enregistré pour l'ordre de travail. | ||
| Description Cet attribut capture le coût agrégé de la main-d'œuvre, des matériaux et des services. Il est essentiel pour l'analyse des règlements financiers et la compréhension de l'impact des coûts de la maintenance d'urgence par rapport à la maintenance préventive. Pourquoi c'est important Il prend en charge le dashboard de rapidité de règlement financier et de clôture et la prise de décision basée sur les coûts. Où obtenir Table Hexagon EAM R5EVENTS, champ EVT_ACTCOST (ou colonne récapitulative similaire) Exemples 150.002500.5075.25 | |||
| Criticité de l'actif AssetCriticality | Un score indiquant l'importance opérationnelle de l'actif. | ||
| Description Cet attribut indique la criticité de l'actif pour les opérations commerciales. Il est souvent utilisé pour valider si les ordres de travail de haute priorité sont véritablement associés à des équipements critiques, soulignant ainsi les abus potentiels de processus. Pourquoi c'est important Il prend en charge le dashboard d'escalade de priorité et d'audit des ressources en corrélant la priorité avec la valeur de l'actif. Où obtenir Table Hexagon EAM R5OBJECTS, champ OBJ_CRITICALITY (nécessite une jointure sur EVT_OBJECT) Exemples A - VitalB - CritiqueC - SecondaireD - Faible | |||
| Date de création DateCreated | La date à laquelle l'ordre de travail a été initialement généré. | ||
| Description Cet attribut marque le début du cycle de vie de l'ordre de travail. Il est la base pour le calcul du Temps Moyen de Planification et la détermination de l'âge des éléments en attente. Pourquoi c'est important Il est requis pour le dashboard de vélocité de la planification de la maintenance et le KPI de l'ancienneté de l'arriéré. Où obtenir Table Hexagon EAM R5EVENTS, champ EVT_CREATED Exemples 2023-09-012023-09-15 | |||
| Date de demande de matériel MaterialRequisitionDate | La date à laquelle les pièces de rechange ont été demandées. | ||
| Description Cet attribut capture l'horodatage de la soumission de la demande de matériel au magasin ou au service des achats. L'analyse du temps écoulé entre cette date et l'« Émission du matériel » révèle l'efficacité de la chaîne d'approvisionnement. Pourquoi c'est important Il est nécessaire pour le dashboard des délais d'approvisionnement en pièces de rechange. Où obtenir Table Hexagon EAM R5REQUISITIONS ou table de transaction liée Exemples 2023-10-012023-10-05 | |||
| Description de l'ordre de travail WorkOrderDescription | Un court résumé textuel de la tâche de maintenance. | ||
| Description Cet attribut contient la ligne d'objet ou une courte description du problème. Il fournit un contexte aux analystes lorsqu'ils approfondissent des cas problématiques spécifiques ou identifient des schémas dans du texte non structuré. Pourquoi c'est important Il fournit le contexte nécessaire à l'examen humain des données de processus. Où obtenir Table Hexagon EAM R5EVENTS, champ EVT_DESC Exemples Réparer le joint de pompe qui fuitInspection mensuelle CVCRemplacer la courroie transporteuse | |||
| Escalade d'urgence EmergencyEscalationFlag | Indicateur signalant si la priorité a été élevée à Urgence après la création. | ||
| Description Cet attribut booléen identifie les ordres de travail qui ont commencé avec une priorité inférieure mais ont ensuite été promus au statut d'Urgence. Les occurrences fréquentes peuvent indiquer un mauvais triage initial ou une manipulation du système pour obtenir un service plus rapide. Pourquoi c'est important Il prend en charge le dashboard d'escalade de priorité et d'audit des ressources ainsi que le KPI du taux d'escalade d'urgence. Où obtenir Dérivé de la piste d'audit du champ Priorité Exemples truefaux | |||
| Est préventive IsPreventive | Indicateur signalant si l'ordre de travail est de la maintenance préventive. | ||
| Description Cet attribut booléen permet un filtrage et une catégorisation faciles des ordres de travail. Il simplifie le calcul de l'ICP (KPI) du ratio de maintenance préventive en séparant le travail proactif des réparations réactives. Pourquoi c'est important Il s'agit d'une segmentation fondamentale pour le dashboard d'analyse du ratio de maintenance préventive. Où obtenir Dérivé du type d'ordre de travail Exemples truefaux | |||
| Est un retravail IsRework | Indicateur signalant si l'ordre de travail a impliqué des tâches techniques répétées. | ||
| Description Cet attribut calculé identifie les cas où le processus revient d'un contrôle qualité ou d'un statut d'achèvement à un statut de travail actif. Il aide à identifier les problèmes de qualité et les lacunes en matière de formation. Pourquoi c'est important Il alimente le dashboard de retravail technique et de contrôle qualité ainsi que le KPI du taux de retravail de maintenance. Où obtenir Calculé en fonction des répétitions d'activités Exemples truefaux | |||
| État du SLA SLAState | Indique si l'ordre de travail a respecté son accord de niveau de service. | ||
| Description Cet attribut calculé compare la date d'achèvement réelle avec la date d'achèvement cible. Il catégorise le dossier comme « Conforme SLA » ou « En infraction » pour simplifier le reporting sur la performance des entrepreneurs et interne. Pourquoi c'est important C'est la source de données directe pour le KPI du taux de conformité aux SLA. Où obtenir Calculé : Date de fin réelle <= Date cible Exemples Conforme au SLADépasséOuvert | |||
Activités de maintenance des actifs
| Activité | Description | ||
|---|---|---|---|
| Heures de travail enregistrées | Un technicien enregistre les heures travaillées pour l'ordre de travail. Cette activité peut se produire plusieurs fois par cas. | ||
| Pourquoi c'est important Base pour les dashboards d'écart d'heures de travail et de productivité de la main-d'œuvre des techniciens. Révèle l'effort réel par rapport au plan. Où obtenir Table r5booklabor de Hexagon EAM. Chaque ligne représente une entrée de feuille de temps pour l'ordre de travail (OT). Capture Enregistré lors de l'exécution de la transaction INSERT sur r5booklabor Type d'événement explicit | |||
| Matériel émis | Les pièces de rechange sont physiquement émises du magasin et imputées à l'ordre de travail. Cela représente la consommation de matériel. | ||
| Pourquoi c'est important Point final du délai d'approvisionnement en matériaux. Identifie les retards où le travail commence mais s'arrête en raison de pièces manquantes. Où obtenir Table r5translines de Hexagon EAM. Type de transaction 'I' (Émission) lié à l'ordre de travail. Capture Enregistré lors de l'exécution de la transaction INSERT sur r5translines Type d'événement explicit | |||
| Ordre de travail approuvé | Le changement de statut indiquant que l'ordre de travail a passé l'examen de planification et d'estimation. Il signifie que le travail est autorisé à procéder. | ||
| Pourquoi c'est important Soutient l'analyse de la vélocité de la planification de la maintenance en marquant la fin de la phase de planification. Vérification de la conformité de la séparation des tâches. Où obtenir Table r5statuslog de Hexagon EAM. Rechercher la transition vers le statut 'A' (Approuvé) ou l'équivalent système. Capture Enregistré lors de l'exécution de la transaction sur r5statuslog Type d'événement explicit | |||
| Ordre de travail clos | L'ordre de travail est financièrement bloqué et archivé. Aucun coût ou travail supplémentaire ne peut être enregistré. | ||
| Pourquoi c'est important Fin du processus. Crucial pour l'analyse des règlements financiers traités et la clôture des coûts finaux. Où obtenir Hexagon EAM r5statuslog. Transition vers 'C' (Clôturé) ou 'L' (Verrouillé/Clôturé). Capture Enregistré lors de l'exécution de la transaction sur r5statuslog Type d'événement explicit | |||
| Ordre de travail créé | La création initiale de l'enregistrement de l'ordre de travail de maintenance dans le système. Cet événement établit le dossier et capture l'horodatage initial pour l'ensemble du cycle de vie de la maintenance. | ||
| Pourquoi c'est important Marque le début de l'instance de processus et établit la ligne de base pour mesurer le temps de résolution total. Essentiel pour le calcul de l'ancienneté de l'arriéré. Où obtenir Table r5events de Hexagon EAM. Enregistré lors de l'insertion d'un nouvel enregistrement avec evt_code. Capture Enregistré lors de l'exécution de la transaction INSERT sur r5events Type d'événement explicit | |||
| Ordre de travail démarré | Les techniciens ont commencé le travail physique réel sur l'actif. Souvent marqué par un changement de statut à "En cours" ou le premier horodatage de saisie des heures de travail. | ||
| Pourquoi c'est important Point final pour le calcul de l'arriéré et point de départ pour le temps d'intervention. Vital pour le taux de conformité aux SLA. Où obtenir Hexagon EAM r5statuslog. Transition vers 'En cours' (souvent code de statut 'I' ou 'IP'). Capture Enregistré lors de l'exécution de la transaction sur r5statuslog Type d'événement explicit | |||
| Ordre de travail terminé | Le travail technique est terminé et le technicien a marqué la tâche comme étant achevée. L'actif est remis en service. | ||
| Pourquoi c'est important Jalon clé pour la durée du cycle de vie de bout en bout et le temps moyen de réparation. Arrête le chronomètre des temps d'arrêt. Où obtenir Hexagon EAM r5statuslog. Transition vers 'C' (Terminé) ou 'F' (Fini). Capture Enregistré lors de l'exécution de la transaction sur r5statuslog Type d'événement explicit | |||
| Contrôle qualité réussi | Un superviseur ou un inspecteur examine le travail terminé et approuve la qualité. Cette étape valide la réparation avant la clôture. | ||
| Pourquoi c'est important Soutient l'ICP (KPI) de taux de conformité du contrôle qualité. Les boucles à partir de cette étape indiquent une reprise technique. Où obtenir Hexagon EAM r5statuslog (Transition vers 'Révision' ou 'QC') ou r5audittrail sur une validation UDF spécifique. Capture Comparer le champ de statut avant/après Type d'événement inferred | |||
| Demande de matériel créée | Une demande de pièces de rechange ou de matériaux est liée à l'ordre de travail. Cela initie le sous-processus de la chaîne d'approvisionnement. | ||
| Pourquoi c'est important Point de départ pour les délais d'approvisionnement des pièces de rechange. Des volumes élevés ici indiquent une dépendance à la disponibilité des stocks. Où obtenir Table r5requisitions de Hexagon EAM. Lié via req_evt (Code d'ordre de travail). Capture Enregistré lors de l'exécution de la transaction INSERT sur r5requisitions Type d'événement explicit | |||
| Élément de la liste de contrôle vérifié | Une tâche ou une étape d'inspection spécifique au sein de l'ordre de travail est marquée comme terminée. Cela représente une progression granulaire au sein du travail. | ||
| Pourquoi c'est important Essentiel pour la conformité et l'intégrité de la documentation. Prouve que les contrôles de sécurité ont été enregistrés de manière systémique. Où obtenir Table r5checklist ou r5activities de Hexagon EAM. Changement de statut d'un élément de ligne d'activité/tâche spécifique. Capture Enregistré lors de l'exécution de la transaction UPDATE sur r5checklist Type d'événement explicit | |||
| Ordre de travail planifié | L'ordre de travail se voit attribuer une date de début prévue ou une ressource spécifique. Cela déplace l'ordre du carnet de commandes vers le calendrier actif. | ||
| Pourquoi c'est important Critique pour l'analyse de la productivité de la main-d'œuvre des techniciens et la compréhension de l'efficacité de l'allocation des ressources. Où obtenir Table r5events de Hexagon EAM (mise à jour evt_schedstart) ou r5statuslog (transition vers 'S' - Planifié). Capture Comparer le champ de statut avant/après ou vérifier la mise à jour evt_schedstart Type d'événement inferred | |||
| Ordre de travail validé | Approbation administrative finale généralement requise pour la conformité ou le paiement du contractant. Confirme que toutes les données sont exactes. | ||
| Pourquoi c'est important Suivi pour l'analyse du cycle d'approbation des ordres de travail. Les retards à cette étape affectent la vitesse de clôture financière. Où obtenir Hexagon EAM r5statuslog (Transition vers 'Signé') ou journal de capture de signature électronique. Capture Comparer le champ de statut avant/après Type d'événement inferred | |||
| Priorité Mise à Jour | Un changement est survenu au niveau de priorité de l'ordre de travail après sa création initiale. Ceci capture l'horodatage et la nouvelle valeur de priorité. | ||
| Pourquoi c'est important Essentiel pour le dashboard d'escalade de priorité et d'audit des ressources afin d'identifier les abus de priorité ou le glissement de périmètre. Où obtenir Hexagon EAM r5audittrail (si l'audit est activé) ou déduit des snapshots. Souvent dérivé du journal d'audit sur le champ evt_priority. Capture Enregistré lors de l'exécution de la transaction UPDATE sur evt_priority Type d'événement explicit | |||
Guides d'extraction
Étapes
- Connectez-vous à l'application Hexagon EAM avec un compte utilisateur disposant des privilèges d'auteur de rapports avancés.
- Naviguez vers le module Rapports, généralement situé sous le menu Administration ou Rapports, et lancez l'interface de rapports avancés (souvent Cognos ou un constructeur de rapports SQL intégré).
- Initialisez un nouvel assistant de création de rapport et sélectionnez 'SQL' ou 'SQL libre' comme type de source de données. Cela permet d'interroger directement la base de données plutôt que d'utiliser le modèle d'objet métier standard.
- Copiez le script SQL fourni dans la section Requête ci-dessous et collez-le dans la fenêtre de définition du jeu de données.
- Remplacez les valeurs de substitution (telles que [Votre code d'organisation] et les plages de dates) par des valeurs spécifiques pertinentes pour votre environnement.
- Validez la syntaxe de la requête dans l'éditeur pour vous assurer que la plateforme de base de données (Oracle ou SQL Server) accepte les déclarations d'union.
- Mappez les colonnes résultantes à la liste de la mise en page du rapport, en vous assurant que WorkOrderNumber, ActivityName et EventTimestamp sont clairement visibles.
- Configurez le rapport pour qu'il exporte spécifiquement au format CSV ou Excel afin d'assurer une structure tabulaire sans cellules fusionnées ni en-têtes formatés.
- Exécutez le rapport pour une période de validation (par exemple, les 100 derniers ordres de travail) afin de vérifier la structure des données.
- Une fois vérifié, planifiez l'exécution du rapport sur une base récurrente ou exécutez-le pour la fenêtre de temps d'extraction complète.
- Téléchargez le fichier de sortie et vérifiez les formats de date. Assurez-vous que les horodatages incluent les secondes si possible pour un ordre précis.
- Importez le fichier CSV résultant dans ProcessMind, en mappant la colonne SourceSystem comme attribut de cas et ActivityName comme classificateur d'activité.
Configuration
- Plage de dates : Il est recommandé de filtrer par EVT_DATE (Date de création) pour une fenêtre glissante de 6 à 12 mois afin de maintenir les performances de la requête.
- Filtre d'organisation : Hexagon EAM est souvent multi-organisation. Assurez-vous que la requête inclut un filtre pour votre code d'organisation spécifique afin d'éviter la pollution des données provenant d'autres unités commerciales.
- Syntaxe de la base de données : La requête ci-dessous utilise le SQL standard ANSI lorsque c'est possible, mais Hexagon EAM fonctionne généralement sur Oracle ou SQL Server. De légers ajustements des fonctions de date (par exemple, SYSDATE vs GETDATE) peuvent être nécessaires.
- Configuration du statut : Le mappage des codes de statut (par exemple, 'A', 'C', 'R') aux noms d'activité (par exemple, 'Ordre de travail approuvé') doit correspondre à la configuration de statut spécifique de votre système.
- Autorisations : Le compte utilisateur exécutant le rapport nécessite un accès en lecture aux tables R5EVENTS, R5EVENTSTATUS, R5BOOKEDHOURS, R5TRANSACTIONS et R5AUDITVALUES.
a Exemple de requête config
/* 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' Étapes
- Identifier la connexion à la base de données : Assurez-vous de disposer des identifiants d'accès en lecture (généralement un compte de service) pour la base de données dorsale Hexagon EAM Oracle ou SQL Server.
- Localiser les tables principales : Confirmez l'accès aux tables R5EVENTS (En-têtes d'ordres de travail), R5STATUS (Historique des statuts), R5BOOKEDHOURS (Main-d'œuvre), R5TRANSACTIONS (Matériaux) et R5AUDITVALUES (Journal d'audit).
- Mapper les codes de statut : Hexagon EAM utilise des codes de statut configurables (par exemple, A, C, O, R). Passez en revue la configuration de votre système (Écran : Administration -> Codes) pour mapper vos codes spécifiques de 1 ou 2 caractères aux activités Approuvé, Planifié, Commencé, Terminé, QC Réussi, Signé et Clôturé.
- Configurer la requête : Ouvrez le script SQL fourni ci-dessous. Remplacez les codes de statut de substitution (par exemple, 'APPR', 'SCHD', 'COMP') par les codes réels de votre système.
- Définir la plage de dates : Mettez à jour les clauses WHERE pour filtrer par EVT_DATE ou TRN_DATE afin de sélectionner une fenêtre temporelle spécifique, généralement les 12 derniers mois, pour garantir les performances de la requête.
- Exécuter l'extraction : Exécutez la requête dans votre client SQL (SQL Developer, SSMS ou Toad).
- Vérifier les données d'audit : Si l'activité 'Priorité mise à jour' ne renvoie aucune ligne, vérifiez si la fonctionnalité d'audit est activée pour la table R5EVENTS dans les paramètres de votre système EAM.
- Valider les données de la liste de contrôle : Assurez-vous que R5CHECKLISTVALUES est la bonne table pour votre version ; les versions plus anciennes peuvent utiliser R5ACTIVITIES pour l'achèvement des tâches.
- Exporter les données : Enregistrez l'ensemble de résultats sous forme de fichier CSV ou Parquet. Assurez-vous que la colonne Timestamp est formatée en ISO 8601 (AAAA-MM-JJ HH:MM:SS) pour éviter les erreurs d'analyse.
- Importer dans ProcessMind : Téléchargez le fichier plat dans l'interface ProcessMind, en mappant WorkOrderNumber à ID de Cas, ActivityName à Activité et EventTimestamp à Horodatage.
Configuration
- Filtre de fenêtre temporelle : La requête sélectionne actuellement toutes les données. Il est fortement recommandé d'ajouter un filtre tel que WHERE EVT_DATE >= SYSDATE - 365 (Oracle) ou GetDate() - 365 (SQL Server) dans la CTE de base ou dans chaque bloc SELECT.
- Mappage des codes de statut : Vous devez remplacer les littéraux de chaîne dans le SQL (par exemple, 'APPR', 'COMP', 'QC') par les codes réels définis dans votre ensemble R5STATUS.
- Configuration de l'audit : L'extraction de 'Priorité mise à jour' repose sur la table R5AUDITVALUES. Si l'audit est désactivé pour la colonne EVT_PRIORITY, cette activité spécifique sera manquante.
- Organisation/Locataire : Si votre instance EAM héberge plusieurs organisations, ajoutez un filtre pour EVT_ORG ou EVT_MRC (Département) afin d'éviter le mélange des données.
- Langue : La requête suppose des en-têtes de colonne standard en anglais. Si votre base de données utilise des noms de colonnes localisés, ajustez-les en conséquence.
a Exemple de requête 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 Étapes
- Connectez-vous à l'application Hexagon EAM avec un compte utilisateur disposant des privilèges d'auteur de rapports avancés.
- Naviguez vers le module Rapports, généralement situé sous le menu Administration ou Rapports, et lancez l'interface de rapports avancés (souvent Cognos ou un constructeur de rapports SQL intégré).
- Initialisez un nouvel assistant de création de rapport et sélectionnez 'SQL' ou 'SQL libre' comme type de source de données. Cela permet d'interroger directement la base de données plutôt que d'utiliser le modèle d'objet métier standard.
- Copiez le script SQL fourni dans la section Requête ci-dessous et collez-le dans la fenêtre de définition du jeu de données.
- Remplacez les valeurs de substitution (telles que [Votre code d'organisation] et les plages de dates) par des valeurs spécifiques pertinentes pour votre environnement.
- Validez la syntaxe de la requête dans l'éditeur pour vous assurer que la plateforme de base de données (Oracle ou SQL Server) accepte les déclarations d'union.
- Mappez les colonnes résultantes à la liste de la mise en page du rapport, en vous assurant que WorkOrderNumber, ActivityName et EventTimestamp sont clairement visibles.
- Configurez le rapport pour qu'il exporte spécifiquement au format CSV ou Excel afin d'assurer une structure tabulaire sans cellules fusionnées ni en-têtes formatés.
- Exécutez le rapport pour une période de validation (par exemple, les 100 derniers ordres de travail) afin de vérifier la structure des données.
- Une fois vérifié, planifiez l'exécution du rapport sur une base récurrente ou exécutez-le pour la fenêtre de temps d'extraction complète.
- Téléchargez le fichier de sortie et vérifiez les formats de date. Assurez-vous que les horodatages incluent les secondes si possible pour un ordre précis.
- Importez le fichier CSV résultant dans ProcessMind, en mappant la colonne SourceSystem comme attribut de cas et ActivityName comme classificateur d'activité.
Configuration
- Plage de dates : Il est recommandé de filtrer par EVT_DATE (Date de création) pour une fenêtre glissante de 6 à 12 mois afin de maintenir les performances de la requête.
- Filtre d'organisation : Hexagon EAM est souvent multi-organisation. Assurez-vous que la requête inclut un filtre pour votre code d'organisation spécifique afin d'éviter la pollution des données provenant d'autres unités commerciales.
- Syntaxe de la base de données : La requête ci-dessous utilise le SQL standard ANSI lorsque c'est possible, mais Hexagon EAM fonctionne généralement sur Oracle ou SQL Server. De légers ajustements des fonctions de date (par exemple, SYSDATE vs GETDATE) peuvent être nécessaires.
- Configuration du statut : Le mappage des codes de statut (par exemple, 'A', 'C', 'R') aux noms d'activité (par exemple, 'Ordre de travail approuvé') doit correspondre à la configuration de statut spécifique de votre système.
- Autorisations : Le compte utilisateur exécutant le rapport nécessite un accès en lecture aux tables R5EVENTS, R5EVENTSTATUS, R5BOOKEDHOURS, R5TRANSACTIONS et R5AUDITVALUES.
a Exemple de requête config
/* 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'