Votre modèle de données pour la maintenance des actifs
Votre modèle de données pour la maintenance des actifs
- Champs de données essentiels des journaux de maintenance
- Étapes clés du processus et étapes des ordres de travail
- Logique technique d’extraction pour Hexagon EAM
Attributs de maintenance des actifs
| Nom | Description | ||
|---|---|---|---|
| Activité ActivityName | La tâche précise ou le changement de statut qui s’est produit. | ||
| Description Cet attribut désigne l’étape du processus en cours, par exemple « Ordre de travail créé » ou « Matériel délivré ». Il est établi à partir de l’historique des changements de statut ou des événements transactionnels associés à l’ordre de travail. Pourquoi est-ce important ? Il définit la séquence du journal d’événements et permet de reconstituer le flux du processus et d’analyser les goulots d’étranglement. Où trouver ces données Table R5EVENTHISTORY de Hexagon EAM, champ EVH_STATUS (associé à des 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 | Horodatage de la dernière extraction ou actualisation de l’enregistrement. | ||
| Description Cet attribut indique la date de la dernière extraction des données depuis le système source. Il aide les analystes à évaluer leur fraîcheur et à repérer d’éventuels retards dans le processus de production des rapports. Pourquoi est-ce important ? Il permet de vérifier l’actualité de l’analyse et facilite le diagnostic des problèmes de synchronisation des données. Où trouver ces données Heure système au moment 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. | ||
| 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 de calculer la durée entre les activités et le temps de cycle global de l’ordre de travail. Pourquoi est-ce important ? Des horodatages exacts sont indispensables pour analyser les délais, repérer les retards et calculer le respect des SLA. Où trouver ces données Table R5EVENTHISTORY de Hexagon EAM, champ EVH_DATE Exemples 2023-10-12T08:30:00Z2023-10-12T14:15:00Z2023-10-13T09:00:00Z | |||
| Ordre de travail de maintenance WorkOrderNumber | Identifiant unique de l’ordre de travail de maintenance. | ||
| Description Cet attribut correspond à la clé primaire unique du cas de maintenance. Il suit l’ordre de travail depuis la demande initiale jusqu’à la planification, l’exécution et la clôture financière définitive. Il sert d’identifiant central pour relier les journaux d’activité, les heures de travail et la consommation de matériel. Pourquoi est-ce important ? Il identifie une instance précise du processus de maintenance et permet de suivre les temps de cycle de bout en bout ainsi que les variantes du processus. Où trouver ces données Table R5EVENTS de Hexagon EAM, champ EVT_CODE Exemples WO-100234WO-100235WO-100236104592 | |||
| Système source SourceSystem | Nom du système d’origine des données. | ||
| Description Cet attribut indique le système de référence des données. Dans ce contexte, il est défini en dur avec le nom du système EAM concerné afin de le distinguer d’éventuelles données historiques ou de systèmes externes de prestataires. Pourquoi est-ce important ? Il garantit la traçabilité de l’origine des données, notamment lors de la fusion de données issues de plusieurs instances de maintenance. Où trouver ces données Valeur définie en dur Exemples Hexagon EAMInfor EAMDatastream 7i | |||
| Date d’achèvement prévue TargetCompletionDate | L’échéance prévue pour l’ordre de travail. | ||
| Description Cet attribut indique la date à laquelle les travaux de maintenance doivent être terminés. La comparaison avec la date réelle d’achèvement permet principalement de calculer le respect des SLA et le taux de réalisation dans les délais. Pourquoi est-ce important ? Il est essentiel au suivi du respect des SLA des prestataires et à l’évaluation de la précision de la planification. Où trouver ces données Table Hexagon EAM R5EVENTS, champ EVT_TARGET Exemples 2023-11-012023-11-152023-12-01 | |||
| Équipement AssetCode | L’identifiant unique de l’équipement ou de l’installation faisant l’objet de la maintenance. | ||
| Description Cet attribut associe l’ordre de travail à un équipement ou à un emplacement précis. Il permet d’analyser la fréquence des pannes par équipement et de repérer ceux qui posent régulièrement problème ou doivent être remplacés. Pourquoi est-ce important ? Il est indispensable pour calculer les indicateurs de fiabilité des équipements et comprendre où se concentrent les efforts de maintenance. Où trouver ces données Table Hexagon EAM R5EVENTS, champ EVT_OBJECT Exemples PUMP-001HVAC-204FLEET-99CONVEYOR-A | |||
| Heures de main-d’œuvre réelles ActualLaborHours | Le nombre total d’heures imputées à l’ordre de travail. | ||
| Description Cet attribut totalise le temps que les techniciens ont consacré à l’ordre de travail. Il sert à mesurer la productivité, à calculer les coûts de main-d’œuvre et à comparer les heures réelles aux heures estimées. Pourquoi est-ce important ? Il constitue la principale source de données du Dashboard de productivité de la main-d’œuvre technique et de l’indicateur d’écart sur les heures de main-d’œuvre. Où trouver ces données Table Hexagon EAM R5BOOKEDHOURS, champ BOO_HOURS (total par ordre de travail) Exemples 2.54.012.00.5 | |||
| Priorité PriorityCode | Niveau d’urgence attribué à l’ordre de travail. | ||
| Description Cet attribut indique l’importance de l’ordre de travail, de l’intervention courante à l’urgence. Il détermine la planification des ressources et joue un rôle essentiel dans le suivi du respect des SLA et la détection des abus de priorité. Pourquoi est-ce important ? Le Dashboard de suivi des escalades de priorité et d’audit des ressources permet de s’assurer que les tâches critiques sont correctement priorisées. Où trouver ces données Table Hexagon EAM R5EVENTS, champ EVT_PRIORITY Exemples CritiqueÉlevéeMoyenneFaible | |||
| Service MaintenanceDepartment | Le service ou le centre de travail chargé d’effectuer les travaux. | ||
| Description Cet attribut désigne l’équipe ou l’atelier de maintenance affecté à l’ordre de travail, par exemple l’équipe électrique, mécanique ou des installations. Il permet de comparer les performances des différentes équipes techniques. Pourquoi est-ce important ? Il alimente le Dashboard de productivité de la main-d’œuvre technique et aide à répartir efficacement les ressources entre les différents corps de métier. Où trouver ces données Table Hexagon EAM R5EVENTS, champ EVT_MRC Exemples Atelier électriqueMaintenance mécaniqueInstallationsService de flotte | |||
| Type d’ordre de travail WorkOrderType | Classe l’ordre de travail comme préventif, correctif ou d’urgence. | ||
| Description Cet attribut classe la nature des travaux de maintenance. Il sert à analyser la proportion de maintenance préventive planifiée par rapport aux réparations d’urgence réactives, un indicateur clé de l’état des actifs et de la maturité de leur gestion. Pourquoi est-ce important ? Il alimente le Dashboard d’analyse du taux de maintenance préventive et aide à repérer les possibilités de réduire les interventions réactives. Où trouver ces données Table R5EVENTS de Hexagon EAM, champ EVT_TYPE Exemples PPMCOREMGPRJ | |||
| Utilisateur UpdatedBy | L’identifiant de l’utilisateur ayant effectué l’activité. | ||
| Description Cet attribut enregistre l’identifiant de connexion de la personne à l’origine du changement de statut ou de la mise à jour. Il sert à analyser la charge de travail des équipes, à repérer les besoins de formation et à vérifier la conformité du processus. Pourquoi est-ce important ? Il permet d’analyser le comportement des utilisateurs et l’utilisation des ressources tout au long du cycle de maintenance. Où trouver ces données Table Hexagon EAM R5EVENTHISTORY, champ EVH_USER Exemples JSMITHADAVISSYSTEMMGR_USR | |||
| Contrôle qualité réussi QualityControlPassed | Indique 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é ou un élément de liste de contrôle a été marqué comme terminé. Il contribue au respect des règles de sécurité et des normes internes. Pourquoi est-ce important ? Il alimente l’indicateur de taux de conformité du contrôle qualité et le Dashboard de conformité et d’intégrité de la documentation. Où trouver ces données Dérivé des tables de listes de contrôle ou de l’historique des activités Exemples truefalse | |||
| Coût réel total TotalActualCost | Le coût financier total enregistré pour l’ordre de travail. | ||
| Description Cet attribut regroupe les coûts de main-d’œuvre, de matériel et de services. Il est essentiel pour analyser le règlement financier et comprendre l’incidence des coûts de la maintenance d’urgence par rapport à la maintenance préventive. Pourquoi est-ce important ? Il alimente le Dashboard de règlement financier et de rapidité de clôture, et facilite les décisions fondées sur les coûts. Où trouver ces données Table Hexagon EAM R5EVENTS, champ EVT_ACTCOST (ou colonne récapitulative équivalente) Exemples 150.002500.5075.25 | |||
| Criticité de l’équipement AssetCriticality | Un score qui indique l’importance opérationnelle de l’équipement. | ||
| Description Cet attribut indique l’importance de l’équipement pour les activités de l’entreprise. Il permet notamment de vérifier si les ordres de travail hautement prioritaires concernent réellement des équipements critiques et de repérer d’éventuels abus du processus. Pourquoi est-ce important ? Il alimente le Dashboard de suivi des escalades de priorité et d’audit des ressources en mettant en relation la priorité et la valeur de l’équipement. Où trouver ces données Table Hexagon EAM R5OBJECTS, champ OBJ_CRITICALITY (jointure requise sur EVT_OBJECT) Exemples A - VitalB - CritiqueC - SecondaireD - Faible | |||
| Date de création DateCreated | La date de création initiale de l’ordre de travail. | ||
| Description Cet attribut marque le début du cycle de vie de l’ordre de travail. Il sert de référence pour calculer le délai moyen de planification et déterminer l’ancienneté des éléments en attente. Pourquoi est-ce important ? Il est nécessaire au Dashboard de rapidité de planification de la maintenance et à l’indicateur d’ancienneté du retard. Où trouver ces 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. | ||
| Description Cet attribut enregistre la date et l’heure d’envoi de la demande de matériel au magasin ou au service des achats. Le délai entre cette date et la sortie du matériel permet d’évaluer l’efficacité de la chaîne d’approvisionnement. Pourquoi est-ce important ? Il est nécessaire au Dashboard des délais d’approvisionnement en pièces de rechange. Où trouver ces données Table Hexagon EAM R5REQUISITIONS ou table de transactions associée Exemples 2023-10-012023-10-05 | |||
| Description de l’ordre de travail WorkOrderDescription | Un bref résumé textuel de la tâche de maintenance. | ||
| Description Cet attribut contient l’objet ou une courte description du problème. Il donne aux analystes le contexte nécessaire pour examiner des cas problématiques précis ou repérer des tendances dans les textes non structurés. Pourquoi est-ce important ? Il fournit le contexte nécessaire à l’examen des données de processus par une personne. Où trouver ces données Table Hexagon EAM R5EVENTS, champ EVT_DESC Exemples Réparer le joint de pompe qui fuitInspection mensuelle du système CVCRemplacer la bande transporteuse | |||
| Escalade d’urgence EmergencyEscalationFlag | Indique si la priorité a été relevée au niveau Urgence après la création. | ||
| Description Cet attribut booléen repère les ordres de travail créés avec une priorité inférieure, puis reclassés en urgence. Des occurrences fréquentes peuvent révéler un tri initial insuffisant ou des tentatives de contourner le système pour obtenir un service plus rapide. Pourquoi est-ce important ? Il alimente le Dashboard de suivi des escalades de priorité et d’audit des ressources, ainsi que l’indicateur de taux d’escalade en urgence. Où trouver ces données Dérivé de l’historique d’audit du champ Priority Exemples truefalse | |||
| Maintenance préventive IsPreventive | Indique si l’ordre de travail concerne une maintenance préventive. | ||
| Description Cet attribut booléen facilite le filtrage et la catégorisation des ordres de travail. Il simplifie le calcul de l’indicateur de part de la maintenance préventive en distinguant les interventions préventives des réparations correctives. Pourquoi est-ce important ? Il constitue un critère de segmentation essentiel pour le Dashboard d’analyse de la part de la maintenance préventive. Où trouver ces données Dérivé de WorkOrderType Exemples truefalse | |||
| Reprise IsRework | Indique si l’ordre de travail a nécessité de répéter des tâches techniques. | ||
| Description Cet attribut calculé repère les cas où le processus revient d’un contrôle qualité ou d’un statut d’achèvement à un statut de travail en cours. Il aide à détecter les problèmes de qualité et les besoins de formation. Pourquoi est-ce important ? Il alimente le Dashboard des reprises techniques et du contrôle qualité, ainsi que l’indicateur du taux de reprises en maintenance. Où trouver ces données Calculé à partir des répétitions d’activités Exemples truefalse | |||
| Statut SLA SLAState | Indique si l’ordre de travail a respecté son accord de niveau de service. | ||
| Description Cet attribut calculé compare la date réelle d’achèvement à la date d’achèvement prévue. Il classe le cas comme « Dans les délais SLA » ou « SLA dépassé » afin de faciliter le suivi des performances des prestataires et des équipes internes. Pourquoi est-ce important ? Il constitue la source directe de données de l’indicateur de taux de respect des SLA. Où trouver ces données Calcul : date réelle de fin <= date prévue Exemples Dans les délais SLASLA dé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 pour un même cas. | ||
| Pourquoi est-ce important ? Base des Dashboards d’analyse des écarts d’heures de travail et de la productivité des techniciens. Permet de comparer l’effort réel aux prévisions. Où trouver ces données Table r5booklabor de Hexagon EAM. Chaque ligne correspond à une entrée de feuille de temps pour l’ordre de travail. Données à recueillir Enregistré lors de l’exécution d’une transaction INSERT sur r5booklabor Type d’événement explicit | |||
| Matériel délivré | Les pièces de rechange sont sorties physiquement du magasin et imputées à l’ordre de travail. Cela correspond à la consommation de matériel. | ||
| Pourquoi est-ce important ? Point final pour mesurer le délai de disponibilité du matériel. Repérez les retards lorsque les travaux commencent puis s’interrompent faute de pièces. Où trouver ces données Table r5translines de Hexagon EAM. Transaction de type « I » (Issue) associée à l’ordre de travail. Données à recueillir Enregistré lors de l’exécution d’une transaction INSERT sur r5translines Type d’événement explicit | |||
| Ordre de travail approuvé | Changement de statut indiquant que l’ordre de travail a passé l’examen de planification et d’estimation. Les travaux sont alors autorisés à commencer. | ||
| Pourquoi est-ce important ? Permet l’analyse de la rapidité de planification de la maintenance en marquant la fin de la phase de planification. Sert également au contrôle de la séparation des tâches. Où trouver ces données Table r5statuslog de Hexagon EAM. Recherchez le passage au statut « A » (Approved) ou à son équivalent dans le système. Données à recueillir Enregistré lors de l’exécution d’une transaction sur r5statuslog Type d’événement explicit | |||
| Ordre de travail clôturé | L’ordre de travail est clôturé sur le plan financier et archivé. Aucun coût ni aucune heure de travail supplémentaire ne peuvent y être imputés. | ||
| Pourquoi est-ce important ? Fin du processus. Étape essentielle pour analyser le traitement du règlement financier et arrêter les coûts définitifs. Où trouver ces données r5statuslog de Hexagon EAM. Passage au statut « C » (Closed) ou « L » (Locked/Closed). Données à recueillir Enregistré lors de l’exécution d’une transaction sur r5statuslog Type d’événement explicit | |||
| Ordre de travail commencé | Les techniciens ont commencé les travaux physiques sur l’actif. L’événement est souvent marqué par le passage au statut In Progress ou par le premier horodatage de saisie des heures de travail. | ||
| Pourquoi est-ce important ? Fin du calcul des travaux en attente et début du temps d’intervention. Indispensable au taux de respect des SLA. Où trouver ces données r5statuslog de Hexagon EAM. Passage au statut « In Progress » (souvent le code de statut « I » ou « IP »). Données à recueillir Enregistré lors de l’exécution d’une transaction sur r5statuslog Type d’événement explicit | |||
| Ordre de travail créé | Création initiale de l’ordre de travail de maintenance dans le système. Cet événement ouvre le cas et enregistre l’horodatage de départ pour l’ensemble du cycle de maintenance. | ||
| Pourquoi est-ce important ? Marque le début de l’instance du processus et sert de référence pour mesurer le délai total de résolution. Indispensable au calcul de l’ancienneté des travaux en attente. Où trouver ces données Table r5events de Hexagon EAM. Enregistré lors de l’insertion d’un nouvel enregistrement avec evt_code. Données à recueillir Enregistré lors de l’exécution d’une transaction INSERT sur r5events Type d’événement explicit | |||
| Ordre de travail terminé | Les travaux techniques sont terminés et le technicien a marqué l’intervention comme achevée. L’actif est remis en service. | ||
| Pourquoi est-ce important ? Étape clé pour mesurer la durée totale du cycle et le temps moyen de réparation. Met fin au décompte du temps d’arrêt. Où trouver ces données r5statuslog de Hexagon EAM. Passage au statut « C » (Completed) ou « F » (Finished). Données à recueillir Enregistré lors de l’exécution d’une transaction sur r5statuslog Type d’événement explicit | |||
| Contrôle qualité réussi | Un responsable ou un inspecteur examine les travaux terminés et en approuve la qualité. Cette étape valide la réparation avant la clôture. | ||
| Pourquoi est-ce important ? Permet de calculer l’indicateur de conformité du contrôle qualité. Les boucles qui repartent de cette étape signalent des reprises techniques. Où trouver ces données r5statuslog de Hexagon EAM (passage au statut « Review » ou « QC ») ou r5audittrail pour la validation d’un champ UDF précis. Données à recueillir Comparez le champ de statut avant et après Type d’événement inferred | |||
| Demande de matériel créée | Une demande de pièces de rechange ou de matériel est associée à l’ordre de travail. Elle lance le sous-processus d’approvisionnement. | ||
| Pourquoi est-ce important ? Point de départ pour mesurer les délais d’approvisionnement en pièces de rechange. Un volume élevé à cette étape indique une dépendance à la disponibilité du stock. Où trouver ces données Table r5requisitions de Hexagon EAM. Association via req_evt (code de l’ordre de travail). Données à recueillir Enregistré lors de l’exécution d’une transaction INSERT sur r5requisitions Type d’événement explicit | |||
| Élément de la liste de contrôle vérifié | Une tâche précise ou une étape d’inspection de l’ordre de travail est marquée comme terminée. Cet événement indique l’avancement détaillé des travaux. | ||
| Pourquoi est-ce important ? Indispensable à la conformité et à l’intégrité de la documentation. Atteste que les contrôles de sécurité ont été consignés dans le système. Où trouver ces données Table r5checklist ou r5activities de Hexagon EAM. Changement de statut d’une ligne d’activité ou de tâche précise. Données à recueillir Enregistré lors de l’exécution d’une transaction UPDATE sur r5checklist Type d’événement explicit | |||
| Ordre de travail planifié | Une date de début planifiée ou une ressource précise est attribuée à l’ordre de travail. Celui-ci passe alors des travaux en attente au calendrier actif. | ||
| Pourquoi est-ce important ? Indispensable à l’analyse de la productivité du travail des techniciens et de l’efficacité de l’affectation des ressources. Où trouver ces données Table r5events de Hexagon EAM (mise à jour de evt_schedstart) ou r5statuslog (passage au statut « S » pour Scheduled). Données à recueillir Comparez le champ de statut avant et après, ou vérifiez la mise à jour de evt_schedstart Type d’événement inferred | |||
| Ordre de travail validé | Une approbation administrative finale est généralement requise pour la conformité ou le paiement du prestataire. Elle confirme l’exactitude de toutes les données. | ||
| Pourquoi est-ce important ? Suivez cette étape pour analyser le cycle d’approbation des ordres de travail. Les retards à ce stade ralentissent le règlement financier. Où trouver ces données r5statuslog de Hexagon EAM (passage au statut « Signed Off ») ou journal de capture de la signature électronique. Données à recueillir Comparez le champ de statut avant et après Type d’événement inferred | |||
| Priorité mise à jour | Le niveau de priorité de l’ordre de travail a changé après sa création initiale. Cet événement enregistre l’horodatage et la nouvelle valeur de priorité. | ||
| Pourquoi est-ce important ? Indispensable au Dashboard d’analyse des escalades de priorité et de l’audit des ressources, pour repérer les abus de priorité ou les dérives de périmètre. Où trouver ces données Table r5audittrail de Hexagon EAM (si l’audit est activé) ou déduction à partir d’instantanés. Souvent dérivé du journal d’audit du champ evt_priority. Données à recueillir Enregistré lors de l’exécution d’une 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 droits de création de rapports avancés.
- Accédez au module Reports, généralement dans le menu Administration ou Reports, puis ouvrez l’interface Advanced Reporting, souvent Cognos ou un générateur de rapports SQL intégré.
- Lancez l’assistant de création d’un rapport et sélectionnez « SQL » ou « Free-hand SQL » comme type de source de données. Vous pourrez ainsi interroger directement la base de données au lieu d’utiliser le modèle standard d’objets métier.
- Copiez le script SQL fourni dans la section Query ci-dessous et collez-le dans la fenêtre de définition du jeu de données.
- Remplacez les valeurs fictives, telles que [Your Organization Code] et les plages de dates, par les valeurs correspondant à votre environnement.
- Vérifiez la syntaxe de la requête dans l’éditeur et assurez-vous que la base de données, Oracle ou SQL Server, accepte les instructions UNION.
- Associez les colonnes obtenues aux champs de la liste de présentation du rapport. Vérifiez que WorkOrderNumber, ActivityName et EventTimestamp sont bien visibles.
- Configurez l’export du rapport au format CSV ou Excel afin d’obtenir des données tabulaires, sans cellules fusionnées ni en-têtes de mise en forme.
- Exécutez le rapport sur une période de validation, par exemple les 100 derniers ordres de travail, pour vérifier la structure des données.
- Une fois le rapport validé, planifiez son exécution récurrente ou lancez-le pour couvrir toute la période d’extraction.
- Téléchargez le fichier obtenu et vérifiez les formats de date. Si possible, assurez-vous que les horodatages incluent les secondes pour permettre un classement précis.
- Importez le fichier CSV obtenu dans ProcessMind, en associant la colonne SourceSystem à un attribut de cas et ActivityName au classificateur d’activité.
Configuration
- Plage de dates : il est recommandé de filtrer sur EVT_DATE (date de création) et de sélectionner une période glissante de 6 à 12 mois afin de préserver les performances de la requête.
- Filtre sur l’organisation : Hexagon EAM est souvent configuré pour plusieurs organisations. Ajoutez un filtre sur le code de votre organisation afin d’éviter de mélanger les données d’autres unités opérationnelles.
- Syntaxe de la base de données : la requête ci-dessous utilise autant que possible la syntaxe SQL standard ANSI, mais Hexagon EAM fonctionne généralement avec Oracle ou SQL Server. Il peut être nécessaire d’adapter certaines fonctions de date, par exemple SYSDATE ou GETDATE.
- Configuration des états : l’association des codes d’état, par exemple « A », « C » et « R », aux noms d’activité, par exemple « Ordre de travail approuvé », doit correspondre à la configuration de votre système.
- Autorisations : le compte utilisateur qui exécute le rapport doit disposer d’un accès en lecture aux tables R5EVENTS, R5EVENTSTATUS, R5BOOKEDHOURS, R5TRANSACTIONS et R5AUDITVALUES.
Exemple de requête sql
/* 1. Work Order Created */
SELECT
evt_code AS WorkOrderNumber,
'Work Order Created' AS ActivityName,
evt_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
evt_type AS WorkOrderType,
evt_priority AS PriorityCode,
evt_mrc AS MaintenanceDepartment,
evt_updatedby AS UpdatedBy,
evt_target AS TargetCompletionDate,
evt_object AS AssetCode,
NULL AS ActualLaborHours
FROM r5events
WHERE evt_type IN ('JOB', 'PPM') -- Filter for relevant WO types
AND evt_created >= '2023-01-01' -- [Set Start Date]
AND evt_org = 'YOUR_ORG' -- [Set Organization]
UNION ALL
/* 2. Priority Updated (Requires Audit Log) */
SELECT
aud_code AS WorkOrderNumber,
'Priority Updated' AS ActivityName,
aud_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
aud_value AS PriorityCode,
NULL AS MaintenanceDepartment,
aud_user AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5auditvalues
WHERE aud_table = 'R5EVENTS'
AND aud_field = 'EVT_PRIORITY'
AND aud_org = 'YOUR_ORG'
UNION ALL
/* 3. Status Changes (Approved, Scheduled, Started, Completed, Signed Off, Closed) */
/* This block maps generic status codes to specific ProcessMind activities */
SELECT
est_event AS WorkOrderNumber,
CASE est_status
WHEN 'A' THEN 'Work Order Approved'
WHEN 'S' THEN 'Work Order Scheduled'
WHEN 'IP' THEN 'Work Order Started'
WHEN 'C' THEN 'Work Order Completed'
WHEN 'QC' THEN 'Quality Control Passed'
WHEN 'SO' THEN 'Work Order Signed Off'
WHEN 'CL' THEN 'Work Order Closed'
ELSE 'Status Change: ' + est_status
END AS ActivityName,
est_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
est_auth AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5eventstatus
WHERE est_status IN ('A', 'S', 'IP', 'C', 'QC', 'SO', 'CL')
AND est_org = 'YOUR_ORG'
UNION ALL
/* 4. Material Requisition Created */
SELECT
req_event AS WorkOrderNumber,
'Material Requisition Created' AS ActivityName,
req_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
req_createdby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5requisitions
WHERE req_event IS NOT NULL
AND req_org = 'YOUR_ORG'
UNION ALL
/* 5. Material Issued */
SELECT
trl_event AS WorkOrderNumber,
'Material Issued' AS ActivityName,
trl_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
trl_user AS UpdatedBy,
NULL AS TargetCompletionDate,
trl_part AS AssetCode, -- Storing Part ID in Asset column for context
NULL AS ActualLaborHours
FROM r5translines
WHERE trl_type = 'I' -- I = Issue
AND trl_event IS NOT NULL
AND trl_org = 'YOUR_ORG'
UNION ALL
/* 6. Labor Hours Recorded */
SELECT
boo_event AS WorkOrderNumber,
'Labor Hours Recorded' AS ActivityName,
boo_entered AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
boo_mrc AS MaintenanceDepartment,
boo_person AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
boo_hours AS ActualLaborHours
FROM r5bookedhours
WHERE boo_event IS NOT NULL
AND boo_org = 'YOUR_ORG'
UNION ALL
/* 7. Checklist Item Verified */
SELECT
ckv_event AS WorkOrderNumber,
'Checklist Item Verified' AS ActivityName,
ckv_entrydate AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
ckv_enteredby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5checklistvalues
WHERE ckv_completed = '+' -- Logic for completed item depends on config
AND ckv_event IS NOT NULL
AND ckv_org = 'YOUR_ORG' Étapes
- Identifiez la connexion à la base de données : assurez-vous de disposer d’identifiants avec accès en lecture, généralement ceux d’un compte de service, pour la base de données Oracle ou SQL Server de Hexagon EAM.
- Repérez les tables principales : vérifiez que vous pouvez accéder à R5EVENTS (en-têtes des ordres de travail), R5STATUS (historique des états), R5BOOKEDHOURS (heures de main-d’œuvre), R5TRANSACTIONS (matériaux) et R5AUDITVALUES (journal d’audit).
- Associez les codes d’état : Hexagon EAM utilise des codes d’état configurables, par exemple A, C, O et R. Consultez la configuration de votre système (écran Administration -> Codes) pour associer vos codes d’un ou deux caractères aux activités Approuvé, Planifié, Démarré, Terminé, Contrôle qualité réussi, Signé et Clôturé.
- Configurez la requête : ouvrez le script SQL fourni ci-dessous et remplacez les codes d’état fictifs, par exemple « APPR », « SCHD » et « COMP », par les codes utilisés dans votre système.
- Définissez la plage de dates : modifiez les clauses WHERE pour filtrer sur EVT_DATE ou TRN_DATE et sélectionner une période précise, généralement les 12 derniers mois, afin de préserver les performances de la requête.
- Lancez l’extraction : exécutez la requête dans votre client SQL, par exemple SQL Developer, SSMS ou Toad.
- Vérifiez les données d’audit : si l’activité « Priorité mise à jour » ne renvoie aucune ligne, vérifiez que la fonction d’audit est activée pour la table R5EVENTS dans les paramètres de votre système EAM.
- Validez les données de la liste de contrôle : vérifiez que R5CHECKLISTVALUES est la table correspondant à votre version. Les versions antérieures peuvent utiliser R5ACTIVITIES pour le suivi de l’exécution des tâches.
- Exportez les données : enregistrez le résultat au format CSV ou Parquet. Formatez la colonne Timestamp selon la norme ISO 8601 (YYYY-MM-DD HH:MM:SS) pour éviter les erreurs d’analyse.
- Importez les données dans ProcessMind : importez le fichier à plat dans l’interface ProcessMind et associez WorkOrderNumber à Case ID, ActivityName à Activity et EventTimestamp à Timestamp.
Configuration
- Filtre sur la période : 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.
- Association des codes d’état : remplacez les chaînes littérales de la requête SQL, par exemple « APPR », « COMP » et « QC », par les codes réellement définis dans votre ensemble R5STATUS.
- Configuration de l’audit : l’extraction de l’activité « Priorité mise à jour » repose sur la table R5AUDITVALUES. Si l’audit est désactivé pour la colonne EVT_PRIORITY, cette activité ne sera pas disponible.
- Organisation/environnement : si votre instance EAM héberge plusieurs organisations, ajoutez un filtre sur EVT_ORG ou EVT_MRC (département) afin d’éviter de mélanger les données.
- Langue : la requête suppose que les en-têtes de colonnes sont en anglais standard. Si votre base de données utilise des noms de colonnes localisés, adaptez la requête en conséquence.
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
- Vérifiez que Hexagon EAM Databridge Outbound est installé, sous licence et autorisé à accéder aux données des ordres de travail de maintenance nécessaires à cette extraction. Confirmez la configuration de la transaction sortante, sa destination, la possibilité de la planifier et l’accès aux tables ou vues sources. Utilisez [Configure based on your system] pour indiquer le chemin de menu d’administration applicable, car les noms de menus et les identifiants de transaction varient selon la version d’EAM.
- Repérez les tables ou vues Hexagon EAM faisant autorité pour les en-têtes des ordres de travail, l’historique de leurs états et priorités, les demandes et sorties de matériel, les transactions de main-d’œuvre, les résultats des listes de contrôle ou des inspections, les affectations de planification, les approbations qualité, les validations et les clôtures. Remplacez chaque valeur fictive [Your ... table name] de la requête par l’objet correspondant dans votre environnement. Ne supposez pas que l’en-tête actuel d’un ordre de travail contient l’historique des changements.
- Configurez Databridge Outbound pour publier une transaction XML ou CSV à chaque validation d’un changement pertinent sur un ordre de travail. Incluez le numéro de l’ordre de travail, le type d’événement, son horodatage, l’utilisateur source, la priorité, le type d’ordre de travail, le département, la date d’achèvement prévue, l’actif, les heures de main-d’œuvre réelles et l’horodatage d’actualisation ou d’extraction. Configurez des associations sortantes distinctes si les structures des transactions sources diffèrent pour les événements d’état, de main-d’œuvre, de matériel, de liste de contrôle, de planification, de qualité, de validation ou de clôture.
- Configurez le contenu sortant de manière à représenter chaque opération métier par un enregistrement d’événement distinct. N’envoyez pas uniquement l’état le plus récent de l’ordre de travail. Pour les heures de main-d’œuvre, sorties de matériel, éléments de liste de contrôle, changements de priorité ou autres occurrences répétées, émettez un enregistrement par occurrence. Associez le type d’événement Databridge à l’une des 13 valeurs ActivityName requises.
- Déposez les fichiers XML ou CSV de Databridge dans un emplacement de préparation contrôlé, puis chargez-les dans les objets de base de données référencés par la requête ou remplacez les objets sources de la requête par les tables de préparation. Conservez l’identifiant d’événement d’origine, le numéro de l’ordre de travail, l’horodatage de l’événement, l’utilisateur source et LastDataUpdate. Si Databridge envoie du XML, convertissez les nœuds d’événement répétés en lignes avant d’associer les activités. S’il envoie du CSV, vérifiez les séparateurs, les guillemets, l’encodage et les formats d’horodatage.
- Remplacez dans la requête les valeurs fictives correspondant aux objets propres à la connexion, aux paramètres de date et aux filtres d’entreprise. La requête utilise une source d’événements normalisée pour chaque activité et rassemble les résultats avec UNION ALL. Vérifiez que les types de données des colonnes sources utilisées dans chaque bloc sont compatibles. Si une source ne fournit pas un attribut recommandé, renvoyez NULL pour cet attribut au lieu d’inventer une valeur.
- Exécutez la requête sur une première période d’environ trois à six mois. Vérifiez que le résultat contient les colonnes requises WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem et LastDataUpdate, ainsi que les attributs recommandés disponibles. Triez les résultats par WorkOrderNumber, EventTimestamp et ActivityName, tout en conservant les lignes en double lorsqu’elles correspondent à des occurrences sources distinctes.
- Rapprochez les lignes extraites avec les volumes de livraison Databridge, les volumes de transactions sources et un échantillon d’ordres de travail dans Hexagon EAM. Recherchez les historiques d’état manquants, les livraisons en double, les horodatages non valides et les événements hors de la période sélectionnée. N’appliquez une règle de dédoublonnage stable que si le même événement source a été livré plusieurs fois.
- Exportez le résultat final au format CSV UTF-8 ou dans un autre format de journal d’événements pris en charge par ProcessMind. Conservez un événement par ligne, utilisez un format d’horodatage cohérent avec une gestion des fuseaux horaires, associez WorkOrderNumber à l’identifiant du cas, ActivityName à l’activité et EventTimestamp à l’horodatage de l’événement. Importez le fichier dans ProcessMind et vérifiez que les 13 noms d’activité sont disponibles dans le modèle de processus.
Configuration
- Configurez Hexagon EAM Databridge Outbound pour transmettre les événements au format XML ou CSV. Les noms de transaction, les écrans d’administration et les chemins de menu dépendent de la version de Hexagon EAM installée. Utilisez donc [Configure based on your system] au lieu de supposer un chemin propre à une version.
- Configurez WorkOrderNumber comme identifiant de cas ProcessMind, ActivityName comme champ d’activité et EventTimestamp comme horodatage de l’événement. Renseignez SourceSystem avec Hexagon EAM et utilisez LastDataUpdate pour indiquer l’heure d’extraction ou d’actualisation.
- Configurez les associations sortantes pour les 13 activités : Ordre de travail créé, Priorité mise à jour, Ordre de travail approuvé, Demande de matériel créée, Ordre de travail planifié, Ordre de travail démarré, Matériel délivré, Heures de main-d’œuvre enregistrées, Élément de liste de contrôle vérifié, Ordre de travail terminé, Contrôle qualité réussi, Ordre de travail validé et Ordre de travail clôturé.
- Conservez les occurrences historiques. Un champ d’état actuel ne permet pas de reconstituer chaque transition d’état, mise à jour de priorité, saisie de main-d’œuvre, sortie de matériel, vérification de liste de contrôle, approbation ou validation.
- Pour l’extraction initiale, sélectionnez une période de trois à six mois. Pour les chargements incrémentiels, utilisez le marqueur de livraison Databridge ou LastDataUpdate, avec une courte période de chevauchement pour tenir compte des transactions reçues tardivement.
- N’appliquez des filtres sur l’entreprise, le site, l’organisation, le type d’ordre de travail, le département et l’état que si l’analyse l’exige. Utilisez [Your company filter] ou [Configure based on your system] pour définir les restrictions propres à votre organisation.
- Incluez les ordres de travail clôturés si l’analyse porte sur l’ensemble du cycle de vie. Un filtre limité aux ordres ouverts exclura les activités d’achèvement, de contrôle qualité, de validation et de clôture.
- Configurez explicitement la gestion des fuseaux horaires. Convertissez tous les horodatages sources vers un même fuseau convenu avant l’importation dans ProcessMind et conservez le fuseau ou le décalage d’origine lorsqu’il est disponible.
- Pour les grands volumes de données, filtrez à la source, limitez la période d’extraction, indexez ou partitionnez les données par horodatage d’événement et numéro d’ordre de travail, puis préparez les fichiers Databridge avant leur transformation. Évitez d’analyser à répétition l’intégralité des fichiers XML historiques.
- Les prérequis comprennent la disponibilité de Databridge Outbound, l’autorisation de lire les données EAM concernées, l’accès à la destination sortante ou à la base de données de préparation, ainsi que l’accès aux données des ordres de travail, des états, du matériel, de la main-d’œuvre, des listes de contrôle, de la planification, des approbations, de la qualité, des validations et des clôtures.
- Si un événement métier requis n’est pas disponible sous forme de transaction Databridge native, configurez une vue source ou une transformation de préparation qui génère une ligne d’événement explicite. ProcessMind ne déduit pas les activités manquantes à partir d’autres lignes.
Exemple de requête sql
WITH
created_events AS (
SELECT
CAST(c.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Created' AS VARCHAR(100)) AS ActivityName,
CAST(c.[CreatedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(c.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(c.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(c.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(c.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(c.[CreatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(c.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(c.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(c.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order creation table or view] c
WHERE c.[CreatedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND c.[CreatedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
priority_events AS (
SELECT
CAST(p.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Priority Updated' AS VARCHAR(100)) AS ActivityName,
CAST(p.[PriorityChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(p.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(p.[NewPriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(p.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your priority history table or view] p
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = p.[WorkOrderNumber]
WHERE p.[PriorityChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND p.[PriorityChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
approved_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Approved' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] = '[Your approved status value]'
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
requisition_events AS (
SELECT
CAST(r.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Material Requisition Created' AS VARCHAR(100)) AS ActivityName,
CAST(r.[RequisitionCreatedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(r.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(r.[CreatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your material requisition table or view] r
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = r.[WorkOrderNumber]
WHERE r.[RequisitionCreatedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND r.[RequisitionCreatedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
scheduled_events AS (
SELECT
CAST(a.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Scheduled' AS VARCHAR(100)) AS ActivityName,
CAST(a.[ScheduledTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(a.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(a.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(a.[ScheduledStartDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order scheduling table or view] a
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = a.[WorkOrderNumber]
WHERE a.[ScheduledTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND a.[ScheduledTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
started_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Started' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] IN ('[Your in progress status value]', '[Your started status value]')
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
issued_events AS (
SELECT
CAST(i.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Material Issued' AS VARCHAR(100)) AS ActivityName,
CAST(i.[IssueTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(i.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(i.[IssuedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your material issue table or view] i
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = i.[WorkOrderNumber]
WHERE i.[IssueTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND i.[IssueTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
labor_events AS (
SELECT
CAST(l.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Labor Hours Recorded' AS VARCHAR(100)) AS ActivityName,
CAST(l.[LaborEntryTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(l.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(l.[RecordedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(l.[LaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your labor transaction table or view] l
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = l.[WorkOrderNumber]
WHERE l.[LaborEntryTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND l.[LaborEntryTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
checklist_events AS (
SELECT
CAST(k.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Checklist Item Verified' AS VARCHAR(100)) AS ActivityName,
CAST(k.[VerifiedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(k.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(k.[VerifiedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your checklist verification table or view] k
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = k.[WorkOrderNumber]
WHERE k.[VerifiedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND k.[VerifiedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
completed_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Completed' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] = '[Your completed status value]'
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
quality_events AS (
SELECT
CAST(q.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Quality Control Passed' AS VARCHAR(100)) AS ActivityName,
CAST(q.[QualityApprovalTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(q.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(q.[ApprovedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your quality approval table or view] q
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = q.[WorkOrderNumber]
WHERE q.[QualityResult] = '[Your quality passed value]'
AND q.[QualityApprovalTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND q.[QualityApprovalTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
signoff_events AS (
SELECT
CAST(f.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Signed Off' AS VARCHAR(100)) AS ActivityName,
CAST(f.[SignOffTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(f.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(f.[SignedOffBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order sign-off table or view] f
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = f.[WorkOrderNumber]
WHERE f.[SignOffTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND f.[SignOffTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
closed_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Closed' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] = '[Your closed status value]'
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
)
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM created_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM priority_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM approved_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM requisition_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM scheduled_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM started_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM issued_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM labor_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM checklist_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM completed_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM quality_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM signoff_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM closed_events
ORDER BY WorkOrderNumber, EventTimestamp, ActivityName; Prêt à commencer ?
Suivez ce modèle pour transformer vos données de maintenance en analyses concrètes. Notre équipe peut vous aider à répondre à vos questions techniques pendant la préparation de vos données.
Réduisez les retards de maintenance des actifs et améliorez les performances dès aujourd’hui
Réduisez votre temps de cycle de 30 % et éliminez les goulots d’étranglement cachés.
Aucune carte bancaire requise. Configuration en quelques minutes.