Il Suo template per i dati di manutenzione degli asset
Il Suo template per i dati di manutenzione degli asset
- Campi dati essenziali per i registri di manutenzione
- Tappe standard del processo e fasi degli ordini di lavoro
- Logica tecnica di estrazione per Hexagon EAM
Attributi della manutenzione degli asset
| Nome | Descrizione | ||
|---|---|---|---|
| Attività ActivityName | L’attività specifica o la modifica dello stato che si è verificata. | ||
| Descrizione Questo attributo indica la fase del processo in corso, ad esempio 'Ordine di lavoro creato' o 'Materiali prelevati'. Viene ricavato dalla cronologia delle modifiche di stato o dagli eventi transazionali specifici registrati per l’ordine di lavoro. Perché è importante Definisce la sequenza dell’Event Log e consente di ricostruire il flusso del processo e analizzare i colli di bottiglia. Dove reperirli Tabella R5EVENTHISTORY di Hexagon EAM, campo EVH_STATUS (associato alle descrizioni) oppure registri di audit Esempi Ordine di lavoro creatoOrdine di lavoro pianificatoOrdine di lavoro completatoMateriali prelevati | |||
| Ordine di lavoro di manutenzione WorkOrderNumber | Identificativo univoco dell’ordine di lavoro di manutenzione. | ||
| Descrizione Questo attributo rappresenta la chiave primaria univoca del caso di manutenzione. Traccia l’ordine di lavoro dalla richiesta iniziale fino alla pianificazione, all’esecuzione e alla chiusura finanziaria finale. Viene utilizzato come identificativo centrale del caso per collegare i registri delle attività, le ore di lavoro e il consumo dei materiali. Perché è importante Identifica la specifica istanza del processo di manutenzione e consente di monitorare il tempo di ciclo e le varianti del processo dall’inizio alla fine. Dove reperirli Tabella R5EVENTS di Hexagon EAM, campo EVT_CODE Esempi WO-100234WO-100235WO-100236104592 | |||
| Sistema di origine SourceSystem | Il nome del sistema da cui provengono i dati. | ||
| Descrizione Questo attributo indica il sistema di riferimento dei dati. In questo contesto, il nome del sistema EAM specifico è inserito come valore fisso, per distinguerlo da eventuali dati di sistemi precedenti o di sistemi esterni usati dai fornitori. Perché è importante Assicura la tracciabilità dei dati, soprattutto quando si uniscono dati provenienti da più istanze di manutenzione. Dove reperirli Valore fisso Esempi Hexagon EAMInfor EAMDatastream 7i | |||
| Timestamp EventTimestamp | La data e l’ora in cui si è verificata l’attività. | ||
| Descrizione Questo attributo registra il momento esatto in cui un evento o una modifica dello stato è stata registrata nel sistema. Consente di calcolare la durata tra le attività e il tempo di ciclo complessivo dell’ordine di lavoro. Perché è importante Timestamp accurati sono essenziali per analizzare i tempi di attraversamento, individuare i ritardi e calcolare il rispetto degli SLA. Dove reperirli Tabella R5EVENTHISTORY di Hexagon EAM, campo EVH_DATE Esempi 2023-10-12T08:30:00Z2023-10-12T14:15:00Z2023-10-13T09:00:00Z | |||
| Ultimo aggiornamento dei dati LastDataUpdate | Il timestamp dell’ultima estrazione o dell’ultimo aggiornamento del record. | ||
| Descrizione Questo attributo registra quando i dati sono stati estratti l’ultima volta dal sistema di origine. Aiuta gli analisti a valutarne l’aggiornamento e a individuare eventuali problemi di latenza nel flusso di reportistica. Perché è importante Consente di valutare l’attualità dell’analisi e aiuta a individuare i problemi di sincronizzazione dei dati. Dove reperirli Ora del sistema al momento dell’estrazione Esempi 2023-10-25T12:00:00Z2023-10-26T00:00:00Z | |||
| Bene AssetCode | L’identificativo univoco dell’apparecchiatura o della struttura sottoposta a manutenzione. | ||
| Descrizione Questo attributo collega l’ordine di lavoro a una specifica apparecchiatura o ubicazione. Consente di analizzare la frequenza dei guasti per bene e di individuare quelli che causano problemi ricorrenti o le apparecchiature da sostituire. Perché è importante È fondamentale per calcolare gli indicatori di affidabilità dei beni e capire dove si concentra il lavoro di manutenzione. Dove reperirli Tabella R5EVENTS di Hexagon EAM, campo EVT_OBJECT Esempi PUMP-001HVAC-204FLEET-99CONVEYOR-A | |||
| Data di completamento prevista TargetCompletionDate | La scadenza programmata per l’ordine di lavoro. | ||
| Descrizione Questo attributo indica la data entro cui si prevede di completare l’intervento di manutenzione. Il confronto con la data effettiva di completamento è fondamentale per calcolare il rispetto degli SLA e la puntualità. Perché è importante È essenziale per la Dashboard di monitoraggio del rispetto degli SLA dei fornitori e per valutare l’accuratezza della pianificazione. Dove reperirli Tabella R5EVENTS di Hexagon EAM, campo EVT_TARGET Esempi 2023-11-012023-11-152023-12-01 | |||
| Ore di lavoro effettive ActualLaborHours | Il totale delle ore registrate sull’ordine di lavoro. | ||
| Descrizione Questo attributo somma il tempo che i tecnici hanno registrato sull’ordine di lavoro. Viene utilizzato per misurare la produttività, calcolare i costi della manodopera e analizzare gli scostamenti rispetto alle ore stimate. Perché è importante È la principale fonte di dati per la Dashboard sulla produttività del lavoro dei tecnici e per il KPI dello scostamento delle ore di manodopera. Dove reperirli Tabella R5BOOKEDHOURS di Hexagon EAM, campo BOO_HOURS (somma per ordine di lavoro) Esempi 2.54.012.00.5 | |||
| Priorità PriorityCode | Il livello di urgenza assegnato all’ordine di lavoro. | ||
| Descrizione Questo attributo indica l’importanza dell’ordine di lavoro, da ordinario a urgente. Determina la pianificazione delle risorse ed è fondamentale per monitorare il rispetto degli SLA e individuare eventuali abusi delle priorità. Perché è importante Per la Dashboard di escalation delle priorità e verifica delle risorse è essenziale che le attività critiche ricevano la priorità corretta. Dove reperirli Tabella R5EVENTS di Hexagon EAM, campo EVT_PRIORITY Esempi CriticoAltaMediaBassa | |||
| Reparto MaintenanceDepartment | Il reparto o il centro di lavoro responsabile dell’esecuzione dell’intervento. | ||
| Descrizione Questo attributo identifica il team o l’officina di manutenzione assegnati all’ordine di lavoro, ad esempio il reparto elettrico, meccanico o dei servizi generali. Consente di confrontare le prestazioni dei diversi team tecnici. Perché è importante Supporta la Dashboard sulla produttività del lavoro dei tecnici e aiuta ad assegnare le risorse in modo efficace ai diversi mestieri. Dove reperirli Tabella R5EVENTS di Hexagon EAM, campo EVT_MRC Esempi Officina elettricaManutenzione meccanicaServizi generaliServizio flotta | |||
| Tipo di ordine di lavoro WorkOrderType | Classifica l’ordine di lavoro come preventivo, correttivo o di emergenza. | ||
| Descrizione Questo attributo classifica la natura dell’intervento di manutenzione. Viene utilizzato per analizzare il rapporto tra manutenzione preventiva pianificata e riparazioni di emergenza reattive, un indicatore fondamentale dello stato degli asset e del livello di maturità della gestione. Perché è importante Supporta la Dashboard di analisi del rapporto di manutenzione preventiva e aiuta a individuare le opportunità per ridurre gli interventi reattivi. Dove reperirli Tabella R5EVENTS di Hexagon EAM, campo EVT_TYPE Esempi PPMCOREMGPRJ | |||
| Utente UpdatedBy | L’ID utente della persona che ha eseguito l’attività. | ||
| Descrizione Questo attributo registra l’ID di accesso della persona responsabile di aver attivato la modifica o l’aggiornamento dello stato. Viene utilizzato per analizzare il carico di lavoro dei team, individuare esigenze di formazione e verificare la conformità del processo. Perché è importante Consente di analizzare il comportamento degli utenti e l’utilizzo delle risorse durante l’intero ciclo di manutenzione. Dove reperirli Tabella R5EVENTHISTORY di Hexagon EAM, campo EVH_USER Esempi JSMITHADAVISSYSTEMMGR_USR | |||
| Controllo qualità superato QualityControlPassed | Indicatore che segnala se la fase di controllo qualità è stata documentata. | ||
| Descrizione Questo attributo booleano verifica se una specifica attività di controllo qualità o una voce della lista di controllo è stata contrassegnata come completata. Aiuta a garantire la conformità alle norme di sicurezza e agli standard interni. Perché è importante Alimenta il KPI del tasso di conformità dei controlli qualità e supporta la Dashboard sulla conformità e l’integrità della documentazione. Dove reperirli Derivato dalle tabelle delle liste di controllo o dalla cronologia delle attività Esempi truefalse | |||
| Costo effettivo totale TotalActualCost | Il costo finanziario totale registrato per l’ordine di lavoro. | ||
| Descrizione Questo attributo raccoglie i costi complessivi di manodopera, materiali e servizi. È essenziale per analizzare la chiusura contabile e comprendere l’impatto economico della manutenzione d’emergenza rispetto a quella preventiva. Perché è importante Supporta la Dashboard sulla chiusura contabile e i tempi di chiusura, nonché le decisioni basate sui costi. Dove reperirli Tabella R5EVENTS di Hexagon EAM, campo EVT_ACTCOST (o colonna riepilogativa equivalente) Esempi 150.002500.5075.25 | |||
| Criticità del bene AssetCriticality | Un punteggio che indica l’importanza operativa del bene. | ||
| Descrizione Questo attributo indica quanto il bene sia critico per le attività aziendali. Spesso viene utilizzato per verificare che gli ordini di lavoro ad alta priorità riguardino effettivamente apparecchiature critiche e per individuare possibili abusi del processo. Perché è importante Supporta la Dashboard di escalation delle priorità e verifica delle risorse, mettendo in relazione la priorità con il valore del bene. Dove reperirli Tabella R5OBJECTS di Hexagon EAM, campo OBJ_CRITICALITY (richiede un join su EVT_OBJECT) Esempi A - VitaleB - CriticoC - SecondarioD - Basso | |||
| Data della richiesta di materiali MaterialRequisitionDate | La data in cui sono stati richiesti i ricambi. | ||
| Descrizione Questo attributo registra la data e l’ora di invio della richiesta di materiali al magazzino o all’ufficio acquisti. Analizzando il tempo trascorso da questa data all’emissione dei materiali è possibile valutare l’efficienza della catena di approvvigionamento. Perché è importante È necessario per la Dashboard sui tempi di approvvigionamento dei ricambi. Dove reperirli Tabella R5REQUISITIONS di Hexagon EAM o tabella delle transazioni collegata Esempi 2023-10-012023-10-05 | |||
| Data di creazione DateCreated | La data in cui è stato creato l’ordine di lavoro. | ||
| Descrizione Questo attributo segna l’inizio del ciclo di vita dell’ordine di lavoro. Costituisce la base di riferimento per calcolare il tempo medio di pianificazione e determinare da quanto tempo gli elementi sono in arretrato. Perché è importante È necessario per la Dashboard sulla velocità di pianificazione della manutenzione e per il KPI dell’anzianità dell’arretrato. Dove reperirli Tabella R5EVENTS di Hexagon EAM, campo EVT_CREATED Esempi 2023-09-012023-09-15 | |||
| Descrizione dell’ordine di lavoro WorkOrderDescription | Una breve descrizione dell’intervento di manutenzione. | ||
| Descrizione Questo attributo contiene l’oggetto o una breve descrizione del problema. Fornisce agli analisti il contesto necessario per approfondire i singoli casi problematici o individuare schemi ricorrenti nel testo non strutturato. Perché è importante Fornisce il contesto necessario per la revisione dei dati di processo da parte degli operatori. Dove reperirli Tabella R5EVENTS di Hexagon EAM, campo EVT_DESC Esempi Riparare la tenuta della pompa che perdeIspezione mensile dell’impianto HVACSostituire il nastro trasportatore | |||
| È manutenzione preventiva IsPreventive | Indicatore che segnala se l’ordine di lavoro riguarda la manutenzione preventiva. | ||
| Descrizione Questo attributo booleano consente di filtrare e classificare facilmente gli ordini di lavoro. Semplifica il calcolo del KPI del rapporto di manutenzione preventiva, distinguendo gli interventi proattivi dalle riparazioni reattive. Perché è importante È un criterio di segmentazione fondamentale per la Dashboard di analisi del rapporto di manutenzione preventiva. Dove reperirli Derivato da WorkOrderType Esempi truefalse | |||
| È una rilavorazione IsRework | Indicatore che segnala se l’ordine di lavoro ha comportato la ripetizione di attività tecniche. | ||
| Descrizione Questo attributo calcolato individua i casi in cui il processo torna da un controllo qualità o dallo stato di completamento a uno stato di lavorazione attiva. Aiuta a individuare problemi di qualità e lacune nella formazione. Perché è importante Alimenta la Dashboard sulle rilavorazioni tecniche e sul controllo qualità e il KPI del tasso di rilavorazione degli interventi di manutenzione. Dove reperirli Calcolato in base alle ripetizioni delle attività Esempi truefalse | |||
| Escalation d’emergenza EmergencyEscalationFlag | Indicatore che segnala se la priorità è stata portata a Emergenza dopo la creazione. | ||
| Descrizione Questo attributo booleano individua gli ordini di lavoro creati con una priorità inferiore e successivamente portati a Emergenza. Se si verificano spesso, questi casi possono indicare una valutazione iniziale inadeguata o tentativi di aggirare il sistema per ottenere un servizio più rapido. Perché è importante Supporta la Dashboard di escalation delle priorità e verifica delle risorse e il KPI del tasso di escalation d’emergenza. Dove reperirli Derivato dalla traccia di audit del campo Priority Esempi truefalse | |||
| Stato SLA SLAState | Indica se l’ordine di lavoro ha rispettato l’accordo sul livello di servizio. | ||
| Descrizione Questo attributo calcolato confronta la data effettiva di completamento con quella prevista. Classifica il caso come «Entro i termini SLA» o «SLA non rispettato», semplificando la rendicontazione sulle prestazioni dei fornitori e dei team interni. Perché è importante È la fonte diretta di dati per il KPI del tasso di rispetto degli SLA. Dove reperirli Calcolato: data effettiva di fine <= data prevista Esempi Entro i termini SLASLA non rispettatoAperto | |||
Attività di manutenzione degli asset
| Attività | Descrizione | ||
|---|---|---|---|
| Materiali prelevati | I ricambi vengono prelevati fisicamente dal magazzino e addebitati all’ordine di lavoro. L’evento rappresenta il consumo dei materiali. | ||
| Perché è importante Segna la fine del tempo di approvvigionamento dei materiali. Consente di individuare i ritardi nei casi in cui il lavoro inizi ma si interrompa per mancanza di ricambi. Dove reperirli Tabella r5translines di Hexagon EAM. Tipo di transazione 'I' (prelievo), collegata all’ordine di lavoro. Acquisizione Registrato quando viene eseguita una transazione INSERT su r5translines Tipo di evento explicit | |||
| Ordine di lavoro approvato | Modifica dello stato che indica che l’ordine di lavoro ha superato la revisione della pianificazione e della stima. Significa che il lavoro è autorizzato a procedere. | ||
| Perché è importante Consente l’analisi della rapidità di pianificazione della manutenzione, segnando la fine della fase di pianificazione. Verifica della separazione delle responsabilità. Dove reperirli Tabella r5statuslog di Hexagon EAM. Cercare il passaggio allo stato 'A' (Approvato) o all’equivalente previsto dal sistema. Acquisizione Registrato quando viene eseguita una transazione su r5statuslog Tipo di evento explicit | |||
| Ordine di lavoro avviato | I tecnici hanno iniziato il lavoro effettivo sull’asset. L’avvio è spesso indicato dal passaggio allo stato In corso o dal primo timestamp di registrazione delle ore di lavoro. | ||
| Perché è importante Segna la fine del periodo considerato per il calcolo degli arretrati e l’inizio del tempo effettivo di lavoro. È essenziale per il tasso di rispetto degli SLA. Dove reperirli r5statuslog di Hexagon EAM. Passaggio allo stato 'In corso' (spesso codice di stato 'I' o 'IP'). Acquisizione Registrato quando viene eseguita una transazione su r5statuslog Tipo di evento explicit | |||
| Ordine di lavoro chiuso | L’ordine di lavoro è chiuso ai fini finanziari e archiviato. Non è più possibile registrare costi o ore di lavoro. | ||
| Perché è importante Fine del processo. Fondamentale per analizzare la liquidazione finanziaria e consolidare i costi finali. Dove reperirli r5statuslog di Hexagon EAM. Passaggio allo stato 'C' (Chiuso) o 'L' (Bloccato/Chiuso). Acquisizione Registrato quando viene eseguita una transazione su r5statuslog Tipo di evento explicit | |||
| Ordine di lavoro completato | Il lavoro tecnico è terminato e il tecnico ha contrassegnato l’intervento come completato. L’asset torna in servizio. | ||
| Perché è importante Traguardo fondamentale per misurare la durata complessiva del ciclo e il tempo medio di riparazione. Ferma il conteggio dei tempi di fermo. Dove reperirli r5statuslog di Hexagon EAM. Passaggio allo stato 'C' (Completato) o 'F' (Terminato). Acquisizione Registrato quando viene eseguita una transazione su r5statuslog Tipo di evento explicit | |||
| Ordine di lavoro creato | Creazione iniziale nel sistema della registrazione dell’ordine di lavoro di manutenzione. Questo evento apre il caso e registra il timestamp iniziale dell’intero ciclo di manutenzione. | ||
| Perché è importante Segna l’avvio dell’istanza del processo e stabilisce la base di riferimento per misurare il tempo totale di risoluzione. È fondamentale per calcolare da quanto tempo gli ordini sono in arretrato. Dove reperirli Tabella r5events di Hexagon EAM. Registrato quando viene inserito un nuovo record con evt_code. Acquisizione Registrato quando viene eseguita una transazione INSERT 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 ogni caso. | ||
| Perché è importante Base di riferimento per le Dashboard sulla variazione delle ore di lavoro e sulla produttività dei tecnici. Mostra l’impegno effettivo rispetto a quello pianificato. Dove reperirli Tabella r5booklabor di Hexagon EAM. Ogni riga rappresenta una registrazione delle ore lavorate per l’ordine di lavoro. Acquisizione Registrato quando viene eseguita una transazione INSERT su r5booklabor Tipo di evento explicit | |||
| Controllo qualità superato | Un supervisore o un ispettore esamina il lavoro completato e ne approva la qualità. Questo passaggio convalida la riparazione prima della chiusura. | ||
| Perché è importante Consente di calcolare il tasso di conformità ai controlli di qualità. I cicli che ripartono da questa fase indicano una rilavorazione tecnica. Dove reperirli r5statuslog di Hexagon EAM (passaggio a 'Revisione' o 'QC') oppure r5audittrail per la convalida di uno specifico UDF. Acquisizione Confrontare il campo dello stato prima e dopo Tipo di evento inferred | |||
| Ordine di lavoro approvato e firmato | Di norma è necessaria un’approvazione amministrativa finale per la conformità o il pagamento del fornitore. Conferma che tutti i dati siano accurati. | ||
| Perché è importante Consente di monitorare il ciclo di approvazione degli ordini di lavoro. I ritardi in questa fase rallentano la liquidazione finanziaria. Dove reperirli r5statuslog di Hexagon EAM (passaggio a 'Approvato e firmato') oppure registro delle firme elettroniche. Acquisizione Confrontare il campo dello stato prima e dopo Tipo di evento inferred | |||
| Ordine di lavoro pianificato | All’ordine di lavoro viene assegnata una data di inizio pianificata o una risorsa specifica. L’ordine passa così dagli arretrati al programma di lavoro attivo. | ||
| Perché è importante Fondamentale per l’analisi della produttività dei tecnici e dell’efficienza nell’assegnazione delle risorse. Dove reperirli Tabella r5events di Hexagon EAM (aggiornamento di evt_schedstart) oppure r5statuslog (passaggio allo stato 'S', Pianificato). Acquisizione Confrontare il campo dello stato prima e dopo oppure verificare l’aggiornamento di evt_schedstart Tipo di evento inferred | |||
| Priorità aggiornata | La priorità dell’ordine di lavoro è stata modificata dopo la creazione iniziale. L’evento registra il timestamp e il nuovo valore della priorità. | ||
| Perché è importante Essenziale per la Dashboard di analisi delle escalation di priorità e di verifica delle risorse, che consente di individuare abusi delle priorità o ampliamenti dell’ambito. Dove reperirli Tabella r5audittrail di Hexagon EAM, se l’audit è attivo, oppure dedotto dalle istantanee. Spesso ricavato dal registro di audit del campo evt_priority. Acquisizione Registrato quando viene eseguita una transazione UPDATE su evt_priority Tipo di evento explicit | |||
| Richiesta di materiali creata | Una richiesta di ricambi o materiali viene associata all’ordine di lavoro. Inizia così il sottoprocesso della catena di approvvigionamento. | ||
| Perché è importante Punto di partenza per misurare i tempi di approvvigionamento dei ricambi. Volumi elevati in questa fase indicano una dipendenza dalla disponibilità a magazzino. Dove reperirli Tabella r5requisitions di Hexagon EAM. Collegata tramite req_evt (codice dell’ordine di lavoro). Acquisizione Registrato quando viene eseguita una transazione INSERT su r5requisitions Tipo di evento explicit | |||
| Voce della checklist verificata | Una specifica attività o fase di ispezione dell’ordine di lavoro viene contrassegnata come completata. L’evento rappresenta l’avanzamento dettagliato del lavoro. | ||
| Perché è importante Essenziale per la conformità e l’integrità della documentazione. Dimostra che i controlli di sicurezza sono stati registrati nel sistema. Dove reperirli Tabella r5checklist o r5activities di Hexagon EAM. Modifica dello stato di una specifica attività o voce della checklist. Acquisizione Registrato quando viene eseguita una transazione UPDATE su r5checklist Tipo di evento explicit | |||
Guide all’estrazione
Passaggi
- Acceda all’applicazione Hexagon EAM con un account utente dotato dei privilegi di creazione per Advanced Reporting.
- Apra il modulo Reports, in genere disponibile nel menu Administration o Reports, e avvii l’interfaccia Advanced Reporting, spesso Cognos o un generatore di report SQL integrato.
- Avvii la procedura guidata per creare un nuovo report e selezioni SQL o Free-hand SQL come tipo di origine dei dati. In questo modo potrà interrogare direttamente il database, senza utilizzare il modello standard degli oggetti aziendali.
- Copi lo script SQL riportato nella sezione Query qui sotto e lo incolli nella finestra di definizione del dataset.
- Sostituisca i valori segnaposto, ad esempio [Your Organization Code] e gli intervalli di date, con valori specifici per il Suo ambiente.
- Verifichi la sintassi della query nell’editor, per assicurarsi che la piattaforma di database, Oracle o SQL Server, accetti le istruzioni UNION.
- Mappi le colonne risultanti nell’elenco del layout del report, verificando che WorkOrderNumber, ActivityName ed EventTimestamp siano chiaramente visibili.
- Configuri l’esportazione del report in formato CSV o Excel, così da ottenere una struttura tabellare senza celle unite né intestazioni di formattazione.
- Esegua il report per un periodo di convalida, ad esempio sugli ultimi 100 ordini di lavoro, per verificare la struttura dei dati.
- Dopo la verifica, pianifichi l’esecuzione periodica del report oppure lo esegua per l’intero intervallo di estrazione.
- Scarichi il file risultante e controlli i formati delle date. Se possibile, verifichi che i timestamp includano i secondi, per garantire un ordinamento preciso.
- Importi il file CSV risultante in ProcessMind, mappando la colonna SourceSystem come attributo del caso e ActivityName come classificatore delle attività.
Configurazione
- Intervallo di date: si consiglia di filtrare EVT_DATE (data di creazione) su un periodo mobile da 6 a 12 mesi, per mantenere buone prestazioni della query.
- Filtro per organizzazione: Hexagon EAM è spesso configurato per più organizzazioni. Verifichi che la query includa un filtro per il codice dell’organizzazione specifica, così da evitare di mescolare dati di altre unità aziendali.
- Sintassi del database: ove possibile, la query seguente utilizza la sintassi SQL standard ANSI, ma Hexagon EAM viene in genere eseguito su Oracle o SQL Server. Potrebbe essere necessario apportare lievi modifiche alle funzioni per le date, ad esempio SYSDATE invece di GETDATE.
- Configurazione degli stati: la corrispondenza tra i codici di stato, ad esempio 'A', 'C', 'R', e i nomi delle attività, ad esempio 'Work Order Approved', deve riflettere la configurazione specifica degli stati nel Suo sistema.
- Autorizzazioni: l’account utente che esegue il report deve disporre dell’accesso in lettura alle tabelle R5EVENTS, R5EVENTSTATUS, R5BOOKEDHOURS, R5TRANSACTIONS e R5AUDITVALUES.
a Query di esempio 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' Passaggi
- Individui la connessione al database: verifichi di disporre di credenziali con accesso in lettura, in genere un account di servizio, per il database backend Oracle o SQL Server di Hexagon EAM.
- Individui le tabelle principali: verifichi di poter accedere a R5EVENTS (intestazioni degli ordini di lavoro), R5STATUS (cronologia degli stati), R5BOOKEDHOURS (ore di lavoro), R5TRANSACTIONS (materiali) e R5AUDITVALUES (registro di audit).
- Mappi i codici di stato: Hexagon EAM utilizza codici di stato configurabili, ad esempio A, C, O, R. Esamini la configurazione del sistema (schermata: Administration -> Codes) per associare i codici specifici di 1 o 2 caratteri alle attività Approved, Scheduled, Started, Completed, QC Passed, Signed Off e Closed.
- Configuri la query: apra lo script SQL riportato qui sotto e sostituisca i codici di stato segnaposto, ad esempio 'APPR', 'SCHD', 'COMP', con i codici effettivamente utilizzati nel sistema.
- Imposti l’intervallo di date: aggiorni le clausole WHERE per filtrare EVT_DATE o TRN_DATE e selezionare un intervallo specifico, in genere gli ultimi 12 mesi, così da mantenere buone prestazioni della query.
- Esegua l’estrazione: esegua la query nel client SQL in uso, ad esempio SQL Developer, SSMS o Toad.
- Verifichi i dati di audit: se l’attività 'Priority Updated' non restituisce righe, controlli che la funzione di audit sia abilitata per la tabella R5EVENTS nelle impostazioni del sistema EAM.
- Convalidi i dati della lista di controllo: verifichi che R5CHECKLISTVALUES sia la tabella corretta per la Sua versione; nelle versioni precedenti, per il completamento delle attività potrebbe essere utilizzata R5ACTIVITIES.
- Esporti i dati: salvi il risultato in un file CSV o Parquet. Verifichi che la colonna Timestamp sia formattata secondo ISO 8601 (YYYY-MM-DD HH:MM:SS), per evitare errori di analisi.
- Importi i dati in ProcessMind: carichi il file semplice nell’interfaccia ProcessMind, mappando WorkOrderNumber come ID del caso, ActivityName come attività ed EventTimestamp come timestamp.
Configurazione
- Filtro per intervallo temporale: al momento la query seleziona tutti i dati. Si consiglia vivamente di aggiungere un filtro, ad esempio WHERE EVT_DATE >= SYSDATE - 365 (Oracle) o GetDate() - 365 (SQL Server), nella CTE di base o in ciascun blocco SELECT.
- Corrispondenza dei codici di stato: sostituisca i valori letterali nella query SQL, ad esempio 'APPR', 'COMP', 'QC', con i codici effettivi definiti nel set R5STATUS.
- Configurazione dell’audit: l’estrazione dell’attività 'Priority Updated' dipende dalla tabella R5AUDITVALUES. Se l’audit è disattivato per la colonna EVT_PRIORITY, questa specifica attività non sarà inclusa.
- Organizzazione/Tenant: se l’istanza EAM ospita più organizzazioni, aggiunga un filtro per EVT_ORG o EVT_MRC (reparto), per evitare di mescolare i dati.
- Lingua: la query presuppone che le intestazioni delle colonne siano in inglese standard. Se il database utilizza nomi di colonna localizzati, li adegui 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 Passaggi
- Verifichi che Hexagon EAM Databridge Outbound sia installato, dotato di licenza e autorizzato per i dati degli ordini di lavoro di manutenzione necessari all’estrazione. Verifichi la configurazione della transazione in uscita, la destinazione, la possibilità di pianificarne l’esecuzione e l’accesso alle tabelle o viste di origine. Utilizzi [Configure based on your system] per individuare il percorso applicabile nei menu di amministrazione, poiché i nomi dei menu e gli identificatori delle transazioni variano in base alla versione di EAM.
- Individui le tabelle o viste Hexagon EAM di riferimento per le intestazioni degli ordini di lavoro, la cronologia degli stati e delle priorità, le richieste e i prelievi di materiali, le transazioni di manodopera, i risultati delle liste di controllo o delle ispezioni, le assegnazioni di pianificazione, le approvazioni di qualità, le registrazioni delle firme e le chiusure. Sostituisca ogni segnaposto [Your ... table name] nella query con l’oggetto corrispondente del proprio ambiente. Non presuma che l’intestazione corrente dell’ordine di lavoro contenga la cronologia delle modifiche.
- Configuri Databridge Outbound in modo da pubblicare una transazione XML o CSV ogni volta che viene registrata una modifica pertinente a un ordine di lavoro. Includa il numero dell’ordine di lavoro, il tipo di evento, il timestamp dell’evento, l’utente di origine, la priorità, il tipo di ordine di lavoro, il reparto, la data di completamento prevista, l’asset, le ore di manodopera effettive e il timestamp di aggiornamento o estrazione. Configuri mappature in uscita separate se le strutture delle transazioni di origine differiscono per eventi di stato, manodopera, materiali, liste di controllo, pianificazione, qualità, firma o chiusura.
- Configuri il contenuto in uscita in modo che ogni evento aziendale sia rappresentato da un singolo record. Non invii soltanto lo stato più recente dell’ordine di lavoro. Per le registrazioni ripetute di manodopera, i prelievi di materiali, gli elementi delle liste di controllo, le modifiche di priorità e altri eventi ripetuti, generi un record per ogni occorrenza. Mappi il tipo di evento Databridge a uno dei 13 valori ActivityName richiesti.
- Salvi i file XML o CSV generati da Databridge in un’area di staging controllata, quindi li carichi negli oggetti di database a cui fa riferimento la query oppure sostituisca le origini della query con le tabelle di staging. Conservi l’identificatore originale dell’evento, il numero dell’ordine di lavoro, il timestamp dell’evento, l’utente di origine e LastDataUpdate. Se Databridge invia XML, analizzi i nodi ripetuti degli eventi e li trasformi in righe prima di applicare la mappatura delle attività. Se invia CSV, convalidi delimitatori, virgolette, codifica e formati dei timestamp.
- Sostituisca nella query i segnaposto relativi agli oggetti specifici della connessione, ai parametri di data e ai filtri aziendali. La query utilizza un’origine eventi normalizzata per ogni attività e combina i risultati con UNION ALL. Verifichi che le colonne di origine utilizzate in ciascun blocco abbiano tipi di dati compatibili. Se un’origine non fornisce un attributo consigliato, restituisca NULL per quell’attributo invece di inventare un valore.
- Esegua la query per un periodo iniziale di circa tre-sei mesi. Verifichi che il risultato includa le colonne richieste WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem e LastDataUpdate, oltre agli attributi consigliati quando disponibili. Ordini l’output per WorkOrderNumber, EventTimestamp e ActivityName, mantenendo le righe duplicate quando rappresentano eventi distinti nell’origine.
- Riconcili le righe estratte con il numero di consegne Databridge, il numero di transazioni di origine e un campione di ordini di lavoro in Hexagon EAM. Verifichi eventuali cronologie degli stati mancanti, consegne duplicate, timestamp non validi ed eventi al di fuori dell’intervallo selezionato. Applichi una regola stabile per eliminare i duplicati solo quando lo stesso evento di origine è stato consegnato più di una volta.
- Esporti il risultato finale in CSV UTF-8 o in un altro formato di Event Log supportato da ProcessMind. Mantenga un evento per riga, utilizzi un timestamp coerente con la gestione del fuso orario e mappi WorkOrderNumber come identificativo del caso, ActivityName come attività ed EventTimestamp come timestamp dell’evento. Carichi il file in ProcessMind e verifichi che nel modello di processo siano disponibili tutti i 13 nomi di attività.
Configurazione
- Configuri Hexagon EAM Databridge Outbound per la consegna di eventi in formato XML o CSV. I nomi esatti delle transazioni, le schermate di amministrazione e i percorsi dei menu dipendono dalla versione di Hexagon EAM installata; utilizzi quindi [Configure based on your system] invece di presumere un percorso specifico per una determinata versione.
- Configuri WorkOrderNumber come identificativo del caso in ProcessMind, ActivityName come campo dell’attività ed EventTimestamp come timestamp dell’evento. Compili SourceSystem con Hexagon EAM e utilizzi LastDataUpdate per indicare l’ora di estrazione o aggiornamento.
- Configuri le mappature in uscita per tutte le 13 attività: 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 e Work Order Closed.
- Conservi le occorrenze storiche. Il solo campo dello stato corrente non consente di ricostruire ogni transizione di stato, aggiornamento di priorità, registrazione di manodopera, prelievo di materiale, verifica di una lista di controllo, approvazione o firma.
- Utilizzi un intervallo di date da tre a sei mesi per l’estrazione iniziale. Per i caricamenti incrementali, utilizzi il riferimento temporale delle consegne Databridge o LastDataUpdate, prevedendo una breve sovrapposizione per gestire le transazioni ricevute in ritardo.
- Applichi filtri per azienda, sede, organizzazione, tipo di ordine di lavoro, reparto e stato solo quando sono necessari per l’analisi. Utilizzi [Your company filter] o [Configure based on your system] per le restrizioni specifiche dell’organizzazione.
- Includa gli ordini di lavoro chiusi quando l’analisi riguarda l’intero ciclo di vita. Filtrando solo gli ordini aperti, escluderebbe le attività di completamento, controllo qualità, firma e chiusura.
- Configuri esplicitamente la gestione dei fusi orari. Prima di caricare i dati in ProcessMind, converta tutti i timestamp di origine in un unico fuso orario concordato e conservi, se disponibile, il fuso orario o lo scostamento originale.
- Per i dataset di grandi dimensioni, applichi i filtri all’origine, limiti l’intervallo di estrazione, indicizzi o partizioni il timestamp dell’evento e il numero dell’ordine di lavoro e prepari i file Databridge in un’area di staging prima della trasformazione. Eviti di analizzare ripetutamente l’intero contenuto XML storico.
- I prerequisiti includono la disponibilità di Databridge Outbound, l’autorizzazione a leggere i dati EAM pertinenti, l’accesso alla destinazione in uscita o al database di staging e l’accesso ai dati relativi a ordini di lavoro, stati, materiali, manodopera, liste di controllo, pianificazione, approvazioni, qualità, firme e chiusure.
- Se un evento aziendale richiesto non è disponibile come transazione Databridge nativa, configuri una vista di origine o una trasformazione nell’area di staging che generi una riga esplicita per l’evento. ProcessMind non deduce le attività mancanti da altre righe.
a Query di esempio 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; È pronto a iniziare?
Trasformi i dati di manutenzione in informazioni utili seguendo questo template. Il nostro team è a disposizione per rispondere a eventuali domande tecniche durante la preparazione dei dati.
Riduca i ritardi nella manutenzione degli asset e migliori le prestazioni, da subito
Riduca il tempo di ciclo del 30% ed elimini i colli di bottiglia nascosti.
Non è richiesta la carta di credito. Configurazione in pochi minuti.