Seu Template de Dados de Manutenção de Ativos
Seu Template de Dados de Manutenção de Ativos
- Campos de dados essenciais para logs de manutenção
- Marcos padrão do processo e etapas da ordem de serviço
- Lógica de extração técnica para Hexagon EAM
Atributos de Manutenção de Ativos
| Nome | Descrição | ||
|---|---|---|---|
| Atividade ActivityName | A tarefa específica ou evento de mudança de status que ocorreu. | ||
| Descrição Este atributo indica a etapa do processo sendo executada, como 'Ordem de Serviço Criada' ou 'Material Fornecido'. É derivado do histórico de mudanças de status ou eventos transacionais específicos registrados na ordem de serviço. Por que é importante Define a sequência do log de eventos, permitindo a reconstrução do fluxo do processo e a análise de 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 Fornecido | |||
| 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 para o caso de manutenção. Ele rastreia a ordem de serviço desde a solicitação inicial até o planejamento, execução e fechamento financeiro. É usado como o identificador central do caso para unir logs de atividade, horas de mão de obra e consumo de materiais. Por que é importante Identifica a instância específica do processo de manutenção, permitindo o rastreamento ponta a ponta dos tempos de ciclo e variantes. 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 se originaram. | ||
| Descrição Este atributo indica o sistema de registro dos dados. Neste contexto, é fixado com o nome do sistema EAM específico para diferenciá-lo de possíveis dados legados ou sistemas de prestadores externos. Por que é importante Garante que a linhagem dos dados esteja clara, especialmente ao mesclar dados de múltiplas instâncias. Onde obter Valor fixo Exemplos Hexagon EAMInfor EAMDatastream 7i | |||
| Timestamp EventTimestamp | A data e hora em que a atividade ocorreu. | ||
| Descrição Este atributo registra o exato momento em que um evento ou mudança de status foi gravado no sistema. Permite o cálculo da duração entre atividades e do tempo de ciclo total da ordem de serviço. Por que é importante Timestamps precisos são essenciais para analisar lead times, identificar atrasos e calcular a conformidade com SLAs. Onde obter Tabela R5EVENTHISTORY do Hexagon EAM, campo EVH_DATE Exemplos 2023-10-12T08:30:00Z2023-10-12T14:15:00Z2023-10-13T09:00:00Z | |||
| Última Atualização de Dados LastDataUpdate | O registro de data e hora de quando o registro foi extraído ou atualizado pela última vez. | ||
| Descrição Este atributo rastreia quando os dados foram extraídos pela última vez do sistema de origem. Ajuda os analistas a entender a atualidade dos dados e a identificar possíveis problemas de latência no pipeline de relatórios. Por que é importante Garante confiança na atualidade da análise e ajuda a depurar problemas de sincronização de dados. Onde obter Hora do sistema na extração Exemplos 2023-10-25T12:00:00Z2023-10-26T00:00:00Z | |||
| Ativo AssetCode | O identificador exclusivo do equipamento ou instalação em manutenção. | ||
| Descrição Este atributo vincula a ordem de serviço a um equipamento ou local específico. Permite a análise de frequência de falhas por ativo e ajuda a identificar equipamentos problemáticos que exigem substituição. Por que é importante É fundamental para calcular métricas de confiabilidade de 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 prevista de conclusão TargetCompletionDate | O prazo agendado para a ordem de serviço. | ||
| Descrição Este atributo representa a data em que se espera que o trabalho de manutenção seja finalizado. Comparar esta data com a conclusão real é fundamental para calcular a adesão ao SLA e o desempenho de pontualidade. Por que é importante É crítico para o Monitoramento de Aderência ao SLA de Contratados 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 serviço. | ||
| Descrição Este atributo identifica a equipe ou oficina de manutenção atribuída à ordem de serviço, como Elétrica, Mecânica ou Predial. Permite o benchmarking de desempenho entre diferentes equipes técnicas. Por que é importante Apoia o dashboard de Produtividade Técnica e ajuda a alocar recursos de forma eficaz entre diferentes especialidades. Onde obter Tabela R5EVENTS do Hexagon EAM, campo EVT_MRC Exemplos Oficina ElétricaManutenção MecânicaFacilitiesServ. de Frota | |||
| Horas Reais de Mão de Obra ActualLaborHours | O número total de horas lançadas na ordem de serviço. | ||
| Descrição Este atributo soma o tempo que os técnicos registraram na ordem de serviço. É usado para medir produtividade, calcular custos de mão de obra e analisar variações em relação às horas estimadas. Por que é importante É a principal fonte de dados para o dashboard de Produtividade Técnica e KPI de Variação de Horas de Mão de Obra. Onde obter Tabela R5BOOKEDHOURS do Hexagon EAM, campo BOO_HOURS (Somado por OS) 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 rotina a emergência. Ele orienta o agendamento de recursos e é crucial para monitorar a adesão ao SLA e detectar abusos de prioridade. Por que é importante É essencial para o dashboard de Escalação de Prioridade e Auditoria de Recursos para garantir que tarefas críticas sejam priorizadas. Onde obter Tabela R5EVENTS do Hexagon EAM, campo EVT_PRIORITY Exemplos CríticoAltoMédioBaixo | |||
| Tipo de Ordem de Serviço WorkOrderType | Categoriza a OS como preventiva, corretiva ou emergencial. | ||
| Descrição Este atributo classifica a natureza do trabalho de manutenção. É usado para analisar a proporção de manutenção preventiva planejada versus reparos de emergência reativos, um indicador fundamental da saúde dos ativos e da maturidade da gestão. Por que é importante Apoia o dashboard de Análise de Proporção de Manutenção Preventiva e ajuda a identificar oportunidades para reduzir o trabalho reativo. Onde obter Tabela R5EVENTS do Hexagon EAM, campo EVT_TYPE Exemplos PPMCOREMGPRJ | |||
| Utilizador UpdatedBy | O ID do utilizador da pessoa que realizou a atividade. | ||
| Descrição Este atributo captura o login da pessoa responsável por disparar a mudança de status ou atualização. É usado para analisar a carga de trabalho da equipe, identificar necessidades de treinamento e auditar a conformidade do processo. Por que é importante Permite a análise do comportamento do usuário e da utilização de recursos ao longo do ciclo de vida da manutenção. Onde obter Tabela R5EVENTHISTORY do Hexagon EAM, campo EVH_USER Exemplos JSMITHADAVISSISTEMAMGR_USR | |||
| Aprovado no Controle de Qualidade QualityControlPassed | Indicador se a etapa de CQ foi documentada. | ||
| Descrição Este atributo booleano verifica se uma atividade específica de controle de qualidade ou item de checklist foi marcado como concluído. Garante a conformidade com regulamentações de segurança e padrões internos. Por que é importante Alimenta o KPI de Taxa de Conformidade do Controle de Qualidade e apoia o dashboard de Integridade de Conformidade. Onde obter Derivado das tabelas de Checklist ou Histórico de Atividades Exemplos verdadeirofalse | |||
| Criticidade do Ativo AssetCriticality | Uma pontuação que indica a importância operacional do ativo. | ||
| Descrição Este atributo indica o quão crítico o ativo é para as operações de negócio. É frequentemente usado para validar se ordens de serviço de alta prioridade estão genuinamente associadas a equipamentos críticos, destacando possíveis abusos no processo. Por que é importante Apoia o dashboard de Escalação de Prioridade e Auditoria de Recursos, correlacionando prioridade com o valor do ativo. Onde obter Tabela R5OBJECTS do Hexagon EAM, campo OBJ_CRITICALITY (requer join com EVT_OBJECT) Exemplos A - VitalB - CríticoC - SecundárioD - Baixa | |||
| Custo Real Total TotalActualCost | O custo financeiro total registrado para a ordem de serviço. | ||
| Descrição Este atributo captura o custo agregado de mão de obra, materiais e serviços. É essencial para a análise de liquidação financeira e para entender o impacto de custo da manutenção de emergência versus a preventiva. Por que é importante Apoia o dashboard de Liquidação Financeira e Velocidade de Fechamento, além da tomada de decisão baseada em custos. Onde obter Tabela R5EVENTS do Hexagon EAM, campo EVT_ACTCOST (ou coluna de resumo similar) 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 captura o registro de tempo de quando a requisição de material foi enviada ao almoxarifado ou compras. Analisar o tempo desta data até a 'Saída de Material' revela a eficiência da cadeia de suprimentos. Por que é importante É necessário para o dashboard de Lead Times de Aquisição de Peças de Reposição. 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. É a linha de base para calcular o Tempo Médio de Planejamento e determinar a idade dos itens no backlog. Por que é importante É necessário para o dashboard de Velocidade de Planejamento de Manutenção e KPI de Idade do Backlog. Onde obter Tabela R5EVENTS do Hexagon EAM, campo EVT_CREATED Exemplos 2023-09-0115-09-2023 | |||
| 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 uma breve descrição do problema. Oferece contexto para analistas ao investigar casos problemáticos específicos ou identificar padrões em textos não estruturados. Por que é importante Fornece o contexto necessário para a revisão humana dos dados do processo. Onde obter Tabela R5EVENTS do Hexagon EAM, campo EVT_DESC Exemplos Reparar selo de vedação da bombaInspeção Mensal de HVACTrocar correia transportadora | |||
| É Preventiva IsPreventive | Indicador se a OS é de manutenção preventiva. | ||
| Descrição Este atributo booleano permite filtrar e categorizar ordens de serviço facilmente. Ele simplifica o cálculo do KPI de Taxa de Manutenção Preventiva ao separar o trabalho proativo dos reparos reativos. Por que é importante É uma segmentação fundamental para o dashboard de Análise de Proporção de Manutenção Preventiva. Onde obter Derivado do Tipo de Ordem de Serviço Exemplos verdadeirofalse | |||
| É Retrabalho IsRework | Indicador se a OS envolveu tarefas técnicas repetidas. | ||
| Descrição Este atributo calculado identifica casos em que o processo retorna de uma checagem de qualidade ou status de conclusão para um status de trabalho ativo. Ajuda a identificar problemas de qualidade e lacunas de treinamento. Por que é importante Alimenta o dashboard de Retrabalho Técnico e Controle de Qualidade e o KPI de Taxa de Retrabalho de Manutenção. Onde obter Calculado com base na repetição de atividades Exemplos verdadeirofalse | |||
| Escalação de Emergência EmergencyEscalationFlag | Indicador 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 baixa prioridade, mas foram depois elevadas para Emergência. Ocorrências frequentes podem indicar uma triagem inicial ineficiente ou tentativas de burlar o sistema para obter atendimento mais rápido. Por que é importante Apoia o dashboard de Escalação de Prioridade e Auditoria de Recursos e o KPI de Taxa de Escalação de Emergência. Onde obter Derivado da trilha de auditoria do campo Prioridade Exemplos verdadeirofalse | |||
| Estado do SLA SLAState | Indica se a OS cumpriu o acordo de nível de serviço (SLA). | ||
| Descrição Este atributo calculado compara a Data de Conclusão Real com a Data de Conclusão Prevista. Categoriza o caso como 'Dentro do SLA' ou 'Violado' para simplificar os relatórios de desempenho interno e de terceiros. Por que é importante É a fonte direta de dados para o KPI de Taxa de Aderência ao SLA. Onde obter Calculado: Data de Término Real <= Data Alvo Exemplos Dentro do SLAVioladoAberto | |||
Atividades de Manutenção de Ativos
| Atividade | Descrição | ||
|---|---|---|---|
| Horas de Mão de Obra Registradas | Um técnico registra as horas trabalhadas na ordem de serviço. Esta atividade pode ocorrer várias vezes por caso. | ||
| Por que é importante Base para os dashboards de Variação de Horas de Mão de Obra e Produtividade Técnica. Revela o esforço real vs planejado. Onde obter Tabela r5booklabor do Hexagon EAM. Cada linha representa um apontamento de horas para a OS. Captura Registrado quando a transação INSERT é executada na r5booklabor Tipo de evento explicit | |||
| Material Fornecido | Peças de reposição são fisicamente retiradas do almoxarifado e debitadas na ordem de serviço. Isso representa o consumo de materiais. | ||
| Por que é importante Ponto final para o Lead Time de Disponibilidade de Material. Identifica atrasos onde o trabalho começa, mas para por falta de peças. Onde obter Tabela r5translines do Hexagon EAM. Tipo de transação 'I' (Saída/Emissão) vinculada à ordem de serviço. Captura Registrado quando a transação INSERT é executada na r5translines Tipo de evento explicit | |||
| Ordem de Serviço Aprovada | A mudança de status que indica que a ordem de serviço passou pela revisão de planejamento e estimativa. Significa que o trabalho está autorizado a prosseguir. | ||
| Por que é importante Suporta a análise de Velocidade de Planejamento de Manutenção ao marcar o fim da fase de planejamento. Verificação de conformidade de segregação de funções. Onde obter Tabela r5statuslog do Hexagon EAM. Busque pela transição para o status 'A' (Aprovado) ou equivalente. Captura Registrado quando a transação é executada na r5statuslog Tipo de evento explicit | |||
| Ordem de Serviço Concluída | O trabalho técnico foi finalizado e o técnico marcou o serviço como concluído. O ativo é devolvido à operação. | ||
| Por que é importante Marco principal para a Duração do Ciclo de Vida Ponta a Ponta e Tempo Médio de Reparo (MTTR). Interrompe a contagem do tempo de inatividade. Onde obter r5statuslog do Hexagon EAM. Transição para 'C' (Concluído) ou 'F' (Finalizado). Captura Registrado quando a transação é executada na 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. Este evento estabelece o caso e captura o registro de tempo inicial para todo o ciclo de vida da manutenção. | ||
| Por que é importante Marca o início da instância do processo e define a base para medir o tempo total de resolução. Essencial para calcular a idade 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 na r5events Tipo de evento explicit | |||
| Ordem de Serviço Encerrada | A ordem de serviço está financeiramente encerrada e arquivada. Não é possível lançar mais custos ou mão de obra. | ||
| Por que é importante Fim do Processo. Crucial para análise da liquidação financeira e fechamento de custos finais. Onde obter r5statuslog do Hexagon EAM. Transição para 'C' (Fechado) ou 'L' (Bloqueado/Fechado). Captura Registrado quando a transação é executada na r5statuslog Tipo de evento explicit | |||
| Ordem de Serviço Iniciada | Os técnicos iniciaram o trabalho físico no ativo. Geralmente marcado por uma mudança de status para 'Em Andamento' ou pelo primeiro registro de horas. | ||
| Por que é importante Ponto final para o cálculo de backlog e ponto inicial para o wrench time. Vital para a Taxa de Aderência ao SLA. Onde obter r5statuslog do Hexagon EAM. Transição para 'Em Andamento' (geralmente código 'I' ou 'IP'). Captura Registrado quando a transação é executada na r5statuslog Tipo de evento explicit | |||
| Aprovado no Controle de Qualidade | Um supervisor ou inspetor revisa o trabalho concluído e aprova a qualidade. Esta etapa valida o reparo antes do fechamento. | ||
| Por que é importante Suporta o KPI de Taxa de Conformidade do Controle de Qualidade. Retornos a partir daqui indicam retrabalho técnico. Onde obter r5statuslog do Hexagon EAM (Transição para 'Revisão' ou 'CQ') ou r5audittrail em validações específicas de UDF. Captura Comparar campo de status antes/depois Tipo de evento inferred | |||
| Item do Checklist Verificado | Uma tarefa específica ou etapa de inspeção dentro da OS é marcada como concluída. Isso representa o progresso detalhado do trabalho. | ||
| Por que é importante Essencial para Conformidade e Integridade da Documentação. Prova que os controles de segurança foram registrados no sistema. Onde obter Tabela r5checklist ou r5activities do Hexagon EAM. Mudança de status de uma tarefa ou item de atividade específico. Captura Registrado quando a transação UPDATE é executada na 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 o cronograma ativo. | ||
| Por que é importante Crucial para a análise de Produtividade da Mão de Obra 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 o status 'S' - Agendado). Captura Comparar campo de status antes/depois ou verificar atualização de evt_schedstart Tipo de evento inferred | |||
| Ordem de Serviço Assinada | Aprovação administrativa final geralmente exigida para conformidade ou pagamento de contratados. Confirma que todos os dados estão corretos. | ||
| Por que é importante Monitoramento para análise do ciclo de aprovação da Ordem de Serviço. Atrasos aqui afetam a velocidade da liquidação financeira. Onde obter r5statuslog do Hexagon EAM (Transição para 'Assinado') ou log de captura de assinatura eletrônica. Captura Comparar campo de status antes/depois Tipo de evento inferred | |||
| Prioridade atualizada | Houve uma alteração no nível de prioridade da ordem de serviço após a sua criação inicial. Isso captura o timestamp e o novo valor de prioridade. | ||
| Por que é importante Essencial para o dashboard de Escalação de Prioridade e Auditoria de Recursos, ajudando a identificar abusos de prioridade. Onde obter Tabela r5audittrail do Hexagon EAM (se ativa) ou inferido de snapshots. Geralmente derivado do log de auditoria no 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 ou materiais é vinculada à ordem de serviço. Isso inicia o sub-processo da cadeia de suprimentos. | ||
| Por que é importante Ponto de partida para Lead Times de Aquisição de Peças. Altos volumes aqui indicam dependência de disponibilidade de estoque. Onde obter Tabela r5requisitions do Hexagon EAM. Vinculada via req_evt (Código da OS). Captura Registrado quando a transação INSERT é executada na r5requisitions Tipo de evento explicit | |||
Guias de Extração
Etapas
- Acesse o Hexagon EAM com uma conta de usuário que possua privilégios de Autor de Relatórios Avançados.
- Navegue até o módulo de Relatórios, geralmente em Administração ou Relatórios, e abra a interface de Relatórios Avançados (como Cognos ou o construtor SQL nativo).
- Inicie o assistente de criação de novo relatório e selecione 'SQL' ou 'SQL Manual' como tipo de fonte de dados. Isso permite consultar o banco diretamente em vez de usar o modelo de objetos padrão.
- Copie o script SQL da seção Consulta abaixo e cole-o na janela de definição do conjunto de dados.
- Substitua os valores de exemplo (como [Seu Código de Organização] e intervalos de datas) pelos valores reais do seu ambiente.
- Valide a sintaxe da consulta no editor para garantir que a plataforma do banco (Oracle ou SQL Server) aceite os comandos de união.
- Mapeie as colunas resultantes para a lista do relatório, garantindo que WorkOrderNumber, ActivityName e EventTimestamp estejam visíveis.
- Configure o relatório para exportar especificamente em formato CSV ou Excel, garantindo uma estrutura tabular sem células mescladas ou cabeçalhos formatados.
- Execute o relatório para um período de validação (ex: as últimas 100 ordens de serviço) para conferir a estrutura dos dados.
- Após a verificação, agende o relatório para execução recorrente ou execute-o para todo o período de extração desejado.
- Baixe o arquivo gerado e confira os formatos de data. Certifique-se de que os timestamps incluam segundos para uma ordenação precisa.
- Importe o arquivo CSV para o ProcessMind, mapeando a coluna SourceSystem como um atributo de caso e ActivityName como o classificador de atividade.
Configuração
- Intervalo de Datas: Recomendamos filtrar por EVT_DATE (Data de Criação) usando uma janela móvel de 6 a 12 meses para garantir a performance da consulta.
- Filtro de Organização: O Hexagon EAM é frequentemente multi-organizacional. Certifique-se de incluir um filtro para o seu Código de Organização específico para evitar a mistura de dados de outras unidades de negócio.
- Sintaxe do Banco de Dados: A consulta abaixo utiliza SQL padrão ANSI sempre que possível, mas o Hexagon EAM geralmente roda em Oracle ou SQL Server. Podem ser necessários pequenos ajustes nas funções de data (ex: SYSDATE vs GETDATE).
- Configuração de Status: O mapeamento dos Códigos de Status (ex: 'A', 'C', 'R') para Nomes de Atividade (ex: 'Ordem de Serviço Aprovada') deve corresponder à configuração específica do seu sistema.
- Permissões: A conta de usuário que executa o relatório precisa de acesso de leitura às tabelas R5EVENTS, R5EVENTSTATUS, R5BOOKEDHOURS, R5TRANSACTIONS e R5AUDITVALUES.
a Consulta de Exemplo config
/* 1. Work Order Created */
SELECT
evt_code AS WorkOrderNumber,
'Work Order Created' AS ActivityName,
evt_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
evt_type AS WorkOrderType,
evt_priority AS PriorityCode,
evt_mrc AS MaintenanceDepartment,
evt_updatedby AS UpdatedBy,
evt_target AS TargetCompletionDate,
evt_object AS AssetCode,
NULL AS ActualLaborHours
FROM r5events
WHERE evt_type IN ('JOB', 'PPM') -- Filter for relevant WO types
AND evt_created >= '2023-01-01' -- [Set Start Date]
AND evt_org = 'YOUR_ORG' -- [Set Organization]
UNION ALL
/* 2. Priority Updated (Requires Audit Log) */
SELECT
aud_code AS WorkOrderNumber,
'Priority Updated' AS ActivityName,
aud_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
aud_value AS PriorityCode,
NULL AS MaintenanceDepartment,
aud_user AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5auditvalues
WHERE aud_table = 'R5EVENTS'
AND aud_field = 'EVT_PRIORITY'
AND aud_org = 'YOUR_ORG'
UNION ALL
/* 3. Status Changes (Approved, Scheduled, Started, Completed, Signed Off, Closed) */
/* This block maps generic status codes to specific ProcessMind activities */
SELECT
est_event AS WorkOrderNumber,
CASE est_status
WHEN 'A' THEN 'Work Order Approved'
WHEN 'S' THEN 'Work Order Scheduled'
WHEN 'IP' THEN 'Work Order Started'
WHEN 'C' THEN 'Work Order Completed'
WHEN 'QC' THEN 'Quality Control Passed'
WHEN 'SO' THEN 'Work Order Signed Off'
WHEN 'CL' THEN 'Work Order Closed'
ELSE 'Status Change: ' + est_status
END AS ActivityName,
est_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
est_auth AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5eventstatus
WHERE est_status IN ('A', 'S', 'IP', 'C', 'QC', 'SO', 'CL')
AND est_org = 'YOUR_ORG'
UNION ALL
/* 4. Material Requisition Created */
SELECT
req_event AS WorkOrderNumber,
'Material Requisition Created' AS ActivityName,
req_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
req_createdby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5requisitions
WHERE req_event IS NOT NULL
AND req_org = 'YOUR_ORG'
UNION ALL
/* 5. Material Issued */
SELECT
trl_event AS WorkOrderNumber,
'Material Issued' AS ActivityName,
trl_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
trl_user AS UpdatedBy,
NULL AS TargetCompletionDate,
trl_part AS AssetCode, -- Storing Part ID in Asset column for context
NULL AS ActualLaborHours
FROM r5translines
WHERE trl_type = 'I' -- I = Issue
AND trl_event IS NOT NULL
AND trl_org = 'YOUR_ORG'
UNION ALL
/* 6. Labor Hours Recorded */
SELECT
boo_event AS WorkOrderNumber,
'Labor Hours Recorded' AS ActivityName,
boo_entered AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
boo_mrc AS MaintenanceDepartment,
boo_person AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
boo_hours AS ActualLaborHours
FROM r5bookedhours
WHERE boo_event IS NOT NULL
AND boo_org = 'YOUR_ORG'
UNION ALL
/* 7. Checklist Item Verified */
SELECT
ckv_event AS WorkOrderNumber,
'Checklist Item Verified' AS ActivityName,
ckv_entrydate AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
ckv_enteredby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5checklistvalues
WHERE ckv_completed = '+' -- Logic for completed item depends on config
AND ckv_event IS NOT NULL
AND ckv_org = 'YOUR_ORG' Etapas
- Identifique a Conexão com o Banco de Dados: Certifique-se de possuir credenciais com acesso de leitura para o banco Oracle ou SQL Server do Hexagon EAM.
- Localize as Tabelas Principais: Confirme o acesso às tabelas R5EVENTS (Cabeçalhos de OS), R5STATUS (Histórico de Status), R5BOOKEDHOURS (Mão de Obra), R5TRANSACTIONS (Materiais) e R5AUDITVALUES (Log de Auditoria).
- Mapeie os Códigos de Status: O Hexagon EAM utiliza códigos configuráveis (ex: A, C, O, R). Revise a configuração do sistema (Tela: Administração -> Códigos) para mapear seus códigos específicos para as atividades Aprovada, Agendada, Iniciada, Concluída, CQ Aprovado, Assinada e Fechada.
- Configure a Query: Abra o script SQL fornecido. Substitua os códigos de status de exemplo (ex: 'APPR', 'SCHD', '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, selecionando uma janela de tempo (geralmente os últimos 12 meses) para garantir a performance.
- Execute a Extração: Rode a query no seu cliente SQL (SQL Developer, SSMS ou Toad).
- Verifique os Dados de Auditoria: Se a atividade 'Prioridade Atualizada' não retornar linhas, verifique se a funcionalidade de Auditoria está ativa para a tabela R5EVENTS nas configurações do EAM.
- Valide os Dados de Checklist: Verifique se a R5CHECKLISTVALUES é a tabela correta para sua versão; versões antigas podem usar a R5ACTIVITIES para conclusão de tarefas.
- Exporte os Dados: Salve o resultado como um arquivo CSV ou Parquet. Garanta que a coluna Timestamp esteja no formato ISO 8601 (AAAA-MM-DD HH:MM:SS) para evitar erros de leitura.
- Importe para o ProcessMind: Faça o upload do arquivo na interface do ProcessMind, mapeando WorkOrderNumber como Case ID, ActivityName como Activity e EventTimestamp como Timestamp.
Configuração
- Filtro de Janela de Tempo: Atualmente, a consulta seleciona todos os dados. É altamente recomendável adicionar um filtro como WHERE EVT_DATE >= SYSDATE - 365 (Oracle) ou GetDate() - 365 (SQL Server) no CTE base ou em cada bloco SELECT.
- Mapeamento de Código de Status: Você deve substituir os textos fixos no SQL (ex: 'APPR', 'COMP', 'QC') pelos códigos reais definidos no seu conjunto R5STATUS.
- Configuração de Auditoria: A extração de 'Prioridade Atualizada' depende da tabela R5AUDITVALUES. Se a auditoria estiver desativada para a coluna EVT_PRIORITY, esta atividade específica não aparecerá.
- Organização/Tenant: Se a sua instância do EAM hospeda várias organizações, adicione um filtro para EVT_ORG ou EVT_MRC (Departamento) para evitar a mistura de dados.
- Idioma: A consulta assume cabeçalhos de coluna padrão em inglês. Se o seu banco de dados utiliza nomes de colunas 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
- Acesse o Hexagon EAM com uma conta de usuário que possua privilégios de Autor de Relatórios Avançados.
- Navegue até o módulo de Relatórios, geralmente em Administração ou Relatórios, e abra a interface de Relatórios Avançados (como Cognos ou o construtor SQL nativo).
- Inicie o assistente de criação de novo relatório e selecione 'SQL' ou 'SQL Manual' como tipo de fonte de dados. Isso permite consultar o banco diretamente em vez de usar o modelo de objetos padrão.
- Copie o script SQL da seção Consulta abaixo e cole-o na janela de definição do conjunto de dados.
- Substitua os valores de exemplo (como [Seu Código de Organização] e intervalos de datas) pelos valores reais do seu ambiente.
- Valide a sintaxe da consulta no editor para garantir que a plataforma do banco (Oracle ou SQL Server) aceite os comandos de união.
- Mapeie as colunas resultantes para a lista do relatório, garantindo que WorkOrderNumber, ActivityName e EventTimestamp estejam visíveis.
- Configure o relatório para exportar especificamente em formato CSV ou Excel, garantindo uma estrutura tabular sem células mescladas ou cabeçalhos formatados.
- Execute o relatório para um período de validação (ex: as últimas 100 ordens de serviço) para conferir a estrutura dos dados.
- Após a verificação, agende o relatório para execução recorrente ou execute-o para todo o período de extração desejado.
- Baixe o arquivo gerado e confira os formatos de data. Certifique-se de que os timestamps incluam segundos para uma ordenação precisa.
- Importe o arquivo CSV para o ProcessMind, mapeando a coluna SourceSystem como um atributo de caso e ActivityName como o classificador de atividade.
Configuração
- Intervalo de Datas: Recomendamos filtrar por EVT_DATE (Data de Criação) usando uma janela móvel de 6 a 12 meses para garantir a performance da consulta.
- Filtro de Organização: O Hexagon EAM é frequentemente multi-organizacional. Certifique-se de incluir um filtro para o seu Código de Organização específico para evitar a mistura de dados de outras unidades de negócio.
- Sintaxe do Banco de Dados: A consulta abaixo utiliza SQL padrão ANSI sempre que possível, mas o Hexagon EAM geralmente roda em Oracle ou SQL Server. Podem ser necessários pequenos ajustes nas funções de data (ex: SYSDATE vs GETDATE).
- Configuração de Status: O mapeamento dos Códigos de Status (ex: 'A', 'C', 'R') para Nomes de Atividade (ex: 'Ordem de Serviço Aprovada') deve corresponder à configuração específica do seu sistema.
- Permissões: A conta de usuário que executa o relatório precisa de acesso de leitura às tabelas R5EVENTS, R5EVENTSTATUS, R5BOOKEDHOURS, R5TRANSACTIONS e R5AUDITVALUES.
a Consulta de Exemplo config
/* 1. Work Order Created */
SELECT
evt_code AS WorkOrderNumber,
'Work Order Created' AS ActivityName,
evt_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
evt_type AS WorkOrderType,
evt_priority AS PriorityCode,
evt_mrc AS MaintenanceDepartment,
evt_updatedby AS UpdatedBy,
evt_target AS TargetCompletionDate,
evt_object AS AssetCode,
NULL AS ActualLaborHours
FROM r5events
WHERE evt_type IN ('JOB', 'PPM') -- Filter for relevant WO types
AND evt_created >= '2023-01-01' -- [Set Start Date]
AND evt_org = 'YOUR_ORG' -- [Set Organization]
UNION ALL
/* 2. Priority Updated (Requires Audit Log) */
SELECT
aud_code AS WorkOrderNumber,
'Priority Updated' AS ActivityName,
aud_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
aud_value AS PriorityCode,
NULL AS MaintenanceDepartment,
aud_user AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5auditvalues
WHERE aud_table = 'R5EVENTS'
AND aud_field = 'EVT_PRIORITY'
AND aud_org = 'YOUR_ORG'
UNION ALL
/* 3. Status Changes (Approved, Scheduled, Started, Completed, Signed Off, Closed) */
/* This block maps generic status codes to specific ProcessMind activities */
SELECT
est_event AS WorkOrderNumber,
CASE est_status
WHEN 'A' THEN 'Work Order Approved'
WHEN 'S' THEN 'Work Order Scheduled'
WHEN 'IP' THEN 'Work Order Started'
WHEN 'C' THEN 'Work Order Completed'
WHEN 'QC' THEN 'Quality Control Passed'
WHEN 'SO' THEN 'Work Order Signed Off'
WHEN 'CL' THEN 'Work Order Closed'
ELSE 'Status Change: ' + est_status
END AS ActivityName,
est_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
est_auth AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5eventstatus
WHERE est_status IN ('A', 'S', 'IP', 'C', 'QC', 'SO', 'CL')
AND est_org = 'YOUR_ORG'
UNION ALL
/* 4. Material Requisition Created */
SELECT
req_event AS WorkOrderNumber,
'Material Requisition Created' AS ActivityName,
req_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
req_createdby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5requisitions
WHERE req_event IS NOT NULL
AND req_org = 'YOUR_ORG'
UNION ALL
/* 5. Material Issued */
SELECT
trl_event AS WorkOrderNumber,
'Material Issued' AS ActivityName,
trl_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
trl_user AS UpdatedBy,
NULL AS TargetCompletionDate,
trl_part AS AssetCode, -- Storing Part ID in Asset column for context
NULL AS ActualLaborHours
FROM r5translines
WHERE trl_type = 'I' -- I = Issue
AND trl_event IS NOT NULL
AND trl_org = 'YOUR_ORG'
UNION ALL
/* 6. Labor Hours Recorded */
SELECT
boo_event AS WorkOrderNumber,
'Labor Hours Recorded' AS ActivityName,
boo_entered AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
boo_mrc AS MaintenanceDepartment,
boo_person AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
boo_hours AS ActualLaborHours
FROM r5bookedhours
WHERE boo_event IS NOT NULL
AND boo_org = 'YOUR_ORG'
UNION ALL
/* 7. Checklist Item Verified */
SELECT
ckv_event AS WorkOrderNumber,
'Checklist Item Verified' AS ActivityName,
ckv_entrydate AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
ckv_enteredby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5checklistvalues
WHERE ckv_completed = '+' -- Logic for completed item depends on config
AND ckv_event IS NOT NULL
AND ckv_org = 'YOUR_ORG'