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 | Descriptionn | ||
|---|---|---|---|
| Activité ActivityName | La tâche spécifique ou l'événement de changement de statut qui s'est produit. | ||
| Descriptionn Cet attribut désigne l'étape du processus en cours d'exécution, telle que « Ordre de travail créé » ou « Sortie de matériel ». 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 est-ce important ? : Il définit la séquence du journal d'événements, permettant la reconstruction du flux de processus et l'analyse des points de blocage. Source des données : Table Hexagon EAM R5EVENTHISTORY, champ EVH_STATUS (associé aux descriptions) ou journaux d'audit Exemples Ordre de travail crééOrdre de travail planifiéOrdre de travail terminéMatériel délivré | |||
| Dernière mise à jour des données LastDataUpdate | Heure de la dernière extraction ou rafraîchissement de l'enregistrement. | ||
| Descriptionn 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 la réactualisation des données et à identifier les problèmes potentiels de latence dans le pipeline de reporting. Pourquoi est-ce important ? : Il donne confiance dans l'actualité de l'analyse et aide au débogage des problèmes de synchronisation des données. Source des données : Heure système lors de l'extraction Exemples 2023-10-25T12:00:00Z2023-10-26T00:00:00Z | |||
| Horodatage EventTimestamp | La date et l'heure auxquelles l'activité s'est produite. | ||
| Descriptionn 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 est-ce important ? : Des horodatages précis sont essentiels pour analyser les délais d'exécution, identifier les retards et calculer la conformité aux SLA. Source des données : Table Hexagon EAM R5EVENTHISTORY, champ EVH_DATE Exemples 2023-10-12T08:30:00Z2023-10-12T14:15:00Z2023-10-13T09:00:00Z | |||
| Ordre de travail de maintenance WorkOrderNumber | L'identifiant unique de l'ordre de travail de maintenance. | ||
| Descriptionn 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 est-ce important ? : Il identifie l'instance spécifique du processus de maintenance, permettant un suivi complet des temps de cycle et des variantes de processus. Source des données : 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. | ||
| Descriptionn 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 est-ce important ? : Il garantit la clarté de la traçabilité des données, notamment lors de la fusion de données provenant de plusieurs instances de maintenance. Source des données : Valeur codée en dur Exemples Hexagon EAMInfor EAMDatastream 7i | |||
| Actif AssetCode | L'identifiant unique de l'équipement ou de l'installation faisant l'objet de la maintenance. | ||
| Descriptionn 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 « équipements les plus problématiques » ou les équipements nécessitant un remplacement. Pourquoi est-ce important ? : Il est indispensable pour le calcul des métriques de fiabilité des actifs et la compréhension de la concentration des efforts de maintenance. Source des données : 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. | ||
| Descriptionn 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 indispensablele pour calculer le respect des SLA et la respect des délais. Pourquoi est-ce important ? : Il est indispensable pour le moniteur de conformité aux SLA des contractants et pour évaluer la précision de la planification. Source des données : 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. | ||
| Descriptionn 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 est-ce important ? : Il prend en charge le tableau de bord de productivité de la main-d'œuvre des techniciens et aide à allouer efficacement les ressources entre les différents corps de métier. Source des données : 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. | ||
| Descriptionn 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 est-ce important ? : C'est la principale source de données pour le tableau de bord de productivité de la main-d'œuvre des techniciens et le KPI d'écart d'heures de travail. Source des données : 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. | ||
| Descriptionn Cet attribut indique l'importance de l'ordre de travail, allant de la routine à l'urgence. Il pilote la planification des ressources et est impératif pour le suivi du respect des SLA et la détection des abus de priorité. Pourquoi est-ce important ? : Il est indispensable pour le tableau de bord d'escalade de priorité et d'audit des ressources de garantir que les tâches critiques sont correctement priorisées. Source des données : 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. | ||
| Descriptionn 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 est-ce important ? : Il prend en charge le tableau de bord d'analyse du ratio de maintenance préventive et aide à identifier les opportunités de réduire le travail réactif. Source des données : Table Hexagon EAM R5EVENTS, champ EVT_TYPE Exemples PPMCOREMGPRJ | |||
| Utilisateur UpdatedBy | L'identifiant de l'utilisateur ayant réalisé l'activité. | ||
| Descriptionn 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 est-ce 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. Source des données : 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. | ||
| Descriptionn 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 est-ce important ? : Il alimente le KPI du taux de conformité du contrôle qualité et prend en charge le tableau de bord de conformité et d'intégrité de la documentation. Source des données : 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. | ||
| Descriptionn Cet attribut capture le coût agrégé de la main-d'œuvre, des matériaux et des services. Il est indispensable 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 est-ce important ? : Il prend en charge le tableau de bord de rapidité de règlement financier et de clôture et la prise de décision basée sur les coûts. Source des données : 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. | ||
| Descriptionn 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 est-ce important ? : Il prend en charge le tableau de bord d'escalade de priorité et d'audit des ressources en corrélant la priorité avec la valeur de l'actif. Source des données : Table Hexagon EAM R5OBJECTS, champ OBJ_CRITICALITY (nécessite une jointure sur EVT_OBJECT) Exemples A - CritiqueB - CritiqueC - SecondaireD - Faible | |||
| Date de création DateCreated | La date à laquelle l'ordre de travail a été initialement généré. | ||
| Descriptionn 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 est-ce important ? : Il est requis pour le tableau de bord de vélocité de la planification de la maintenance et le KPI de l'ancienneté de l'arriéré. Source des données : 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. | ||
| Descriptionn 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 est-ce important ? : Il est nécessaire pour le tableau de bord des délais d'approvisionnement en pièces de rechange. Source des données : Table Hexagon EAM R5REQUISITIONS ou table de transaction liée Exemples 2023-10-012023-10-05 | |||
| Descriptionn de l'ordre de travail WorkOrderDescription | Un court résumé textuel de la tâche de maintenance. | ||
| Descriptionn 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 est-ce important ? : Il fournit le contexte nécessaire à l'examen humain des données de processus. Source des données : 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. | ||
| Descriptionn 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 est-ce important ? : Il prend en charge le tableau de bord d'escalade de priorité et d'audit des ressources ainsi que le KPI du taux d'escalade d'urgence. Source des données : Dérivé de la piste d'audit du champ Priorité Exemples truefaux | |||
| Est préventif IsPreventive | Indicateur signalant si l'ordre de travail est de la maintenance préventive. | ||
| Descriptionn Cet attribut booléen permet un filtrage et une catégorisation faciles des ordres de travail. Il simplifie le calcul du KPI (KPI) du ratio de maintenance préventive en séparant le travail proactif des réparations réactives. Pourquoi est-ce important ? : Il s'agit d'une segmentation clée pour le tableau de bord d'analyse du ratio de maintenance préventive. Source des données : Dérivé du type d'ordre de travail Exemples truefaux | |||
| Est un reprises IsRework | Indicateur signalant si l'ordre de travail a impliqué des tâches techniques répétées. | ||
| Descriptionn 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 est-ce important ? : Il alimente le tableau de bord de reprises technique et de contrôle qualité ainsi que le KPI du taux de reprise de maintenance. Source des données : 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. | ||
| Descriptionn 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 est-ce important ? : C'est la source de données directe pour le KPI du taux de conformité aux SLA. Source des données : Calculé : Date de fin réelle <= Date cible Exemples Conforme au SLADépasséOuvert | |||
Activités de maintenance des actifs
| Activité | Descriptionn | ||
|---|---|---|---|
| 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 est-ce 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. Source des données : Table r5booklabor de Hexagon EAM. Chaque ligne représente une entrée de feuille de temps pour l'ordre de travail (OT). Capture Comptabilisé lors de l'exécution de la transaction INSERT sur r5booklabor Type d'événement explicit | |||
| Matériel délivré | 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 est-ce 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. Source des données : Table r5translines de Hexagon EAM. Type de transaction 'I' (Émission) lié à l'ordre de travail. Capture Comptabilisé 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 est-ce 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. Source des données : Table r5statuslog de Hexagon EAM. Rechercher la transition vers le statut 'A' (Approuvé) ou l'équivalent système. Capture Comptabilisé lors de l'exécution de la transaction sur r5statuslog Type d'événement explicit | |||
| Ordre de travail clôturé | L'ordre de travail est financièrement bloqué et archivé. Aucun coût ou travail supplémentaire ne peut être enregistré. | ||
| Pourquoi est-ce important ? : Fin du processus. Indispensable pour l'analyse des règlements financiers traités et la clôture des coûts finaux. Source des données : Hexagon EAM r5statuslog. Transition vers 'C' (Clôturé) ou 'L' (Verrouillé/Clôturé). Capture Comptabilisé 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 est-ce important ? : Marque le début de l'instance de processus et établit la ligne de base pour mesurer le temps de résolution total. Primordial pour le calcul de l'ancienneté de l'arriéré. Source des données : Table r5events de Hexagon EAM. Comptabilisé lors de l'insertion d'un nouvel enregistrement avec evt_code. Capture Comptabilisé 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 est-ce 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. Source des données : Hexagon EAM r5statuslog. Transition vers 'En cours' (souvent code de statut 'I' ou 'IP'). Capture Comptabilisé 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 est-ce important ? : Jalon clé pour la durée du cycle de vie complet et le temps moyen de réparation. Arrête le chronomètre des temps d'arrêt. Source des données : Hexagon EAM r5statuslog. Transition vers 'C' (Terminé) ou 'F' (Fini). Capture Comptabilisé 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 est-ce important ? : Soutient le KPI (KPI) de taux de conformité du contrôle qualité. Les boucles à partir de cette étape indiquent une reprise technique. Source des données : 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 est-ce 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. Source des données : Table r5requisitions de Hexagon EAM. Lié via req_evt (Code d'ordre de travail). Capture Comptabilisé 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 dans l'ordre de travail est marquée comme terminée. Cela représente une progression granulaire au sein du travail. | ||
| Pourquoi est-ce important ? : Primordial 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. Source des données : Table r5checklist ou r5activities de Hexagon EAM. Changement de statut d'un élément de ligne d'activité/tâche spécifique. Capture Comptabilisé 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 est-ce 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. Source des données : 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 est-ce 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. Source des données : 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 est-ce important ? : Primordial pour le tableau de bord d'escalade de priorité et d'audit des ressources afin d'identifier les abus de priorité ou le glissement de périmètre. Source des données : 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 Comptabilisé 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 EventHorodatage 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 Horodatage 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 EventHorodatage à 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 EventHorodatage 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'