Il Suo Template di Dati per la Manutenzione degli Asset
Il Suo Template di Dati per la Manutenzione degli Asset
- Campi dati essenziali per i log di manutenzione
- Fasi del processo standard e stadi dell'ordine di lavoro
- Logica di estrazione tecnica per Hexagon EAM
Attributi della Manutenzione degli Asset
| Nome | Descrizione | ||
|---|---|---|---|
| Activity ActivityName | Lo specifico task o `event` di cambio di stato che si è verificato. | ||
| Descrizione Questo Perché è importante Definisce la sequenza del log degli eventi, consentendo la ricostruzione del flusso di processo e l'analisi dei bottleneck. Dove trovare Tabella Hexagon EAM R5EVENTHISTORY, campo EVH_STATUS (mappato a descrizioni) o log di audit Esempi Ordine di Lavoro CreatoOrdine di Lavoro ProgrammatoOrdine di Lavoro CompletatoMateriale Emesso | |||
| Ordine di Lavoro di Manutenzione WorkOrderNumber | L'identificatore unico per l'ordine di lavoro di manutenzione. | ||
| Descrizione Questo Perché è importante Identifica l'istanza specifica del processo di manutenzione, consentendo il tracciamento end-to-end dei tempi di ciclo e delle varianti di processo. Dove trovare Tabella Hexagon EAM R5EVENTS, campo EVT_CODE Esempi WO-100234WO-100235WO-100236104592 | |||
| Sistema di Origine SourceSystem | Il nome del sistema da cui provengono i dati. | ||
| Descrizione Questo Perché è importante Assicura che la lineage dei dati sia chiara, specialmente quando si uniscono dati da più istanze di manutenzione. Dove trovare Valore Hardcoded Esempi Hexagon EAMInfor EAMDatastream 7i | |||
| Timestamp EventTimestamp | La data e l'ora in cui si è verificata l'attività. | ||
| Descrizione Questo Perché è importante Timestamp accurati sono essenziali per analizzare i tempi di consegna, identificare i ritardi e calcolare l'adesione agli SLA. Dove trovare Tabella Hexagon EAM R5EVENTHISTORY, campo EVH_DATE Esempi 2023-10-12T08:30:00Z2023-10-12T14:15:00Z2023-10-13T09:00:00Z | |||
| Ultimo `Data Update` LastDataUpdate | Il `timestamp` dell'ultima estrazione o aggiornamento del record. | ||
| Descrizione Questo Perché è importante Fornisce fiducia sull'attualità dell'analisi e aiuta nel debugging dei problemi di sincronizzazione dei dati. Dove trovare Ora di sistema all'estrazione Esempi 2023-10-25T12:00:00Z2023-10-26T00:00:00Z | |||
| Asset AssetCode | L'identificatore unico dell'attrezzatura o della struttura in manutenzione. | ||
| Descrizione Questo Perché è importante È fondamentale per il calcolo delle metriche di affidabilità degli asset e per comprendere dove si concentra lo sforzo di manutenzione. Dove trovare Tabella Hexagon EAM R5EVENTS, campo EVT_OBJECT Esempi PUMP-001HVAC-204FLEET-99CONVEYOR-A | |||
| Data di Completamento Prevista TargetCompletionDate | La scadenza programmata per l'ordine di lavoro. | ||
| Descrizione Questo Perché è importante È critico per il Monitoraggio dell'Aderenza agli SLA degli Appaltatori e per la valutazione dell'accuratezza della pianificazione. Dove trovare Tabella Hexagon EAM R5EVENTS, campo EVT_TARGET Esempi 2023-11-012023-11-152023-12-01 | |||
| Dipartimento MaintenanceDepartment | Il reparto o centro di lavoro responsabile dell'esecuzione del lavoro. | ||
| Descrizione Questo Perché è importante Supporta la dashboard di Produttività della Manodopera dei Tecnici e aiuta ad allocare le risorse in modo efficace tra le diverse specializzazioni. Dove trovare Tabella Hexagon EAM R5EVENTS, campo EVT_MRC Esempi Officina ElettricaManutenzione MeccanicaImpiantiServizio Flotta | |||
| Ore di Lavoro Effettive ActualLaborHours | Il numero totale di ore registrate per l'ordine di lavoro. | ||
| Descrizione Questo Perché è importante È la fonte dati primaria per la dashboard di Produttività della Manodopera dei Tecnici e il KPI Varianza Ore Lavoro. Dove trovare Tabella Hexagon EAM R5BOOKEDHOURS, campo BOO_HOURS (Sommato per Ordine di Lavoro) Esempi 2.54.012.00.5 | |||
| Priorità PriorityCode | Il livello di urgenza assegnato all'ordine di lavoro. | ||
| Descrizione Questo Perché è importante È essenziale per la dashboard di Escalation della Priorità e Audit delle Risorse per garantire che le attività critiche siano prioritizzate correttamente. Dove trovare Tabella Hexagon EAM R5EVENTS, campo EVT_PRIORITY Esempi CriticoElevatoMedioBasso | |||
| Tipo di Ordine di Lavoro WorkOrderType | Categorizza l'ordine di lavoro come preventivo, correttivo o di emergenza. | ||
| Descrizione Questo Perché è importante Supporta la dashboard di Analisi del Rapporto di Manutenzione Preventiva e aiuta a identificare opportunità per ridurre il lavoro reattivo. Dove trovare Tabella Hexagon EAM R5EVENTS, campo EVT_TYPE Esempi PPMCOREMGPRJ | |||
| Utente UpdatedBy | L'user ID della persona che ha eseguito l'attività. | ||
| Descrizione Questo Perché è importante Consente l'analisi del comportamento degli utenti e dell'utilizzo delle risorse lungo l'intero ciclo di vita della manutenzione. Dove trovare Tabella Hexagon EAM R5EVENTHISTORY, campo EVH_USER Esempi JSMITHADAVISSYSTEMMGR_USR | |||
| Controllo Qualità Superato QualityControlPassed | Flag che indica se il passaggio di controllo qualità (QC) è stato documentato. | ||
| Descrizione Questo Perché è importante Alimenta il KPI del Tasso di Conformità al Controllo Qualità e supporta la dashboard di Conformità e Integrità della Documentazione. Dove trovare Derivato dalle tabelle Checklist o dalla Cronologia Attività Esempi truefalse | |||
| Costo Effettivo Totale TotalActualCost | Il costo finanziario totale registrato per l'ordine di lavoro. | ||
| Descrizione Questo Perché è importante Supporta la dashboard di Regolamento Finanziario e Velocità di Chiusura e il processo decisionale basato sui costi. Dove trovare Tabella Hexagon EAM R5EVENTS, campo EVT_ACTCOST (o colonna di riepilogo simile) Esempi 150.002500.5075.25 | |||
| Criticità Asset AssetCriticality | Un punteggio che indica l'importanza operativa dell'asset. | ||
| Descrizione Questo Perché è importante Supporta la dashboard di Escalation della Priorità e Audit delle Risorse correlando la priorità con il valore dell'asset. Dove trovare Tabella Hexagon EAM R5OBJECTS, campo OBJ_CRITICALITY (richiede join su EVT_OBJECT) Esempi A - VitaleB - CriticoC - SecondarioD - Basso | |||
| Data Creazione DateCreated | La data in cui l'ordine di lavoro è stato originariamente generato. | ||
| Descrizione Questo Perché è importante È richiesto per la dashboard di Velocità della Pianificazione della Manutenzione e il KPI Età del Backlog. Dove trovare Tabella Hexagon EAM R5EVENTS, campo EVT_CREATED Esempi 2023-09-012023-09-15 | |||
| Data Richiesta Materiali MaterialRequisitionDate | La data in cui sono stati richiesti i ricambi. | ||
| Descrizione Questo Perché è importante È necessario per la dashboard dei Tempi di Consegna per l'Approvvigionamento di Ricambi. Dove trovare Tabella Hexagon EAM R5REQUISITIONS o tabella di transazione collegata Esempi 2023-10-012023-10-05 | |||
| Descrizione Ordine di Lavoro WorkOrderDescription | Un breve riassunto testuale dell'attività di manutenzione. | ||
| Descrizione Questo Perché è importante Fornisce il contesto necessario per la revisione umana dei dati di processo. Dove trovare Tabella Hexagon EAM R5EVENTS, campo EVT_DESC Esempi Riparare la guarnizione della pompa che perdeIspezione HVAC MensileSostituire il nastro trasportatore | |||
| È Preventivo IsPreventive | Flag che indica se l'ordine di lavoro è di manutenzione preventiva. | ||
| Descrizione Questo Perché è importante È una segmentazione fondamentale per la dashboard di Analisi del Rapporto di Manutenzione Preventiva. Dove trovare Derivato da WorkOrderType Esempi truefalse | |||
| È una Rilavorazione IsRework | Flag che indica se l'ordine di lavoro ha coinvolto attività tecniche ripetute. | ||
| Descrizione Questo attributo calcolato identifica i casi in cui il processo torna indietro da una fase di controllo qualità o di completamento a una fase operativa. Aiuta a individuare criticità qualitative e lacune nella formazione. Perché è importante Alimenta la dashboard di Rilavorazione Tecnica e Controllo Qualità e il KPI del Tasso di Rilavorazione della Manutenzione. Dove trovare Calcolato in base alle ripetizioni delle attività Esempi truefalse | |||
| Escalation di Emergenza EmergencyEscalationFlag | Flag che indica se la priorità è stata elevata a Emergenza dopo la creazione. | ||
| Descrizione Questo Perché è importante Supporta la dashboard di Escalation della Priorità e Audit delle Risorse e il KPI del Tasso di Escalation di Emergenza. Dove trovare Derivato dalla traccia di audit del campo Priorità Esempi truefalse | |||
| Stato SLA SLAState | Indica se l'ordine di lavoro ha rispettato il suo accordo sul livello di servizio. | ||
| Descrizione Questo Perché è importante È la fonte dati diretta per il KPI del Tasso di Aderenza agli SLA. Dove trovare Calcolato: Data Fine Effettiva <= Data Obiettivo Esempi Entro l'SLAViolatoAperto | |||
Attività di Manutenzione degli Asset
| Activity | Descrizione | ||
|---|---|---|---|
| Materiale Emesso | I ricambi sono fisicamente prelevati dal magazzino e addebitati all'ordine di lavoro. Questo rappresenta il consumo di materiale. | ||
| Perché è importante Punto finale per il tempo di consegna della disponibilità dei materiali. Identificate i ritardi in cui il lavoro inizia ma si interrompe a causa di parti mancanti. Dove trovare Tabella Hexagon EAM r5translines. Tipo di transazione 'I' (Emissione) collegato all'ordine di lavoro. Acquisisci Registrato quando la transazione INSERT è stata eseguita su r5translines Tipo di evento explicit | |||
| Ordine di Lavoro Approvato | Il cambio di stato che indica che l'ordine di lavoro ha superato la revisione di pianificazione e stima. Significa che il lavoro è autorizzato a procedere. | ||
| Perché è importante Supporta l'analisi della velocità di pianificazione della manutenzione contrassegnando la fine della fase di pianificazione. Verifica della Dove trovare Tabella Hexagon EAM r5statuslog. Cercare la transizione allo stato 'A' (Approvato) o equivalente di sistema. Acquisisci Registrato quando la transazione è stata eseguita su r5statuslog Tipo di evento explicit | |||
| Ordine di Lavoro Avviato | I tecnici hanno iniziato il lavoro fisico effettivo sull'asset. Spesso contrassegnato da un cambiamento di stato a In Corso o dal primo `timestamp` di inserimento della manodopera. | ||
| Perché è importante Punto finale per il calcolo del backlog e punto di partenza per il tempo di lavoro effettivo. Vitale per il Tasso di Aderenza agli SLA. Dove trovare Hexagon EAM r5statuslog. Transizione a 'In Corso' (spesso codice di stato 'I' o 'IP'). Acquisisci Registrato quando la transazione è stata eseguita su r5statuslog Tipo di evento explicit | |||
| Ordine di Lavoro Chiuso | L'ordine di lavoro è bloccato finanziariamente e archiviato. Non è possibile registrare ulteriori costi o manodopera. | ||
| Perché è importante Fine Processo. Cruciale per l'analisi del Processo di Liquidazione Finanziaria e la definizione dei costi finali. Dove trovare Hexagon EAM r5statuslog. Transizione a 'C' (Chiuso) o 'L' (Bloccato/Chiuso). Acquisisci Registrato quando la transazione è stata eseguita su r5statuslog Tipo di evento explicit | |||
| Ordine di Lavoro Completato | Il lavoro tecnico è terminato e il tecnico ha contrassegnato il lavoro come completato. L'asset viene rimesso in servizio. | ||
| Perché è importante Pietra miliare chiave per la Durata del Ciclo di Vita End-to-End e il Tempo Medio di Riparazione. Ferma il conteggio del tempo di inattività. Dove trovare Hexagon EAM r5statuslog. Transizione a 'C' (Completato) o 'F' (Finito). Acquisisci Registrato quando la transazione è stata eseguita su r5statuslog Tipo di evento explicit | |||
| Ordine di Lavoro Creato | La creazione iniziale del record dell'ordine di lavoro di manutenzione nel sistema. Questo `event` stabilisce il `case` e cattura il `timestamp` iniziale per l'intero ciclo di vita della manutenzione. | ||
| Perché è importante Segna l'inizio dell'istanza del processo e stabilisce la base per misurare il tempo totale di risoluzione. Critico per il calcolo dell'invecchiamento del backlog. Dove trovare Tabella Hexagon EAM r5events. Registrato quando viene inserito un nuovo record con evt_code. Acquisisci Registrato quando la transazione INSERT è stata eseguita su r5events Tipo di evento explicit | |||
| Ore di Lavoro Registrate | Un tecnico registra le ore lavorate sull'ordine di lavoro. Questa attività può verificarsi più volte per caso. | ||
| Perché è importante Base per le dashboard di Varianza Ore Lavoro e Produttività Manodopera Tecnici. Rileva lo sforzo effettivo rispetto al piano. Dove trovare Tabella Hexagon EAM r5booklabor. Ogni riga rappresenta una voce di timesheet per l'ordine di lavoro. Acquisisci Registrato quando la transazione INSERT è stata eseguita su r5booklabor Tipo di evento explicit | |||
| Controllo Qualità Superato | Un supervisore o ispettore revisiona il lavoro completato e ne approva la qualità. Questa fase convalida la riparazione prima della chiusura. | ||
| Perché è importante Supporta il KPI del tasso di Dove trovare Hexagon EAM r5statuslog (Transizione a 'Review' o 'QC') o r5audittrail su specifica convalida UDF. Acquisisci Confrontare il campo stato prima/dopo Tipo di evento inferred | |||
| Elemento Checklist Verificato | Un'attività specifica o una fase di ispezione all'interno dell'ordine di lavoro è contrassegnata come completata. Questo rappresenta un progresso granulare all'interno del lavoro. | ||
| Perché è importante Essenziale per la Conformità e l'Integrità della Documentazione. Dimostra che i controlli di sicurezza sono stati registrati sistematicamente. Dove trovare Tabella Hexagon EAM r5checklist o r5activities. Modifica dello stato di una specifica attività/elemento di riga dell'attività. Acquisisci Registrato quando la transazione UPDATE è stata eseguita su r5checklist Tipo di evento explicit | |||
| Ordine di Lavoro Approvato | Approvazione amministrativa finale solitamente richiesta per conformità o pagamento all'appaltatore. Conferma che tutti i dati sono accurati. | ||
| Perché è importante Monitorare per l'analisi del ciclo di approvazione dell'ordine di lavoro. Ritardi qui influenzano la velocità della liquidazione finanziaria. Dove trovare Hexagon EAM r5statuslog (Transizione a 'Signed Off') o log di acquisizione firma elettronica. Acquisisci Confrontare il campo stato prima/dopo Tipo di evento inferred | |||
| Ordine di Lavoro Programmato | All'ordine di lavoro viene assegnata una data di inizio programmata o una risorsa specifica. Ciò sposta l'ordine dal backlog al programma attivo. | ||
| Perché è importante Critico per l'analisi della produttività della manodopera dei tecnici e per la comprensione dell'efficienza nell'allocazione delle risorse. Dove trovare Tabella Hexagon EAM r5events (aggiornamento evt_schedstart) o r5statuslog (transizione a 'S' - Programmato). Acquisisci Confrontare il campo di stato prima/dopo o verificare l'aggiornamento di evt_schedstart Tipo di evento inferred | |||
| Priorità aggiornata | È avvenuta una modifica al livello di priorità dell'ordine di lavoro dopo la sua creazione iniziale. Questo registra il timestamp e il nuovo valore di priorità. | ||
| Perché è importante Essenziale per la dashboard di Escalation della Priorità e Audit delle Risorse per identificare abusi di priorità o deviazioni dello scopo. Dove trovare Hexagon EAM r5audittrail (se l'audit è abilitato) o dedotto da snapshot. Spesso derivato dal log di audit sul campo evt_priority. Acquisisci Registrato quando la transazione UPDATE è stata eseguita su evt_priority Tipo di evento explicit | |||
| Richiesta Materiali Creata | Una richiesta di pezzi di ricambio o materiali è collegata all'ordine di lavoro. Questo avvia il sottoprocesso della catena di approvvigionamento. | ||
| Perché è importante Punto di partenza per i tempi di consegna dell'approvvigionamento dei ricambi. Volumi elevati qui indicano dipendenza dalla disponibilità dell'inventario. Dove trovare Tabella Hexagon EAM r5requisitions. Collegata tramite req_evt (Codice Ordine di Lavoro). Acquisisci Registrato quando la transazione INSERT è stata eseguita su r5requisitions Tipo di evento explicit | |||
Guide all'Estrazione
Fasi
- Accedete all'applicazione Hexagon EAM con un account utente che abbia privilegi di Autore di Reportistica Avanzata.
- Navigate al modulo Reports, tipicamente trovato sotto il menu Administration o Reports, e avviate l'interfaccia di Advanced Reporting (spesso Cognos o un builder di report SQL integrato).
- Iniziate una nuova procedura guidata di creazione report e selezionate 'SQL' o 'Free-hand SQL' come tipo di sorgente dati. Questo consente l'interrogazione diretta del database piuttosto che l'utilizzo del modello di oggetti di business standard.
- Copiate lo script SQL fornito nella sezione Query qui sotto e incollatelo nella finestra di definizione del dataset.
- Sostituite i valori placeholder (come [Il Vostro Codice Organizzazione] e gli intervalli di date) con valori specifici rilevanti per il vostro ambiente.
- Convalidate la sintassi della query all'interno dell'editor per assicurarvi che la piattaforma del database (Oracle o SQL Server) accetti le istruzioni UNION.
- Mappate le colonne risultanti all'elenco del layout del report, assicurandovi che WorkOrderNumber, ActivityName e EventTimestamp siano chiaramente visibili.
- Configurate il report per l'esportazione specifica in formato CSV o Excel per garantire una struttura tabellare senza celle unite o intestazioni di formattazione.
- Eseguite il report per un periodo di convalida (es. gli ultimi 100 ordini di lavoro) per verificare la struttura dei dati.
- Una volta verificato, programmate l'esecuzione del report su base ricorrente o eseguitelo per l'intera finestra temporale di estrazione.
- Scaricate il file di output e controllate i formati delle date. Assicuratevi che i timestamp includano i secondi, se possibile, per un ordinamento preciso.
- Importate il file CSV risultante in ProcessMind, mappando la colonna SourceSystem come attributo del caso e ActivityName come classificatore di attività.
Configurazione
- Intervallo di Date: Si raccomanda di filtrare per EVT_DATE (Data di Creazione) per una finestra mobile di 6-12 mesi al fine di mantenere le prestazioni della query.
- Filtro Organizzazione: Hexagon EAM è spesso multi-organizzazione. Assicuratevi che la query includa un filtro per il vostro specifico Codice Organizzazione per evitare la contaminazione dei dati da altre unità di business.
- Sintassi del Database: La query seguente utilizza SQL standard ANSI ove possibile, ma Hexagon EAM di solito funziona su Oracle o SQL Server. Potrebbero essere necessarie leggere modifiche alle funzioni di data (es. SYSDATE vs GETDATE).
- Configurazione Stato: La mappatura dei Codici di Stato (es. 'A', 'C', 'R') ai Nomi delle Attività (es. 'Ordine di Lavoro Approvato') deve corrispondere alla configurazione specifica dello stato del vostro sistema.
- Permessi: L'account utente che esegue il report richiede accesso in lettura alle tabelle R5EVENTS, R5EVENTSTATUS, R5BOOKEDHOURS, R5TRANSACTIONS e R5AUDITVALUES.
a Query di Esempio config
/* 1. Work Order Created */
SELECT
evt_code AS WorkOrderNumber,
'Work Order Created' AS ActivityName,
evt_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
evt_type AS WorkOrderType,
evt_priority AS PriorityCode,
evt_mrc AS MaintenanceDepartment,
evt_updatedby AS UpdatedBy,
evt_target AS TargetCompletionDate,
evt_object AS AssetCode,
NULL AS ActualLaborHours
FROM r5events
WHERE evt_type IN ('JOB', 'PPM') -- Filter for relevant WO types
AND evt_created >= '2023-01-01' -- [Set Start Date]
AND evt_org = 'YOUR_ORG' -- [Set Organization]
UNION ALL
/* 2. Priority Updated (Requires Audit Log) */
SELECT
aud_code AS WorkOrderNumber,
'Priority Updated' AS ActivityName,
aud_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
aud_value AS PriorityCode,
NULL AS MaintenanceDepartment,
aud_user AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5auditvalues
WHERE aud_table = 'R5EVENTS'
AND aud_field = 'EVT_PRIORITY'
AND aud_org = 'YOUR_ORG'
UNION ALL
/* 3. Status Changes (Approved, Scheduled, Started, Completed, Signed Off, Closed) */
/* This block maps generic status codes to specific ProcessMind activities */
SELECT
est_event AS WorkOrderNumber,
CASE est_status
WHEN 'A' THEN 'Work Order Approved'
WHEN 'S' THEN 'Work Order Scheduled'
WHEN 'IP' THEN 'Work Order Started'
WHEN 'C' THEN 'Work Order Completed'
WHEN 'QC' THEN 'Quality Control Passed'
WHEN 'SO' THEN 'Work Order Signed Off'
WHEN 'CL' THEN 'Work Order Closed'
ELSE 'Status Change: ' + est_status
END AS ActivityName,
est_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
est_auth AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5eventstatus
WHERE est_status IN ('A', 'S', 'IP', 'C', 'QC', 'SO', 'CL')
AND est_org = 'YOUR_ORG'
UNION ALL
/* 4. Material Requisition Created */
SELECT
req_event AS WorkOrderNumber,
'Material Requisition Created' AS ActivityName,
req_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
req_createdby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5requisitions
WHERE req_event IS NOT NULL
AND req_org = 'YOUR_ORG'
UNION ALL
/* 5. Material Issued */
SELECT
trl_event AS WorkOrderNumber,
'Material Issued' AS ActivityName,
trl_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
trl_user AS UpdatedBy,
NULL AS TargetCompletionDate,
trl_part AS AssetCode, -- Storing Part ID in Asset column for context
NULL AS ActualLaborHours
FROM r5translines
WHERE trl_type = 'I' -- I = Issue
AND trl_event IS NOT NULL
AND trl_org = 'YOUR_ORG'
UNION ALL
/* 6. Labor Hours Recorded */
SELECT
boo_event AS WorkOrderNumber,
'Labor Hours Recorded' AS ActivityName,
boo_entered AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
boo_mrc AS MaintenanceDepartment,
boo_person AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
boo_hours AS ActualLaborHours
FROM r5bookedhours
WHERE boo_event IS NOT NULL
AND boo_org = 'YOUR_ORG'
UNION ALL
/* 7. Checklist Item Verified */
SELECT
ckv_event AS WorkOrderNumber,
'Checklist Item Verified' AS ActivityName,
ckv_entrydate AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
ckv_enteredby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5checklistvalues
WHERE ckv_completed = '+' -- Logic for completed item depends on config
AND ckv_event IS NOT NULL
AND ckv_org = 'YOUR_ORG' Fasi
- Identificare la Connessione al Database: Assicuratevi di disporre delle credenziali di accesso in lettura (tipicamente un account di servizio) per il database backend Hexagon EAM Oracle o SQL Server.
- Individuare le Tabelle Principali: Confermate l'accesso a R5EVENTS (Intestazioni Ordini di Lavoro), R5STATUS (Cronologia Stato), R5BOOKEDHOURS (Manodopera), R5TRANSACTIONS (Materiali) e R5AUDITVALUES (Log di Audit).
- Mappare i Codici di Stato: Hexagon EAM utilizza codici di stato configurabili (es. A, C, O, R). Rivedete la configurazione del vostro sistema (Schermata: Administration -> Codes) per mappare i vostri codici specifici di 1 o 2 caratteri alle attività Approvato, Programmato, Avviato, Completato, QC Superato, Firmato e Chiuso.
- Configurare la Query: Aprite lo script SQL fornito di seguito. Sostituite i codici di stato placeholder (es. 'APPR', 'SCHD', 'COMP') con i vostri codici di sistema effettivi.
- Impostare l'Intervallo di Date: Aggiornate le clausole WHERE per filtrare per EVT_DATE o TRN_DATE per selezionare una finestra temporale specifica, tipicamente gli ultimi 12 mesi, per garantire le prestazioni della query.
- Eseguire l'Estrazione: Eseguite la query nel vostro client SQL (SQL Developer, SSMS o Toad).
- Verificare i Dati di Audit: Se l'attività 'Priorità Aggiornata' non restituisce righe, verificate se la funzionalità di Audit è abilitata per la tabella R5EVENTS nelle impostazioni del vostro sistema EAM.
- Convalidare i Dati della Checklist: Assicuratevi che R5CHECKLISTVALUES sia la tabella corretta per la vostra versione; le versioni più vecchie potrebbero utilizzare R5ACTIVITIES per il completamento a livello di attività.
- Esportare i Dati: Salvate il set di risultati come file CSV o Parquet. Assicuratevi che la colonna Timestamp sia formattata come ISO 8601 (AAAA-MM-GG HH:MM:SS) per evitare errori di parsing.
- Importare in ProcessMind: Caricate il file flat nell'interfaccia di ProcessMind, mappando WorkOrderNumber su Case ID, ActivityName su Activity e EventTimestamp su Timestamp.
Configurazione
- Filtro Finestra Temporale: La query attualmente seleziona tutti i dati. È altamente raccomandato aggiungere un filtro come WHERE EVT_DATE >= SYSDATE - 365 (Oracle) o GetDate() - 365 (SQL Server) nel CTE di base o in ogni blocco SELECT.
- Mappatura Codici di Stato: Dovete sostituire i valori stringa nel SQL (es. 'APPR', 'COMP', 'QC') con i codici effettivi definiti nel vostro set R5STATUS.
- Configurazione Audit: L'estrazione di 'Priorità Aggiornata' si basa sulla tabella R5AUDITVALUES. Se l'auditing è disattivato per la colonna EVT_PRIORITY, questa specifica attività risulterà mancante.
- Organizzazione/Tenant: Se la vostra istanza EAM ospita più organizzazioni, aggiungete un filtro per EVT_ORG o EVT_MRC (Dipartimento) per evitare la mescolanza dei dati.
- Lingua: La query presuppone intestazioni di colonna standard in inglese. Se il vostro database utilizza nomi di colonna localizzati, regolatevi di conseguenza.
a Query di Esempio 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 Fasi
- Accedete all'applicazione Hexagon EAM con un account utente che abbia privilegi di Autore di Reportistica Avanzata.
- Navigate al modulo Reports, tipicamente trovato sotto il menu Administration o Reports, e avviate l'interfaccia di Advanced Reporting (spesso Cognos o un builder di report SQL integrato).
- Iniziate una nuova procedura guidata di creazione report e selezionate 'SQL' o 'Free-hand SQL' come tipo di sorgente dati. Questo consente l'interrogazione diretta del database piuttosto che l'utilizzo del modello di oggetti di business standard.
- Copiate lo script SQL fornito nella sezione Query qui sotto e incollatelo nella finestra di definizione del dataset.
- Sostituite i valori placeholder (come [Il Vostro Codice Organizzazione] e gli intervalli di date) con valori specifici rilevanti per il vostro ambiente.
- Convalidate la sintassi della query all'interno dell'editor per assicurarvi che la piattaforma del database (Oracle o SQL Server) accetti le istruzioni UNION.
- Mappate le colonne risultanti all'elenco del layout del report, assicurandovi che WorkOrderNumber, ActivityName e EventTimestamp siano chiaramente visibili.
- Configurate il report per l'esportazione specifica in formato CSV o Excel per garantire una struttura tabellare senza celle unite o intestazioni di formattazione.
- Eseguite il report per un periodo di convalida (es. gli ultimi 100 ordini di lavoro) per verificare la struttura dei dati.
- Una volta verificato, programmate l'esecuzione del report su base ricorrente o eseguitelo per l'intera finestra temporale di estrazione.
- Scaricate il file di output e controllate i formati delle date. Assicuratevi che i timestamp includano i secondi, se possibile, per un ordinamento preciso.
- Importate il file CSV risultante in ProcessMind, mappando la colonna SourceSystem come attributo del caso e ActivityName come classificatore di attività.
Configurazione
- Intervallo di Date: Si raccomanda di filtrare per EVT_DATE (Data di Creazione) per una finestra mobile di 6-12 mesi al fine di mantenere le prestazioni della query.
- Filtro Organizzazione: Hexagon EAM è spesso multi-organizzazione. Assicuratevi che la query includa un filtro per il vostro specifico Codice Organizzazione per evitare la contaminazione dei dati da altre unità di business.
- Sintassi del Database: La query seguente utilizza SQL standard ANSI ove possibile, ma Hexagon EAM di solito funziona su Oracle o SQL Server. Potrebbero essere necessarie leggere modifiche alle funzioni di data (es. SYSDATE vs GETDATE).
- Configurazione Stato: La mappatura dei Codici di Stato (es. 'A', 'C', 'R') ai Nomi delle Attività (es. 'Ordine di Lavoro Approvato') deve corrispondere alla configurazione specifica dello stato del vostro sistema.
- Permessi: L'account utente che esegue il report richiede accesso in lettura alle tabelle R5EVENTS, R5EVENTSTATUS, R5BOOKEDHOURS, R5TRANSACTIONS e R5AUDITVALUES.
a Query di Esempio config
/* 1. Work Order Created */
SELECT
evt_code AS WorkOrderNumber,
'Work Order Created' AS ActivityName,
evt_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
evt_type AS WorkOrderType,
evt_priority AS PriorityCode,
evt_mrc AS MaintenanceDepartment,
evt_updatedby AS UpdatedBy,
evt_target AS TargetCompletionDate,
evt_object AS AssetCode,
NULL AS ActualLaborHours
FROM r5events
WHERE evt_type IN ('JOB', 'PPM') -- Filter for relevant WO types
AND evt_created >= '2023-01-01' -- [Set Start Date]
AND evt_org = 'YOUR_ORG' -- [Set Organization]
UNION ALL
/* 2. Priority Updated (Requires Audit Log) */
SELECT
aud_code AS WorkOrderNumber,
'Priority Updated' AS ActivityName,
aud_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
aud_value AS PriorityCode,
NULL AS MaintenanceDepartment,
aud_user AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5auditvalues
WHERE aud_table = 'R5EVENTS'
AND aud_field = 'EVT_PRIORITY'
AND aud_org = 'YOUR_ORG'
UNION ALL
/* 3. Status Changes (Approved, Scheduled, Started, Completed, Signed Off, Closed) */
/* This block maps generic status codes to specific ProcessMind activities */
SELECT
est_event AS WorkOrderNumber,
CASE est_status
WHEN 'A' THEN 'Work Order Approved'
WHEN 'S' THEN 'Work Order Scheduled'
WHEN 'IP' THEN 'Work Order Started'
WHEN 'C' THEN 'Work Order Completed'
WHEN 'QC' THEN 'Quality Control Passed'
WHEN 'SO' THEN 'Work Order Signed Off'
WHEN 'CL' THEN 'Work Order Closed'
ELSE 'Status Change: ' + est_status
END AS ActivityName,
est_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
est_auth AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5eventstatus
WHERE est_status IN ('A', 'S', 'IP', 'C', 'QC', 'SO', 'CL')
AND est_org = 'YOUR_ORG'
UNION ALL
/* 4. Material Requisition Created */
SELECT
req_event AS WorkOrderNumber,
'Material Requisition Created' AS ActivityName,
req_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
req_createdby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5requisitions
WHERE req_event IS NOT NULL
AND req_org = 'YOUR_ORG'
UNION ALL
/* 5. Material Issued */
SELECT
trl_event AS WorkOrderNumber,
'Material Issued' AS ActivityName,
trl_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
trl_user AS UpdatedBy,
NULL AS TargetCompletionDate,
trl_part AS AssetCode, -- Storing Part ID in Asset column for context
NULL AS ActualLaborHours
FROM r5translines
WHERE trl_type = 'I' -- I = Issue
AND trl_event IS NOT NULL
AND trl_org = 'YOUR_ORG'
UNION ALL
/* 6. Labor Hours Recorded */
SELECT
boo_event AS WorkOrderNumber,
'Labor Hours Recorded' AS ActivityName,
boo_entered AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
boo_mrc AS MaintenanceDepartment,
boo_person AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
boo_hours AS ActualLaborHours
FROM r5bookedhours
WHERE boo_event IS NOT NULL
AND boo_org = 'YOUR_ORG'
UNION ALL
/* 7. Checklist Item Verified */
SELECT
ckv_event AS WorkOrderNumber,
'Checklist Item Verified' AS ActivityName,
ckv_entrydate AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
ckv_enteredby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5checklistvalues
WHERE ckv_completed = '+' -- Logic for completed item depends on config
AND ckv_event IS NOT NULL
AND ckv_org = 'YOUR_ORG'