Su Template de datos de mantenimiento de activos
Su Template de datos de mantenimiento de activos
- Campos de datos esenciales para los registros de mantenimiento
- Hitos estándar del proceso y etapas de las órdenes de trabajo
- Lógica técnica de extracción para Hexagon EAM
Atributos de mantenimiento de activos
| Nombre | Descripción | ||
|---|---|---|---|
| Actividad ActivityName | La tarea específica o el cambio de estado que se produjo. | ||
| Descripción Este atributo indica la etapa del proceso que se está realizando, como 'Orden de trabajo creada' o 'Material entregado'. Se obtiene del historial de cambios de estado o de los eventos de transacción específicos registrados en la orden de trabajo. Por qué es importante Define la secuencia del registro de eventos y permite reconstruir el flujo del proceso y analizar los cuellos de botella. Dónde obtenerlo Tabla R5EVENTHISTORY de Hexagon EAM, campo EVH_STATUS (asignado a las descripciones) o registros de auditoría Ejemplos Orden de trabajo creadaOrden de trabajo programadaOrden de trabajo completadaMaterial entregado | |||
| Marca de tiempo EventTimestamp | La fecha y la hora en que se produjo la actividad. | ||
| Descripción Este atributo registra el momento exacto en que se confirmó en el sistema un evento o un cambio de estado. Permite calcular la duración entre actividades y el tiempo de ciclo total de la orden de trabajo. Por qué es importante Las marcas de tiempo precisas son esenciales para analizar los tiempos de entrega, identificar demoras y calcular el cumplimiento de los SLA. Dónde obtenerlo Tabla R5EVENTHISTORY de Hexagon EAM, campo EVH_DATE Ejemplos 2023-10-12T08:30:00Z2023-10-12T14:15:00Z2023-10-13T09:00:00Z | |||
| Orden de trabajo de mantenimiento WorkOrderNumber | Identificador único de la orden de trabajo de mantenimiento. | ||
| Descripción Este atributo representa la clave principal única del caso de mantenimiento. Permite seguir la orden de trabajo desde la solicitud inicial hasta la planificación, la ejecución y el cierre financiero final. Se utiliza como identificador central del caso para vincular los registros de actividades, las horas de trabajo y el consumo de materiales. Por qué es importante Identifica la instancia específica del proceso de mantenimiento y permite hacer un seguimiento integral de los tiempos de ciclo y las variantes del proceso. Dónde obtenerlo Tabla R5EVENTS de Hexagon EAM, campo EVT_CODE Ejemplos WO-100234WO-100235WO-100236104592 | |||
| Sistema de origen SourceSystem | Nombre del sistema del que proceden los datos. | ||
| Descripción Este atributo indica el sistema de registro de los datos. En este contexto, se establece de forma fija el nombre del sistema EAM específico para distinguirlo de posibles datos heredados o de sistemas de contratistas externos. Por qué es importante Permite mantener clara la trazabilidad de los datos, especialmente al combinar datos de varias instancias de mantenimiento. Dónde obtenerlo Valor fijo Ejemplos Hexagon EAMInfor EAMDatastream 7i | |||
| Última actualización de los datos LastDataUpdate | Marca de tiempo de la última extracción o actualización del registro. | ||
| Descripción Este atributo registra cuándo se extrajeron por última vez los datos del sistema de origen. Ayuda a los analistas a conocer su actualidad e identificar posibles problemas de latencia en el flujo de generación de informes. Por qué es importante Aporta confianza en la actualidad del análisis y ayuda a diagnosticar problemas de sincronización de datos. Dónde obtenerlo Hora del sistema en el momento de la extracción Ejemplos 2023-10-25T12:00:00Z2023-10-26T00:00:00Z | |||
| Activo AssetCode | El identificador único del equipo o las instalaciones que reciben mantenimiento. | ||
| Descripción Este atributo vincula la orden de trabajo con un equipo o una ubicación específicos. Permite analizar la frecuencia de fallas por activo e identificar equipos problemáticos o que podrían necesitar reemplazo. Por qué es importante Es fundamental para calcular las métricas de confiabilidad de los activos y saber dónde se concentra el esfuerzo de mantenimiento. Dónde obtenerlo Tabla R5EVENTS de Hexagon EAM, campo EVT_OBJECT Ejemplos PUMP-001HVAC-204FLEET-99CONVEYOR-A | |||
| Departamento MaintenanceDepartment | El departamento o centro de trabajo responsable de realizar el trabajo. | ||
| Descripción Este atributo identifica al equipo o taller de mantenimiento asignado a la orden de trabajo, como el equipo eléctrico, mecánico o de instalaciones. Permite comparar el rendimiento de distintos equipos técnicos. Por qué es importante Es compatible con el Dashboard de productividad laboral de técnicos y ayuda a asignar recursos de forma eficaz entre los distintos oficios. Dónde obtenerlo Tabla R5EVENTS de Hexagon EAM, campo EVT_MRC Ejemplos Taller eléctricoMantenimiento mecánicoInstalacionesServicio de flota | |||
| Fecha prevista de finalización TargetCompletionDate | La fecha límite programada para la orden de trabajo. | ||
| Descripción Este atributo indica la fecha en que se espera que finalice el trabajo de mantenimiento. Compararla con la fecha real de finalización es fundamental para calcular el cumplimiento del SLA y el rendimiento en cuanto a puntualidad. Por qué es importante Es fundamental para el monitor de cumplimiento del SLA de contratistas y para evaluar la precisión de la planificación. Dónde obtenerlo Tabla R5EVENTS de Hexagon EAM, campo EVT_TARGET Ejemplos 2023-11-012023-11-152023-12-01 | |||
| Horas reales de mano de obra ActualLaborHours | El total de horas registradas en la orden de trabajo. | ||
| Descripción Este atributo suma el tiempo que los técnicos han registrado en la orden de trabajo. Se utiliza para medir la productividad, calcular los costes de mano de obra y analizar las diferencias con respecto a las horas estimadas. Por qué es importante Es la fuente principal de datos para el Dashboard de productividad laboral de técnicos y el KPI de variación de horas de mano de obra. Dónde obtenerlo Tabla R5BOOKEDHOURS de Hexagon EAM, campo BOO_HOURS (sumado por orden de trabajo) Ejemplos 2.54.012.00.5 | |||
| Prioridad PriorityCode | Nivel de urgencia asignado a la orden de trabajo. | ||
| Descripción Este atributo indica la importancia de la orden de trabajo, desde rutinaria hasta de emergencia. Determina la programación de los recursos y es fundamental para supervisar el cumplimiento de los SLA y detectar el uso indebido de las prioridades. Por qué es importante Es esencial para el Dashboard de escalamiento de prioridades y auditoría de recursos garantizar que las tareas críticas reciban la prioridad adecuada. Dónde obtenerlo Tabla R5EVENTS de Hexagon EAM, campo EVT_PRIORITY Ejemplos CríticoAltaMediaBaja | |||
| Tipo de orden de trabajo WorkOrderType | Clasifica la orden de trabajo como preventiva, correctiva o de emergencia. | ||
| Descripción Este atributo clasifica la naturaleza del trabajo de mantenimiento. Se utiliza para analizar la proporción entre el mantenimiento preventivo planificado y las reparaciones de emergencia reactivas, un indicador clave de la salud de los activos y la madurez de la gestión. Por qué es importante Permite analizar la proporción de mantenimiento preventivo y ayuda a identificar oportunidades para reducir el trabajo reactivo. Dónde obtenerlo Tabla R5EVENTS de Hexagon EAM, campo EVT_TYPE Ejemplos PPMCOREMGPRJ | |||
| Usuario UpdatedBy | El ID de usuario de la persona que realizó la actividad. | ||
| Descripción Este atributo registra el ID de inicio de sesión de la persona responsable de activar el cambio de estado o la actualización. Se utiliza para analizar la carga de trabajo del equipo, detectar necesidades de formación y auditar el cumplimiento del proceso. Por qué es importante Permite analizar el comportamiento de los usuarios y el uso de los recursos durante todo el ciclo de mantenimiento. Dónde obtenerlo Tabla R5EVENTHISTORY de Hexagon EAM, campo EVH_USER Ejemplos JSMITHADAVISSYSTEMMGR_USR | |||
| Control de calidad aprobado QualityControlPassed | Indicador de si se documentó el paso de control de calidad. | ||
| Descripción Este atributo booleano comprueba si una actividad específica de control de calidad o un elemento de la lista de verificación se marcó como completado. Ayuda a garantizar el cumplimiento de las normas de seguridad y los estándares internos. Por qué es importante Es la base del KPI de tasa de cumplimiento del control de calidad y es compatible con el Dashboard de cumplimiento e integridad de la documentación. Dónde obtenerlo Derivado de las tablas de listas de verificación o del historial de actividades Ejemplos truefalse | |||
| Coste real total TotalActualCost | El coste financiero total registrado para la orden de trabajo. | ||
| Descripción Este atributo recoge el coste total de mano de obra, materiales y servicios. Es esencial para analizar la liquidación financiera y comprender el impacto en los costes del mantenimiento de emergencia frente al mantenimiento preventivo. Por qué es importante Es compatible con el Dashboard de liquidación financiera y velocidad de cierre, y permite tomar decisiones basadas en los costes. Dónde obtenerlo Tabla R5EVENTS de Hexagon EAM, campo EVT_ACTCOST (o una columna de resumen similar) Ejemplos 150.002500.5075.25 | |||
| Criticidad del activo AssetCriticality | Puntuación que indica la importancia operativa del activo. | ||
| Descripción Este atributo indica la importancia del activo para las operaciones de la empresa. A menudo se utiliza para comprobar si las órdenes de trabajo de alta prioridad corresponden realmente a equipos críticos y detectar posibles usos indebidos del proceso. Por qué es importante Es compatible con el Dashboard de escalamiento de prioridades y auditoría de recursos, ya que permite relacionar la prioridad con el valor del activo. Dónde obtenerlo Tabla R5OBJECTS de Hexagon EAM, campo OBJ_CRITICALITY (requiere una unión por EVT_OBJECT) Ejemplos A - VitalB - CríticoC - SecundarioD - Bajo | |||
| Descripción de la orden de trabajo WorkOrderDescription | Resumen breve de la tarea de mantenimiento. | ||
| Descripción Este atributo contiene el asunto o una descripción breve del problema. Proporciona contexto a quienes analizan casos problemáticos concretos o buscan patrones en texto no estructurado. Por qué es importante Proporciona el contexto necesario para que una persona revise los datos del proceso. Dónde obtenerlo Tabla R5EVENTS de Hexagon EAM, campo EVT_DESC Ejemplos Reparar el sello de la bomba que tiene una fugaInspección mensual del sistema HVACReemplazar la banda transportadora | |||
| Es preventivo IsPreventive | Indicador de si la orden de trabajo corresponde a mantenimiento preventivo. | ||
| Descripción Este atributo booleano permite filtrar y clasificar fácilmente las órdenes de trabajo. Simplifica el cálculo del KPI de proporción de mantenimiento preventivo al separar el trabajo proactivo de las reparaciones reactivas. Por qué es importante Es una segmentación fundamental para el Dashboard de análisis de la proporción de mantenimiento preventivo. Dónde obtenerlo Derivado de WorkOrderType Ejemplos truefalse | |||
| Es retrabajo IsRework | Indicador de si la orden de trabajo incluyó tareas técnicas repetidas. | ||
| Descripción Este atributo calculado identifica los casos en que el proceso vuelve de una comprobación de calidad o un estado de finalización a un estado de trabajo activo. Ayuda a detectar problemas de calidad y carencias de formación. Por qué es importante Es la base del Dashboard de retrabajo técnico y control de calidad, así como del KPI de tasa de retrabajo de mantenimiento. Dónde obtenerlo Calculado a partir de las repeticiones de actividades Ejemplos truefalse | |||
| Escalamiento de emergencia EmergencyEscalationFlag | Indicador de si la prioridad se elevó a emergencia después de la creación. | ||
| Descripción Este atributo booleano identifica las órdenes de trabajo que comenzaron con una prioridad menor y luego se elevaron a emergencia. Si ocurre con frecuencia, podría indicar una evaluación inicial deficiente o un uso estratégico del sistema para recibir atención más rápida. Por qué es importante Es compatible con el Dashboard de escalamiento de prioridades y auditoría de recursos, así como con el KPI de tasa de escalamiento de emergencias. Dónde obtenerlo Derivado del registro de auditoría del campo Priority Ejemplos truefalse | |||
| Estado del SLA SLAState | Indica si la orden de trabajo cumplió el acuerdo de nivel de servicio. | ||
| Descripción Este atributo calculado compara la fecha real de finalización con la fecha prevista de finalización. Clasifica el caso como «Dentro del SLA» o «Incumplido» para facilitar la elaboración de informes sobre el rendimiento de contratistas y equipos internos. Por qué es importante Es la fuente directa de datos para el KPI de tasa de cumplimiento del SLA. Dónde obtenerlo Calculado: fecha real de finalización <= fecha prevista Ejemplos Dentro del SLAIncumplidoAbierto | |||
| Fecha de creación DateCreated | La fecha en que se generó originalmente la orden de trabajo. | ||
| Descripción Este atributo marca el inicio del ciclo de vida de la orden de trabajo. Sirve como referencia para calcular el tiempo medio de planificación y determinar la antigüedad de los elementos pendientes. Por qué es importante Es necesario para el Dashboard de velocidad de planificación del mantenimiento y el KPI de antigüedad de pendientes. Dónde obtenerlo Tabla R5EVENTS de Hexagon EAM, campo EVT_CREATED Ejemplos 2023-09-012023-09-15 | |||
| Fecha de solicitud de materiales MaterialRequisitionDate | La fecha en que se solicitaron las piezas de repuesto. | ||
| Descripción Este atributo registra la fecha y hora en que se envió la solicitud de materiales al almacén o al área de compras. Analizar el tiempo transcurrido desde esa fecha hasta la emisión de los materiales permite evaluar la eficiencia de la cadena de suministro. Por qué es importante Es necesario para el Dashboard de tiempos de entrega de compras de piezas de repuesto. Dónde obtenerlo Tabla R5REQUISITIONS de Hexagon EAM o tabla de transacciones vinculada Ejemplos 2023-10-012023-10-05 | |||
Actividades de mantenimiento de activos
| Actividad | Descripción | ||
|---|---|---|---|
| Horas de trabajo registradas | Un técnico registra las horas trabajadas en la orden de trabajo. Esta actividad puede repetirse varias veces en un mismo caso. | ||
| Por qué es importante Es la base de los Dashboards de variación de horas de trabajo y productividad laboral del personal técnico. Muestra el esfuerzo real frente al planificado. Dónde obtenerlo Tabla r5booklabor de Hexagon EAM. Cada fila representa una entrada de horas para la orden de trabajo. Capturar Se registra cuando se ejecuta una transacción INSERT en r5booklabor. Tipo de evento explicit | |||
| Material entregado | Los repuestos se entregan físicamente desde el almacén y se cargan a la orden de trabajo. Esto representa el consumo de materiales. | ||
| Por qué es importante Punto final para medir el tiempo de disponibilidad de materiales. Permite identificar demoras cuando el trabajo comienza, pero se detiene por falta de repuestos. Dónde obtenerlo Tabla r5translines de Hexagon EAM. Tipo de transacción 'I' (entrega), vinculado a la orden de trabajo. Capturar Se registra cuando se ejecuta una transacción INSERT en r5translines. Tipo de evento explicit | |||
| Orden de trabajo aprobada | Cambio de estado que indica que la orden de trabajo ha superado la revisión de planificación y estimación. Significa que se ha autorizado el inicio del trabajo. | ||
| Por qué es importante Permite analizar la velocidad de planificación del mantenimiento al marcar el final de la fase de planificación. También sirve para comprobar la separación de funciones. Dónde obtenerlo Tabla r5statuslog de Hexagon EAM. Busque la transición al estado 'A' (Aprobado) o su equivalente en el sistema. Capturar Se registra cuando se ejecuta una transacción en r5statuslog. Tipo de evento explicit | |||
| Orden de trabajo cerrada | La orden de trabajo queda bloqueada financieramente y archivada. Ya no se pueden registrar más costes ni horas de trabajo. | ||
| Por qué es importante Fin del proceso. Es fundamental para analizar las liquidaciones financieras procesadas y fijar los costes finales. Dónde obtenerlo r5statuslog de Hexagon EAM. Transición a 'C' (cerrada) o 'L' (bloqueada/cerrada). Capturar Se registra cuando se ejecuta una transacción en r5statuslog. Tipo de evento explicit | |||
| Orden de trabajo completada | El trabajo técnico ha finalizado y el técnico ha marcado la tarea como completada. El activo vuelve a estar en servicio. | ||
| Por qué es importante Hito clave para medir la duración total del ciclo y el tiempo medio de reparación. Detiene el cómputo del tiempo de inactividad. Dónde obtenerlo r5statuslog de Hexagon EAM. Transición a 'C' (completada) o 'F' (finalizada). Capturar Se registra cuando se ejecuta una transacción en r5statuslog. Tipo de evento explicit | |||
| Orden de trabajo creada | Creación inicial del registro de la orden de trabajo de mantenimiento en el sistema. Este evento establece el caso y registra la marca de tiempo inicial de todo el ciclo de mantenimiento. | ||
| Por qué es importante Marca el inicio de la instancia del proceso y establece la referencia para medir el tiempo total de resolución. Es fundamental para calcular la antigüedad del trabajo pendiente. Dónde obtenerlo Tabla r5events de Hexagon EAM. Se registra al insertar un nuevo registro con evt_code. Capturar Se registra cuando se ejecuta una transacción INSERT en r5events. Tipo de evento explicit | |||
| Orden de trabajo iniciada | El personal técnico ha comenzado el trabajo físico en el activo. Suele indicarse mediante un cambio de estado a En curso o con la primera marca de tiempo del registro de horas trabajadas. | ||
| Por qué es importante Punto final para calcular el trabajo pendiente y punto de partida para medir el tiempo efectivo de trabajo. Es fundamental para la tasa de cumplimiento de los SLA. Dónde obtenerlo r5statuslog de Hexagon EAM. Transición a 'En curso' (a menudo, código de estado 'I' o 'IP'). Capturar Se registra cuando se ejecuta una transacción en r5statuslog. Tipo de evento explicit | |||
| Control de calidad aprobado | Un supervisor o inspector revisa el trabajo completado y aprueba su calidad. Este paso valida la reparación antes del cierre. | ||
| Por qué es importante Permite calcular el KPI de tasa de cumplimiento del control de calidad. Los ciclos que vuelven a esta etapa indican que se repitió el trabajo técnico. Dónde obtenerlo r5statuslog de Hexagon EAM (transición a 'Review' o 'QC') o r5audittrail para la validación de un UDF específico. Capturar Compare el campo de estado antes y después. Tipo de evento inferred | |||
| Elemento de la lista de verificación validado | Una tarea o etapa de inspección específica de la orden de trabajo se marca como completada. Esto representa el avance detallado del trabajo. | ||
| Por qué es importante Es esencial para el cumplimiento y la integridad de la documentación. Demuestra que los controles de seguridad se registraron en el sistema. Dónde obtenerlo Tabla r5checklist o r5activities de Hexagon EAM. Cambio de estado de una actividad o tarea específica. Capturar Se registra cuando se ejecuta una transacción UPDATE en r5checklist. Tipo de evento explicit | |||
| Orden de trabajo aprobada y firmada | Suele requerirse una aprobación administrativa final para el cumplimiento o el pago al contratista. Confirma que todos los datos sean correctos. | ||
| Por qué es importante Supervise esta etapa para analizar el ciclo de aprobación de las órdenes de trabajo. Las demoras afectan a la rapidez de la liquidación financiera. Dónde obtenerlo r5statuslog de Hexagon EAM (transición a 'Signed Off') o registro de captura de firma electrónica. Capturar Compare el campo de estado antes y después. Tipo de evento inferred | |||
| Orden de trabajo programada | Se asigna a la orden de trabajo una fecha de inicio programada o un recurso específico. Así, la orden pasa del trabajo pendiente a la programación activa. | ||
| Por qué es importante Es fundamental para analizar la productividad laboral del personal técnico y comprender la eficiencia en la asignación de recursos. Dónde obtenerlo Tabla r5events de Hexagon EAM (actualización de evt_schedstart) o r5statuslog (transición a 'S', programada). Capturar Compare el campo de estado antes y después, o compruebe la actualización de evt_schedstart. Tipo de evento inferred | |||
| Prioridad actualizada | La prioridad de la orden de trabajo cambió después de su creación inicial. Se registran la marca de tiempo y el nuevo valor de prioridad. | ||
| Por qué es importante Es esencial para el Dashboard de escalamiento de prioridades y auditoría de recursos, que permite identificar el uso indebido de las prioridades o la ampliación del alcance. Dónde obtenerlo Tabla r5audittrail de Hexagon EAM, si la auditoría está habilitada, o inferida a partir de instantáneas. A menudo se obtiene del registro de auditoría del campo evt_priority. Capturar Se registra cuando se ejecuta una transacción UPDATE en evt_priority. Tipo de evento explicit | |||
| Solicitud de materiales creada | Se vincula a la orden de trabajo una solicitud de repuestos o materiales. Esto inicia el subproceso de la cadena de suministro. | ||
| Por qué es importante Punto de partida para medir los tiempos de entrega de la adquisición de repuestos. Un volumen elevado en esta etapa indica dependencia de la disponibilidad del inventario. Dónde obtenerlo Tabla r5requisitions de Hexagon EAM. Vinculada mediante req_evt (código de orden de trabajo). Capturar Se registra cuando se ejecuta una transacción INSERT en r5requisitions. Tipo de evento explicit | |||
Guías de extracción
Pasos
- Inicie sesión en la aplicación Hexagon EAM con una cuenta de usuario que tenga privilegios de creación de informes avanzados.
- Vaya al módulo Reports, que suele encontrarse en el menú Administration o Reports, y abra la interfaz de Advanced Reporting (a menudo Cognos o un generador de informes SQL integrado).
- Inicie el asistente para crear un informe y seleccione 'SQL' o 'Free-hand SQL' como tipo de fuente de datos. Así podrá consultar directamente la base de datos en lugar de utilizar el modelo estándar de objetos de negocio.
- Copie el script SQL de la sección Query que aparece a continuación y péguelo en la ventana de definición del conjunto de datos.
- Sustituya los valores de ejemplo, como [Your Organization Code] y los intervalos de fechas, por valores específicos de su entorno.
- Valide la sintaxis de la consulta en el editor para confirmar que la plataforma de base de datos (Oracle o SQL Server) acepta las instrucciones UNION.
- Asigne las columnas resultantes a la lista de disposición del informe y compruebe que WorkOrderNumber, ActivityName y EventTimestamp se vean con claridad.
- Configure la exportación del informe específicamente a CSV o Excel para obtener una estructura tabular sin celdas combinadas ni encabezados de formato.
- Ejecute el informe para un período de validación, por ejemplo, las últimas 100 órdenes de trabajo, y compruebe la estructura de los datos.
- Una vez verificado, programe la ejecución periódica del informe o ejecútelo para todo el período de extracción.
- Descargue el archivo de salida y compruebe los formatos de fecha. Si es posible, asegúrese de que las marcas de tiempo incluyan los segundos para ordenarlas con precisión.
- Importe el archivo CSV resultante en ProcessMind y asigne la columna SourceSystem como atributo del caso y ActivityName como clasificador de actividad.
Configuración
- Intervalo de fechas: Se recomienda filtrar por EVT_DATE (fecha de creación) con una ventana móvil de 6 a 12 meses para mantener el rendimiento de la consulta.
- Filtro de organización: Hexagon EAM suele tener varias organizaciones. Asegúrese de que la consulta incluya un filtro para el código de su organización específica y así evitar mezclar datos de otras unidades de negocio.
- Sintaxis de la base de datos: La consulta siguiente utiliza SQL estándar ANSI siempre que es posible, pero Hexagon EAM suele ejecutarse en Oracle o SQL Server. Puede que sea necesario ajustar ligeramente las funciones de fecha, por ejemplo, SYSDATE frente a GETDATE.
- Configuración de estados: La asignación de códigos de estado, como 'A', 'C' y 'R', a nombres de actividad, como 'Work Order Approved', debe coincidir con la configuración de estados específica de su sistema.
- Permisos: La cuenta de usuario que ejecute el informe necesita acceso de lectura a las tablas R5EVENTS, R5EVENTSTATUS, R5BOOKEDHOURS, R5TRANSACTIONS y R5AUDITVALUES.
Consulta de ejemplo 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' Pasos
- Identifique la conexión a la base de datos: Asegúrese de tener credenciales de acceso de lectura, normalmente de una cuenta de servicio, para la base de datos de backend Oracle o SQL Server de Hexagon EAM.
- Localice las tablas principales: Confirme que tiene acceso a R5EVENTS (encabezados de órdenes de trabajo), R5STATUS (historial de estados), R5BOOKEDHOURS (mano de obra), R5TRANSACTIONS (materiales) y R5AUDITVALUES (registro de auditoría).
- Asigne los códigos de estado: Hexagon EAM utiliza códigos de estado configurables, como A, C, O y R. Revise la configuración de su sistema (pantalla: Administration -> Codes) para asignar sus códigos específicos de 1 o 2 caracteres a las actividades Approved, Scheduled, Started, Completed, QC Passed, Signed Off y Closed.
- Configure la consulta: Abra el script SQL que aparece a continuación. Sustituya los códigos de estado de ejemplo, como 'APPR', 'SCHD' y 'COMP', por los códigos reales de su sistema.
- Defina el intervalo de fechas: Actualice las cláusulas WHERE para filtrar por EVT_DATE o TRN_DATE y seleccionar un período específico, normalmente los últimos 12 meses, a fin de mantener el rendimiento de la consulta.
- Ejecute la extracción: Ejecute la consulta en su cliente SQL (SQL Developer, SSMS o Toad).
- Verifique los datos de auditoría: Si la actividad 'Priority Updated' no devuelve filas, compruebe si la función de auditoría está habilitada para la tabla R5EVENTS en la configuración de su sistema EAM.
- Valide los datos de la lista de verificación: Asegúrese de que R5CHECKLISTVALUES sea la tabla correcta para su versión; las versiones anteriores pueden utilizar R5ACTIVITIES para registrar la finalización de tareas.
- Exporte los datos: Guarde el conjunto de resultados como archivo CSV o Parquet. Asegúrese de que la columna Timestamp tenga el formato ISO 8601 (YYYY-MM-DD HH:MM:SS) para evitar errores de análisis.
- Importe los datos en ProcessMind: Cargue el archivo plano en la interfaz de ProcessMind y asigne WorkOrderNumber a Case ID, ActivityName a Activity y EventTimestamp a Timestamp.
Configuración
- Filtro de intervalo de tiempo: Actualmente, la consulta selecciona todos los datos. Se recomienda encarecidamente añadir un filtro como WHERE EVT_DATE >= SYSDATE - 365 (Oracle) o GetDate() - 365 (SQL Server) en la CTE base o en cada bloque SELECT.
- Asignación de códigos de estado: Debe sustituir los valores de texto de SQL, como 'APPR', 'COMP' y 'QC', por los códigos reales definidos en su conjunto R5STATUS.
- Configuración de auditoría: La extracción de 'Priority Updated' depende de la tabla R5AUDITVALUES. Si la auditoría está desactivada para la columna EVT_PRIORITY, faltará esta actividad.
- Organización/inquilino: Si su instancia de EAM aloja varias organizaciones, añada un filtro para EVT_ORG o EVT_MRC (departamento) para evitar mezclar datos.
- Idioma: La consulta presupone que los encabezados de columna están en inglés estándar. Si su base de datos utiliza nombres de columna localizados, ajústelos según corresponda.
Consulta de ejemplo 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 Pasos
- Confirme que Hexagon EAM Databridge Outbound esté instalado, cuente con licencia y tenga autorización para acceder a los datos de órdenes de trabajo de mantenimiento necesarios para esta extracción. Confirme la configuración de la transacción saliente, el destino, la capacidad de programación y el acceso a las tablas o vistas de origen. Utilice [Configure based on your system] para indicar la ruta del menú de administración correspondiente, ya que los nombres de los menús y los identificadores de las transacciones varían según la versión de EAM.
- Identifique las tablas o vistas autorizadas de Hexagon EAM para los encabezados de órdenes de trabajo, el historial de estados, el historial de prioridades, las solicitudes de materiales, las entregas de materiales, las transacciones de mano de obra, los resultados de listas de verificación o inspecciones, las asignaciones de programación, las aprobaciones de calidad, los registros de aprobación y los registros de cierre. Sustituya cada marcador [Your ... table name] de la consulta por el objeto correspondiente de su entorno. No dé por sentado que el encabezado actual de una orden de trabajo contiene el historial de cambios.
- Configure Databridge Outbound para que publique una transacción XML o CSV cada vez que se confirme un cambio pertinente en una orden de trabajo. Incluya el número de orden de trabajo, el tipo de evento, la marca de tiempo del evento, el usuario de origen, la prioridad, el tipo de orden de trabajo, el departamento, la fecha prevista de finalización, el activo, las horas reales de mano de obra y una marca de tiempo de actualización o extracción. Configure asignaciones salientes independientes si las estructuras de las transacciones de origen difieren para los eventos de estado, mano de obra, materiales, listas de verificación, programación, calidad, aprobación o cierre.
- Configure la carga saliente para que cada suceso de negocio se represente como un registro de evento individual. No envíe únicamente el estado más reciente de la orden de trabajo. Para las entradas repetidas de mano de obra, entregas de materiales, elementos de listas de verificación, cambios de prioridad u otros sucesos repetidos, genere un registro por cada uno. Asigne el tipo de evento de Databridge a uno de los 13 valores requeridos de ActivityName.
- Guarde la salida XML o CSV de Databridge en una ubicación de preparación controlada y, después, cárguela en los objetos de base de datos a los que hace referencia la consulta o sustituya los objetos de origen de la consulta por las tablas de preparación. Conserve el identificador original del evento, el número de orden de trabajo, la marca de tiempo del evento, el usuario de origen y LastDataUpdate. Si Databridge envía XML, analice los nodos de eventos repetidos y conviértalos en filas antes de asignar las actividades. Si envía CSV, valide los delimitadores, las comillas, la codificación y los formatos de marca de tiempo.
- Sustituya los marcadores de la consulta por los objetos específicos de la conexión, los parámetros de fecha y los filtros de empresa. La consulta utiliza una fuente de eventos normalizada para cada actividad y combina los resultados con UNION ALL. Asegúrese de que las columnas de origen utilizadas en cada bloque tengan tipos de datos compatibles. Si una fuente no proporciona un atributo recomendado, devuelva NULL para ese atributo en lugar de inventar un valor.
- Ejecute la consulta para un período inicial de aproximadamente tres a seis meses. Confirme que el resultado incluya las columnas requeridas WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem y LastDataUpdate, además de los atributos recomendados cuando estén disponibles. Ordene los resultados por WorkOrderNumber, EventTimestamp y ActivityName, y conserve las filas duplicadas cuando correspondan a sucesos de origen distintos.
- Concilie las filas extraídas con los recuentos de entregas de Databridge, los recuentos de transacciones de origen y una muestra de órdenes de trabajo de Hexagon EAM. Investigue el historial de estados que falte, las entregas duplicadas, las marcas de tiempo no válidas y los eventos fuera del intervalo de fechas seleccionado. Aplique una regla de deduplicación estable solo cuando se haya entregado más de una vez el mismo evento de origen.
- Exporte el resultado final como CSV UTF-8 o en otro formato de Registro de eventos compatible con ProcessMind. Incluya un evento por fila, utilice una marca de tiempo coherente con la zona horaria correspondiente, asigne WorkOrderNumber como identificador del caso, ActivityName como actividad y EventTimestamp como marca de tiempo del evento. Cargue el archivo en ProcessMind y compruebe que los 13 nombres de actividad estén disponibles en el modelo de eventos.
Configuración
- Configure Hexagon EAM Databridge Outbound para entregar eventos individuales en XML o CSV. Los nombres exactos de las transacciones, las pantallas de administración y las rutas de menú dependen de la versión instalada de Hexagon EAM. Por eso, utilice [Configure based on your system] en lugar de suponer una ruta específica de una versión.
- Configure WorkOrderNumber como identificador del caso en ProcessMind, ActivityName como campo de actividad y EventTimestamp como marca de tiempo del evento. Complete SourceSystem con Hexagon EAM y utilice LastDataUpdate para indicar la hora de extracción o actualización.
- Configure asignaciones salientes para las 13 actividades: 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 y Work Order Closed.
- Conserve los sucesos históricos. Un campo de estado actual por sí solo no permite reconstruir todas las transiciones de estado, actualizaciones de prioridad, entradas de mano de obra, entregas de materiales, verificaciones de listas de control, aprobaciones o aprobaciones finales.
- Utilice un intervalo de tres a seis meses para la extracción inicial. Para las cargas incrementales, utilice la marca de agua de entrega de Databridge o LastDataUpdate, con un pequeño período de solapamiento para evitar perder transacciones que lleguen tarde.
- Aplique filtros de empresa, sitio, organización, tipo de orden de trabajo, departamento y estado solo cuando sean necesarios para el análisis. Utilice [Your company filter] o [Configure based on your system] para las restricciones específicas de la organización.
- Incluya las órdenes de trabajo cerradas si el análisis abarca el ciclo de vida completo. Si filtra las órdenes abiertas, omitirá las actividades de finalización, calidad, aprobación y cierre.
- Configure explícitamente la gestión de zonas horarias. Convierta todas las marcas de tiempo de origen a una única zona horaria acordada antes de cargarlas en ProcessMind y conserve la zona horaria o el desfase originales cuando estén disponibles.
- Para conjuntos de datos grandes, filtre en el origen, limite el período de extracción, cree índices o particiones por marca de tiempo del evento y número de orden de trabajo, y prepare los archivos de Databridge antes de transformarlos. Evite analizar repetidamente toda la carga XML histórica.
- Los requisitos previos incluyen la disponibilidad de Databridge Outbound, autorización para leer los datos pertinentes de EAM, acceso al destino de salida o a la base de datos de preparación y acceso a los datos de órdenes de trabajo, estados, materiales, mano de obra, listas de verificación, programación, aprobaciones, calidad, aprobación final y cierre.
- Si un evento de negocio requerido no está disponible como transacción nativa de Databridge, configure una vista de origen o una transformación de preparación que genere una fila de evento explícita. ProcessMind no deduce actividades que faltan a partir de otras filas.
Consulta de ejemplo 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; ¿Listo para comenzar?
Convierta sus datos de mantenimiento en información útil para la acción con este Template. Nuestro equipo puede ayudarle con cualquier consulta técnica durante la preparación de los datos.
Reduzca los retrasos en el mantenimiento de activos y mejore el rendimiento hoy mismo
Reduzca el tiempo de ciclo un 30 % y elimine los cuellos de botella ocultos.
No se requiere tarjeta de crédito. Configuración en minutos.