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 del mantenimiento de activos
| Nombre | Descripción | ||
|---|---|---|---|
| Actividad ActivityName | La tarea específica o el evento de cambio de estado que se produjo. | ||
| Descripción Este atributo representa el paso del proceso que se está ejecutando, como 'Work Order Created' o 'Material Issued'. Se obtiene del historial de cambios de estado o de eventos transaccionales 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 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 hora en que se produjo la actividad. | ||
| Descripción Este atributo registra el momento exacto en que un evento o cambio de estado se confirmó en el sistema. 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 plazos, identificar retrasos 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 | El identificador único de la orden de trabajo de mantenimiento. | ||
| Descripción Este atributo representa la clave primaria única del caso de mantenimiento. Realiza el seguimiento de 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 unir los registros de actividades, las horas de trabajo y el consumo de materiales. Por qué es importante Identifica la instancia específica del proceso y permite realizar 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 | El nombre del sistema del que proceden los datos. | ||
| Descripción Este atributo indica el sistema de registro de los datos. En este contexto, está codificado con el nombre específico del sistema EAM para distinguirlo de posibles datos heredados o de sistemas de contratistas externos. Por qué es importante Garantiza la trazabilidad clara de los datos, especialmente al combinar datos de varias instancias de mantenimiento. Dónde obtenerlo Valor codificado Ejemplos Hexagon EAMInfor EAMDatastream 7i | |||
| Última actualización de datos LastDataUpdate | La marca de tiempo en la que el registro se extrajo o actualizó por última vez. | ||
| Descripción Este atributo registra cuándo se obtuvieron los datos por última vez del sistema de origen. Ayuda a los analistas a conocer la actualidad de los datos e identificar posibles problemas de latencia en el flujo de generación de informes. Por qué es importante Aporta confianza en la vigencia del análisis y ayuda a depurar problemas de sincronización de datos. Dónde obtenerlo Hora del sistema en la extracción Ejemplos 2023-10-25T12:00:00Z2023-10-26T00:00:00Z | |||
| Activo AssetCode | El identificador único del equipo o la instalación objeto del mantenimiento. | ||
| Descripción Este atributo vincula la orden de trabajo con un equipo o una ubicación específicos. Permite analizar la frecuencia de fallos por activo y ayuda a identificar activos problemáticos o equipos que requieren reemplazo. Por qué es importante Es fundamental para calcular las métricas de fiabilidad de los activos y comprender 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 ejecutar el trabajo. | ||
| Descripción Este atributo identifica el equipo o taller de mantenimiento asignado a la orden de trabajo, como Electricidad, Mecánica o Instalaciones. Permite comparar el rendimiento de los distintos equipos técnicos. Por qué es importante Es compatible con el panel Technician Labor Productivity y ayuda a asignar recursos eficazmente entre las distintas especialidades. Dónde obtenerlo Tabla R5EVENTS de Hexagon EAM, campo EVT_MRC Ejemplos Taller eléctricoMantenimiento mecánicoInstalacionesServicio de flota | |||
| Fecha de finalización prevista TargetCompletionDate | La fecha límite programada para la orden de trabajo. | ||
| Descripción Este atributo representa la fecha en la que se espera finalizar el trabajo de mantenimiento. Comparar esta fecha con la fecha de finalización real es fundamental para calcular el cumplimiento del SLA y el rendimiento dentro del plazo. 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 número total de horas registradas para la orden de trabajo. | ||
| Descripción Este atributo suma el tiempo que los técnicos han registrado para la orden de trabajo. Se utiliza para medir la productividad, calcular los costos de mano de obra y analizar la variación frente a las horas estimadas. Por qué es importante Es la fuente de datos principal del panel de Productividad de mano de obra de técnicos y del 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 | El 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 abusos de prioridad. Por qué es importante Es esencial para el panel Priority Escalation and Resource Audit, ya que garantiza que las tareas críticas reciban la prioridad correcta. Dónde obtenerlo Tabla R5EVENTS de Hexagon EAM, campo EVT_PRIORITY Ejemplos CríticoAltoMedioBajo | |||
| 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 Es compatible con el panel Preventive Maintenance Ratio Analysis 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 o la actualización de estado. Se utiliza para analizar la carga de trabajo del equipo, identificar necesidades de capacitación y auditar el cumplimiento del proceso. Por qué es importante Permite analizar el comportamiento de los usuarios y la utilización de recursos durante todo el ciclo de vida del mantenimiento. Dónde obtenerlo Tabla R5EVENTHISTORY de Hexagon EAM, campo EVH_USER Ejemplos JSMITHADAVISSYSTEMMGR_USR | |||
| Control de calidad superado QualityControlPassed | Indicador que señala 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 comprobación se marcó como completado. Garantiza el cumplimiento de las normas de seguridad y los estándares internos. Por qué es importante Alimenta el KPI de Tasa de cumplimiento del control de calidad y admite el panel de Cumplimiento e integridad de la documentación. Dónde obtenerlo Derivado de tablas de listas de comprobación o del historial de actividades Ejemplos truefalse | |||
| Costo total real TotalActualCost | El costo financiero total registrado para la orden de trabajo. | ||
| Descripción Este atributo registra el costo agregado de la mano de obra, los materiales y los servicios. Es esencial para analizar la liquidación financiera y comprender el impacto en los costos del mantenimiento de emergencia frente al mantenimiento preventivo. Por qué es importante Admite el panel de Liquidación financiera y velocidad de cierre, así como la toma de decisiones basada en costos. 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 | Una puntuación que indica la importancia operativa del activo. | ||
| Descripción Este atributo indica la importancia del activo para las operaciones del negocio. A menudo se utiliza para validar si las órdenes de trabajo de alta prioridad están realmente asociadas con equipos críticos y detectar posibles usos indebidos del proceso. Por qué es importante Admite el panel de Escalamiento de prioridades y auditoría de recursos al relacionar la prioridad con el valor del activo. Dónde obtenerlo Tabla R5OBJECTS de Hexagon EAM, campo OBJ_CRITICALITY (requiere una unión mediante EVT_OBJECT) Ejemplos A - VitalB - CríticoC - SecundarioD - Bajo | |||
| Descripción de la orden de trabajo WorkOrderDescription | Un breve resumen textual de la tarea de mantenimiento. | ||
| Descripción Este atributo contiene el asunto o una breve descripción del problema. Proporciona contexto a los analistas al profundizar en casos problemáticos específicos o identificar patrones en texto no estructurado. Por qué es importante Proporciona el contexto necesario para la revisión humana de los datos del proceso. Dónde obtenerlo Tabla R5EVENTS de Hexagon EAM, campo EVT_DESC Ejemplos Reparar el sello de la bomba con fugasInspección mensual de HVACSustituir la correa del transportador | |||
| Es preventivo IsPreventive | Indicador que señala si la orden de trabajo corresponde a mantenimiento preventivo. | ||
| Descripción Este atributo booleano permite filtrar y categorizar 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 panel de Análisis de la proporción de mantenimiento preventivo. Dónde obtenerlo Derivado de WorkOrderType Ejemplos truefalse | |||
| Es retrabajo IsRework | Indicador que señala si la orden de trabajo implicó tareas técnicas repetidas. | ||
| Descripción Este atributo calculado identifica los casos en los que el proceso vuelve de una comprobación de calidad o de un estado de finalización a un estado de trabajo activo. Ayuda a detectar problemas de calidad y carencias de capacitación. Por qué es importante Alimenta el panel de Retrabajo técnico y control de calidad, así como el KPI de Tasa de retrabajo de mantenimiento. Dónde obtenerlo Calculado según las repeticiones de actividades Ejemplos truefalse | |||
| Escalamiento de emergencia EmergencyEscalationFlag | Indicador que señala 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, pero posteriormente se elevaron a Emergencia. Una frecuencia elevada puede indicar una clasificación inicial deficiente o la manipulación del sistema para obtener un servicio más rápido. Por qué es importante Admite el panel de Escalamiento de prioridades y auditoría de recursos, así como 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 de finalización real con la fecha de finalización prevista. Clasifica el caso como «Dentro del SLA» o «Incumplido» para simplificar los informes sobre el rendimiento de contratistas y equipos internos. Por qué es importante Es la fuente de datos directa del KPI de Tasa de cumplimiento del SLA. Dónde obtenerlo Calculado: fecha de finalización real <= fecha prevista Ejemplos Dentro del SLAIncumplidoAbierto | |||
| Fecha de creación DateCreated | La fecha en la que se generó originalmente la orden de trabajo. | ||
| Descripción Este atributo marca el inicio del ciclo de vida de la orden de trabajo. Es la base 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 panel 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 la que se solicitaron las piezas de repuesto. | ||
| Descripción Este atributo registra la marca de tiempo en la que la solicitud de materiales se envió al almacén o al área de compras. Analizar el tiempo transcurrido desde esta fecha hasta «Material emitido» permite evaluar la eficiencia de la cadena de suministro. Por qué es importante Es necesario para el panel de Plazos de adquisición 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 producirse varias veces por caso. | ||
| Por qué es importante Es la base de los Dashboards «Labor Hour Variance» y «Technician Labor Productivity». Muestra el esfuerzo real frente al planificado. Dónde obtenerlo Tabla r5booklabor de Hexagon EAM. Cada fila representa un registro de horas de la orden de trabajo. Recopilar Se registra cuando se ejecuta la 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 calcular el plazo de disponibilidad de materiales. Permite identificar retrasos en los que el trabajo comienza, pero se detiene por falta de repuestos. Dónde obtenerlo Tabla r5translines de Hexagon EAM. Tipo de transacción 'I' (Issue) vinculado a la orden de trabajo. Recopilar Se registra cuando se ejecuta la 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 el trabajo está autorizado para continuar. | ||
| Por qué es importante Permite analizar la velocidad de planificación del mantenimiento al marcar el final de la fase de planificación. Comprobación del cumplimiento de la segregación de funciones. Dónde obtenerlo Tabla r5statuslog de Hexagon EAM. Busque la transición al estado 'A' (Approved) o su equivalente en el sistema. Recopilar 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 costes ni horas de trabajo adicionales. | ||
| Por qué es importante Fin del proceso. Es fundamental para analizar el procesamiento de la liquidación financiera y fijar los costes finales. Dónde obtenerlo r5statuslog de Hexagon EAM. Transición a 'C' (Closed) o 'L' (Locked/Closed). Recopilar Se registra cuando se ejecuta una transacción en r5statuslog Tipo de evento explicit | |||
| Orden de trabajo completada | El trabajo técnico ha terminado y el técnico ha marcado el trabajo como completado. El activo vuelve a estar operativo. | ||
| Por qué es importante Hito clave para la duración del ciclo de vida de principio a fin y el tiempo medio de reparación. Detiene el contador del tiempo de inactividad. Dónde obtenerlo r5statuslog de Hexagon EAM. Transición a 'C' (Completed) o 'F' (Finished). Recopilar 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 vida del mantenimiento. | ||
| Por qué es importante Marca el inicio de la instancia del proceso y establece la base para medir el tiempo total de resolución. Es fundamental para calcular la antigüedad de las órdenes pendientes. Dónde obtenerlo Tabla r5events de Hexagon EAM. Se registra cuando se inserta un nuevo registro con evt_code. Recopilar Se registra cuando se ejecuta la transacción INSERT en r5events Tipo de evento explicit | |||
| Orden de trabajo iniciada | Los técnicos han comenzado el trabajo físico en el activo. A menudo se marca mediante un cambio de estado a In Progress o con la primera marca de tiempo del registro de horas trabajadas. | ||
| Por qué es importante Punto final para calcular las órdenes pendientes y punto de inicio del tiempo efectivo de trabajo. Es fundamental para la tasa de cumplimiento de los SLA. Dónde obtenerlo r5statuslog de Hexagon EAM. Transición a 'In Progress', normalmente con el código de estado 'I' o 'IP'. Recopilar Se registra cuando se ejecuta una transacción en r5statuslog Tipo de evento explicit | |||
| Control de calidad superado | 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 regresan desde aquí indican retrabajo 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. Recopilar Compare el campo de estado antes y después Tipo de evento inferred | |||
| Elemento de la lista de comprobación verificado | Una tarea o paso de inspección específico dentro de la orden de trabajo se marca como completado. Esto representa el progreso detallado del trabajo. | ||
| Por qué es importante Es esencial para el cumplimiento y la integridad de la documentación. Demuestra que las comprobaciones de seguridad se registraron sistemáticamente. Dónde obtenerlo Tabla r5checklist o r5activities de Hexagon EAM. Cambio de estado de una actividad o tarea específica. Recopilar Se registra cuando se ejecuta la transacción UPDATE en r5checklist Tipo de evento explicit | |||
| Orden de trabajo aprobada y firmada | Aprobación administrativa final que normalmente se requiere para el cumplimiento o el pago al contratista. Confirma que todos los datos son correctos. | ||
| Por qué es importante Supervise este punto para analizar el ciclo de aprobación de las órdenes de trabajo. Los retrasos aquí 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. Recopilar Compare el campo de estado antes y después Tipo de evento inferred | |||
| Orden de trabajo programada | A la orden de trabajo se le asigna una fecha de inicio programada o un recurso específico. Esto la mueve de la lista de pendientes a la programación activa. | ||
| Por qué es importante Es fundamental para analizar la productividad laboral de los técnicos y comprender la eficiencia de la asignación de recursos. Dónde obtenerlo Tabla r5events de Hexagon EAM, actualización de evt_schedstart, o r5statuslog, transición a 'S' (Scheduled). Recopilar Compare el campo de estado antes y después, o compruebe la actualización de evt_schedstart Tipo de evento inferred | |||
| Prioridad actualizada | Se produjo un cambio en el nivel de prioridad de la orden de trabajo después de su creación inicial. Registra la marca de tiempo y el nuevo valor de prioridad. | ||
| Por qué es importante Es esencial para que el panel Priority Escalation and Resource Audit identifique abusos de prioridad o ampliaciones del alcance. Dónde obtenerlo Hexagon EAM r5audittrail, si la auditoría está habilitada, o inferido a partir de instantáneas. A menudo se deriva del registro de auditoría del campo evt_priority. Recopilar Se registra cuando se ejecuta la transacción UPDATE en evt_priority Tipo de evento explicit | |||
| Solicitud de materiales creada | Una solicitud de repuestos o materiales se vincula a la orden de trabajo. Esto inicia el subproceso de suministro. | ||
| Por qué es importante Punto de inicio para los plazos de adquisición de repuestos. Un volumen elevado aquí indica dependencia de la disponibilidad del inventario. Dónde obtenerlo Tabla r5requisitions de Hexagon EAM. Vinculada mediante req_evt (código de la orden de trabajo). Recopilar Se registra cuando se ejecuta la 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 Advanced Reporting Authoring.
- Vaya al módulo Reports, normalmente disponible en el menú Administration o Reports, y abra la interfaz de Advanced Reporting, a menudo Cognos o un generador de informes SQL integrado.
- Inicie un asistente para crear un informe y seleccione «SQL» o «Free-hand SQL» como tipo de origen de datos. Esto permite consultar directamente la base de datos en lugar de utilizar el modelo de objetos de negocio estándar.
- Copie el script SQL proporcionado en la sección Query y péguelo en la ventana de definición del conjunto de datos.
- Sustituya los valores de marcador de posición, 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 asegurarse de que la plataforma de base de datos, Oracle o SQL Server, acepta las instrucciones UNION.
- Asigne las columnas resultantes a la lista de diseño del informe y asegúrese de que WorkOrderNumber, ActivityName y EventTimestamp sean claramente visibles.
- Configure el informe para exportarlo específicamente en formato CSV o Excel y garantizar una estructura tabular sin celdas combinadas ni encabezados de formato.
- Ejecute el informe para un periodo de validación, por ejemplo, las últimas 100 órdenes de trabajo, para verificar la estructura de los datos.
- Una vez verificado, programe el informe para que se ejecute periódicamente o ejecútelo para todo el intervalo 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 ordenar los eventos con precisión.
- Importe el archivo CSV resultante en ProcessMind y asigne la columna SourceSystem como atributo del caso y ActivityName como clasificador de actividades.
Configuración
- Intervalo de fechas: se recomienda filtrar por EVT_DATE (fecha de creación) en una ventana móvil de 6 a 12 meses para mantener el rendimiento de la consulta.
- Filtro de organización: Hexagon EAM suele funcionar con varias organizaciones. Asegúrese de que la consulta incluya un filtro para su código de organización específico y evite mezclar datos de otras unidades de negocio.
- Sintaxis de la base de datos: la consulta utiliza SQL estándar ANSI siempre que es posible, pero Hexagon EAM suele ejecutarse en Oracle o SQL Server. Puede ser necesario ajustar ligeramente las funciones de fecha, por ejemplo, SYSDATE frente a GETDATE.
- Configuración de estados: la correspondencia entre los códigos de estado, por ejemplo, «A», «C» y «R», y los nombres de actividad, por ejemplo, «Work Order Approved», debe coincidir con la configuración específica de estados 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.
a 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 disponer de credenciales de acceso de lectura, normalmente una cuenta de servicio, para la base de datos Oracle o SQL Server de backend de Hexagon EAM.
- Localice las tablas principales: confirme el 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, por ejemplo, A, C, O y R. Revise la configuración de su sistema, en la 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 proporcionado a continuación. Sustituya los códigos de estado de marcador de posición, por ejemplo, «APPR», «SCHD» y «COMP», por los códigos reales de su sistema.
- Establezca el intervalo de fechas: actualice las cláusulas WHERE para filtrar por EVT_DATE o TRN_DATE y seleccionar una ventana temporal específica, normalmente los últimos 12 meses, a fin de garantizar el rendimiento de la consulta.
- Ejecute la extracción: ejecute la consulta en su cliente SQL, como SQL Developer, SSMS o Toad.
- Verifique los datos de auditoría: si la actividad «Priority Updated» no devuelve filas, compruebe si la funcionalidad de auditoría está habilitada para la tabla R5EVENTS en la configuración de su sistema EAM.
- Valide los datos de la lista de comprobación: asegúrese de que R5CHECKLISTVALUES sea la tabla correcta para su versión; las versiones anteriores pueden utilizar R5ACTIVITIES para la finalización a nivel de tarea.
- 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 temporal: la consulta selecciona actualmente 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 literales de cadena del SQL, por ejemplo, «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 específica.
- Organización/tenant: si su instancia de EAM aloja varias organizaciones, añada un filtro para EVT_ORG o EVT_MRC (departamento) a fin de evitar mezclar datos.
- Idioma: la consulta presupone encabezados de columna estándar en inglés. Si su base de datos utiliza nombres de columna localizados, ajústelos según corresponda.
a 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, tenga licencia y esté autorizado para 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 aplicable, 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 las órdenes de trabajo, el historial de estados, el historial de prioridades, las solicitudes de materiales, las salidas de materiales, las transacciones de mano de obra, los resultados de listas de comprobación o inspecciones, las asignaciones de planificación, las aprobaciones de calidad, los registros de firma y los registros de cierre. Sustituya cada marcador de posición [Your ... table name] de la consulta por el objeto correspondiente de su entorno. No dé por hecho que el encabezado actual de una orden de trabajo contiene los cambios históricos.
- Configure Databridge Outbound para publicar una transacción XML o CSV cada vez que se confirme un cambio relevante 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 comprobación, planificación, calidad, firma o cierre.
- Configure la carga saliente para que cada ocurrencia 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, salidas de materiales, elementos de listas de comprobación, cambios de prioridad u otras ocurrencias repetidas, genere un registro por ocurrencia. Asigne el tipo de evento de Databridge a uno de los 13 valores de ActivityName requeridos.
- Deposite la salida XML o CSV de Databridge en una ubicación de staging controlada y, a continuación, 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 staging. Conserve el identificador de evento original, 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 aplicar la asignación de actividades. Si envía CSV, valide los delimitadores, las comillas, la codificación y los formatos de fecha y hora.
- Sustituya en la consulta los marcadores de posición correspondientes a los objetos específicos de la conexión, los parámetros de fecha y los filtros de empresa. La consulta utiliza un origen de eventos normalizado para cada actividad y combina los resultados mediante UNION ALL. Asegúrese de que las columnas de origen utilizadas en cada bloque tengan tipos de datos compatibles. Si un origen no proporciona un atributo recomendado, devuelva NULL para ese atributo en lugar de inventar un valor.
- Ejecute la consulta para un periodo inicial aproximado de tres a seis meses. Confirme que el resultado contenga las columnas requeridas WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem y LastDataUpdate, junto con los atributos recomendados cuando estén disponibles. Ordene la salida por WorkOrderNumber, EventTimestamp y ActivityName, conservando las filas duplicadas cuando representen ocurrencias distintas del origen.
- 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 en Hexagon EAM. Investigue el historial de estados ausente, 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 únicamente cuando el mismo evento de origen se haya entregado más de una vez.
- Exporte el resultado final como CSV UTF-8 u otro formato de registro de eventos compatible con ProcessMind. Mantenga un evento por fila, utilice una marca de tiempo coherente con la gestión de zonas horarias, 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 archivos XML o CSV a nivel de evento. 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 lo que debe utilizar [Configure based on your system] en lugar de asumir 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. SourceSystem debe contener Hexagon EAM y LastDataUpdate debe identificar 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 las ocurrencias históricas. Un campo de estado actual por sí solo no permite reconstruir cada transición de estado, actualización de prioridad, registro de mano de obra, salida de materiales, verificación de una lista de comprobación, aprobación o firma.
- Utilice un intervalo de fechas 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 una pequeña ventana de solapamiento para protegerse frente a transacciones que lleguen tarde.
- Aplique filtros de empresa, planta, organización, tipo de orden de trabajo, departamento y estado únicamente 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 cuando el análisis abarque el ciclo de vida completo. Filtrar únicamente las órdenes de trabajo abiertas omitirá las actividades de finalización, calidad, firma y cierre.
- Configure explícitamente la gestión de zonas horarias. Convierta todas las marcas de tiempo de origen a una zona horaria acordada antes de cargarlas en ProcessMind y conserve la zona horaria o el desfase original cuando estén disponibles.
- Para conjuntos de datos grandes, filtre en el origen, limite la ventana de extracción, cree índices o particiones para la marca de tiempo del evento y el número de orden de trabajo, y almacene los archivos de Databridge en staging 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 relevantes de EAM, acceso al destino saliente o a la base de datos de staging y acceso a los datos de órdenes de trabajo, estados, materiales, mano de obra, listas de comprobación, planificación, aprobaciones, calidad, firmas y cierres.
- 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 staging que genere una fila de evento explícita. ProcessMind no infiere actividades ausentes a partir de otras filas.
a 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 siguiendo este Template. Nuestro equipo está disponible para ayudarle con cualquier duda técnica durante la preparación de sus datos.
Reduzca hoy los retrasos del mantenimiento de activos y mejore el rendimiento
Reduzca el tiempo de ciclo un 30 % y elimine los cuellos de botella ocultos.
No necesita tarjeta de crédito. Configuración en minutos.