Seu template de dados de planejamento de produção
Seu template de dados de planejamento de produção
- Atributos recomendados para coletar
- Atividades-chave a monitorizar
- Guia de extração para Microsoft Dynamics 365 Manufacturing
Atributos de Planejamento de Produção
| Nome | Descrição | ||
|---|---|---|---|
| Ordem de Produção ProductionOrderNumber | O identificador único para uma ordem de produção, servindo como o ID de caso principal para rastrear todas as atividades relacionadas de planejamento e execução. | ||
| Descrição O Número da Ordem de Produção, frequentemente chamado de ProdId no Microsoft Dynamics 365, é o identificador central que vincula todos os eventos, materiais e recursos de um trabalho específico. Ele permite uma análise completa de ponta a ponta do ciclo de vida da produção.\n\nNo Process Mining, este atributo é essencial para agrupar eventos relacionados em um único caso. Analisar processos pelo Número da Ordem de Produção ajuda a identificar gargalos, atrasos e desvios no fluxo padrão, desde a criação e agendamento até a conclusão e custeio. Por que é importante Este é o identificador fundamental do caso, que é crítico para agrupar todos os eventos relacionados e reconstruir o processo de planejamento de produção de ponta a ponta para análise. Onde obter Este é o campo 'ProdId' na tabela 'ProdTable' no Microsoft Dynamics 365 Manufacturing. Exemplos WO-000456WO-000457WO-000458 | |||
| Nome da Atividade ActivityName | O nome do evento de negócio específico ou etapa que ocorreu dentro do processo de planejamento de produção. | ||
| Descrição O Nome da Atividade descreve uma etapa única no ciclo de vida do planejamento de produção, como 'Ordem de Produção Criada', 'Materiais Separados para Produção' ou 'Produção Iniciada'. Estas atividades são os blocos de construção do mapa de processo.\n\nAnalisar a sequência e a duração destas atividades permite a visualização do fluxo do processo, identificação de caminhos comuns, detecção de loops de retrabalho e medição do tempo gasto em diferentes estágios. Este atributo é crucial para entender o que está acontecendo em cada ponto do processo. Por que é importante Este atributo define as etapas do processo, permitindo a construção de um mapa de processo e a análise do fluxo, variações e gargalos. Onde obter Este valor é tipicamente derivado de event logs ou pelo mapeamento de diferentes mudanças de status e tipos de transação em tabelas como 'ProdRouteTrans', 'ProdJournalBOM' e alterações nos campos de status da 'ProdTable'. Exemplos Ordem de Produção CriadaOrdem de Produção LiberadaProdução IniciadaProdução Reportada como Concluída | |||
| Sistema de Origem SourceSystem | O sistema de registro de onde os dados foram extraídos. | ||
| Descrição Este atributo identifica o sistema de origem dos dados. Para esta visão, o valor seria 'Microsoft Dynamics 365 Manufacturing'.\n\nEm ambientes com múltiplos sistemas, este campo é crucial para a linhagem de dados, resolução de problemas de qualidade e para entender como diferentes sistemas contribuem para o processo global. Garante clareza sobre a origem dos dados analisados. Por que é importante Oferece contexto sobre a origem dos dados, algo essencial para governança, validação e gestão de pipelines vindos de múltiplos sistemas. Onde obter Este é um valor estático que deve ser adicionado durante o processo de extração e transformação de dados para rotular a origem do conjunto de dados. Exemplos Microsoft Dynamics 365 ManufacturingD365 F&O | |||
| Tempo do Evento EventTime | O timestamp preciso que indica quando a atividade ocorreu. | ||
| Descrição O Horário do Evento (timestamp) registra a data e hora exata de uma atividade. Esses dados são fundamentais para calcular tempos de ciclo, identificar atrasos entre etapas e entender a performance ao longo do tempo. No planejamento de produção, este atributo mede durações como o lead time de planejamento, atrasos no início da produção e tempo total de atendimento da ordem. Registros cronológicos precisos são essenciais para construir um modelo de processo confiável. Por que é importante Este timestamp é essencial para a ordenação dos eventos, cálculo das durações entre atividades e realização de qualquer análise baseada em tempo, como tempo de ciclo e identificação de gargalos. Onde obter Encontrado em várias tabelas de transação, como 'createdDateTime' na 'ProdTable', ou campos de data em 'ProdRouteTrans', 'ProdJournalRoute' e 'ProdJournalBOM'. Exemplos 2023-04-15T09:00:12Z2023-04-15T11:30:00Z2023-04-16T14:22:05Z | |||
| Última Atualização de Dados LastDataUpdate | O timestamp que indica quando os dados deste evento foram atualizados ou extraídos do sistema de origem pela última vez. | ||
| Descrição Este atributo fornece a data e a hora da extração de dados mais recente. É um campo de metadados crítico para entender a atualidade das análises.\n\nSaber quando os dados foram atualizados ajuda a confiar nos insights derivados da ferramenta de Process Mining. Esclarece se os dashboards refletem informações em tempo real ou dados de um ponto anterior no tempo, o que é vital para decisões operacionais. Por que é importante Este atributo é vital para a governança de dados, garantindo que os usuários compreendam o nível de atualização dos dados e possam confiar na pontualidade dos insights. Onde obter Este timestamp é gerado e carimbado em cada registro durante o processo de extração, transformação e carga (ETL). Exemplos 2023-05-20T05:00:00Z2023-05-21T05:00:00Z | |||
| Data de Início Planejada PlannedStartDate | A data e hora em que a ordem de produção está agendada para começar. | ||
| Descrição A Data de Início Planejada é um resultado chave do agendamento, representando o tempo alvo para iniciar as atividades de produção de uma ordem. Esta data é determinada com base na disponibilidade de materiais, capacidade e prazos de demanda.\n\nEste atributo é essencial para a análise de aderência ao cronograma. Ao comparar a Data de Início Planejada com o horário real de início da produção, as organizações podem medir a pontualidade, identificar causas de atrasos e calcular KPIs como a Taxa de Aderência ao Cronograma de Produção. Por que é importante Serve como base para medir a aderência ao cronograma e identificar atrasos entre o planejado e o início real da produção. Onde obter Este é o campo 'SchedStart' na tabela 'ProdTable'. Exemplos 2023-04-18T08:00:00Z2023-04-19T08:00:00Z2023-04-20T08:00:00Z | |||
| Data de Término Planejada PlannedEndDate | A data e hora em que a ordem de produção está agendada para ser concluída. | ||
| Descrição A Data de Término Planejada é o tempo alvo de conclusão para uma ordem de produção, conforme determinado pelo mecanismo de agendamento. Considera tempos de operação, calendários de recursos e lead times para prever quando os produtos acabados estarão prontos.\n\nNa análise de processos, este atributo é crítico para avaliar o desempenho de entrega no prazo. Comparar a Data de Término Planejada com o timestamp real de conclusão permite o cálculo do KPI de Taxa de Conclusão de Produção no Prazo e ajuda a identificar razões sistêmicas para entregas atrasadas. Por que é importante Este atributo é a referência para medir as taxas de conclusão no prazo e analisar a precisão do agendamento da produção. Onde obter Este é o campo 'SchedEnd' na tabela 'ProdTable'. Exemplos 2023-04-25T17:00:00Z2023-04-26T17:00:00Z2023-04-27T17:00:00Z | |||
| Número do produto ProductNumber | O identificador único para o item que está sendo fabricado. | ||
| Descrição O Número do Produto, ou ID do Item, especifica o produto acabado que a ordem de produção pretende criar. Ele vincula o processo ao produto específico, juntamente com sua lista de materiais e roteiro.\n\nAnalisar o processo por Número do Produto ajuda a descobrir variações específicas no ciclo de vida de manufatura. Pode revelar que certos produtos têm tempos de ciclo mais longos ou exigem mais retrabalho, fornecendo insumos valiosos para engenheiros de produto e de processo. Por que é importante Permite analisar variações do processo conforme o produto, ajudando a identificar gargalos ou falhas de qualidade específicas. Onde obter Este é o campo 'ItemId' na tabela 'ProdTable'. Exemplos FG-1001FG-2050ASSY-500B | |||
| Planta de Produção ProductionPlant | O site de manufatura ou planta onde a ordem de produção está sendo executada. | ||
| Descrição A Planta de Produção identifica o local físico responsável pelo processo de manufatura. É uma dimensão organizacional fundamental para segmentar e comparar o desempenho da produção.\n\nNo Process Mining, este atributo permite o benchmarking entre diferentes plantas. Os analistas podem comparar tempos de ciclo, utilização de recursos e aderência aos processos para identificar as melhores práticas ou localizar instalações que exijam melhorias operacionais. É essencial para a análise de utilização de capacidade. Por que é importante Isso permite a comparação de desempenho e o benchmarking entre diferentes sites de manufatura, ajudando a identificar melhores práticas e problemas específicos de cada local. Onde obter Este é o campo 'InventSiteId' na tabela 'ProdTable'. Exemplos SITE-ASITE-BAlmox-Principal | |||
| Prioridade de Produção ProductionPriority | Uma classificação que indica a urgência ou prioridade da ordem de produção. | ||
| Descrição A Prioridade de Produção é um campo utilizado por planejadores e programadores para gerenciar a sequência de trabalho no chão de fábrica. Ordens com prioridade alta podem ser agilizadas, potencialmente interrompendo o cronograma planejado de outras ordens.\n\nAnalisar este atributo ajuda a entender com que frequência os planos de produção são interrompidos por ordens prioritárias ou urgentes. Rastrear mudanças na prioridade ao longo do ciclo de vida de uma ordem pode evidenciar instabilidade na demanda ou no planejamento. Isso é fundamental para o dashboard 'Expedited Production Trends' e para o KPI 'Expedited Production Rate'. Por que é importante Isso ajuda a identificar a frequência e o impacto das ordens urgentes, o que pode indicar instabilidade no planejamento ou uma gestão operacional reativa. Onde obter Este pode ser um campo padrão ou personalizado na 'ProdTable'. A configuração é frequentemente específica da empresa. Exemplos NormalAltoUrgente | |||
| Quantidade Real ActualQuantity | A quantidade de bens produzidos com sucesso e reportados como concluídos para a ordem. | ||
| Descrição A Quantidade Real representa o número de unidades que foram concluídas e aprovadas nas verificações de qualidade para uma determinada ordem de produção. Este valor é registrado quando a produção é 'Reportada como concluída'.\n\nEste atributo é usado para analisar o rendimento e a eficiência da produção. Comparar a Quantidade Real com a Quantidade Planejada ajuda no cálculo das taxas de refugo e no entendimento das perdas de produção. É também um componente chave dos dashboards de análise de throughput e utilização de capacidade. Por que é importante Essencial para calcular rendimento, taxas de refugo e throughput real, fornecendo insights sobre a eficiência produtiva. Onde obter Esse valor geralmente vem do campo 'QtyGood' na 'ProdTable' ou de tabelas relacionadas de lançamento de diário quando uma ordem é reportada como concluída. Exemplos 100985000 | |||
| Status da Ordem de Produção ProductionOrderStatus | Indica o status atual do ciclo de vida da ordem de produção. | ||
| Descrição O Status da Ordem de Produção reflete o progresso da ordem no ciclo de vida da manufatura. Status comuns no Dynamics 365 incluem Criado, Estimado, Agendado, Liberado, Iniciado, Reportado como Concluído e Finalizado. Este atributo fornece uma visão instantânea da situação de cada ordem.\n\nNo Process Mining, analisar as mudanças de status é a principal forma de definir atividades e entender o fluxo. Pode ser usado para filtrar ordens, analisar o tempo gasto em cada status e identificar ordens paradas ou atrasadas. Por que é importante Este atributo fornece uma visão de alto nível do progresso de uma ordem e é crucial para filtragem, verificação de conformidade e análise do tempo gasto em diferentes fases da produção. Onde obter Este é o campo 'ProdStatus' na tabela 'ProdTable'. Exemplos AgendadoLiberadoIniciadoFinalizada | |||
| Tipo de Produção ProductionType | A classificação da ordem de produção, como padrão, retrabalho ou baseada em projeto. | ||
| Descrição O Tipo de Produção categoriza a ordem com base no seu propósito. Por exemplo, uma ordem 'Standard' é para produção regular de estoque, uma ordem de 'Rework' é para corrigir defeitos em um item produzido anteriormente, e uma ordem de 'Project' está vinculada a um projeto específico de um cliente.\n\nEste atributo é importante para criar visões de análise comparáveis. O processo para uma ordem de retrabalho é inerentemente diferente de uma padrão. Segmentar a análise do processo por Tipo de Produção garante que as comparações sejam significativas e ajuda a entender os desafios e fluxos únicos de cada tipo. Por que é importante Este atributo permite a segmentação da análise, uma vez que diferentes tipos de ordem, como 'Standard' e 'Rework', seguem naturalmente processos e expectativas de desempenho distintos. Onde obter Este é o campo 'ProdType' na tabela 'ProdTable'. Exemplos PadrãoReworkProjeto | |||
| Utilizador UserId | O identificador do usurio responsvel pela atividade. | ||
| Descrição O ID do Usuário identifica o funcionário ou conta do sistema que executou uma etapa do processo, como a liberação de uma ordem ou o reporte de conclusão. Esta informação fornece visibilidade sobre quem está realizando o trabalho.\n\nAnalisar o processo por usuário ajuda a entender a distribuição da carga de trabalho, identificar oportunidades de treinamento, comparar o desempenho entre equipes e investigar desvios. Também é importante para fins de conformidade e trilha de auditoria. Por que é importante Permite analisar a performance por usuário ou equipe, identificar automações e oferece trilha de auditoria das atividades-chave. Onde obter Encontrado em campos como 'modifiedBy' ou 'createdBy' em várias tabelas, ou campos de usuário em tabelas de log como 'ProdJournalTable'. Exemplos j.smithm.jonesAX_BATCH_SVC | |||
| Atraso no Início da Produção ProductionStartDelay | O tempo decorrido entre a liberação da ordem e o início real da produção. | ||
| Descrição Esta duração calculada mede o tempo de espera ou fila no chão de fábrica. É a diferença entre a 'Ordem de Produção Liberada' e a 'Produção Iniciada'.\n\nEste KPI é vital para o dashboard 'Resource Allocation Delay Analysis', pois identifica atrasos após a conclusão do planejamento. Valores altos indicam problemas com disponibilidade de recursos, preparação de materiais ou fluxo de informações, fornecendo um alvo claro para melhorias operacionais. Por que é importante Mede com precisão o atraso para início, ajudando a localizar gargalos de disponibilidade de recursos ou prontidão do chão de fábrica. Onde obter Esta é uma métrica calculada: Timestamp('Produção Iniciada') - Timestamp('Ordem de Produção Liberada'). Exemplos 0d 4h 15m1d 2h 0m0d 1h 30m | |||
| Disponibilidade de Material MaterialAvailabilityStatus | Indica se as matérias-primas necessárias para a ordem estão disponíveis. | ||
| Descrição Este atributo rastreia a prontidão dos componentes (ex: 'Disponível', 'Escassez'). Esta informação é crítica para entender se uma ordem pode começar como planejado.\n\nNo Process Mining, este atributo é fundamental para diagnosticar causas raiz de atrasos. Ao correlacionar este status com o tempo entre a liberação e o início real, os analistas quantificam o impacto da falta de materiais na aderência ao cronograma e no ciclo geral. Isso apoia o dashboard 'Material Availability Delay Impact'. Por que é importante Isso é fundamental para entender e quantificar os atrasos no início da produção causados pela falta de materiais, vinculando o desempenho da cadeia de suprimentos à eficiência da manufatura. Onde obter Este status geralmente não é um campo único, mas derivado da verificação dos níveis de inventário disponível para todos os itens na Lista de Materiais (BOM) da ordem de produção através da tabela 'InventSum'. Exemplos Totalmente DisponívelFalta ParcialNão Disponível | |||
| End Time EndTime | O timestamp preciso indicando quando a atividade foi concluída. | ||
| Descrição O End Time marca a conclusão de uma atividade específica. Enquanto o Start Time indica o início, o End Time é necessário para entender a duração real ou o tempo de processamento dessa etapa única.\n\nNo Process Mining, ter tanto o Start quanto o End Time para as atividades permite uma análise mais granular do tempo de espera versus tempo de processamento. Ajuda a distinguir entre o tempo em que uma atividade estava sendo executada ativamente e o tempo gasto esperando o próximo passo começar, o que é fundamental para uma análise detalhada de gargalos. Por que é importante Permite calcular o tempo de execução da atividade versus tempo de espera, possibilitando uma análise de gargalos mais precisa. Onde obter Isso é frequentemente derivado. Por exemplo, o end time de 'Produção Iniciada' poderia ser o start time de 'Operação Concluída'. Em alguns logs, um timestamp final pode ser registrado explicitamente. Exemplos 2023-04-15T09:30:45Z2023-04-15T12:00:00Z2023-04-16T15:00:10Z | |||
| Início no Prazo ProductionScheduleAdherence | Um sinalizador booleano que é verdadeiro se a ordem de produção começou na data de início planejada ou antes dela. | ||
| Descrição Este atributo calculado fornece um indicador binário de aderência ao cronograma para o início da produção. Ele compara o início real (evento 'Produção Iniciada') com o atributo 'PlannedStartDate'.\n\nEste sinalizador é útil para criar dashboards e KPIs claros, como a 'Taxa de Aderência ao Cronograma de Produção'. Ele permite fácil filtragem para ver a porcentagem de ordens no prazo e analisar atrasos, sem a necessidade de realizar comparações de datas manuais na ferramenta. Por que é importante Isso simplifica a emissão de relatórios e o cálculo de KPIs para aderência ao cronograma, permitindo a fácil filtragem e agregação de ordens no prazo versus ordens atrasadas. Onde obter Esta é uma métrica calculada. A lógica é: 'Produção Iniciada' EventTime <= PlannedStartDate. Exemplos verdadeirofalse | |||
| Linha de Produção ProductionLine | A linha de produção, centro de trabalho ou grupo de recursos específico atribuído à ordem de produção. | ||
| Descrição A Linha de Produção identifica a máquina, célula ou grupo de recursos específicos que realizarão as operações de manufatura. Isso fornece um detalhamento mais granular do que a Planta de Produção.\n\nAnalisar o processo por Linha de Produção é crítico para uma análise detalhada de capacidade. Ajuda a identificar centros de trabalho sobrecarregados, comparar a eficiência de diferentes linhas e identificar gargalos específicos de recursos que podem não ser visíveis no nível da planta. Por que é importante Isso permite uma análise granular da utilização e do desempenho dos recursos, ajudando a identificar centros de trabalho sobrecarregados ou linhas ineficientes. Onde obter Esta informação é frequentemente encontrada no campo 'WrkCtrId' nas transações de roteiro de produção (tabelas 'ProdRoute' ou 'ProdRouteTrans'). Exemplos LINE-01LINE-02CNC-A | |||
| Número da Ordem de Qualidade QualityOrderNumber | O identificador de uma ordem de controle de qualidade vinculada à ordem de produção. | ||
| Descrição Quando uma inspeção de qualidade é necessária, o Dynamics 365 costuma gerar uma ordem de qualidade. Este atributo conecta o processo de produção ao controle de qualidade, registrando o ID da ordem de qualidade associada. Essa integração permite uma visão completa do processo ponta a ponta, incluindo as etapas de gestão de qualidade. Ajuda a analisar como as inspeções impactam o lead time de produção, identificar atrasos na qualidade e entender a frequência das verificações em diferentes produtos ou linhas de produção. Por que é importante Conecta a fabricação à garantia de qualidade, permitindo analisar como as inspeções impactam o lead time total. Onde obter Esta informação é armazenada em tabelas de gestão de qualidade (ex: 'InventQualityOrderTable') e precisa ser vinculada de volta à ordem de produção. Exemplos QO-00123QO-00124QO-00125 | |||
| Número da Revisão ProductionOrderRevisionNumber | Uma contagem de quantas vezes um plano de produção foi ajustado após sua criação inicial. | ||
| Descrição Este atributo rastreia o número de revisões ou alterações significativas em uma ordem, como mudanças na quantidade ou datas, após o agendamento. Um número maior indica maior instabilidade no plano.\n\nEsta é uma medida direta para o KPI 'Production Plan Revision Rate'. Analisá-la ajuda a identificar fontes de instabilidade, como mudanças de demanda ou planejamento impreciso. Quantifica o esforço de retrabalho e reagendamento, que gera ineficiências. Por que é importante Isso mede diretamente a estabilidade do planejamento e apoia o KPI 'Production Plan Revision Rate', destacando processos com excesso de mudanças e retrabalho. Onde obter Este é um atributo derivado que requer a contagem das ocorrências das atividades de 'Ordem de Produção Ajustada' para cada caso. Exemplos 012 | |||
| Quantidade Planejada PlannedQuantity | A quantidade do item que está planejada para ser produzida. | ||
| Descrição A Quantidade Planejada é o número alvo de unidades a serem fabricadas para uma determinada ordem de produção. Esta quantidade é tipicamente impulsionada pela demanda de ordens de venda, requisitos de estoque de segurança ou planejamento mestre.\n\nEste atributo serve como base para métricas de desempenho como rendimento e refugo. Ao comparar a Quantidade Planejada com a Quantidade Real produzida, os planejadores podem monitorar a eficiência da produção e a variação de materiais. É um ponto de dados fundamental para o planejamento de materiais e capacidade. Por que é importante Esta é a quantidade de referência usada para medir o rendimento da produção e as taxas de refugo ao compará-la com a quantidade real produzida. Onde obter Este é o campo 'QtySched' na tabela 'ProdTable'. Exemplos 1005000250 | |||
| Tempo de Ciclo de Produção ProductionCycleTime | A duração total da ordem de produção, desde a criação até a sua conclusão final. | ||
| Descrição Esta métrica mede o tempo de ciclo de ponta a ponta para uma única ordem de produção. É a diferença de tempo entre o primeiro evento ('Ordem de Produção Criada') e o último ('Ordem de Produção Finalizada').\n\nO Tempo de Ciclo de Produção é um KPI fundamental para avaliar a eficiência do processo. Analisá-lo ajuda a identificar ordens longas, entender o tempo médio de fabricação e rastrear melhorias. É uma medida chave para o dashboard 'Production Performance Overview'. Por que é importante Este é um KPI crítico para medir a eficiência geral do processo e identificar tendências ou exceções no tempo necessário para concluir uma ordem de produção. Onde obter Esta é uma métrica calculada, computada subtraindo o timestamp do primeiro evento do timestamp do último evento para cada Número de Ordem de Produção. Exemplos 7d 4h 30m10d 2h 15m5d 8h 0m | |||
Atividades de Planejamento de Produção
| Atividade | Descrição | ||
|---|---|---|---|
| Ordem de Produção Agendada | Esta atividade marca o agendamento da ordem de produção, alocando recursos, datas e horários para suas operações. Esta etapa pode envolver o agendamento de operações ou um agendamento de tarefas mais detalhado. | ||
| Por que é importante O agendamento é crucial para o planejamento de capacidade e gestão de recursos. Analisar o tempo levado para agendar ordens e o intervalo antes da liberação revela restrições de planejamento e capacidade. Onde obter Capturado quando o status da ordem na ProdTable muda para 'Scheduled'. Gatilho: usuário executando uma função de agendamento. Captura Detecta o carimbo de data/hora quando o campo ProdStatus na ProdTable muda para 'Scheduled'. Tipo de evento inferred | |||
| Ordem de Produção Criada | Esta atividade marca a criação de uma ordem de produção, que formaliza a demanda por uma quantidade específica. Isso é tipicamente capturado quando uma ordem planejada é confirmada, criando um registro oficial no sistema com um ID único. | ||
| Por que é importante Este é o principal evento de início para o processo de produção. Analisar o tempo desde esta criação até as etapas subsequentes ajuda a medir o lead time e a eficiência geral do planejamento. Onde obter Este evento é inferido a partir do timestamp de criação do registro da ordem de produção na ProdTable. O status inicial é tipicamente 'Criado'. Captura Captura o carimbo de data/hora de uma nova entrada na ProdTable onde o ProdStatus é 'Created'. Tipo de evento inferred | |||
| Ordem de Produção Finalizada | Esta é a atividade final, representando o fechamento financeiro da ordem de produção. Todos os custos foram calculados e lançados, e nenhuma outra transação pode ser feita contra a ordem. | ||
| Por que é importante Isso marca a verdadeira conclusão da ordem sob as perspectivas física e financeira. Atrasos entre 'Reportado como Concluído' e 'Finalizado' podem indicar problemas na contabilidade de custos ou fechamento financeiro. Onde obter Esta é a mudança de status final capturada quando o campo 'ProdStatus' na 'ProdTable' é definido como 'Finalizado'. Isso é acionado pela execução do cálculo de custos e encerramento da ordem. Captura Detecta o carimbo de data/hora quando o campo ProdStatus na ProdTable muda para 'Ended'. Tipo de evento inferred | |||
| Ordem de Produção Liberada | Esta atividade significa que a ordem de produção foi aprovada e autorizada para execução. Este é um marco importante que libera documentos como cartões de tarefas e cartões de roteiro. | ||
| Por que é importante Este é o repasse oficial do planejamento para a execução. O tempo entre 'Agendado' e 'Liberado' indica atrasos na aprovação, enquanto o tempo de 'Liberado' a 'Iniciado' mede a prontidão do chão de fábrica. Onde obter Isso é capturado quando o status da ordem de produção na ProdTable muda para 'Liberado'. Esta é uma ação manual ou automatizada do usuário. Captura Detecta o carimbo de data/hora quando o campo ProdStatus na ProdTable muda para 'Released'. Tipo de evento inferred | |||
| Produção Iniciada | Marca o início físico do trabalho no chão de fábrica. Geralmente registrado quando a primeira operação começa via terminal ou lançamento de diário. | ||
| Por que é importante Esta atividade fornece o horário real de início da produção, o que é crucial para calcular atrasos de início, aderência ao cronograma e lead times reais. Onde obter Capturado quando o status da ordem na ProdTable muda para 'Started'. Gatilho: lançamento de um cartão de trabalho ou diário de rota da primeira operação. Captura Detecta o carimbo de data/hora quando o campo ProdStatus na ProdTable muda para 'Started'. Tipo de evento inferred | |||
| Produção Reportada como Concluída | Indica que a fabricação da quantidade especificada está fisicamente concluída e os produtos entraram em estoque. É uma atualização crítica que dispara transações de inventário. | ||
| Por que é importante Isso marca o fim da produção física. É essencial para calcular as taxas de conclusão no prazo, a duração real da produção e o throughput. Onde obter Capturado quando o status da ordem na ProdTable muda para 'Reported as finished'. Gatilho: lançamento de um diário de Reporte como Acabado. Captura Detecta o carimbo de data/hora quando o campo ProdStatus na ProdTable muda para 'Reported as finished'. Tipo de evento inferred | |||
| Inspeção de Qualidade Aprovada | Representa a conclusão e validação bem-sucedidas de uma ordem de qualidade associada à execução da produção. Isso confirma que os itens produzidos atendem aos padrões de qualidade exigidos. | ||
| Por que é importante Este é um marco importante no processo de qualidade. A duração entre a geração da ordem de qualidade e a aprovação na inspeção destaca a eficiência da equipe de CQ. Onde obter Inferido a partir da mudança de status no registro da InventQualityOrderTable para 'Pass'. O valor exato do status pode variar. Captura Detecta o carimbo de data/hora quando o status do registro associado na InventQualityOrderTable é atualizado para 'Pass'. Tipo de evento inferred | |||
| Materiais Separados para Produção | Indica que os materiais foram separados no armazém e estão prontos para consumo. Registrado após a conclusão do trabalho de separação ou lançamento do diário de separação. | ||
| Por que é importante Esta atividade é um portão crítico para iniciar a produção. Atrasos entre o agendamento e a separação de materiais destacam problemas nas operações de armazém ou na disponibilidade de materiais. Onde obter Este é tipicamente um evento explícito registrado em tabelas de gestão de armazém (WHSWorkTable) ou diários de inventário (InventJournalTrans) vinculados à ordem de produção. Captura Captura o carimbo de data/hora de lançamento do diário da lista de separação associado à ordem de produção. Tipo de evento explicit | |||
| Operação Concluída | Esta atividade significa a conclusão de uma operação de manufatura individual ou etapa no roteiro de produção. Uma ordem de produção normalmente terá vários destes eventos. | ||
| Por que é importante Analisar o tempo entre operações ajuda a identificar gargalos no próprio processo produtivo, fornecendo uma visão granular do fluxo no chão de fábrica. Onde obter Este é um evento explícito capturado a partir da postagem de diários de cartões de roteiro (ProdJournalRoute) para cada operação, indicando a conclusão dessa etapa. Captura Captura o carimbo de data/hora de lançamento de cada registro ProdJournalRoute associado à ordem de produção. Tipo de evento explicit | |||
| Ordem de Produção Ajustada | Representa uma alteração significativa feita na ordem de produção após ela ter sido liberada, como uma mudança de quantidade ou modificação de data. Este evento é inferido comparando campos-chave antes e depois de uma alteração. | ||
| Por que é importante Ajustes frequentes indicam instabilidade no planejamento ou demanda volátil, gerando ineficiência e retrabalho. Isso quantifica a taxa e o impacto dessas mudanças. Onde obter Inferido pela análise de logs de alteração ou comparação de estados da ProdTable em campos como 'QtySched' ou 'SchedEnd' após o status 'Released'. Captura Identifica mudanças em campos-chave (ex: quantidade, datas) na ProdTable após o evento de liberação ('Released'). Tipo de evento calculated | |||
| Ordem de Produção Cancelada | Representa o cancelamento de uma ordem de produção antes de ser concluída. Este é um final alternativo e malsucedido para o processo. | ||
| Por que é importante O acompanhamento de cancelamentos ajuda a identificar falhas no processo, como mudanças na demanda ou erros de planejamento. Altas taxas de cancelamento podem indicar problemas sistêmicos. Onde obter Este é um estado final alternativo inferido de uma mudança de status. O status exato pode variar, mas geralmente envolve redefinir o status da ordem para um estado anterior e marcá-la como cancelada. Captura Detecta uma mudança de status que indica cancelamento. Pode exigir análise específica do sistema para identificação. Tipo de evento inferred | |||
| Ordem de Produção Estimada | Representa o cálculo do consumo estimado de materiais e custos para a ordem de produção. Esta é uma etapa de planejamento crítica para garantir que os requisitos financeiros e de materiais sejam compreendidos antes de prosseguir. | ||
| Por que é importante Atrasos na estimativa podem ser um gargalo relevante na fase de planejamento. Rastrear essa atividade ajuda a identificar ineficiências no planejamento de custos e materiais. Onde obter Isso é capturado quando o status da ordem de produção na ProdTable muda para 'Estimado'. Isso é acionado por um usuário executando a função 'Estimativa' na ordem. Captura Detecta o carimbo de data/hora quando o campo ProdStatus na ProdTable muda para 'Estimated'. Tipo de evento inferred | |||
| Ordem de Qualidade Gerada | Uma ordem de qualidade foi criada para inspecionar a saída da ordem de produção. Este evento marca o início do processo de garantia de qualidade dos itens produzidos. | ||
| Por que é importante Monitorar o processo de qualidade é fundamental para entender o lead time total. Atrasos na inspeção de qualidade podem impedir que os produtos sejam enviados ou utilizados em etapas posteriores. Onde obter Este é um evento explícito baseado na criação de um registro na InventQualityOrderTable que faz referência à ordem de produção de origem. Captura Captura o carimbo de data/hora de criação da ordem de qualidade na InventQualityOrderTable vinculada ao ID da ordem de produção. Tipo de evento explicit | |||
Guias de Extração
Etapas
- Acessar o Workspace de Gerenciamento de Dados: Faça login no Dynamics 365 F&O. Use a barra de busca para encontrar o workspace
Data management. - Criar um Novo Projeto de Exportação: No workspace, clique no bloco
Exportpara criar um projeto. Dê um nome descritivo, comoProcessMind_Ordens_Producao. - Selecionar Formato do Arquivo: Escolha o formato desejado (CSV ou Excel). Defina a entidade e os detalhes do formato. Recomendamos o formato CSV por questões de performance e compatibilidade.
- Adicionar Entidades de Dados: Adicione as entidades necessárias para capturar os eventos das ordens de produção:
Production orders,Production order route transactions,Inventory quality orderseProduction picking list journal lines. Selecione todos os campos relevantes conforme orientado na seção de query. - Aplicar Filtros de Dados: Use a opção
Filterem cada entidade para limitar o escopo. Filtre porCompanye, preferencialmente, por um intervalo de data (ex:Creation datena entidadeProduction orders) para capturar apenas os últimos 6 meses. - Configurar Exportação Incremental (Opcional): Para análises contínuas, configure o rastreamento de alterações nas entidades de origem. Isso permite extrair apenas registros novos ou modificados, agilizando o processo.
- Executar a Exportação: Com tudo configurado, clique em
Exportno painel de ações. Você pode executar na hora ou agendar como um trabalho em lote recorrente. - Baixar os Arquivos: Após a conclusão, acesse o histórico do trabalho e baixe o pacote (um arquivo ZIP contendo os dados de cada entidade).
- Transformar Dados em Event Log: Os arquivos baixados contêm dados brutos. Você precisará de uma ferramenta externa (Python, Power Query ou ETL) para consolidar esses dados. Aplique a lógica de transformação para converter os campos de data e status em um Event Log único, com uma linha por atividade.
- Estruturar o Event Log Final: O arquivo CSV final deve conter colunas como
ProductionOrderNumber,ActivityName,EventTime,SourceSystemeLastDataUpdate. O arquivo deve ter cabeçalho e estar pronto para o upload no ProcessMind.
Configuração
- Principais Entidades de Dados: A base desta extração depende da exportação de várias entidades para posterior cruzamento. As principais são
Production orders(ProdTable),Production order route transactions(ProdRouteTrans) eInventory quality orders(InventQualityOrderTable). - Filtro de Período: Para gerenciar o volume de dados, aplique sempre um filtro de data. Uma boa prática é filtrar a entidade
Production orderspelaCreation date(CREATEDDATETIME) dos últimos 3 a 6 meses. Isso garante a captura de processos recentes e completos sem sobrecarregar o sistema. - Filtro de Empresa: É fundamental definir um filtro para a empresa ou entidade legal específica que deseja analisar. Isso é feito pela opção
Filterem cada entidade dentro do projeto de exportação. - Carga Total vs. Incremental: Na primeira extração, é necessária uma carga total (full push). Para atualizações posteriores, recomendamos configurar o rastreamento de alterações (change tracking) nas entidades e realizar exportações incrementais para ganhar performance.
- Pré-requisitos: O usuário que executa a exportação deve ter as funções de segurança adequadas, geralmente incluindo
Data management administratorou permissões de acesso às entidades de dados necessárias.
a Consulta de Exemplo config
/*
This is not a runnable script but a configuration and transformation plan for the Dynamics 365 Data Management Framework.
**Step 1: Configure the Export Project**
Export the following entities with the specified fields:
1. **Entity: Production orders (ProdTable)**
* `ProductionOrderNumber` (PRODID)
* `ProductionOrderStatus` (PRODSTATUS)
* `CreationDate` (CREATEDDATETIME)
* `LastUpdateDateStatusEstimate` (LASTUPDATEDATESTATUSESTIMATE)
* `LastUpdateDateStatusScheduled` (LASTUPDATEDATESTATUSSCHEDULED)
* `ReleaseDate` (RELEASEDATETIME)
* `StartDate` (STARTEDDATETIME)
* `ReportedFinishedDate` (REPORTEDFINISHEDDATETIME)
* `LastUpdateDateStatusEnded` (LASTUPDATEDATESTATUSENDED)
* `ModifiedDateTime` (MODIFIEDDATETIME)
* `CreatedByUser` (CREATEDBY)
* `ProductionSite` (INVENTSITEID)
* `ProductNumber` (ITEMID)
* `ProductionType` (PRODTYPE)
* `Quantity` (QTYsched)
* `ActualQuantity` (QTYCALC)
* `DeliveryDate` (DLVDATE)
2. **Entity: Production order route transactions (ProdRouteTrans)**
* `ProductionOrderNumber` (PRODID)
* `OperationNumber` (OPRNUM)
* `TransactionDate` (TRANSDATE)
* `TransactionTime` (TRANSTIME)
* `CreatedDateTime` (CREATEDDATETIME)
* `CreatedByUser` (CREATEDBY)
3. **Entity: Inventory quality orders (InventQualityOrderTable)**
* `QualityOrderNumber` (INVENTQUALITYORDERID)
* `ReferenceType` (REFTYPE)
* `ReferenceNumber` (PRODID)
* `QualityOrderStatus` (STATUS)
* `CreationDate` (CREATEDDATETIME)
* `ModifiedDateTime` (MODIFIEDDATETIME)
4. **Entity: Production picking list journal lines (ProdJournalBOM)**
* `JournalId` (JOURNALID)
* `ProductionOrderNumber` (PRODID)
* `PostedDateTime` (POSTEDDATETIME)
* `CreatedByUser` (CREATEDBY)
**Step 2: Apply Transformation Logic (Post-Export)**
Use a script or ETL tool to transform the exported files into a single event log CSV. For each row in the source files, generate events as described below.
*/
-- Production Order Created
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Created' AS ActivityName,
CREATEDDATETIME AS EventTime,
PRODSTATUS AS ProductionOrderStatus,
DLVDATE AS PlannedStartDate,
-- [Logic to calculate PlannedEndDate] AS PlannedEndDate,
CREATEDBY AS UserId,
INVENTSITEID AS ProductionPlant,
ITEMID AS ProductNumber,
PRODTYPE AS ProductionType,
QTYCALC AS ActualQuantity,
-- [Your field for Production Priority] AS ProductionPriority
FROM ProdTable
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Estimated
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Estimated' AS ActivityName,
LASTUPDATEDATESTATUSESTIMATE AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSESTIMATE IS NOT NULL
UNION ALL
-- Production Order Scheduled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Scheduled' AS ActivityName,
LASTUPDATEDATESTATUSSCHEDULED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSSCHEDULED IS NOT NULL
UNION ALL
-- Materials Picked For Production (based on the first picking list journal posting)
SELECT
PRODID AS ProductionOrderNumber,
'Materials Picked For Production' AS ActivityName,
MIN(POSTEDDATETIME) AS EventTime, -- Use the earliest posting time for a given order
-- Other attributes from ProdTable...
FROM ProdJournalBOM
WHERE POSTEDDATETIME IS NOT NULL
GROUP BY PRODID
UNION ALL
-- Production Order Released
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Released' AS ActivityName,
RELEASEDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE RELEASEDATETIME IS NOT NULL
UNION ALL
-- Production Order Adjusted (inferred from modification after release)
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Adjusted' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE MODIFIEDDATETIME > RELEASEDATETIME AND PRODSTATUS NOT IN ('Ended', 'Cancelled') -- Example logic
UNION ALL
-- Production Started
SELECT
PRODID AS ProductionOrderNumber,
'Production Started' AS ActivityName,
STARTEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE STARTEDDATETIME IS NOT NULL
UNION ALL
-- Operation Completed
SELECT
PRODID AS ProductionOrderNumber,
'Operation Completed' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM ProdRouteTrans
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Reported As Finished
SELECT
PRODID AS ProductionOrderNumber,
'Production Reported As Finished' AS ActivityName,
REPORTEDFINISHEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE REPORTEDFINISHEDDATETIME IS NOT NULL
UNION ALL
-- Quality Order Generated
SELECT
PRODID AS ProductionOrderNumber,
'Quality Order Generated' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND CREATEDDATETIME IS NOT NULL
UNION ALL
-- Quality Inspection Passed
SELECT
PRODID AS ProductionOrderNumber,
'Quality Inspection Passed' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND STATUS = 'Pass' AND MODIFIEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Ended
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Ended' AS ActivityName,
LASTUPDATEDATESTATUSENDED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSENDED IS NOT NULL
UNION ALL
-- Production Order Cancelled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Cancelled' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE PRODSTATUS = 'Stopped' -- Or the equivalent 'Cancelled' status enum value in your system Etapas
- Configurar BYOD no Dynamics 365: Garanta que o recurso 'Bring your own database' esteja configurado no seu ambiente Dynamics 365 F&O. Isso envolve configurar um Azure SQL Database e a exportação de dados do Dynamics.
- Publicar Entidades Necessárias: No workspace 'Data management', vá em 'Data entities'. Pesquise e publique as seguintes entidades no seu banco BYOD: ProdTable, ProdRouteTrans, InventPickingListJour e InventQualityOrderTable. Ative a exportação recorrente.
- Verificar Sincronização: Confirme se os dados das entidades publicadas estão sincronizando regularmente com o Azure SQL Database. Verifique o histórico de execuções para checar erros.
- Conectar ao Banco BYOD: Use um cliente SQL (como SSMS ou Azure Data Studio) para conectar ao banco onde residem os dados do Dynamics 365.
- Preparar a Query SQL: Abra uma nova janela de consulta e cole a query SQL completa fornecida neste documento.
- Definir Parâmetros da Query: Na query, localize os espaços reservados. Substitua '{StartDate}', '{EndDate}' e '{CompanyCode}' pelo intervalo de datas desejado e pelo DataAreaId da empresa que quer analisar.
- Executar a Query: Execute a query SQL no banco BYOD. O tempo de execução dependerá do volume de dados e do período selecionado.
- Revisar os Resultados: Assim que a query concluir, verifique se a saída contém as colunas e dados esperados para todas as atividades. Este conjunto de resultados é o seu Event Log.
- Exportar o Event Log: Exporte os resultados para um arquivo CSV. A maioria dos clientes SQL possui função nativa para salvar resultados em arquivo.
- Formatar para o ProcessMind: Verifique se o CSV está em codificação UTF-8 e se os cabeçalhos das colunas batem com os atributos exigidos pelo ProcessMind (como CaseId, Activity e Timestamp). A query fornecida já utiliza os aliases corretos.
Configuração
- Principais Entidades de Dados: A consulta depende principalmente da exportação das seguintes entidades para sua instância BYOD:
PRODTABLE: Contém as informações de cabeçalho e status da ordem de produção.PRODROUTETRANS: Detalha as operações de produção individuais e suas conclusões.INVENTPICKINGLISTJOUR: Registra a separação de materiais para as ordens de produção.INVENTQUALITYORDERTABLE: Rastreia as ordens de garantia de qualidade vinculadas à produção.
- Intervalo de Datas: Recomendamos começar com um período limitado, como 3 a 6 meses, para garantir a performance da consulta. O script utiliza a data de criação da ordem de produção (
CREATEDDATETIMEdaPRODTABLE) para o filtro. - Filtro de Código da Empresa: O campo
DATAREAIDé usado para filtrar dados de uma empresa específica. Substitua o marcador'{CompanyCode}'pelo ID correspondente, por exemplo, 'usmf'. - Pré-requisitos: Este método exige acesso de administrador do sistema no Dynamics 365 F&O para configurar o BYOD e permissões de Colaborador no Azure SQL Database para executar as queries.
- Performance: Para volumes de dados muito grandes abrangendo vários anos ou empresas, execute a consulta fora do horário de pico. Você também pode fragmentar a extração em períodos menores e consolidar os resultados depois.
a Consulta de Exemplo sql
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Created' AS ActivityName,
p.CREATEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYCALC AS ActualQuantity, -- Using calculated quantity at creation
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Estimated' AS ActivityName,
p.COSTCALCDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYCALC AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.COSTCALCDATETIME IS NOT NULL AND p.PRODSTATUS >= 2 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Scheduled' AS ActivityName,
p.SCHEDDATE AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYCALC AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.SCHEDDATE IS NOT NULL AND p.PRODSTATUS >= 3 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Materials Picked For Production' AS ActivityName,
pl.LEDGERVOUCHERPOSTEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
pl.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM INVENTPICKINGLISTJOUR pl
JOIN PRODTABLE p ON pl.INVENTREFID = p.PRODID AND pl.DATAREAID = p.DATAREAID
WHERE pl.LEDGERVOUCHERPOSTEDDATETIME IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Released' AS ActivityName,
p.RELEASEDATE AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.RELEASEDATE IS NOT NULL AND p.PRODSTATUS >= 4 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Adjusted' AS ActivityName,
p.MODIFIEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.RELEASEDATE IS NOT NULL AND p.MODIFIEDDATETIME > p.RELEASEDATE AND p.PRODSTATUS IN (4, 5) AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Started' AS ActivityName,
p.STARTEDUPDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.STARTEDUPDATETIME IS NOT NULL AND p.PRODSTATUS >= 5 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
prt.PRODID AS ProductionOrderNumber,
'Operation Completed' AS ActivityName,
prt.TRANSDATE AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
prt.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODROUTETRANS prt
JOIN PRODTABLE p ON prt.PRODID = p.PRODID AND prt.DATAREAID = p.DATAREAID
WHERE prt.POSTINGTYPE = 8 AND prt.TRANSDATE IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Reported As Finished' AS ActivityName,
p.LASTUPDDATEPRINT AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.PRODSTATUS = 6 AND p.LASTUPDDATEPRINT IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Quality Order Generated' AS ActivityName,
qo.CREATEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
qo.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM INVENTQUALITYORDERTABLE qo
JOIN PRODTABLE p ON qo.INVENTREFID = p.PRODID AND qo.DATAREAID = p.DATAREAID
WHERE qo.INVENTREFTYPE = 9 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Quality Inspection Passed' AS ActivityName,
qo.MODIFIEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
qo.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM INVENTQUALITYORDERTABLE qo
JOIN PRODTABLE p ON qo.INVENTREFID = p.PRODID AND qo.DATAREAID = p.DATAREAID
WHERE qo.INVENTREFTYPE = 9 AND qo.STATUS = 2 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Ended' AS ActivityName,
p.LASTUPDDATEPRINT AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.PRODSTATUS = 7 AND p.LASTUPDDATEPRINT IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Cancelled' AS ActivityName,
p.MODIFIEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.PRODSTATUS = 0 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'; Etapas
- Acessar o Workspace de Gerenciamento de Dados: Faça login no Dynamics 365 F&O. Use a barra de busca para encontrar o workspace
Data management. - Criar um Novo Projeto de Exportação: No workspace, clique no bloco
Exportpara criar um projeto. Dê um nome descritivo, comoProcessMind_Ordens_Producao. - Selecionar Formato do Arquivo: Escolha o formato desejado (CSV ou Excel). Defina a entidade e os detalhes do formato. Recomendamos o formato CSV por questões de performance e compatibilidade.
- Adicionar Entidades de Dados: Adicione as entidades necessárias para capturar os eventos das ordens de produção:
Production orders,Production order route transactions,Inventory quality orderseProduction picking list journal lines. Selecione todos os campos relevantes conforme orientado na seção de query. - Aplicar Filtros de Dados: Use a opção
Filterem cada entidade para limitar o escopo. Filtre porCompanye, preferencialmente, por um intervalo de data (ex:Creation datena entidadeProduction orders) para capturar apenas os últimos 6 meses. - Configurar Exportação Incremental (Opcional): Para análises contínuas, configure o rastreamento de alterações nas entidades de origem. Isso permite extrair apenas registros novos ou modificados, agilizando o processo.
- Executar a Exportação: Com tudo configurado, clique em
Exportno painel de ações. Você pode executar na hora ou agendar como um trabalho em lote recorrente. - Baixar os Arquivos: Após a conclusão, acesse o histórico do trabalho e baixe o pacote (um arquivo ZIP contendo os dados de cada entidade).
- Transformar Dados em Event Log: Os arquivos baixados contêm dados brutos. Você precisará de uma ferramenta externa (Python, Power Query ou ETL) para consolidar esses dados. Aplique a lógica de transformação para converter os campos de data e status em um Event Log único, com uma linha por atividade.
- Estruturar o Event Log Final: O arquivo CSV final deve conter colunas como
ProductionOrderNumber,ActivityName,EventTime,SourceSystemeLastDataUpdate. O arquivo deve ter cabeçalho e estar pronto para o upload no ProcessMind.
Configuração
- Principais Entidades de Dados: A base desta extração depende da exportação de várias entidades para posterior cruzamento. As principais são
Production orders(ProdTable),Production order route transactions(ProdRouteTrans) eInventory quality orders(InventQualityOrderTable). - Filtro de Período: Para gerenciar o volume de dados, aplique sempre um filtro de data. Uma boa prática é filtrar a entidade
Production orderspelaCreation date(CREATEDDATETIME) dos últimos 3 a 6 meses. Isso garante a captura de processos recentes e completos sem sobrecarregar o sistema. - Filtro de Empresa: É fundamental definir um filtro para a empresa ou entidade legal específica que deseja analisar. Isso é feito pela opção
Filterem cada entidade dentro do projeto de exportação. - Carga Total vs. Incremental: Na primeira extração, é necessária uma carga total (full push). Para atualizações posteriores, recomendamos configurar o rastreamento de alterações (change tracking) nas entidades e realizar exportações incrementais para ganhar performance.
- Pré-requisitos: O usuário que executa a exportação deve ter as funções de segurança adequadas, geralmente incluindo
Data management administratorou permissões de acesso às entidades de dados necessárias.
a Consulta de Exemplo config
/*
This is not a runnable script but a configuration and transformation plan for the Dynamics 365 Data Management Framework.
**Step 1: Configure the Export Project**
Export the following entities with the specified fields:
1. **Entity: Production orders (ProdTable)**
* `ProductionOrderNumber` (PRODID)
* `ProductionOrderStatus` (PRODSTATUS)
* `CreationDate` (CREATEDDATETIME)
* `LastUpdateDateStatusEstimate` (LASTUPDATEDATESTATUSESTIMATE)
* `LastUpdateDateStatusScheduled` (LASTUPDATEDATESTATUSSCHEDULED)
* `ReleaseDate` (RELEASEDATETIME)
* `StartDate` (STARTEDDATETIME)
* `ReportedFinishedDate` (REPORTEDFINISHEDDATETIME)
* `LastUpdateDateStatusEnded` (LASTUPDATEDATESTATUSENDED)
* `ModifiedDateTime` (MODIFIEDDATETIME)
* `CreatedByUser` (CREATEDBY)
* `ProductionSite` (INVENTSITEID)
* `ProductNumber` (ITEMID)
* `ProductionType` (PRODTYPE)
* `Quantity` (QTYsched)
* `ActualQuantity` (QTYCALC)
* `DeliveryDate` (DLVDATE)
2. **Entity: Production order route transactions (ProdRouteTrans)**
* `ProductionOrderNumber` (PRODID)
* `OperationNumber` (OPRNUM)
* `TransactionDate` (TRANSDATE)
* `TransactionTime` (TRANSTIME)
* `CreatedDateTime` (CREATEDDATETIME)
* `CreatedByUser` (CREATEDBY)
3. **Entity: Inventory quality orders (InventQualityOrderTable)**
* `QualityOrderNumber` (INVENTQUALITYORDERID)
* `ReferenceType` (REFTYPE)
* `ReferenceNumber` (PRODID)
* `QualityOrderStatus` (STATUS)
* `CreationDate` (CREATEDDATETIME)
* `ModifiedDateTime` (MODIFIEDDATETIME)
4. **Entity: Production picking list journal lines (ProdJournalBOM)**
* `JournalId` (JOURNALID)
* `ProductionOrderNumber` (PRODID)
* `PostedDateTime` (POSTEDDATETIME)
* `CreatedByUser` (CREATEDBY)
**Step 2: Apply Transformation Logic (Post-Export)**
Use a script or ETL tool to transform the exported files into a single event log CSV. For each row in the source files, generate events as described below.
*/
-- Production Order Created
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Created' AS ActivityName,
CREATEDDATETIME AS EventTime,
PRODSTATUS AS ProductionOrderStatus,
DLVDATE AS PlannedStartDate,
-- [Logic to calculate PlannedEndDate] AS PlannedEndDate,
CREATEDBY AS UserId,
INVENTSITEID AS ProductionPlant,
ITEMID AS ProductNumber,
PRODTYPE AS ProductionType,
QTYCALC AS ActualQuantity,
-- [Your field for Production Priority] AS ProductionPriority
FROM ProdTable
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Estimated
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Estimated' AS ActivityName,
LASTUPDATEDATESTATUSESTIMATE AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSESTIMATE IS NOT NULL
UNION ALL
-- Production Order Scheduled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Scheduled' AS ActivityName,
LASTUPDATEDATESTATUSSCHEDULED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSSCHEDULED IS NOT NULL
UNION ALL
-- Materials Picked For Production (based on the first picking list journal posting)
SELECT
PRODID AS ProductionOrderNumber,
'Materials Picked For Production' AS ActivityName,
MIN(POSTEDDATETIME) AS EventTime, -- Use the earliest posting time for a given order
-- Other attributes from ProdTable...
FROM ProdJournalBOM
WHERE POSTEDDATETIME IS NOT NULL
GROUP BY PRODID
UNION ALL
-- Production Order Released
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Released' AS ActivityName,
RELEASEDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE RELEASEDATETIME IS NOT NULL
UNION ALL
-- Production Order Adjusted (inferred from modification after release)
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Adjusted' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE MODIFIEDDATETIME > RELEASEDATETIME AND PRODSTATUS NOT IN ('Ended', 'Cancelled') -- Example logic
UNION ALL
-- Production Started
SELECT
PRODID AS ProductionOrderNumber,
'Production Started' AS ActivityName,
STARTEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE STARTEDDATETIME IS NOT NULL
UNION ALL
-- Operation Completed
SELECT
PRODID AS ProductionOrderNumber,
'Operation Completed' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM ProdRouteTrans
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Reported As Finished
SELECT
PRODID AS ProductionOrderNumber,
'Production Reported As Finished' AS ActivityName,
REPORTEDFINISHEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE REPORTEDFINISHEDDATETIME IS NOT NULL
UNION ALL
-- Quality Order Generated
SELECT
PRODID AS ProductionOrderNumber,
'Quality Order Generated' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND CREATEDDATETIME IS NOT NULL
UNION ALL
-- Quality Inspection Passed
SELECT
PRODID AS ProductionOrderNumber,
'Quality Inspection Passed' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND STATUS = 'Pass' AND MODIFIEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Ended
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Ended' AS ActivityName,
LASTUPDATEDATESTATUSENDED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSENDED IS NOT NULL
UNION ALL
-- Production Order Cancelled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Cancelled' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE PRODSTATUS = 'Stopped' -- Or the equivalent 'Cancelled' status enum value in your system