Votre template de données de maintenance des actifs
Votre template de données de maintenance des actifs
- Champs de données essentiels pour les journaux de maintenance
- Jalons standard du processus et étapes des ordres de travail
- Logique d'extraction technique pour Hexagon EAM
Attributs de maintenance des actifs
| Nom | Description | ||
|---|---|---|---|
| Activité ActivityName | Tâche précise ou événement de changement de statut qui s’est produit. | ||
| Description Cet attribut désigne l’étape du processus en cours, par exemple « Work Order Created » ou « Material Issued ». Il est dérivé de l’historique des changements de statut ou des événements transactionnels précis enregistrés pour l’ordre de travail. Pourquoi c’est important Il définit la séquence du journal d’événements, ce qui permet de reconstituer le flux du processus et d’analyser les goulots d’étranglement. Où les obtenir 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 | Horodatage de la dernière extraction ou actualisation de l’enregistrement. | ||
| Description Cet attribut indique à quel moment les données ont été extraites pour la dernière fois du système source. Il aide les analystes à évaluer leur fraîcheur et à repérer d’éventuels problèmes de latence dans la chaîne de reporting. Pourquoi c’est important Il renforce la fiabilité de l’analyse en confirmant l’actualité des données et facilite le diagnostic des problèmes de synchronisation. Où les obtenir Heure système au moment de l’extraction Exemples 2023-10-25T12:00:00Z2023-10-26T00:00:00Z | |||
| Horodatage EventTimestamp | Date et 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 c’est important Des horodatages exacts sont indispensables pour analyser les délais, identifier les retards et calculer le respect des SLA. Où les obtenir 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 | Identifiant unique de l’ordre de travail de maintenance. | ||
| Description Cet attribut représente la clé primaire unique du dossier de maintenance. Il permet de suivre l’ordre de travail depuis la demande initiale jusqu’à la planification, l’exécution et la clôture financière finale. Il sert d’identifiant central pour relier les journaux d’activités, les heures de travail et la consommation de matériel. Pourquoi c’est important Il identifie l’instance précise du processus de maintenance et permet de suivre de bout en bout les temps de cycle et les variantes de processus. Où les obtenir Table Hexagon EAM R5EVENTS, 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 codé en dur avec le nom du système EAM concerné afin de le distinguer d’éventuelles données historiques ou de systèmes de prestataires externes. Pourquoi c’est important Il garantit la traçabilité claire des données, notamment lors de la fusion de données provenant de plusieurs instances de maintenance. Où les obtenir Valeur codée en dur Exemples Hexagon EAMInfor EAMDatastream 7i | |||
| Actif AssetCode | Identifiant unique de l’équipement ou de l’installation faisant l’objet de la maintenance. | ||
| Description Cet attribut relie l’ordre de travail à un équipement ou à un emplacement précis. Il permet d’analyser la fréquence des défaillances par actif et d’identifier les « mauvais élèves » ou les équipements à remplacer. Pourquoi c’est important Il est fondamental pour calculer les indicateurs de fiabilité des actifs et comprendre où se concentrent les efforts de maintenance. Où les obtenir Table Hexagon EAM R5EVENTS, champ EVT_OBJECT Exemples PUMP-001HVAC-204FLEET-99CONVEYOR-A | |||
| Date cible d’achèvement TargetCompletionDate | Échéance planifiée de l’ordre de travail. | ||
| Description Cet attribut correspond à la date à laquelle les travaux de maintenance doivent être terminés. La comparaison avec la date réelle d’achèvement est essentielle pour calculer le respect des SLA et la performance dans les délais. Pourquoi c’est important Il est essentiel pour le Contractor SLA Adherence Monitor et pour évaluer la précision de la planification. Où les obtenir Table Hexagon EAM R5EVENTS, champ EVT_TARGET Exemples 2023-11-012023-11-152023-12-01 | |||
| Heures de main-d’œuvre réelles ActualLaborHours | Nombre total d’heures imputées à l’ordre de travail. | ||
| Description Cet attribut additionne le temps saisi par les techniciens pour l’ordre de travail. Il sert à mesurer la productivité, à calculer les coûts de main-d’œuvre et à analyser l’écart par rapport au nombre d’heures estimé. Pourquoi c’est important Il constitue la principale source de données du Dashboard Technician Labor Productivity et du KPI Labor Hour Variance. Où les obtenir Table Hexagon EAM R5BOOKEDHOURS, champ BOO_HOURS (somme 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 la demande courante à l’urgence. Il guide la planification des ressources et est essentiel au suivi du respect des SLA ainsi qu’à la détection des abus de priorité. Pourquoi c’est important Il est indispensable au Dashboard Priority Escalation and Resource Audit pour vérifier que les tâches critiques sont correctement prioritaires. Où les obtenir Table Hexagon EAM R5EVENTS, champ EVT_PRIORITY Exemples CritiqueÉlevéeMoyenneFaible | |||
| Service MaintenanceDepartment | Service ou centre de travail responsable de l’exécution des travaux. | ||
| Description Cet attribut identifie l’équipe ou l’atelier de maintenance affecté à l’ordre de travail, par exemple les services électrique, mécanique ou des installations. Il permet de comparer les performances des différentes équipes techniques. Pourquoi c’est important Il alimente le Dashboard Technician Labor Productivity et aide à répartir efficacement les ressources entre les différents métiers. Où les obtenir 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 urgent. | ||
| Description Cet attribut caractérise 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 important de l’état des équipements et de la maturité de la gestion. Pourquoi c’est important Il alimente le Dashboard Preventive Maintenance Ratio Analysis et aide à identifier les possibilités de réduire les interventions réactives. Où les obtenir Table Hexagon EAM R5EVENTS, champ EVT_TYPE Exemples PPMCOREMGPRJ | |||
| Utilisateur UpdatedBy | Identifiant utilisateur de la personne ayant exécuté l’activité. | ||
| Description Cet attribut enregistre l’identifiant de connexion de la personne responsable du déclenchement du changement ou de la mise à jour du statut. Il sert à analyser la charge de travail des équipes, à identifier les besoins de formation et à auditer la conformité du processus. Pourquoi c’est important Il permet d’analyser le comportement des utilisateurs et l’utilisation des ressources tout au long du cycle de maintenance. Où les obtenir Table Hexagon EAM R5EVENTHISTORY, champ EVH_USER Exemples JSMITHADAVISSYSTEMMGR_USR | |||
| Contrôle qualité réussi QualityControlPassed | Indicateur précisant si l’étape de contrôle qualité a été documentée. | ||
| Description Cet attribut booléen vérifie si une activité précise de contrôle qualité ou un élément de checklist a été marqué comme terminé. Il garantit le respect des règles de sécurité et des normes internes. Pourquoi c’est important Il alimente le KPI Quality Control Compliance Rate et contribue au Dashboard Compliance and Documentation Integrity. Où les obtenir Dérivé des tables Checklist ou de l’historique des activités Exemples truefalse | |||
| Coût réel total TotalActualCost | 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 c’est important Il alimente le Dashboard Financial Settlement and Closure Speed ainsi que la prise de décision fondée sur les coûts. Où les obtenir Table Hexagon EAM R5EVENTS, champ EVT_ACTCOST (ou colonne récapitulative similaire) Exemples 150.002500.5075.25 | |||
| Criticité de l’actif AssetCriticality | Score indiquant l’importance opérationnelle de l’actif. | ||
| Description Cet attribut indique le niveau de criticité de l’actif pour les opérations de l’entreprise. Il sert souvent à vérifier que les ordres de travail hautement prioritaires concernent réellement des équipements critiques, et à mettre en évidence d’éventuels détournements du processus. Pourquoi c’est important Il alimente le Dashboard Priority Escalation and Resource Audit en mettant en relation la priorité et la valeur de l’actif. Où les obtenir Table Hexagon EAM R5OBJECTS, champ OBJ_CRITICALITY (jointure requise sur EVT_OBJECT) Exemples A - VitalB - CritiqueC - SecondaireD - Faible | |||
| Date de création DateCreated | Date à laquelle l’ordre de travail a été créé initialement. | ||
| 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 Mean Time to Plan et déterminer l’ancienneté des éléments du backlog. Pourquoi c’est important Il est requis pour le Dashboard Maintenance Planning Velocity et le KPI Backlog Age. Où les obtenir Table Hexagon EAM R5EVENTS, champ EVT_CREATED Exemples 2023-09-012023-09-15 | |||
| Date de demande de matériel MaterialRequisitionDate | Date à laquelle les pièces de rechange ont été demandées. | ||
| Description Cet attribut enregistre l’horodatage de l’envoi de la demande de matériel au magasin ou au service des achats. L’analyse du délai entre cette date et « Material Issued » permet d’évaluer l’efficacité de la chaîne d’approvisionnement. Pourquoi c’est important Il est nécessaire au Dashboard Spare Parts Procurement Lead Times. Où les obtenir Table Hexagon EAM R5REQUISITIONS ou table de transactions associée Exemples 2023-10-012023-10-05 | |||
| Description de l’ordre de travail WorkOrderDescription | Résumé succinct de la tâche de maintenance. | ||
| Description Cet attribut contient l’objet ou la brève description du problème. Il fournit aux analystes le contexte nécessaire lors de l’examen détaillé de cas problématiques ou de la recherche de tendances dans du texte non structuré. Pourquoi c’est important Il fournit le contexte nécessaire à l’examen humain des données du processus. Où les obtenir Table Hexagon EAM R5EVENTS, champ EVT_DESC Exemples Réparer le joint de pompe qui fuitInspection mensuelle du système HVACRemplacer la courroie du convoyeur | |||
| Escalade d’urgence EmergencyEscalationFlag | Indicateur précisant si la priorité a été élevée au niveau Emergency après la création. | ||
| Description Cet attribut booléen identifie les ordres de travail dont la priorité initiale était inférieure, puis a été relevée au niveau Emergency. Une fréquence élevée peut révéler un triage initial insuffisant ou une manipulation du système pour obtenir un service plus rapide. Pourquoi c’est important Il alimente le Dashboard Priority Escalation and Resource Audit et le KPI Emergency Escalation Rate. Où les obtenir Dérivé de la piste d’audit du champ Priority Exemples truefalse | |||
| Est préventif IsPreventive | Indicateur précisant 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 du KPI Preventive Maintenance Ratio en séparant les travaux proactifs des réparations réactives. Pourquoi c’est important Il constitue une segmentation fondamentale pour le Dashboard Preventive Maintenance Ratio Analysis. Où les obtenir Dérivé de WorkOrderType Exemples truefalse | |||
| Est une reprise IsRework | Indicateur précisant si l’ordre de travail a nécessité la répétition de tâches techniques. | ||
| Description Cet attribut calculé identifie les cas où le processus revient d’un contrôle qualité ou d’un statut d’achèvement à un statut de travail actif. Il aide à repérer les problèmes de qualité et les lacunes en matière de formation. Pourquoi c’est important Il alimente le Dashboard Technical Rework and Quality Control ainsi que le KPI Maintenance Rework Rate. Où les obtenir Calculé à partir des répétitions d’activités Exemples truefalse | |||
| État du SLA SLAState | Indique si l’ordre de travail a respecté son accord de niveau de service. | ||
| Description Cet attribut calculé compare la date réelle d’achèvement à la date cible d’achèvement. Il classe le cas comme « Within SLA » ou « Breached » afin de simplifier le suivi de la performance des prestataires et des équipes internes. Pourquoi c’est important Il constitue la source directe du KPI SLA Adherence Rate. Où les obtenir Calculé : Actual End Date <= Target Date Exemples Dans les délais du SLADélai 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 dossier. | ||
| Pourquoi c’est important Base des Dashboards Labor Hour Variance et Technician Labor Productivity. Révèle l’effort réel par rapport aux prévisions. Où les obtenir Table Hexagon EAM r5booklabor. Chaque ligne représente une saisie de feuille de temps pour l’ordre de travail. Collecte Enregistré 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 sorties du magasin et imputées à l’ordre de travail. Cela représente la consommation de matériel. | ||
| Pourquoi c’est important Point final du délai de disponibilité du matériel. Permet d’identifier les retards lorsque les travaux commencent puis s’arrêtent faute de pièces. Où les obtenir Table Hexagon EAM r5translines. Type de transaction « I » (Issue), associé à l’ordre de travail. Collecte Enregistré lors de l’exécution de la transaction INSERT sur r5translines Type d’événement explicit | |||
| Ordre de travail approuvé | Modification du statut indiquant que l’ordre de travail a passé l’examen de planification et d’estimation. Elle signifie que les travaux sont autorisés à commencer. | ||
| Pourquoi c’est important Soutient l’analyse Maintenance Planning Velocity en marquant la fin de la phase de planification. Contrôle de conformité de la séparation des tâches. Où les obtenir Table Hexagon EAM r5statuslog. Rechercher le passage au statut « A » (Approved) ou à son équivalent système. Collecte 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 verrouillé sur le plan financier et archivé. Aucun coût ni aucune heure de travail supplémentaire ne peuvent être enregistrés. | ||
| Pourquoi c’est important Fin du processus. Indispensable à l’analyse Financial Settlement Processed et au verrouillage des coûts définitifs. Où les obtenir Hexagon EAM r5statuslog. Passage au statut « C » (Closed) ou « L » (Locked/Closed). Collecte 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’équipement. L’événement est souvent marqué par un changement de statut vers In Progress ou par le premier horodatage de saisie des heures de travail. | ||
| Pourquoi c’est important Point final du calcul du backlog et point de départ du temps d’intervention. Indispensable au calcul du SLA Adherence Rate. Où les obtenir Hexagon EAM r5statuslog. Passage à « In Progress », souvent avec le code de statut « I » ou « IP ». Collecte 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’enregistrement de l’ordre de travail de maintenance dans le système. Cet événement établit le dossier et enregistre l’horodatage initial de l’ensemble du cycle de vie de la maintenance. | ||
| Pourquoi c’est important Marque le début de l’instance de processus et établit la référence pour mesurer le délai total de résolution. Indispensable au calcul de l’ancienneté du backlog. Où les obtenir Table Hexagon EAM r5events. Enregistré lorsqu’un nouvel enregistrement est inséré avec evt_code. Collecte Enregistré lors de l’exécution de la 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’équipement est remis en service. | ||
| Pourquoi c’est important Jalon essentiel pour mesurer la durée du cycle de bout en bout et le Mean Time to Repair. Arrête le décompte du temps d’arrêt. Où les obtenir Hexagon EAM r5statuslog. Passage au statut « C » (Completed) ou « F » (Finished). Collecte Enregistré lors de l’exécution d’une transaction sur r5statuslog Type d’événement explicit | |||
| Contrôle qualité réussi | Un superviseur ou un inspecteur examine les travaux terminés et en approuve la qualité. Cette étape valide la réparation avant la clôture. | ||
| Pourquoi c’est important Soutient le KPI Quality Control Compliance Rate. Les boucles qui repartent de cette étape indiquent une reprise technique. Où les obtenir Hexagon EAM r5statuslog, passage à « Review » ou « QC », ou r5audittrail pour la validation d’un UDF spécifique. Collecte Comparer 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 c’est important Point de départ pour mesurer les délais d’approvisionnement en pièces de rechange. Des volumes élevés à cette étape indiquent une dépendance à la disponibilité des stocks. Où les obtenir Table Hexagon EAM r5requisitions. Reliée via req_evt (code de l’ordre de travail). Collecte Enregistré lors de l’exécution de la transaction INSERT sur r5requisitions Type d’événement explicit | |||
| Élément de checklist vérifié | Une tâche ou une étape d’inspection précise de l’ordre de travail est marquée comme terminée. Cela représente l’avancement détaillé des travaux. | ||
| Pourquoi c’est important Indispensable à la conformité et à l’intégrité de la documentation. Prouve que les contrôles de sécurité ont été enregistrés dans le système. Où les obtenir Table Hexagon EAM r5checklist ou r5activities. Modification du statut d’une ligne d’activité ou de tâche précise. Collecte Enregistré lors de l’exécution de la 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 ainsi du backlog au planning actif. | ||
| Pourquoi c’est important Indispensable à l’analyse Technician Labor Productivity et à l’évaluation de l’efficacité de l’allocation des ressources. Où les obtenir Table Hexagon EAM r5events, mise à jour de evt_schedstart, ou table r5statuslog, passage au statut « S » (Scheduled). Collecte Comparer le champ de statut avant et après, ou vérifier la mise à jour de 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 prestataire. Elle confirme l’exactitude de toutes les données. | ||
| Pourquoi c’est important À surveiller pour l’analyse Work Order Approval Cycle. Les retards à cette étape affectent la rapidité du règlement financier. Où les obtenir Hexagon EAM r5statuslog, passage à « Signed Off », ou journal de capture de la signature électronique. Collecte Comparer 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 été modifié après sa création initiale. Cet événement enregistre l’horodatage et la nouvelle valeur de priorité. | ||
| Pourquoi c’est important Indispensable au Dashboard Priority Escalation and Resource Audit pour identifier les abus de priorité ou l’extension du périmètre. Où les obtenir Hexagon EAM r5audittrail, si l’audit est activé, ou valeur déduite des instantanés. Souvent dérivé du journal d’audit du champ evt_priority. Collecte Enregistré lors de l’exécution de la transaction UPDATE sur evt_priority Type d’événement explicit | |||
Guides d'extraction
Étapes
- Connectez-vous à l'application Hexagon EAM avec un compte utilisateur disposant des privilèges Advanced Reporting Authoring.
- Accédez au module Reports, généralement accessible depuis le menu Administration ou Reports, puis lancez l'interface Advanced Reporting, souvent Cognos ou un générateur de rapports SQL intégré.
- Lancez l'assistant de création d'un nouveau rapport et sélectionnez « SQL » ou « Free-hand SQL » comme type de source de données. Cette option permet d'interroger directement la base de données plutôt que d'utiliser le modèle d'objets métier standard.
- 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.
- Validez la syntaxe de la requête dans l'éditeur afin de vérifier que la plateforme de base de données, Oracle ou SQL Server, accepte les instructions UNION.
- Associez les colonnes obtenues à la liste de mise en page du rapport, en veillant à ce que WorkOrderNumber, ActivityName et EventTimestamp soient clairement visibles.
- Configurez l'export du rapport au format CSV ou Excel afin d'obtenir une structure tabulaire 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, afin de vérifier la structure des données.
- Une fois la validation terminée, planifiez l'exécution récurrente du rapport ou lancez-le pour l'ensemble de 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 garantir un ordre 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) avec une fenêtre glissante de 6 à 12 mois afin de préserver les performances de la requête.
- Filtre d'organisation : Hexagon EAM est souvent utilisé dans plusieurs organisations. Vérifiez que la requête inclut un filtre correspondant à votre code d'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. De légers ajustements des fonctions de date, par exemple SYSDATE et GETDATE, peuvent être nécessaires.
- Configuration des statuts : l'association des codes de statut, par exemple « A », « C » et « R », aux noms d'activité, par exemple « Work Order Approved », doit correspondre à la configuration des statuts 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.
a 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 : vérifiez que vous disposez 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 utilisée par Hexagon EAM.
- Localisez les tables principales : confirmez l'accès à R5EVENTS (en-têtes des ordres de travail), R5STATUS (historique des statuts), R5BOOKEDHOURS (main-d'œuvre), R5TRANSACTIONS (matériaux) et R5AUDITVALUES (journal d'audit).
- Associez les codes de statut : Hexagon EAM utilise des codes de statut configurables, par exemple A, C, O et R. Consultez la configuration de votre système, écran Administration -> Codes, afin d'associer vos codes à 1 ou 2 caractères aux activités Approved, Scheduled, Started, Completed, QC Passed, Signed Off et Closed.
- Configurez la requête : ouvrez le script SQL fourni ci-dessous. Remplacez les codes de statut fictifs, par exemple « APPR », « SCHD » et « COMP », par les codes utilisés dans votre système.
- Définissez la plage de dates : mettez à jour 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, SQL Developer, SSMS ou Toad.
- Vérifiez les données d'audit : si l'activité « Priority Updated » ne renvoie aucune ligne, vérifiez que la fonctionnalité 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 appropriée pour votre version ; les versions plus anciennes peuvent utiliser R5ACTIVITIES pour le suivi de l'achèvement au niveau des tâches.
- Exportez les données : enregistrez le résultat au format CSV ou Parquet. Vérifiez que la colonne Timestamp est au format ISO 8601 (YYYY-MM-DD HH:MM:SS) afin d'éviter les erreurs d'analyse.
- Importez les données dans ProcessMind : chargez le fichier plat dans l'interface ProcessMind et associez WorkOrderNumber à Case ID, ActivityName à Activity et EventTimestamp à Timestamp.
Configuration
- Filtre de période : la requête sélectionne actuellement toutes les données. Il est vivement 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 de statut : vous devez remplacer les littéraux de chaîne du 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 « Priority Updated » repose sur la table R5AUDITVALUES. Si l'audit est désactivé pour la colonne EVT_PRIORITY, cette activité ne sera pas disponible.
- Organisation/locataire : si votre instance EAM héberge plusieurs organisations, ajoutez un filtre sur EVT_ORG ou EVT_MRC (service) 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-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
- Vérifiez que Hexagon EAM Databridge Outbound est installé, sous licence et autorisé pour les données d'ordres de travail de maintenance nécessaires à cette extraction. Confirmez la configuration de la transaction sortante, sa destination, les possibilités de planification et l'accès aux tables ou vues sources. Utilisez [Configure based on your system] pour indiquer le chemin du menu d'administration applicable, car les noms des menus et les identifiants de transaction varient selon la version d'EAM.
- Identifiez les tables ou vues Hexagon EAM faisant autorité pour les en-têtes des ordres de travail, l'historique des statuts, l'historique des priorités, les demandes de matériel, les 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 validations qualité, les enregistrements de signature et les enregistrements de clôture. Remplacez chaque emplacement [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 modifications.
- Configurez Databridge Outbound pour publier une transaction XML ou CSV chaque fois qu'une modification pertinente d'un ordre de travail est enregistrée. Incluez le numéro de l'ordre de travail, le type d'événement, l'horodatage de l'événement, l'utilisateur source, la priorité, le type d'ordre de travail, le service, la date cible d'achèvement, l'actif, les heures de main-d'œuvre réelles et un horodatage d'actualisation ou d'extraction. Configurez des associations sortantes distinctes si les structures sources diffèrent pour les événements de statut, de main-d'œuvre, de matériel, de liste de contrôle, de planification, de qualité, de signature ou de clôture.
- Configurez la charge utile sortante afin que chaque occurrence métier soit représentée par un enregistrement d'événement individuel. N'envoyez pas uniquement le dernier statut de l'ordre de travail. Pour les entrées 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, générez un enregistrement par occurrence. Associez le type d'événement Databridge à l'une des 13 valeurs ActivityName requises.
- Déposez la sortie XML ou CSV de Databridge dans un emplacement de préparation contrôlé, puis chargez-la 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, analysez les nœuds d'événements répétitifs pour les convertir en lignes avant d'appliquer l'association des activités. S'il envoie du CSV, validez les séparateurs, les guillemets, l'encodage et les formats d'horodatage.
- Remplacez dans la requête les emplacements 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 combine les résultats avec UNION ALL. Vérifiez que les colonnes sources utilisées dans chaque bloc ont des types de données compatibles. Si une source ne fournit pas un attribut recommandé, renvoyez NULL pour cet attribut plutôt que d'inventer une valeur.
- Exécutez la requête sur une période initiale 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 lorsqu'ils sont disponibles. Triez la sortie par WorkOrderNumber, EventTimestamp et ActivityName, tout en conservant les lignes en double lorsqu'elles représentent 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 de statut manquants, les livraisons en double, les horodatages invalides et les événements situés hors de la plage de dates sélectionnée. Appliquez une règle de déduplication stable uniquement lorsque 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 d'Event Log pris en charge par ProcessMind. Conservez un événement par ligne, utilisez un horodatage cohérent avec la gestion du fuseau horaire, associez WorkOrderNumber à l'identifiant de 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 d'événements.
Configuration
- Configurez Hexagon EAM Databridge Outbound pour une livraison d'événements au format XML ou CSV. Les noms exacts des transactions, 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] plutôt que 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. SourceSystem doit contenir Hexagon EAM et LastDataUpdate doit indiquer l'heure de l'extraction ou de l'actualisation.
- Configurez les associations sortantes pour les 13 activités : Work Order Created, Priority Updated, Work Order Approved, Material Requisition Created, Work Order Scheduled, Work Order Started, Material Issued, Labor Hours Recorded, Checklist Item Verified, Work Order Completed, Quality Control Passed, Work Order Signed Off et Work Order Closed.
- Conservez les occurrences historiques. Un champ de statut actuel ne permet pas, à lui seul, de reconstituer chaque transition de statut, mise à jour de priorité, saisie de main-d'œuvre, sortie de matériel, vérification de liste de contrôle, approbation ou signature.
- Utilisez une période de trois à six mois pour l'extraction initiale. Pour les chargements incrémentiels, utilisez le marqueur Databridge delivery ou LastDataUpdate, avec une petite période de chevauchement pour tenir compte des transactions reçues tardivement.
- N'appliquez les filtres d'entreprise, de site, d'organisation, de type d'ordre de travail, de service et de statut que lorsqu'ils sont nécessaires à l'analyse. Utilisez [Your company filter] ou [Configure based on your system] pour les restrictions propres à l'organisation.
- Incluez les ordres de travail clôturés lorsque l'analyse porte sur l'ensemble du cycle de vie. Un filtrage limité aux ordres de travail ouverts exclura les activités d'achèvement, de qualité, de signature et de clôture.
- Configurez explicitement la gestion des fuseaux horaires. Convertissez tous les horodatages sources vers un fuseau horaire convenu avant l'importation dans ProcessMind et conservez le fuseau ou le décalage d'origine lorsqu'il est disponible.
- Pour les volumes importants, filtrez à la source, limitez la période d'extraction, indexez ou partitionnez l'horodatage des événements et le numéro de l'ordre de travail, puis préparez les fichiers Databridge avant la transformation. Évitez d'analyser à plusieurs reprises l'intégralité de la charge utile XML historique.
- Les prérequis comprennent la disponibilité de Databridge Outbound, l'autorisation de lire les données EAM pertinentes, 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 statuts, des matériaux, de la main-d'œuvre, des listes de contrôle, de la planification, des approbations, de la qualité, des signatures et des clôtures.
- Si un événement métier requis n'est pas disponible sous la forme d'une 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.
a 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 ?
Transformez vos données de maintenance en analyses concrètes en suivant ce template. Notre équipe est à votre disposition pour répondre à vos questions techniques pendant la préparation de vos données.
Réduisez dès aujourd'hui les retards de maintenance des actifs et améliorez la performance
Réduisez votre temps de cycle de 30 % et éliminez les goulots d'étranglement cachés.
Aucune carte bancaire requise. Configuration en quelques minutes.