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 alteração de status que ocorreu. | ||
| Descrição Este atributo indica a etapa do processo em andamento, como 'Ordem de serviço criada' ou 'Material retirado'. Ele é derivado do histórico de alterações de status ou de eventos transacionais específicos registrados na ordem de serviço. Por que isso importa Define a sequência do registro de eventos e permite reconstruir o fluxo do processo e analisar gargalos. Onde encontrar Tabela R5EVENTHISTORY do Hexagon EAM, campo EVH_STATUS (associado às descrições) ou logs de auditoria Exemplos Ordem de serviço criadaOrdem de serviço agendadaOrdem de serviço concluídaMaterial retirado | |||
| 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 alteração de status foi gravado no sistema. Ele permite calcular a duração entre atividades e o tempo de ciclo total da ordem de serviço. Por que isso importa Registrar a data e a hora com precisão é essencial para analisar prazos, identificar atrasos e calcular o cumprimento de SLA. Onde encontrar 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 | 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 até o planejamento, a execução e o encerramento financeiro. É usado como identificador central do caso para relacionar registros de atividades, horas de trabalho e consumo de materiais. Por que isso importa Identifica uma instância específica do processo de manutenção e permite acompanhar os tempos de ciclo de ponta a ponta e as variantes do processo. Onde encontrar Tabela R5EVENTS do Hexagon EAM, campo EVT_CODE Exemplos OS-100234OS-100235OS-100236104592 | |||
| Sistema de origem SourceSystem | O nome do sistema de onde os dados vieram. | ||
| Descrição Este atributo indica o sistema de registro dos dados. Neste contexto, o nome do sistema EAM específico é definido previamente para diferenciá-lo de possíveis dados legados ou de sistemas de prestadores externos. Por que isso importa Garante a rastreabilidade dos dados, especialmente ao combinar dados de várias instâncias de manutenção. Onde encontrar Valor definido previamente Exemplos Hexagon EAMInfor EAMDatastream 7i | |||
| Última atualização dos dados LastDataUpdate | A data e a hora da última extração ou atualização do registro. | ||
| Descrição Este atributo registra quando os dados foram extraídos pela última vez do sistema de origem. Ele ajuda analistas a entender a atualidade dos dados e identificar possíveis problemas de latência no fluxo de geração de relatórios. Por que isso importa Ajuda a confirmar a atualidade dos dados usados na análise e a investigar problemas de sincronização. Onde encontrar Horário 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 que recebe 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 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 os esforços de manutenção estão concentrados. Onde encontrar Tabela R5EVENTS do Hexagon EAM, campo EVT_OBJECT Exemplos PUMP-001HVAC-204FLEET-99CONVEYOR-A | |||
| Data prevista de conclusão TargetCompletionDate | O prazo programado para a ordem de serviço. | ||
| Descrição Este atributo indica a data prevista para a conclusão do serviço de manutenção. Comparar essa data com a data real de conclusão é essencial para calcular o cumprimento do SLA e a performance dentro do prazo. Por que isso importa Ele é essencial para o Monitor de Cumprimento de SLA de Contratados e para avaliar a precisão do planejamento. Onde encontrar 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 responsável pela ordem de serviço, como elétrica, mecânica ou instalações. Ele permite comparar a performance entre diferentes equipes técnicas. Por que isso importa Ele dá suporte ao Dashboard de Produtividade da Mão de Obra dos Técnicos e ajuda a distribuir os recursos entre diferentes especialidades. Onde encontrar Tabela R5EVENTS do Hexagon EAM, campo EVT_MRC Exemplos Oficina de 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 os custos de mão de obra e analisar a diferença em relação às horas estimadas. Por que isso importa Ele é a principal fonte de dados do Dashboard de Produtividade da Mão de Obra dos Técnicos e do KPI de Variação de Horas de Mão de Obra. Onde encontrar 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, de rotineira a emergencial. Ele orienta o agendamento de recursos e é essencial para acompanhar o cumprimento de SLA e detectar o uso indevido de prioridades. Por que isso importa É essencial que o Dashboard de Escalonamento de Prioridades e Auditoria de Recursos garanta a priorização correta das tarefas críticas. Onde encontrar Tabela R5EVENTS do Hexagon EAM, campo EVT_PRIORITY Exemplos CríticoAltoMédioBaixo | |||
| 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 Contribui para o Dashboard de análise da proporção de manutenção preventiva e ajuda a identificar oportunidades para reduzir o trabalho reativo. Onde encontrar 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 iniciar a mudança de status ou atualização. 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 manutenção. Onde encontrar 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 da lista de verificação foi marcado como concluído. Ele ajuda a garantir a conformidade com as normas de segurança e os padrões internos. Por que isso importa Ele alimenta o KPI de Taxa de Conformidade do Controle de Qualidade e dá suporte ao Dashboard de Conformidade e Integridade da Documentação. Onde encontrar Derivado de tabelas de listas de verificação 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 importância do ativo para as operações da empresa. Ele costuma ser usado para verificar se ordens de serviço de alta prioridade estão realmente relacionadas a equipamentos críticos e identificar possíveis desvios no processo. Por que isso importa Ele dá suporte ao Dashboard de Escalonamento de Prioridades e Auditoria de Recursos, relacionando a prioridade ao valor do ativo. Onde encontrar Tabela R5OBJECTS do Hexagon EAM, campo OBJ_CRITICALITY (requer junção pelo campo EVT_OBJECT) Exemplos A - VitalB - CríticoC - SecundárioD - Baixo | |||
| Custo real total TotalActualCost | O custo financeiro total registrado para a ordem de serviço. | ||
| Descrição Este atributo reúne os custos de mão de obra, materiais e serviços. Ele é essencial para analisar o fechamento financeiro e entender o impacto nos custos da manutenção emergencial em comparação com a preventiva. Por que isso importa Ele dá suporte ao Dashboard de Fechamento Financeiro e Agilidade no Encerramento e à tomada de decisões com base em custos. Onde encontrar Tabela R5EVENTS do Hexagon EAM, campo EVT_ACTCOST (ou coluna de resumo semelhante) Exemplos 150.002500.5075.25 | |||
| Data da requisição de materiais MaterialRequisitionDate | A data em que as peças de reposição foram solicitadas. | ||
| Descrição Este atributo registra a data e hora em que a solicitação de materiais foi enviada ao almoxarifado ou ao setor de compras. Analisar o intervalo entre essa data e a data de emissão do material revela a eficiência da cadeia de suprimentos. Por que isso importa Ele é necessário para o Dashboard de Prazos de Aquisição de Peças de Reposição. Onde encontrar 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 criada originalmente. | ||
| Descrição Este atributo marca o início do ciclo de vida da ordem de serviço. Ele serve de referência para calcular o tempo médio de planejamento e determinar há quanto tempo os itens estão no backlog. Por que isso importa Ele é necessário para o Dashboard de Velocidade do Planejamento de Manutenção e o KPI de Idade do Backlog. Onde encontrar 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 textual da tarefa de manutenção. | ||
| Descrição Este atributo contém o assunto ou uma breve descrição do problema. Ele dá contexto aos analistas quando investigam casos problemáticos específicos ou identificam padrões em textos não estruturados. Por que isso importa Ele fornece o contexto necessário para a análise humana dos dados do processo. Onde encontrar Tabela R5EVENTS do Hexagon EAM, campo EVT_DESC Exemplos Reparar vazamento na vedação da bombaInspeção mensal do sistema HVACSubstituir a correia transportadora | |||
| É preventiva IsPreventive | Indicador que informa se a ordem de serviço é de 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 de Proporção de Manutenção Preventiva, separando o trabalho proativo dos reparos reativos. Por que isso importa Ele é uma segmentação fundamental para o Dashboard de Análise da Proporção de Manutenção Preventiva. Onde encontrar 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 do status de conclusão para um status de trabalho ativo. Ele ajuda a identificar problemas de qualidade e lacunas de treinamento. Por que isso importa Ele alimenta o Dashboard de Retrabalho Técnico e Controle de Qualidade e o KPI de Taxa de Retrabalho de Manutenção. Onde encontrar Calculado com base na repetição de atividades Exemplos truefalse | |||
| Escalonamento emergencial EmergencyEscalationFlag | Indicador que informa se a prioridade foi elevada para emergencial após a criação. | ||
| Descrição Este atributo booleano identifica ordens de serviço que começaram com prioridade mais baixa e depois foram elevadas para emergencial. Ocorrências frequentes podem indicar uma triagem inicial inadequada ou tentativas de contornar o sistema para obter atendimento mais rápido. Por que isso importa Ele dá suporte ao Dashboard de Escalonamento de Prioridades e Auditoria de Recursos e ao KPI de Taxa de Escalonamento Emergencial. Onde encontrar 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 prevista de conclusão. Ele classifica o caso como dentro do SLA ou com SLA descumprido, facilitando a geração de relatórios sobre a performance de contratados e equipes internas. Por que isso importa Ele é a fonte direta de dados do KPI de Taxa de Cumprimento do SLA. Onde encontrar Calculado: data real de conclusão <= data prevista Exemplos Dentro do SLASLA descumpridoAberto | |||
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 para os Dashboards de variação das horas de trabalho e produtividade da mão de obra técnica. Revela o esforço real em comparação com o planejado. Onde encontrar Tabela r5booklabor do Hexagon EAM. Cada linha representa um lançamento de horas para a ordem de serviço. Coleta Registrado quando a transação INSERT é executada em r5booklabor Tipo de evento explicit | |||
| Material retirado | As peças de reposição são retiradas fisicamente do almoxarifado e debitadas na ordem de serviço. Isso representa o consumo de materiais. | ||
| Por que isso importa Ponto final para medir o prazo de disponibilidade de materiais. Ajuda a identificar atrasos em que o trabalho começa, mas é interrompido por falta de peças. Onde encontrar Tabela r5translines do Hexagon EAM. Tipo de transação 'I' (retirada) vinculado à ordem de serviço. Coleta 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 análise de planejamento e estimativa. Isso significa que o trabalho está autorizado a prosseguir. | ||
| Por que isso importa Contribui para a análise da velocidade do planejamento de manutenção, marcando o fim da etapa de planejamento. Permite verificar a conformidade com a segregação de funções. Onde encontrar Tabela r5statuslog do Hexagon EAM. Procure a transição para o status 'A' (Aprovado) ou o equivalente no sistema. Coleta Registrado quando uma 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 o serviço como finalizado. O ativo volta a operar. | ||
| Por que isso importa Marco importante para medir a duração total do ciclo e o tempo médio de reparo. Encerra a contagem do tempo de inatividade. Onde encontrar r5statuslog do Hexagon EAM. Transição para 'C' (concluído) ou 'F' (finalizado). Coleta Registrado quando uma transação é executada em r5statuslog Tipo de evento explicit | |||
| Ordem de serviço criada | Criação inicial do registro da ordem de serviço de manutenção no sistema. Esse evento abre o caso e registra a data e hora iniciais de todo o ciclo de manutenção. | ||
| Por que isso importa Marca o início da instância do processo e define a referência para medir o tempo total de resolução. É essencial para calcular o tempo de envelhecimento das ordens pendentes. Onde encontrar Tabela r5events do Hexagon EAM. Registrado quando um novo registro é inserido com evt_code. Coleta 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. Não é mais possível lançar custos ou horas de trabalho. | ||
| Por que isso importa Fim do processo. Essencial para analisar a liquidação financeira e consolidar os custos finais. Onde encontrar r5statuslog do Hexagon EAM. Transição para 'C' (encerrado) ou 'L' (bloqueado/encerrado). Coleta Registrado quando uma 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. Em geral, isso é indicado pela mudança de status para Em andamento ou pelo primeiro registro de horas trabalhadas. | ||
| Por que isso importa Ponto final para calcular o tempo na fila de pendências e ponto inicial para medir o tempo efetivo de trabalho. Essencial para a taxa de cumprimento de SLA. Onde encontrar r5statuslog do Hexagon EAM. Transição para 'Em andamento' (geralmente com o código de status 'I' ou 'IP'). Coleta Registrado quando uma transação é executada em r5statuslog Tipo de evento explicit | |||
| Controle de qualidade aprovado | Um supervisor ou inspetor analisa o trabalho concluído e aprova sua qualidade. Essa etapa valida o reparo antes do encerramento. | ||
| Por que isso importa Contribui para o KPI de taxa de conformidade do controle de qualidade. Retornos a etapas anteriores indicam retrabalho técnico. Onde encontrar r5statuslog do Hexagon EAM (transição para 'Review' ou 'QC') ou r5audittrail para validação de um UDF específico. Coleta Compare o campo de status antes e depois Tipo de evento inferred | |||
| Item do checklist verificado | Uma tarefa específica ou etapa de inspeção da ordem de serviço é marcada como concluída. Isso representa o avanço 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 no sistema. Onde encontrar Tabela r5checklist ou r5activities do Hexagon EAM. Mudança de status de uma atividade ou tarefa específica. Coleta 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 programada ou um recurso específico. Com isso, sai da fila de pendências e entra na programação ativa. | ||
| Por que isso importa Essencial para analisar a produtividade da mão de obra técnica e entender a eficiência da alocação de recursos. Onde encontrar Tabela r5events do Hexagon EAM (atualização de evt_schedstart) ou r5statuslog (transição para 'S', agendado). Coleta 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 | Geralmente, é necessária uma aprovação administrativa final para fins de conformidade ou pagamento do prestador. Ela confirma que todos os dados estão corretos. | ||
| Por que isso importa Acompanhe esta etapa na análise do ciclo de aprovação de ordens de serviço. Atrasos aqui afetam a velocidade da liquidação financeira. Onde encontrar r5statuslog do Hexagon EAM (transição para 'Signed Off') ou registro de captura de assinatura eletrônica. Coleta Compare o campo de status antes e depois Tipo de evento inferred | |||
| Prioridade atualizada | A prioridade da ordem de serviço foi alterada após sua criação. Esse evento registra a data e hora da mudança e o novo valor de prioridade. | ||
| Por que isso importa Essencial para o Dashboard de análise de escalonamento de prioridade e auditoria de recursos, que ajuda a identificar uso indevido de prioridades ou aumento do escopo. Onde encontrar r5audittrail do Hexagon EAM, se a auditoria estiver habilitada, ou inferido a partir de snapshots. Geralmente derivado do log de auditoria do campo evt_priority. Coleta Registrado quando a transação UPDATE é executada em evt_priority Tipo de evento explicit | |||
| Solicitação de materiais 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 medir os prazos de compra de peças de reposição. Um volume elevado nessa etapa indica dependência da disponibilidade em estoque. Onde encontrar Tabela r5requisitions do Hexagon EAM. Vinculada por meio de req_evt (código da ordem de serviço). Coleta Registrado quando a transação INSERT é executada em r5requisitions Tipo de evento explicit | |||
Guias de extração
Etapas
- Acesse o aplicativo Hexagon EAM com uma conta de usuário que tenha privilégios de criação no Advanced Reporting.
- Acesse o módulo Reports, geralmente no menu Administration ou Reports, e abra a interface do Advanced Reporting, que costuma ser o Cognos ou um criador de relatórios SQL integrado.
- Inicie o assistente de criação de relatório e selecione 'SQL' ou 'Free-hand SQL' como tipo de fonte de dados. Assim, você consulta o banco de dados diretamente, sem 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 exemplo, como [Your Organization Code] e os intervalos de datas, por valores específicos do seu ambiente.
- Valide a sintaxe da consulta no editor para confirmar que a plataforma do banco de dados, Oracle ou SQL Server, aceita as instruções UNION.
- Mapeie as colunas resultantes para a lista de campos do relatório e confira se WorkOrderNumber, ActivityName e EventTimestamp estão visíveis.
- Configure a exportação do relatório especificamente para CSV ou Excel, garantindo uma estrutura tabular sem células mescladas nem 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, e confira 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 confira os formatos de data. Se possível, verifique se as datas e horas incluem os segundos para permitir uma ordenação precisa.
- Importe o arquivo CSV resultante para o ProcessMind, mapeando a coluna SourceSystem como atributo do caso e ActivityName como classificador da atividade.
Configuração
- Intervalo de datas: recomendamos filtrar por EVT_DATE (Creation Date) em uma janela móvel de 6 a 12 meses para manter a performance da consulta.
- Filtro de organização: o Hexagon EAM costuma atender a várias organizações. Inclua na consulta um filtro para o código da sua organização específica e evite misturar 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 geralmente roda em Oracle ou SQL Server. Talvez seja necessário ajustar as funções de data, por exemplo, SYSDATE ou GETDATE.
- Configuração de status: o mapeamento dos códigos de status, como 'A', 'C' e 'R', para nomes de atividades, como 'Work Order Approved', deve corresponder à configuração de status específica 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.
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: confirme que você tem credenciais de acesso de leitura, normalmente de uma conta de serviço, para o banco de dados Oracle ou SQL Server do Hexagon EAM.
- Localize as tabelas principais: confirme o acesso a R5EVENTS (cabeçalhos das 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. Consulte a configuração do sistema (tela: Administration -> Codes) para mapear seus códigos de 1 ou 2 caracteres às 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 exemplo, como 'APPR', 'SCHD' e 'COMP', pelos códigos usados no 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, para manter a performance da consulta.
- Execute a extração: rode 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, confira se a auditoria está habilitada para a tabela R5EVENTS nas configurações do seu sistema EAM.
- Valide os dados da lista de verificação: confirme se R5CHECKLISTVALUES é a tabela correta para sua versão. Versões mais antigas podem usar R5ACTIVITIES para registrar a conclusão de tarefas.
- Exporte os dados: salve o resultado como arquivo CSV ou Parquet. Formate a coluna Timestamp como ISO 8601 (YYYY-MM-DD HH:MM:SS) para evitar erros de interpretação.
- Importe para o ProcessMind: carregue o arquivo simples na interface do ProcessMind e mapeie WorkOrderNumber como ID do caso, ActivityName como atividade e EventTimestamp como data e hora do evento.
Configuração
- Filtro de período: a consulta seleciona todos os dados. Recomendamos 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: substitua os valores de texto no SQL, como 'APPR', 'COMP' e 'QC', pelos códigos definidos no seu conjunto R5STATUS.
- Configuração de auditoria: a extração da atividade 'Priority Updated' depende da tabela R5AUDITVALUES. Se a auditoria estiver desativada para a coluna EVT_PRIORITY, essa atividade não será incluída.
- Organização/ambiente (tenant): se sua instância EAM hospeda várias organizações, adicione um filtro para EVT_ORG ou EVT_MRC (departamento) para evitar misturar os dados.
- Idioma: a consulta pressupõe que os cabeçalhos das colunas estejam em inglês. Se o banco de dados usar nomes de colunas localizados, ajuste-os conforme necessário.
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 a acessar os dados das ordens de serviço de manutenção necessários para esta extração. Verifique a configuração da transação de saída, o destino, a possibilidade de agendamento e o acesso às tabelas ou visualizações 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 visualizações oficiais do Hexagon EAM para cabeçalhos e histórico de status das ordens de serviço, histórico de prioridades, requisições e baixas de materiais, transações de mão de obra, resultados de listas de verificação ou inspeções, atribuições de agendamento, aprovações de qualidade, registros de aprovação e registros de encerramento. Substitua cada marcador [Your ... table name] na consulta pelo objeto correspondente no seu ambiente. Não presuma que o cabeçalho atual de uma ordem de serviço contenha o histórico de alterações.
- Configure o Databridge Outbound para publicar uma transação XML ou CSV sempre que uma alteração relevante em uma ordem de serviço for confirmada. Inclua o número da ordem de serviço, o tipo de evento, a 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 uma 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, listas de verificação, agendamento, qualidade, aprovação ou encerramento.
- Configure o conteúdo de saída para representar cada ocorrência de negócio como um registro de evento individual. Não envie apenas o status mais recente da ordem de serviço. Para registros repetidos de mão de obra, baixas de materiais, itens de listas de verificação, 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 uma área de preparação controlada e, em seguida, carregue-a nos objetos do banco de dados referenciados pela consulta ou substitua os objetos de origem da consulta pelas tabelas de preparação. Preserve o identificador original do evento, o número da ordem de serviço, a data e hora do evento, o usuário de origem e LastDataUpdate. Se o Databridge enviar XML, transforme os nós de evento repetidos em linhas antes de aplicar o mapeamento de atividades. Se enviar CSV, valide os delimitadores, as aspas, a codificação e os formatos de data e hora.
- Substitua os marcadores da consulta pelos 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. Confirme se as colunas de origem usadas em cada bloco têm tipos de dados compatíveis. Se a 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 disponíveis. Ordene a saída por WorkOrderNumber, EventTimestamp e ActivityName, mantendo as linhas duplicadas quando representarem ocorrências distintas na origem.
- Compare as linhas extraídas com a contagem de entregas do Databridge, a contagem de transações de origem e uma amostra de ordens de serviço no Hexagon EAM. Investigue históricos de status ausentes, entregas duplicadas, datas e horas inválidas e eventos fora do período selecionado. Aplique uma regra estável de remoção de duplicatas somente quando o mesmo evento de origem tiver sido entregue mais de uma vez.
- Exporte o resultado final como CSV UTF-8 ou em outro formato de Event Log compatível com o ProcessMind. Mantenha um evento por linha, use um formato consistente de data e hora com tratamento de fuso horário e mapeie WorkOrderNumber como identificador do caso, ActivityName como atividade e EventTimestamp como data e hora do evento. Carregue o arquivo no ProcessMind e confirme se os 13 nomes de atividades estão disponíveis no modelo de processo.
Configuração
- Configure o Hexagon EAM Databridge Outbound para entregar dados em XML ou CSV no nível do evento. Os nomes exatos das transações, as telas de administração e os caminhos dos menus dependem da versão instalada do Hexagon EAM. Use [Configure based on your system] em vez de presumir um caminho específico para determinada versão.
- Configure WorkOrderNumber como identificador do caso no ProcessMind, ActivityName como campo da atividade e EventTimestamp como data e hora do evento. Preencha SourceSystem com Hexagon EAM e use LastDataUpdate para indicar a data e hora da extração ou atualização.
- Configure mapeamentos de saída para 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, por si só, não permite reconstruir todas as transições de status, alterações de prioridade, entradas de mão de obra, baixas de materiais, verificações de listas, aprovações ou assinaturas.
- Use um intervalo de três a seis meses para a extração inicial. Para cargas incrementais, use a data e hora de entrega do Databridge ou LastDataUpdate como referência, com uma pequena sobreposição para evitar a perda de transações recebidas com atraso.
- Aplique filtros de empresa, local, 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 as ordens de serviço encerradas quando a análise abranger o ciclo de vida completo. Filtrar apenas as ordens em aberto vai excluir as atividades de conclusão, qualidade, aprovação e encerramento.
- Configure explicitamente o tratamento de fuso horário. Converta todas as datas e horas de origem para um único fuso horário acordado antes de carregar os dados no ProcessMind e preserve o fuso ou deslocamento original quando disponível.
- Para conjuntos de dados grandes, filtre na origem, limite o período de extração, indexe ou particione as datas e horas dos eventos e os números das ordens de serviço e armazene os arquivos do Databridge em uma área de preparação antes da transformação. Evite analisar repetidamente todo o conteúdo histórico em XML.
- Os pré-requisitos incluem a 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 preparação e acesso aos dados de ordens de serviço, status, materiais, mão de obra, listas de verificação, agendamento, aprovações, qualidade, assinaturas e encerramentos.
- Se um evento de negócio obrigatório não estiver disponível como transação nativa do Databridge, configure uma visualização de origem ou uma transformação na área de preparação que gere uma linha de evento explícita. O ProcessMind não infere atividades ausentes a partir de outras linhas.
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 os dados de manutenção em insights acionáveis seguindo este Template. Nossa equipe pode ajudar você com dúvidas técnicas durante a preparação dos dados.
Reduza os atrasos na manutenção de ativos e melhore a performance hoje
Reduza o tempo de ciclo em 30% e elimine gargalos ocultos.
Não é necessário informar o cartão de crédito. Configure tudo em poucos minutos.