Seu Template de dados de manutenção de ativos
Seu Template de dados de manutenção de ativos
- Campos de dados essenciais para registros de manutenção
- Marcos padrão do processo e etapas das ordens de serviço
- Lógica técnica de extração para o Hexagon EAM
Atributos de manutenção de ativos
| Nome | Descrição | ||
|---|---|---|---|
| Atividade ActivityName | A tarefa específica ou o evento de mudança de status que ocorreu. | ||
| Descrição Este atributo indica a etapa do processo que está sendo executada, como 'Work Order Created' ou 'Material Issued'. Ele é derivado do histórico de mudanças de status ou de eventos transacionais específicos registrados na ordem de serviço. Por que isso importa Ele define a sequência do Event Log, permitindo reconstruir o fluxo do processo e analisar gargalos. Onde obter Tabela R5EVENTHISTORY do Hexagon EAM, campo EVH_STATUS (mapeado para descrições) ou logs de auditoria Exemplos Ordem de serviço criadaOrdem de serviço agendadaOrdem de serviço concluídaMaterial emitido | |||
| Carimbo de data e hora EventTimestamp | A data e a hora em que a atividade ocorreu. | ||
| Descrição Este atributo registra o momento exato em que um evento ou uma mudança de status foi confirmada no sistema. Ele permite calcular a duração entre as atividades e o tempo de ciclo geral da ordem de serviço. Por que isso importa Timestamps precisos são essenciais para analisar prazos, identificar atrasos e calcular a conformidade com o SLA. Onde obter Tabela R5EVENTHISTORY do Hexagon EAM, campo EVH_DATE Exemplos 2023-10-12T08:30:00Z2023-10-12T14:15:00Z2023-10-13T09:00:00Z | |||
| Ordem de serviço de manutenção WorkOrderNumber | O identificador exclusivo da ordem de serviço de manutenção. | ||
| Descrição Este atributo representa a chave primária exclusiva do caso de manutenção. Ele acompanha a ordem de serviço desde a solicitação inicial, passando pelo planejamento e pela execução, até o encerramento financeiro final. É usado como identificador central do caso para relacionar logs de atividades, horas de trabalho e consumo de materiais. Por que isso importa Ele identifica a instância específica do processo, permitindo acompanhar de ponta a ponta os tempos de ciclo e as variantes do processo. Onde obter Tabela R5EVENTS do Hexagon EAM, campo EVT_CODE Exemplos WO-100234WO-100235WO-100236104592 | |||
| Sistema de origem SourceSystem | O nome do sistema de onde os dados foram originados. | ||
| Descrição Este atributo indica o sistema oficial de registro dos dados. Neste contexto, ele é definido com o nome específico do sistema EAM para diferenciá-lo de possíveis dados legados ou sistemas de prestadores externos. Por que isso importa Ele garante que a linhagem dos dados esteja clara, especialmente ao combinar dados de várias instâncias de manutenção. Onde obter Valor definido no sistema Exemplos Hexagon EAMInfor EAMDatastream 7i | |||
| Última atualização dos dados LastDataUpdate | O timestamp em que o registro foi extraído ou atualizado pela última vez. | ||
| Descrição Este atributo registra quando os dados foram extraídos pela última vez do sistema de origem. Ele ajuda os analistas a entender a atualidade dos dados e identificar possíveis problemas de latência no pipeline de relatórios. Por que isso importa Ele aumenta a confiança na atualidade da análise e ajuda a depurar problemas de sincronização de dados. Onde obter Hora do sistema no momento da extração Exemplos 2023-10-25T12:00:00Z2023-10-26T00:00:00Z | |||
| Ativo AssetCode | O identificador exclusivo do equipamento ou da instalação em manutenção. | ||
| Descrição Este atributo vincula a ordem de serviço a um equipamento ou local específico. Ele permite analisar a frequência de falhas por ativo e ajuda a identificar ativos problemáticos ou equipamentos que precisam ser substituídos. Por que isso importa Ele é fundamental para calcular métricas de confiabilidade dos ativos e entender onde o esforço de manutenção está concentrado. Onde obter Tabela R5EVENTS do Hexagon EAM, campo EVT_OBJECT Exemplos PUMP-001HVAC-204FLEET-99CONVEYOR-A | |||
| Data de conclusão prevista TargetCompletionDate | O prazo programado para a ordem de serviço. | ||
| Descrição Este atributo representa a data até a qual o trabalho de manutenção deve ser concluído. Comparar essa data com a data real de conclusão é essencial para calcular o cumprimento do SLA e a performance no prazo. Por que isso importa Ele é fundamental para o Contractor SLA Adherence Monitor e para avaliar a precisão do planejamento. Onde obter Tabela R5EVENTS do Hexagon EAM, campo EVT_TARGET Exemplos 2023-11-012023-11-152023-12-01 | |||
| Departamento MaintenanceDepartment | O departamento ou centro de trabalho responsável pela execução do trabalho. | ||
| Descrição Este atributo identifica a equipe ou oficina de manutenção atribuída à ordem de serviço, como Elétrica, Mecânica ou Facilities. Ele permite comparar a performance entre diferentes equipes técnicas. Por que isso importa Ele dá suporte ao Dashboard Technician Labor Productivity e ajuda a alocar recursos de forma eficiente entre diferentes especialidades. Onde obter Tabela R5EVENTS do Hexagon EAM, campo EVT_MRC Exemplos Oficina elétricaManutenção mecânicaInstalaçõesServiços de frota | |||
| Horas reais de mão de obra ActualLaborHours | O total de horas registradas na ordem de serviço. | ||
| Descrição Este atributo soma o tempo que os técnicos registraram na ordem de serviço. Ele é usado para medir a produtividade, calcular custos de mão de obra e analisar a variação em relação às horas estimadas. Por que isso importa Ele é a principal fonte de dados do dashboard Technician Labor Productivity e do KPI Labor Hour Variance. Onde obter Tabela R5BOOKEDHOURS do Hexagon EAM, campo BOO_HOURS (somado por ordem de serviço) Exemplos 2.54.012.00.5 | |||
| Prioridade PriorityCode | O nível de urgência atribuído à ordem de serviço. | ||
| Descrição Este atributo indica a importância da ordem de serviço, variando de rotineira a emergencial. Ele orienta o agendamento dos recursos e é essencial para monitorar a conformidade com o SLA e detectar abusos de prioridade. Por que isso importa Ele é essencial para o Dashboard Priority Escalation and Resource Audit, garantindo que as tarefas críticas sejam priorizadas corretamente. Onde obter Tabela R5EVENTS do Hexagon EAM, campo EVT_PRIORITY Exemplos CríticaAltaMédiaBaixa | |||
| Tipo de ordem de serviço WorkOrderType | Classifica a ordem de serviço como preventiva, corretiva ou emergencial. | ||
| Descrição Este atributo classifica a natureza do trabalho de manutenção. Ele é usado para analisar a proporção entre a manutenção preventiva planejada e os reparos emergenciais reativos, um indicador importante da saúde dos ativos e da maturidade da gestão. Por que isso importa Ele dá suporte ao Dashboard Preventive Maintenance Ratio Analysis e ajuda a identificar oportunidades para reduzir o trabalho reativo. Onde obter Tabela R5EVENTS do Hexagon EAM, campo EVT_TYPE Exemplos PPMCOREMGPRJ | |||
| Usuário UpdatedBy | O ID do usuário que realizou a atividade. | ||
| Descrição Este atributo registra o ID de login da pessoa responsável por acionar a alteração ou atualização de status. Ele é usado para analisar a carga de trabalho da equipe, identificar necessidades de treinamento e auditar a conformidade do processo. Por que isso importa Ele permite analisar o comportamento dos usuários e a utilização de recursos ao longo do ciclo de vida da manutenção. Onde obter Tabela R5EVENTHISTORY do Hexagon EAM, campo EVH_USER Exemplos JSMITHADAVISSYSTEMMGR_USR | |||
| Controle de qualidade aprovado QualityControlPassed | Indicador que informa se a etapa de controle de qualidade foi documentada. | ||
| Descrição Este atributo booleano verifica se uma atividade específica de controle de qualidade ou um item de checklist foi marcado como concluído. Ele garante a conformidade com as normas de segurança e os padrões internos. Por que isso importa Ele alimenta o KPI Quality Control Compliance Rate e apoia o dashboard Compliance and Documentation Integrity. Onde obter Derivado de tabelas de checklist ou do histórico de atividades Exemplos truefalse | |||
| Criticidade do ativo AssetCriticality | Uma pontuação que indica a importância operacional do ativo. | ||
| Descrição Este atributo indica o grau de criticidade do ativo para as operações do negócio. Ele costuma ser usado para validar se as ordens de serviço de alta prioridade estão realmente associadas a equipamentos críticos, destacando possíveis abusos do processo. Por que isso importa Ele apoia o dashboard Priority Escalation and Resource Audit ao relacionar a prioridade ao valor do ativo. Onde obter Tabela R5OBJECTS do Hexagon EAM, campo OBJ_CRITICALITY (requer junção em EVT_OBJECT) Exemplos A - VitalB - CríticaC - SecundáriaD - Baixa | |||
| Custo total real TotalActualCost | O custo financeiro total registrado para a ordem de serviço. | ||
| Descrição Este atributo registra o custo agregado de mão de obra, materiais e serviços. Ele é essencial para analisar a liquidação financeira e entender o impacto de custo da manutenção emergencial em comparação com a manutenção preventiva. Por que isso importa Ele apoia o dashboard Financial Settlement and Closure Speed e a tomada de decisões baseada em custos. Onde obter Tabela R5EVENTS do Hexagon EAM, campo EVT_ACTCOST (ou coluna de resumo semelhante) Exemplos 150.002500.5075.25 | |||
| Data da requisição de material MaterialRequisitionDate | A data em que as peças de reposição foram solicitadas. | ||
| Descrição Este atributo registra o timestamp em que a solicitação de material foi enviada ao almoxarifado ou ao setor de compras. Analisar o tempo entre essa data e Material Issued revela a eficiência da cadeia de suprimentos. Por que isso importa Ele é necessário para o dashboard Spare Parts Procurement Lead Times. Onde obter Tabela R5REQUISITIONS do Hexagon EAM ou tabela de transações vinculada Exemplos 2023-10-012023-10-05 | |||
| Data de criação DateCreated | A data em que a ordem de serviço foi gerada originalmente. | ||
| Descrição Este atributo marca o início do ciclo de vida da ordem de serviço. Ele é a base para calcular o Mean Time to Plan e determinar a idade dos itens do backlog. Por que isso importa Ele é necessário para o dashboard Maintenance Planning Velocity e o KPI Backlog Age. Onde obter Tabela R5EVENTS do Hexagon EAM, campo EVT_CREATED Exemplos 2023-09-012023-09-15 | |||
| Descrição da ordem de serviço WorkOrderDescription | Um breve resumo em texto da tarefa de manutenção. | ||
| Descrição Este atributo contém o assunto ou a descrição resumida do problema. Ele fornece contexto aos analistas ao detalhar casos problemáticos específicos ou identificar padrões em texto não estruturado. Por que isso importa Ele fornece o contexto necessário para a análise humana dos dados do processo. Onde obter Tabela R5EVENTS do Hexagon EAM, campo EVT_DESC Exemplos Reparar vedação da bomba com vazamentoInspeção mensal do HVACSubstituir correia transportadora | |||
| É preventiva IsPreventive | Indicador que informa se a ordem de serviço corresponde a uma manutenção preventiva. | ||
| Descrição Este atributo booleano facilita a filtragem e a categorização das ordens de serviço. Ele simplifica o cálculo do KPI Preventive Maintenance Ratio ao separar o trabalho proativo dos reparos reativos. Por que isso importa Ele é uma segmentação fundamental para o dashboard Preventive Maintenance Ratio Analysis. Onde obter Derivado de WorkOrderType Exemplos truefalse | |||
| É retrabalho IsRework | Indicador que informa se a ordem de serviço envolveu tarefas técnicas repetidas. | ||
| Descrição Este atributo calculado identifica casos em que o processo retorna de uma verificação de qualidade ou de um status de conclusão para um status de trabalho ativo. Ele ajuda a localizar problemas de qualidade e lacunas de treinamento. Por que isso importa Ele alimenta o dashboard Technical Rework and Quality Control e o KPI Maintenance Rework Rate. Onde obter Calculado com base nas repetições de atividades Exemplos truefalse | |||
| Escalonamento emergencial EmergencyEscalationFlag | Indicador que informa se a prioridade foi elevada para Emergência após a criação. | ||
| Descrição Este atributo booleano identifica ordens de serviço que começaram com uma prioridade menor, mas depois foram elevadas para Emergência. Ocorrências frequentes podem indicar uma triagem inicial inadequada ou manipulação do sistema para obter atendimento mais rápido. Por que isso importa Ele apoia o dashboard Priority Escalation and Resource Audit e o KPI Emergency Escalation Rate. Onde obter Derivado do histórico de auditoria do campo Priority Exemplos truefalse | |||
| Status do SLA SLAState | Indica se a ordem de serviço cumpriu o acordo de nível de serviço. | ||
| Descrição Este atributo calculado compara a data real de conclusão com a data de conclusão prevista. Ele classifica o caso como Within SLA ou Breached para simplificar os relatórios sobre a performance de fornecedores e equipes internas. Por que isso importa Ele é a fonte direta de dados do KPI SLA Adherence Rate. Onde obter Calculado: data real de término <= data prevista Exemplos Dentro do SLAFora do SLAAberta | |||
Atividades de manutenção de ativos
| Atividade | Descrição | ||
|---|---|---|---|
| Horas de trabalho registradas | Um técnico registra as horas trabalhadas na ordem de serviço. Essa atividade pode ocorrer várias vezes por caso. | ||
| Por que isso importa Base dos Dashboards Labor Hour Variance e Technician Labor Productivity. Revela o esforço real em comparação com o planejado. Onde obter Tabela r5booklabor do Hexagon EAM. Cada linha representa um registro de horas da ordem de serviço. Captura Registrado quando a transação INSERT é executada em r5booklabor Tipo de evento explicit | |||
| Material emitido | As peças de reposição são retiradas fisicamente do almoxarifado e debitadas na ordem de serviço. Isso representa o consumo de material. | ||
| Por que isso importa Ponto final do prazo de disponibilidade de materiais. Identifique atrasos em que o trabalho começa, mas é interrompido por falta de peças. Onde obter Tabela r5translines do Hexagon EAM. Tipo de transação 'I' (Issue) vinculado à ordem de serviço. Captura Registrado quando a transação INSERT é executada em r5translines Tipo de evento explicit | |||
| Ordem de serviço aprovada | A mudança de status indica que a ordem de serviço passou pela revisão de planejamento e estimativa. Isso significa que o trabalho está autorizado a prosseguir. | ||
| Por que isso importa Dá suporte à análise de Maintenance Planning Velocity ao marcar o fim da etapa de planejamento. Verificação de conformidade com a segregação de funções. Onde obter Tabela r5statuslog do Hexagon EAM. Procure a transição para o status 'A' (Approved) ou o equivalente no sistema. Captura Registrado quando a transação é executada em r5statuslog Tipo de evento explicit | |||
| Ordem de serviço concluída | O trabalho técnico foi concluído e o técnico marcou a tarefa como finalizada. O ativo retorna à operação. | ||
| Por que isso importa Marco importante para End to End Lifecycle Duration e Mean Time to Repair. Interrompe a contagem do tempo de indisponibilidade. Onde obter r5statuslog do Hexagon EAM. Transição para 'C' (Completed) ou 'F' (Finished). Captura Registrado quando a transação é executada em r5statuslog Tipo de evento explicit | |||
| Ordem de serviço criada | A criação inicial do registro da ordem de serviço de manutenção no sistema. Esse evento estabelece o caso e registra o timestamp inicial de todo o ciclo de vida da manutenção. | ||
| Por que isso importa Marca o início da instância do processo e define a base para medir o tempo total de resolução. É essencial para calcular o envelhecimento do backlog. Onde obter Tabela r5events do Hexagon EAM. Registrado quando um novo registro é inserido com evt_code. Captura Registrado quando a transação INSERT é executada em r5events Tipo de evento explicit | |||
| Ordem de serviço encerrada | A ordem de serviço é bloqueada financeiramente e arquivada. Nenhum custo ou hora de trabalho adicional pode ser lançado. | ||
| Por que isso importa Fim do processo. Essencial para a análise de Financial Settlement Processed e para consolidar os custos finais. Onde obter r5statuslog do Hexagon EAM. Transição para 'C' (Closed) ou 'L' (Locked/Closed). Captura Registrado quando a transação é executada em r5statuslog Tipo de evento explicit | |||
| Ordem de serviço iniciada | Os técnicos começaram o trabalho físico no ativo. Isso geralmente é indicado por uma mudança de status para In Progress ou pelo primeiro timestamp do registro de horas trabalhadas. | ||
| Por que isso importa Ponto final para o cálculo do backlog e ponto inicial do tempo efetivo de trabalho. Essencial para a SLA Adherence Rate. Onde obter r5statuslog do Hexagon EAM. Transição para 'In Progress' (geralmente código de status 'I' ou 'IP'). Captura Registrado quando a transação é executada em r5statuslog Tipo de evento explicit | |||
| Controle de qualidade aprovado | Um supervisor ou inspetor revisa o trabalho concluído e aprova sua qualidade. Essa etapa valida o reparo antes do encerramento. | ||
| Por que isso importa Dá suporte ao KPI Quality Control Compliance Rate. Ciclos que retornam a partir daqui indicam retrabalho técnico. Onde obter r5statuslog do Hexagon EAM (transição para 'Review' ou 'QC') ou r5audittrail em uma validação específica de UDF. Captura Compare o campo de status antes e depois Tipo de evento inferred | |||
| Item do checklist verificado | Uma tarefa ou etapa de inspeção específica da ordem de serviço é marcada como concluída. Isso representa o progresso detalhado do trabalho. | ||
| Por que isso importa Essencial para a conformidade e a integridade da documentação. Comprova que as verificações de segurança foram registradas sistematicamente. Onde obter Tabela r5checklist ou r5activities do Hexagon EAM. Mudança de status de uma atividade ou linha de tarefa específica. Captura Registrado quando a transação UPDATE é executada em r5checklist Tipo de evento explicit | |||
| Ordem de serviço agendada | A ordem de serviço recebe uma data de início agendada ou um recurso específico. Isso move a ordem do backlog para a programação ativa. | ||
| Por que isso importa Essencial para a análise de Technician Labor Productivity e para entender a eficiência da alocação de recursos. Onde obter Tabela r5events do Hexagon EAM (atualização de evt_schedstart) ou r5statuslog (transição para 'S', Scheduled). Captura Compare o campo de status antes e depois ou verifique a atualização de evt_schedstart Tipo de evento inferred | |||
| Ordem de serviço aprovada para encerramento | Aprovação administrativa final geralmente exigida para conformidade ou pagamento do prestador. Confirma que todos os dados estão corretos. | ||
| Por que isso importa Monitore para a análise de Work Order Approval Cycle. Atrasos aqui afetam a velocidade da liquidação financeira. Onde obter r5statuslog do Hexagon EAM (transição para 'Signed Off') ou log de captura da assinatura eletrônica. Captura Compare o campo de status antes e depois Tipo de evento inferred | |||
| Prioridade atualizada | O nível de prioridade da ordem de serviço foi alterado após sua criação inicial. Isso registra o timestamp e o novo valor de prioridade. | ||
| Por que isso importa Essencial para que o Dashboard Priority Escalation and Resource Audit identifique abuso de prioridade ou aumento indevido de escopo. Onde obter r5audittrail do Hexagon EAM, se a auditoria estiver habilitada, ou inferido a partir de snapshots. Geralmente derivado do audit log do campo evt_priority. Captura Registrado quando a transação UPDATE é executada em evt_priority Tipo de evento explicit | |||
| Requisição de material criada | Uma solicitação de peças de reposição ou materiais é vinculada à ordem de serviço. Isso inicia o subprocesso da cadeia de suprimentos. | ||
| Por que isso importa Ponto inicial para os prazos de aquisição de peças de reposição. Volumes altos aqui indicam dependência da disponibilidade de estoque. Onde obter Tabela r5requisitions do Hexagon EAM. Vinculada por req_evt (código da ordem de serviço). Captura Registrado quando a transação INSERT é executada em r5requisitions Tipo de evento explicit | |||
Guias de extração
Etapas
- Faça login no aplicativo Hexagon EAM com uma conta de usuário que tenha privilégios de criação no Advanced Reporting.
- Acesse o módulo Reports, normalmente encontrado no menu Administration ou Reports, e abra a interface do Advanced Reporting, geralmente o Cognos ou um criador de relatórios SQL integrado.
- Inicie um novo assistente de criação de relatório e selecione 'SQL' ou 'Free-hand SQL' como tipo de fonte de dados. Isso permite consultar diretamente o banco de dados, em vez de usar o modelo padrão de objetos de negócio.
- Copie o script SQL fornecido na seção Query abaixo e cole-o na janela de definição do conjunto de dados.
- Substitua os valores de espaço reservado, como [Your Organization Code] e os intervalos de datas, por valores específicos do seu ambiente.
- Valide a sintaxe da consulta no editor para garantir que a plataforma do banco de dados, Oracle ou SQL Server, aceite as instruções UNION.
- Mapeie as colunas resultantes para a lista de layout do relatório, garantindo que WorkOrderNumber, ActivityName e EventTimestamp estejam claramente visíveis.
- Configure o relatório para exportar especificamente no formato CSV ou Excel, garantindo uma estrutura tabular sem células mescladas ou cabeçalhos de formatação.
- Execute o relatório para um período de validação, por exemplo, as últimas 100 ordens de serviço, para verificar a estrutura dos dados.
- Depois da validação, programe a execução recorrente do relatório ou execute-o para todo o período de extração.
- Baixe o arquivo de saída e verifique os formatos de data. Se possível, garanta que os registros de data e hora incluam os segundos para permitir uma ordenação precisa.
- Importe o arquivo CSV resultante no ProcessMind, mapeando a coluna SourceSystem como atributo do caso e ActivityName como classificador da atividade.
Configuração
- Intervalo de datas: recomenda-se filtrar por EVT_DATE, a data de criação, usando uma janela móvel de 6 a 12 meses para manter a performance da consulta.
- Filtro de organização: o Hexagon EAM costuma operar com várias organizações. Garanta que a consulta inclua um filtro para o código específico da sua organização, evitando a mistura de dados de outras unidades de negócio.
- Sintaxe do banco de dados: a consulta abaixo usa SQL padrão ANSI sempre que possível, mas o Hexagon EAM normalmente roda em Oracle ou SQL Server. Pode ser necessário fazer pequenos ajustes nas funções de data, como SYSDATE e GETDATE.
- Configuração de status: o mapeamento dos códigos de status, como 'A', 'C' e 'R', para os nomes das atividades, como 'Work Order Approved', deve corresponder à configuração específica de status do seu sistema.
- Permissões: a conta de usuário que executa o relatório precisa ter acesso de leitura às tabelas R5EVENTS, R5EVENTSTATUS, R5BOOKEDHOURS, R5TRANSACTIONS e R5AUDITVALUES.
a Consulta de exemplo 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' Etapas
- Identifique a conexão com o banco de dados: garanta que você tenha credenciais de acesso de leitura, normalmente uma conta de serviço, para o banco de dados Oracle ou SQL Server de back-end do Hexagon EAM.
- Localize as tabelas principais: confirme o acesso a R5EVENTS, cabeçalhos de ordens de serviço; R5STATUS, histórico de status; R5BOOKEDHOURS, mão de obra; R5TRANSACTIONS, materiais; e R5AUDITVALUES, registro de auditoria.
- Mapeie os códigos de status: o Hexagon EAM usa códigos de status configuráveis, como A, C, O e R. Revise a configuração do seu sistema, na tela Administration -> Codes, para mapear seus códigos de 1 ou 2 caracteres para as atividades Approved, Scheduled, Started, Completed, QC Passed, Signed Off e Closed.
- Configure a consulta: abra o script SQL fornecido abaixo. Substitua os códigos de status de espaço reservado, como 'APPR', 'SCHD' e 'COMP', pelos códigos reais do seu sistema.
- Defina o intervalo de datas: atualize as cláusulas WHERE para filtrar por EVT_DATE ou TRN_DATE e selecionar um período específico, normalmente os últimos 12 meses, garantindo a performance da consulta.
- Execute a extração: execute a consulta no seu cliente SQL, como SQL Developer, SSMS ou Toad.
- Verifique os dados de auditoria: se a atividade 'Priority Updated' não retornar linhas, verifique se a funcionalidade de auditoria está habilitada para a tabela R5EVENTS nas configurações do seu sistema EAM.
- Valide os dados do checklist: confirme se R5CHECKLISTVALUES é a tabela correta para a sua versão. Versões mais antigas podem usar R5ACTIVITIES para a conclusão no nível da tarefa.
- Exporte os dados: salve o conjunto de resultados como arquivo CSV ou Parquet. Garanta que a coluna Timestamp esteja formatada como ISO 8601 (YYYY-MM-DD HH:MM:SS) para evitar erros de interpretação.
- Importe no ProcessMind: carregue o arquivo simples na interface do ProcessMind, mapeando WorkOrderNumber para Case ID, ActivityName para Activity e EventTimestamp para Timestamp.
Configuração
- Filtro de janela de tempo: a consulta atualmente seleciona todos os dados. É altamente recomendável adicionar um filtro como WHERE EVT_DATE >= SYSDATE - 365 (Oracle) ou GetDate() - 365 (SQL Server) na CTE principal ou em cada bloco SELECT.
- Mapeamento de códigos de status: você deve substituir os literais de texto no SQL, como 'APPR', 'COMP' e 'QC', pelos códigos reais definidos no seu conjunto R5STATUS.
- Configuração de auditoria: a extração de 'Priority Updated' depende da tabela R5AUDITVALUES. Se a auditoria estiver desativada para a coluna EVT_PRIORITY, essa atividade específica não estará disponível.
- Organização/tenant: se sua instância EAM hospedar várias organizações, adicione um filtro para EVT_ORG ou EVT_MRC, departamento, evitando a mistura de dados.
- Idioma: a consulta pressupõe cabeçalhos de coluna padrão em inglês. Se o seu banco de dados usar nomes de coluna localizados, ajuste-os conforme necessário.
a Consulta de exemplo 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 Etapas
- Confirme se o Hexagon EAM Databridge Outbound está instalado, licenciado e autorizado para os dados de ordens de serviço de manutenção necessários para esta extração. Confirme a configuração da transação de saída, o destino, o agendamento e o acesso às tabelas ou views de origem. Use [Configure based on your system] para indicar o caminho aplicável no menu de administração, pois os nomes dos menus e os identificadores das transações variam conforme a versão do EAM.
- Identifique as tabelas ou views oficiais do Hexagon EAM para cabeçalhos de ordens de serviço, histórico de status, histórico de prioridades, requisições de materiais, saídas de materiais, transações de mão de obra, resultados de checklist ou inspeção, atribuições de agendamento, aprovações de qualidade, registros de assinatura e registros de encerramento. Substitua cada marcador [Your ... table name] na consulta pelo objeto correspondente do seu ambiente. Não presuma que o cabeçalho atual da ordem de serviço contenha alterações históricas.
- Configure o Databridge Outbound para publicar uma transação XML ou CSV sempre que uma alteração relevante na ordem de serviço for confirmada. Inclua o número da ordem de serviço, o tipo de evento, o registro de data e hora do evento, o usuário de origem, a prioridade, o tipo de ordem de serviço, o departamento, a data prevista de conclusão, o ativo, as horas reais de mão de obra e o registro de data e hora de atualização ou extração. Configure mapeamentos de saída separados se as estruturas das transações de origem forem diferentes para eventos de status, mão de obra, materiais, checklist, agendamento, qualidade, assinatura ou encerramento.
- Configure o payload de saída para que cada ocorrência de negócio seja representada como um registro de evento individual. Não envie apenas o status mais recente da ordem de serviço. Para entradas repetidas de mão de obra, saídas de materiais, itens de checklist, alterações de prioridade ou outras ocorrências repetidas, gere um registro por ocorrência. Mapeie o tipo de evento do Databridge para um dos 13 valores obrigatórios de ActivityName.
- Armazene a saída XML ou CSV do Databridge em um local de staging controlado e depois carregue-a nos objetos de banco de dados referenciados pela consulta, ou substitua os objetos de origem da consulta pelas tabelas de staging. Preserve o identificador original do evento, o número da ordem de serviço, o registro de data e hora do evento, o usuário de origem e LastDataUpdate. Se o Databridge enviar XML, analise os nós de eventos repetidos e transforme-os em linhas antes de aplicar o mapeamento de atividades. Se enviar CSV, valide delimitadores, aspas, codificação e formatos de data e hora.
- Substitua na consulta os marcadores referentes a objetos específicos da conexão, parâmetros de data e filtros da empresa. A consulta usa uma fonte de eventos normalizada para cada atividade e combina os resultados com UNION ALL. Garanta que as colunas de origem usadas em cada bloco tenham tipos de dados compatíveis. Se uma fonte não fornecer um atributo recomendado, retorne NULL para esse atributo em vez de inventar um valor.
- Execute a consulta para um período inicial de aproximadamente três a seis meses. Confirme se o resultado contém as colunas obrigatórias WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem e LastDataUpdate, além dos atributos recomendados quando disponíveis. Ordene a saída por WorkOrderNumber, EventTimestamp e ActivityName, mantendo as linhas duplicadas quando elas representarem ocorrências distintas na origem.
- Faça a conciliação das linhas extraídas com as contagens de entregas do Databridge, as contagens de transações de origem e uma amostra de ordens de serviço no Hexagon EAM. Investigue históricos de status ausentes, entregas duplicadas, registros de data e hora inválidos e eventos fora do intervalo selecionado. Aplique uma regra estável de deduplicação somente quando o mesmo evento de origem tiver sido entregue mais de uma vez.
- Exporte o resultado final como CSV UTF-8 ou outro formato de Event Log compatível com o ProcessMind. Mantenha um evento por linha, use um registro de data e hora consistente com o tratamento de fuso horário, mapeie WorkOrderNumber como identificador do caso, ActivityName como atividade e EventTimestamp como registro de data e hora do evento. Carregue o arquivo no ProcessMind e verifique se os 13 nomes de atividades estão disponíveis no modelo de eventos.
Configuração
- Configure o Hexagon EAM Databridge Outbound para entregar eventos em XML ou CSV. Os nomes exatos das transações, as telas de administração e os caminhos dos menus dependem da versão instalada do Hexagon EAM. Por isso, use [Configure based on your system] em vez de presumir um caminho específico da versão.
- Configure WorkOrderNumber como identificador do caso no ProcessMind, ActivityName como campo da atividade e EventTimestamp como registro de data e hora do evento. SourceSystem deve ser preenchido com Hexagon EAM, e LastDataUpdate deve identificar o horário da extração ou atualização.
- Configure mapeamentos de saída para todas as 13 atividades: Work Order Created, Priority Updated, Work Order Approved, Material Requisition Created, Work Order Scheduled, Work Order Started, Material Issued, Labor Hours Recorded, Checklist Item Verified, Work Order Completed, Quality Control Passed, Work Order Signed Off e Work Order Closed.
- Preserve as ocorrências históricas. Um campo de status atual, sozinho, não consegue reconstruir todas as transições de status, atualizações de prioridade, registros de mão de obra, saídas de materiais, verificações de checklist, aprovações ou assinaturas.
- Use um intervalo de três a seis meses para a extração inicial. Para cargas incrementais, use a marca d'água de entrega do Databridge ou LastDataUpdate, com uma pequena janela de sobreposição para proteger os dados que chegarem atrasados.
- Aplique filtros de empresa, site, organização, tipo de ordem de serviço, departamento e status somente quando forem necessários para a análise. Use [Your company filter] ou [Configure based on your system] para restrições específicas da organização.
- Inclua ordens de serviço encerradas quando a análise abranger o ciclo de vida completo. Filtrar apenas ordens de serviço abertas excluirá as atividades de conclusão, qualidade, assinatura e encerramento.
- Configure explicitamente o tratamento de fuso horário. Converta todos os registros de data e hora de origem para um único fuso acordado antes do carregamento no ProcessMind e preserve o fuso ou deslocamento original quando disponível.
- Para grandes volumes de dados, filtre na origem, restrinja o período de extração, crie índices ou particione por registro de data e hora do evento e número da ordem de serviço, e faça o staging dos arquivos do Databridge antes da transformação. Evite analisar repetidamente todo o payload XML histórico.
- Os pré-requisitos incluem disponibilidade do Databridge Outbound, autorização para ler os dados relevantes do EAM, acesso ao destino de saída ou ao banco de dados de staging e acesso aos dados de ordens de serviço, status, materiais, mão de obra, checklist, agendamento, aprovação, qualidade, assinatura e encerramento.
- Se um evento de negócio obrigatório não estiver disponível como transação nativa do Databridge, configure uma view de origem ou uma transformação de staging que gere uma linha de evento explícita. O ProcessMind não infere atividades ausentes a partir de outras linhas.
a Consulta de exemplo sql
WITH
created_events AS (
SELECT
CAST(c.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Created' AS VARCHAR(100)) AS ActivityName,
CAST(c.[CreatedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(c.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(c.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(c.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(c.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(c.[CreatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(c.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(c.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(c.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order creation table or view] c
WHERE c.[CreatedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND c.[CreatedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
priority_events AS (
SELECT
CAST(p.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Priority Updated' AS VARCHAR(100)) AS ActivityName,
CAST(p.[PriorityChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(p.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(p.[NewPriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(p.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your priority history table or view] p
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = p.[WorkOrderNumber]
WHERE p.[PriorityChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND p.[PriorityChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
approved_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Approved' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] = '[Your approved status value]'
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
requisition_events AS (
SELECT
CAST(r.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Material Requisition Created' AS VARCHAR(100)) AS ActivityName,
CAST(r.[RequisitionCreatedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(r.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(r.[CreatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your material requisition table or view] r
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = r.[WorkOrderNumber]
WHERE r.[RequisitionCreatedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND r.[RequisitionCreatedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
scheduled_events AS (
SELECT
CAST(a.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Scheduled' AS VARCHAR(100)) AS ActivityName,
CAST(a.[ScheduledTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(a.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(a.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(a.[ScheduledStartDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order scheduling table or view] a
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = a.[WorkOrderNumber]
WHERE a.[ScheduledTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND a.[ScheduledTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
started_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Started' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] IN ('[Your in progress status value]', '[Your started status value]')
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
issued_events AS (
SELECT
CAST(i.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Material Issued' AS VARCHAR(100)) AS ActivityName,
CAST(i.[IssueTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(i.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(i.[IssuedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your material issue table or view] i
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = i.[WorkOrderNumber]
WHERE i.[IssueTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND i.[IssueTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
labor_events AS (
SELECT
CAST(l.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Labor Hours Recorded' AS VARCHAR(100)) AS ActivityName,
CAST(l.[LaborEntryTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(l.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(l.[RecordedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(l.[LaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your labor transaction table or view] l
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = l.[WorkOrderNumber]
WHERE l.[LaborEntryTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND l.[LaborEntryTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
checklist_events AS (
SELECT
CAST(k.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Checklist Item Verified' AS VARCHAR(100)) AS ActivityName,
CAST(k.[VerifiedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(k.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(k.[VerifiedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your checklist verification table or view] k
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = k.[WorkOrderNumber]
WHERE k.[VerifiedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND k.[VerifiedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
completed_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Completed' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] = '[Your completed status value]'
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
quality_events AS (
SELECT
CAST(q.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Quality Control Passed' AS VARCHAR(100)) AS ActivityName,
CAST(q.[QualityApprovalTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(q.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(q.[ApprovedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your quality approval table or view] q
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = q.[WorkOrderNumber]
WHERE q.[QualityResult] = '[Your quality passed value]'
AND q.[QualityApprovalTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND q.[QualityApprovalTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
signoff_events AS (
SELECT
CAST(f.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Signed Off' AS VARCHAR(100)) AS ActivityName,
CAST(f.[SignOffTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(f.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(f.[SignedOffBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order sign-off table or view] f
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = f.[WorkOrderNumber]
WHERE f.[SignOffTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND f.[SignOffTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
closed_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Closed' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] = '[Your closed status value]'
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
)
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM created_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM priority_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM approved_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM requisition_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM scheduled_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM started_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM issued_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM labor_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM checklist_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM completed_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM quality_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM signoff_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM closed_events
ORDER BY WorkOrderNumber, EventTimestamp, ActivityName; Pronto para começar?
Transforme seus dados de manutenção em insights acionáveis seguindo este Template. Nossa equipe está disponível para ajudar você com qualquer dúvida técnica durante a preparação dos dados.
Reduza os atrasos na manutenção de ativos e aumente a performance hoje
Reduza seu tempo de ciclo em 30% e elimine gargalos ocultos.
Não é necessário cartão de crédito. Configure em poucos minutos.