Seu Template de dados de planejamento da produção
Seu Template de dados de planejamento da produção
- Atributos recomendados para coleta
- Atividades importantes para acompanhar
- Orientações de extração para o Microsoft Dynamics 365 Manufacturing
Atributos do planejamento da produção
| Nome | Descrição | ||
|---|---|---|---|
| Ordem de produção ProductionOrderNumber | Identificador exclusivo da ordem de produção, usado como ID principal do caso para acompanhar todas as atividades relacionadas ao planejamento e à execução. | ||
| Descrição O número da ordem de produção, geralmente chamado de ProdId no Microsoft Dynamics 365, é o identificador central que conecta todos os eventos, materiais, recursos e custos associados a uma tarefa de fabricação específica. Ele permite analisar de ponta a ponta o ciclo de vida do planejamento e da execução da produção para uma única unidade de trabalho. Na mineração de processos, este atributo é essencial para agrupar eventos relacionados em um único caso. Analisar os processos pelo número da ordem de produção ajuda a identificar gargalos, atrasos e desvios no fluxo padrão de produção, desde a criação e a programação até a conclusão e o cálculo de custos. Por que isso importa Este é o identificador fundamental do caso, essencial para agrupar todos os eventos relacionados e reconstruir o processo de planejamento da produção de ponta a ponta para análise. Onde encontrar Este é o campo 'ProdId' da tabela 'ProdTable' no Microsoft Dynamics 365 Manufacturing. Exemplos WO-000456WO-000457WO-000458 | |||
| Hora do evento EventTime | Data e hora exatas em que a atividade ocorreu. | ||
| Descrição A hora do evento, ou data e hora do registro, indica o momento exato em que uma atividade ocorreu. Esses dados são fundamentais para análises de mineração de processos baseadas em tempo, como calcular tempos de ciclo, identificar atrasos entre etapas e entender a performance do processo ao longo do tempo. No planejamento da produção, este atributo é usado para medir prazos como o tempo de planejamento, os atrasos no início da produção e o tempo total de atendimento da ordem. Datas e horas precisas e em ordem cronológica são essenciais para criar um modelo de processo correto e útil. Por que isso importa A data e hora do evento são essenciais para ordenar os eventos, calcular a duração entre atividades e fazer análises baseadas em tempo, como o tempo de ciclo e a identificação de gargalos. Onde encontrar Este dado aparece em várias tabelas de transações, como 'createdDateTime' na 'ProdTable' ou nos campos de data de transação em 'ProdRouteTrans', 'ProdJournalRoute' e 'ProdJournalBOM'. Exemplos 2023-04-15T09:00:12Z2023-04-15T11:30:00Z2023-04-16T14:22:05Z | |||
| Nome da atividade ActivityName | Nome do evento de negócio ou da etapa específica que ocorreu no processo de planejamento da produção. | ||
| Descrição O nome da atividade descreve uma etapa do ciclo de vida do planejamento da produção, como 'Ordem de produção criada', 'Materiais separados para a produção' ou 'Produção iniciada'. Essas atividades formam o mapa do processo. Analisar a sequência e a duração dessas atividades permite visualizar o fluxo do processo, identificar caminhos comuns e ciclos de retrabalho, além de medir o tempo gasto em cada etapa. Este atributo é essencial para entender o que acontece em cada ponto do processo. Por que isso importa Este atributo define as etapas do processo e permite criar um mapa de processo e analisar o fluxo, as variações e os gargalos. Onde encontrar Em geral, este valor é obtido dos Event Logs ou do mapeamento de diferentes mudanças de status e tipos de transação em tabelas como 'ProdRouteTrans' e 'ProdJournalBOM', além das alterações nos campos de status da 'ProdTable'. Exemplos Ordem de produção criadaOrdem de produção liberadaProdução iniciadaProdução informada como concluída | |||
| Sistema de origem SourceSystem | Sistema oficial de registro de onde os dados foram extraídos. | ||
| Descrição Este atributo identifica o sistema de informação de origem dos dados dos eventos. Nesta visão do processo, o valor será sempre 'Microsoft Dynamics 365 Manufacturing'. Em ambientes com vários sistemas integrados, este campo é essencial para rastrear a origem dos dados, solucionar problemas de qualidade e entender como cada sistema contribui para o processo como um todo. Assim, fica claro de onde vêm os dados analisados. Por que isso importa Este atributo fornece contexto essencial sobre a origem dos dados, importante para a governança e a validação dos dados e para o gerenciamento de pipelines de dados de vários sistemas corporativos. Onde encontrar Este é um valor estático, que deve ser adicionado durante a extração e a transformação dos dados para identificar a origem do conjunto de dados. Exemplos Microsoft Dynamics 365 ManufacturingD365 F&O | |||
| Última atualização dos dados LastDataUpdate | Data e hora da última atualização ou extração dos dados deste evento no sistema de origem. | ||
| Descrição Este atributo informa a data e a hora da extração mais recente dos dados do sistema de origem. É um campo de metadados essencial para entender se os dados analisados estão atualizados. Saber quando os dados foram atualizados pela última vez ajuda analistas e usuários de negócio a confiar nos insights da ferramenta de mineração de processos. Também esclarece se os Dashboards mostram informações em tempo real ou dados de um momento anterior, o que é importante para tomar decisões operacionais. Por que isso importa Este atributo é essencial para a governança dos dados, pois ajuda os usuários a entender se os dados estão atualizados e a confiar na atualidade dos insights sobre o processo. Onde encontrar Esta data e hora são geradas e registradas em cada linha durante o processo de extração, transformação e carregamento (ETL) dos dados. Exemplos 2023-05-20T05:00:00Z2023-05-21T05:00:00Z | |||
| Data de início planejada PlannedStartDate | A data e a hora previstas para o início da ordem de produção. | ||
| Descrição A data de início planejada é um dos principais resultados do processo de programação e indica quando a produção de uma ordem deve começar. Essa data é definida com base na disponibilidade de materiais, na capacidade dos recursos e nos prazos da demanda. Esse atributo é essencial para analisar o cumprimento da programação. Ao comparar a data de início planejada com o horário real de início da produção (registrado na atividade 'Production Started'), a organização pode medir a pontualidade, identificar as causas dos atrasos e calcular KPIs, como a taxa de cumprimento da programação da produção. Por que isso importa Serve como referência para medir o cumprimento da programação e identificar atrasos entre o planejamento e o início efetivo da produção. Onde encontrar Corresponde ao campo 'SchedStart' da 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 a hora previstas para a conclusão da ordem de produção. | ||
| Descrição A data de término planejada é o prazo previsto pelo mecanismo de programação para concluir uma ordem de produção. O cálculo considera os tempos das operações, os calendários dos recursos e os prazos de produção para estimar quando os produtos acabados estarão prontos. Na análise de processos, esse atributo é fundamental para avaliar o desempenho das entregas no prazo. Comparar a data de término planejada com o horário real de conclusão (registrado na atividade 'Production Reported As Finished' ou 'Production Order Ended') permite calcular o KPI de taxa de conclusão da produção no prazo e identificar causas sistêmicas de atrasos nas entregas. Por que isso importa Esse atributo serve de referência para medir as taxas de conclusão no prazo e analisar a precisão da programação da produção. Onde encontrar Corresponde ao campo 'SchedEnd' da tabela 'ProdTable'. Exemplos 2023-04-25T17:00:00Z2023-04-26T17:00:00Z2023-04-27T17:00:00Z | |||
| Número do produto ProductNumber | Identificador exclusivo do item que está sendo fabricado. | ||
| Descrição O número do produto, também chamado de ID do item, identifica o produto acabado que a ordem de produção deve fabricar. Ele vincula o processo de produção ao produto específico, à lista de materiais e às instruções de roteiro correspondentes. Analisar o processo por número do produto ajuda a revelar diferenças específicas de cada produto ao longo do ciclo de fabricação. A análise pode mostrar que certos produtos têm tempos de ciclo mais longos, exigem mais retrabalho ou sofrem atrasos com maior frequência, fornecendo informações úteis para engenheiros de produto e de processos. Por que isso importa Permite analisar as variações do processo conforme o produto fabricado e ajuda a identificar gargalos ou problemas de qualidade específicos de cada produto. Onde encontrar Corresponde ao campo 'ItemId' da tabela 'ProdTable'. Exemplos FG-1001FG-2050ASSY-500B | |||
| Prioridade da produção ProductionPriority | Classificação que indica a urgência ou a prioridade da ordem de produção. | ||
| Descrição A prioridade da produção é um campo usado por planejadores e programadores para organizar a sequência de trabalho no chão de fábrica. Ordens com prioridade mais alta podem ser aceleradas, o que pode afetar a programação planejada de outras ordens. Analisar esse atributo ajuda a entender com que frequência os planos de produção são alterados por ordens prioritárias ou aceleradas. Acompanhar as mudanças de prioridade ao longo do ciclo de vida de uma ordem pode revelar instabilidade na demanda ou no planejamento. Esse atributo é essencial para o Dashboard 'Expedited Production Trends' e o KPI 'Expedited Production Rate'. Por que isso importa Ajuda a identificar a frequência e o impacto das ordens aceleradas, que podem indicar instabilidade no planejamento ou uma gestão operacional reativa. Onde encontrar Pode ser um campo padrão ou personalizado na tabela 'ProdTable'. A configuração costuma variar de uma empresa para outra. Exemplos NormalAltaUrgente | |||
| Quantidade real ActualQuantity | Quantidade de produtos fabricados com sucesso e registrados como concluídos para a ordem. | ||
| Descrição A quantidade real representa o número de unidades concluídas e aprovadas nas verificações de qualidade para uma determinada ordem de produção. Esse valor é registrado quando a produção é 'Reported as finished'. Esse atributo é usado para analisar o rendimento e a eficiência da produção. Comparar a quantidade real com a quantidade planejada ajuda a calcular as taxas de refugo e entender as perdas de produção. Também é um componente importante da análise de throughput e dos Dashboards de utilização da capacidade. Por que isso importa É essencial para calcular o rendimento da produção, as taxas de refugo e o throughput real, fornecendo insights sobre a eficiência e o desempenho da fabricação. Onde encontrar Esse valor costuma vir do campo 'QtyGood' da tabela 'ProdTable' ou de tabelas relacionadas de lançamento de diário, quando uma ordem é registrada como concluída. Exemplos 100985000 | |||
| Status da ordem de produção ProductionOrderStatus | Indica o status atual da ordem de produção em seu ciclo de vida. | ||
| Descrição O status da ordem de produção mostra o avanço da ordem ao longo do ciclo de fabricação. Entre os status comuns no Dynamics 365 estão Created, Estimated, Scheduled, Released, Started, Reported as finished e Ended. Este atributo mostra em que etapa cada ordem está em determinado momento. Na mineração de processos, analisar as mudanças de status é uma das principais formas de definir atividades e entender o fluxo do processo. Esse atributo pode ser usado para filtrar ordens em um estado específico, analisar o tempo em cada status e identificar ordens paradas ou atrasadas. Por que isso importa Este atributo oferece uma visão geral do andamento da ordem e é essencial para filtrar dados, verificar a conformidade e analisar o tempo gasto em cada etapa da produção. Onde encontrar Este é o campo 'ProdStatus' da tabela 'ProdTable'. Exemplos ProgramadaLiberadaIniciadaEncerrada | |||
| Tipo de produção ProductionType | Classificação da ordem de produção, como padrão, retrabalho ou projeto. | ||
| Descrição O tipo de produção classifica a ordem de acordo com sua finalidade. Por exemplo, uma ordem 'Standard' é usada para a produção regular de estoque, uma ordem 'Rework' serve para corrigir defeitos em um item já produzido e uma ordem 'Project' está vinculada a um projeto específico de cliente. Esse atributo é importante para criar análises comparáveis. O processo de uma ordem de retrabalho é naturalmente diferente do processo de uma ordem padrão. Segmentar a análise por tipo de produção torna as comparações mais relevantes e ajuda a entender os desafios e fluxos específicos de cada tipo. Por que isso importa Esse atributo permite segmentar a análise, já que tipos de ordem como 'Standard' e 'Rework' seguem processos diferentes e têm expectativas de desempenho distintas. Onde encontrar Corresponde ao campo 'ProdType' da tabela 'ProdTable'. Exemplos PadrãoRetrabalhoProjeto | |||
| Unidade de produção ProductionPlant | A unidade ou fábrica onde a ordem de produção está sendo executada. | ||
| Descrição A unidade de produção identifica o local físico ou a instalação responsável pelo processo de fabricação. É uma dimensão organizacional importante para segmentar e comparar o desempenho da produção. Em Process Mining, esse atributo permite comparar o desempenho entre diferentes unidades. Analistas podem comparar tempos de ciclo, utilização dos recursos e cumprimento dos processos padrão entre locais para identificar boas práticas ou unidades que precisam de melhorias operacionais. Esse atributo é essencial para analisar a utilização da capacidade. Por que isso importa Permite comparar e avaliar o desempenho de diferentes unidades de produção, ajudando a identificar boas práticas e problemas específicos de cada local. Onde encontrar Corresponde ao campo 'InventSiteId' da tabela 'ProdTable'. Exemplos SITE-ASITE-BMain-WH | |||
| Usuário UserId | Identificador do usuário que executou a atividade ou é responsável por ela. | ||
| Descrição O ID do usuário identifica o funcionário ou a conta do sistema que executou uma etapa específica do processo, como liberar uma ordem ou registrar sua conclusão. Essa informação mostra quem está realizando o trabalho no processo. Analisar o processo por usuário ajuda a entender a distribuição da carga de trabalho, identificar oportunidades de treinamento, comparar o desempenho entre pessoas ou equipes e investigar desvios associados a usuários específicos. Também é importante para a conformidade e a trilha de auditoria. Por que isso importa Permite analisar o desempenho do processo por usuário ou equipe, ajuda a identificar oportunidades de automação e fornece uma trilha de auditoria das principais atividades do processo. Onde encontrar Pode ser encontrado em campos como 'modifiedBy' ou 'createdBy' em várias tabelas, ou em campos de usuário de tabelas de registro de transações, como 'ProdJournalTable'. Exemplos j.smithm.jonesAX_BATCH_SVC | |||
| Atraso no início da produção ProductionStartDelay | Tempo decorrido entre a liberação da ordem e o início efetivo da produção. | ||
| Descrição Essa duração calculada mede o tempo de espera ou o tempo na fila no chão de fábrica. É a diferença entre as atividades 'Production Order Released' e 'Production Started'. Esse KPI é essencial para o Dashboard 'Resource Allocation Delay Analysis', pois identifica atrasos que ocorrem depois que o planejamento termina e a ordem está pronta para execução. Valores altos podem indicar problemas de disponibilidade de recursos, preparação de materiais ou fluxo de informações para o chão de fábrica, apontando oportunidades claras de melhoria operacional. Por que isso importa Mede com precisão o atraso entre a liberação e o início da produção, ajudando a localizar gargalos relacionados à disponibilidade de recursos ou à preparação do chão de fábrica. Onde encontrar Essa métrica é calculada assim: Timestamp('Production Started') - Timestamp('Production Order Released'). Exemplos 0d 4h 15m1d 2h 0m0d 1h 30m | |||
| Disponibilidade de materiais MaterialAvailabilityStatus | Indica se os materiais necessários para a ordem de produção estão disponíveis. | ||
| Descrição Esse atributo acompanha a disponibilidade dos componentes necessários para a produção. Ele pode indicar situações como 'Available', 'On Order' ou 'Shortage'. Essa informação é fundamental para que os programadores avaliem se a ordem de produção pode realmente começar conforme o planejado. Em Process Mining, esse atributo é essencial para investigar as causas raiz dos atrasos no início da produção. Ao relacionar esse status ao tempo entre 'Production Order Released' e 'Production Started', analistas podem quantificar o impacto da falta de materiais no cumprimento da programação e no tempo de ciclo geral. Isso dá suporte direto ao Dashboard 'Material Availability Delay Impact'. Por que isso importa É fundamental para entender e quantificar os atrasos no início da produção causados pela falta de materiais, relacionando o desempenho da cadeia de suprimentos à eficiência da fabricação. Onde encontrar Esse status geralmente não corresponde a um único campo. Ele é calculado verificando os níveis de estoque disponível de todos os itens da lista de materiais (BOM) da ordem de produção na tabela 'InventSum'. Exemplos Totalmente disponívelFalta parcialIndisponível | |||
| Horário de término EndTime | Horário exato em que a atividade foi concluída. | ||
| Descrição O horário de término marca a conclusão de uma atividade específica. Enquanto a Hora de início indica quando ela começou, o horário de término permite entender a duração real ou o tempo de processamento dessa etapa. Em Process Mining, ter o horário de início e o horário de término das atividades permite analisar com mais detalhes o tempo de espera e o tempo de processamento. Assim, é possível distinguir o período em que a atividade estava sendo executada do tempo de espera até o início da próxima etapa, o que é fundamental para uma análise detalhada de gargalos. Por que isso importa Permite calcular o tempo de processamento da atividade e diferenciá-lo do tempo de espera, tornando a análise de gargalos mais precisa. Onde encontrar Esse horário costuma ser derivado. Por exemplo, o horário de término de 'Production Started' pode ser o horário de início de 'Operation Completed'. Em alguns registros, o horário de término é informado explicitamente. Exemplos 2023-04-15T09:30:45Z2023-04-15T12:00:00Z2023-04-16T15:00:10Z | |||
| Início no prazo ProductionScheduleAdherence | Indicador booleano que é verdadeiro quando a ordem de produção começa na data de início planejada ou antes dela. | ||
| Descrição Esse atributo calculado oferece um indicador simples e binário do cumprimento da programação no início da produção. Ele compara o horário real de início (evento 'Production Started') com o atributo 'PlannedStartDate'. Esse indicador é muito útil para criar Dashboards e KPIs claros e objetivos, como o KPI 'Production Schedule Adherence Rate'. Ele facilita a filtragem e a agregação para mostrar qual porcentagem das ordens começa no prazo e analisar as características das ordens atrasadas, sem precisar comparar datas diretamente na ferramenta de análise. Por que isso importa Simplifica a geração de relatórios e o cálculo do KPI de cumprimento da programação, facilitando a filtragem e a agregação de ordens iniciadas no prazo ou com atraso. Onde encontrar Essa métrica é calculada com a seguinte lógica: EventTime do evento 'Production Started' <= PlannedStartDate. Exemplos truefalse | |||
| Linha de produção ProductionLine | 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ífico que executará as operações de fabricação. Ela oferece um nível de detalhe maior do que a unidade de produção. Analisar o processo por linha de produção é fundamental para avaliar a capacidade e a utilização dos recursos em detalhe. Isso ajuda a identificar centros de trabalho sobrecarregados, comparar a eficiência de diferentes linhas que fabricam o mesmo produto e localizar gargalos específicos de recursos que talvez não apareçam no nível da unidade. Por que isso importa Permite analisar em detalhe a utilização e o desempenho dos recursos, ajudando a identificar centros de trabalho sobrecarregados ou linhas ineficientes. Onde encontrar Essa informação costuma estar no campo 'WrkCtrId' das transações de roteiro de produção (tabelas 'ProdRoute' ou 'ProdRouteTrans'). Exemplos LINE-01LINE-02CNC-A | |||
| Número da ordem de qualidade QualityOrderNumber | Identificador de uma ordem de controle de qualidade vinculada à ordem de produção. | ||
| Descrição Quando é necessária uma inspeção de qualidade, o Dynamics 365 costuma gerar uma ordem de qualidade. Esse atributo vincula o processo de produção ao processo de garantia da qualidade e registra o ID da ordem de qualidade associada. Esse vínculo permite ter uma visão mais completa do processo de ponta a ponta, incluindo as etapas de gestão da qualidade. Ele ajuda a analisar como as inspeções afetam os prazos de produção, identificar atrasos no processo de qualidade e entender a frequência das verificações para diferentes produtos ou linhas de produção. Por que isso importa Vincula o processo de produção ao processo de garantia da qualidade, permitindo analisar o impacto das inspeções nos prazos gerais. Onde encontrar Essa informação fica armazenada em tabelas de gestão da qualidade, como 'InventQualityOrderTable', e precisa ser vinculada à ordem de produção. Exemplos QO-00123QO-00124QO-00125 | |||
| Número de revisões ProductionOrderRevisionNumber | Número de vezes que um plano de produção foi ajustado após sua criação inicial. | ||
| Descrição Esse atributo acompanha o número de revisões ou mudanças significativas feitas em uma ordem de produção, como alterações na quantidade, nas datas ou no roteiro, depois que ela foi programada ou liberada. Um número maior indica mais instabilidade no plano. Esse atributo mede diretamente o KPI 'Production Plan Revision Rate'. A análise ajuda a identificar as causas da instabilidade no planejamento, como mudanças frequentes na demanda ou imprecisões no planejamento inicial. Também quantifica o retrabalho e o esforço de reprogramação, que muitas vezes geram ineficiências. Por que isso importa Mede diretamente a estabilidade do planejamento e dá suporte ao KPI 'Production Plan Revision Rate', destacando processos com mudanças e retrabalho excessivos. Onde encontrar Esse atributo é derivado e exige contar as ocorrências das atividades 'Production Order Adjusted' em cada caso. Exemplos 012 | |||
| Quantidade planejada PlannedQuantity | Quantidade do item planejada para produção. | ||
| Descrição A quantidade planejada é o número de unidades que devem ser fabricadas para uma determinada ordem de produção. Em geral, essa quantidade é definida pela demanda de pedidos de venda, pelos requisitos de estoque de segurança ou pelo planejamento mestre. Esse atributo serve de referência para métricas de desempenho, como rendimento e refugo. Ao comparar a quantidade planejada com a quantidade real produzida, os planejadores podem acompanhar a eficiência da produção e as variações no consumo de materiais. É um dado fundamental para o planejamento de capacidade e de necessidades de materiais. Por que isso importa É a quantidade de referência usada para medir o rendimento da produção e as taxas de refugo, comparando-a com a quantidade realmente produzida. Onde encontrar Corresponde ao campo 'QtySched' da tabela 'ProdTable'. Exemplos 1005000250 | |||
Atividades do planejamento da produção
| Atividade | Descrição | ||
|---|---|---|---|
| Ordem de produção criada | Esta atividade registra a criação de uma ordem de produção, que formaliza a demanda por uma quantidade específica de um produto. Em geral, ela é registrada quando uma ordem de produção planejada é confirmada e gera um registro oficial com um ID exclusivo no sistema. | ||
| Por que isso importa Este é o principal evento de início do processo de produção. Analisar o tempo entre a criação da ordem e as etapas seguintes ajuda a medir o prazo e a eficiência do planejamento como um todo. Onde encontrar Este evento é inferido a partir da data e hora de criação do registro da ordem de produção na ProdTable. O status inicial costuma ser 'Created'. Coleta Registre a data e hora de criação de uma nova entrada na ProdTable quando o ProdStatus for 'Created'. Tipo de evento inferred | |||
| Ordem de produção encerrada | Esta é a atividade final, que representa o fechamento financeiro da ordem de produção. Todos os custos foram calculados e lançados, e não é possível fazer novas transações para essa ordem. | ||
| Por que isso importa Marca a conclusão efetiva da ordem, tanto do ponto de vista físico quanto financeiro. Atrasos entre 'Reported as Finished' e 'Ended' podem indicar problemas na apuração de custos ou no fechamento financeiro. Onde encontrar Esta é a mudança final de status registrada quando o campo 'ProdStatus' da 'ProdTable' recebe o valor 'Ended'. Isso ocorre quando o cálculo de custos é executado e a ordem é encerrada. Coleta Identifique a data e hora em que o campo ProdStatus da ProdTable muda para 'Ended'. Tipo de evento inferred | |||
| Ordem de produção liberada | Esta atividade indica que a ordem de produção foi aprovada e autorizada para execução no chão de fábrica. É um marco importante que libera documentos como cartões de trabalho e cartões de roteiro. | ||
| Por que isso importa Esta é a transferência oficial do planejamento para a execução. O tempo entre 'Scheduled' e 'Released' pode indicar atrasos na aprovação ou nas verificações finais. Já o intervalo entre 'Released' e 'Started' mede o tempo até o chão de fábrica estar pronto para começar. Onde encontrar Este evento é registrado quando o status da ordem de produção na ProdTable muda para 'Released'. A mudança pode ser feita manualmente por um usuário ou de forma automatizada. Coleta Identifique a data e hora em que o campo ProdStatus da ProdTable muda para 'Released'. Tipo de evento inferred | |||
| Ordem de produção programada | Esta atividade registra a programação da ordem de produção, que define os recursos, as datas e os horários das operações. A etapa pode envolver a programação das operações ou um sequenciamento mais detalhado das tarefas. | ||
| Por que isso importa A programação é essencial para planejar a capacidade e gerenciar recursos. Analisar o tempo necessário para programar as ordens e o intervalo até a liberação revela limitações de planejamento e capacidade. Onde encontrar O evento é registrado quando o status da ordem de produção na ProdTable muda para 'Scheduled'. A mudança ocorre quando um usuário executa uma função de programação. Coleta Identifique a data e hora em que o campo ProdStatus da ProdTable muda para 'Scheduled'. Tipo de evento inferred | |||
| Produção informada como concluída | Indica que a fabricação da quantidade especificada do produto foi concluída fisicamente e que os produtos acabados agora estão no estoque. Esta atualização crítica de status gera transações de estoque. | ||
| Por que isso importa Marca o fim da produção física. É essencial para calcular o percentual de conclusões no prazo, a duração real da produção e o volume produzido. Onde encontrar Este evento é registrado quando o status da ordem de produção na ProdTable muda para 'Reported as finished'. A mudança ocorre quando o diário Report as Finished é lançado. Coleta Identifique a data e hora em que o campo ProdStatus da ProdTable muda para 'Reported as finished'. Tipo de evento inferred | |||
| Produção iniciada | Marca o início do trabalho físico de produção da ordem no chão de fábrica. Em geral, o registro é feito quando a primeira operação ou tarefa é iniciada em um terminal do chão de fábrica ou pelo lançamento de um diário. | ||
| Por que isso importa Esta atividade registra a hora real de início da produção, essencial para calcular atrasos no início, aderência ao cronograma e prazos reais. Onde encontrar Este evento é registrado quando o status da ordem de produção na ProdTable muda para 'Started'. Em geral, isso ocorre quando o diário do cartão de trabalho ou do cartão de roteiro da primeira operação é lançado. Coleta Identifique a data e hora em que o campo ProdStatus da ProdTable muda para 'Started'. Tipo de evento inferred | |||
| Inspeção de qualidade aprovada | Representa a conclusão e a validação bem-sucedidas de uma ordem de qualidade associada à produção. Isso confirma que os itens fabricados atendem aos padrões de qualidade exigidos. | ||
| Por que isso importa Este é um marco importante no processo de qualidade. O tempo entre a geração da ordem de qualidade e a aprovação na inspeção mostra a eficiência da equipe de garantia da qualidade. Onde encontrar Este evento é inferido quando o status do registro na InventQualityOrderTable muda para 'Pass'. O valor específico do status pode variar. Coleta Identifique a data e hora em que o status do registro associado na InventQualityOrderTable é atualizado para 'Pass'. Tipo de evento inferred | |||
| Materiais separados para a produção | Indica que as matérias-primas necessárias para a ordem de produção foram separadas no estoque e estão prontas para consumo. O evento é registrado quando o trabalho de separação de matérias-primas é concluído ou quando o diário da lista de separação é lançado. | ||
| Por que isso importa Esta atividade é uma etapa essencial para iniciar a produção. Atrasos entre a programação e a separação dos materiais podem indicar problemas nas operações do estoque ou na disponibilidade de materiais. Onde encontrar Em geral, este evento é registrado explicitamente nas tabelas de gerenciamento de estoque (WHSWorkTable) ou nos diários de estoque (InventJournalTrans) associados à ordem de produção. Coleta Registre a data e 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 registra a conclusão de uma operação de fabricação ou etapa individual do roteiro de produção. Em geral, uma ordem de produção tem vários eventos desse tipo. | ||
| Por que isso importa Analisar o tempo entre as operações ajuda a identificar gargalos no próprio processo de produção e oferece uma visão mais detalhada do fluxo no chão de fábrica. Onde encontrar Este evento é registrado explicitamente quando os diários dos cartões de roteiro (ProdJournalRoute) são lançados para cada operação, indicando a conclusão da etapa. Coleta Registre a data e hora de lançamento de cada registro ProdJournalRoute associado à ordem de produção. Tipo de evento explicit | |||
| Ordem de produção ajustada | Representa uma mudança significativa na ordem de produção após sua liberação, como uma alteração de quantidade ou data. Este evento é inferido pela comparação de campos importantes antes e depois da mudança. | ||
| Por que isso importa Ajustes frequentes indicam instabilidade no planejamento ou variações na demanda, que podem gerar ineficiências e retrabalho. Acompanhar esses ajustes ajuda a quantificar sua frequência e seu impacto. Onde encontrar Este evento é inferido pela análise dos logs de alterações ou pela comparação de instantâneos do registro da ProdTable, em campos como 'QtySched' ou 'SchedEnd', depois que o status da ordem passa para 'Released'. Coleta Identifique alterações em campos importantes da ProdTable, como quantidade e datas, após a data e hora do evento 'Released'. Tipo de evento calculated | |||
| Ordem de produção cancelada | Representa o cancelamento de uma ordem de produção antes de sua conclusão. É um desfecho alternativo e malsucedido do processo. | ||
| Por que isso importa Acompanhar os cancelamentos ajuda a identificar motivos para falhas no processo, como mudanças na demanda ou erros de planejamento. Uma taxa alta de cancelamentos pode indicar problemas sistêmicos. Onde encontrar Este é um estado final alternativo, inferido a partir de uma mudança de status. O status exato pode variar, mas geralmente envolve retornar a ordem a um estado anterior e marcá-la como cancelada. Coleta Identifique uma mudança de status que indique o cancelamento. Pode ser necessário analisar o sistema para determinar qual mudança corresponde a esse evento. Tipo de evento inferred | |||
| Ordem de produção estimada | Representa o cálculo estimado do consumo de materiais e dos custos da ordem de produção. Esta etapa crítica do planejamento permite entender os requisitos financeiros e de materiais antes de prosseguir. | ||
| Por que isso importa Atrasos na estimativa podem se tornar um gargalo importante na etapa de planejamento. Acompanhar esta atividade ajuda a identificar ineficiências no planejamento de custos e materiais. Onde encontrar Este evento é registrado quando o status da ordem de produção na ProdTable muda para 'Estimated'. A mudança ocorre quando um usuário executa a função 'Estimate' na ordem. Coleta Identifique a data e hora em que o campo ProdStatus da ProdTable muda para 'Estimated'. Tipo de evento inferred | |||
| Ordem de qualidade gerada | Uma ordem de qualidade foi criada para inspecionar o resultado da ordem de produção. Este evento marca o início do processo de garantia da qualidade dos produtos fabricados. | ||
| Por que isso importa Acompanhar o processo de qualidade é importante para entender o prazo total. Atrasos na inspeção podem impedir o envio dos produtos ou seu uso em etapas posteriores. Onde encontrar Este evento é registrado explicitamente quando um registro é criado na InventQualityOrderTable com referência à ordem de produção de origem. Coleta Registre a data e hora de criação da ordem de qualidade na InventQualityOrderTable associada ao ID da ordem de produção. Tipo de evento explicit | |||
Guias de extração
Etapas
- Acesse o espaço de trabalho de gerenciamento de dados: Entre no Microsoft Dynamics 365 Finance and Operations. Use a barra de pesquisa para localizar e acessar o espaço de trabalho
Data management. - Crie um novo projeto de exportação: No espaço de trabalho, selecione o bloco
Exportpara criar um projeto de exportação de dados. Dê ao projeto um nome descritivo, comoProcessMind_Production_Orders. - Selecione o formato do arquivo de exportação: Na configuração do projeto, escolha o formato de dados desejado, como CSV ou Excel. Defina a opção
Entitye especifique os detalhes do formato. Recomendamos CSV por desempenho e compatibilidade. - Adicione as entidades de dados necessárias: Inclua no projeto as entidades necessárias para capturar todos os eventos das ordens de produção. Adicione cada uma destas entidades:
ordens de produção,Production order route transactions,Inventory quality orderseProduction picking list journal lines. Para cada entidade, selecione todos os campos relevantes indicados na seção de consulta. - Aplique filtros aos dados: Para cada entidade, use a opção
Filtrarpara definir o escopo da exportação. No mínimo, filtre porCompanypara selecionar a entidade legal correta. Recomendamos também aplicar um filtro de período a um campo de data importante, comoCreation datena entidadeordens de produção, para limitar o volume de dados a um intervalo administrável, por exemplo, os últimos 6 meses. - Configure exportações incrementais (opcional): Para análises contínuas, configure o projeto para fazer exportações incrementais. Você pode acompanhar as alterações nas entidades de origem e extrair somente os registros novos ou modificados desde a última exportação, reduzindo significativamente o tempo de exportação.
- Execute a exportação: Depois de configurar o projeto, inicie a exportação clicando em
Exportno painel de ações. Você pode executá-la imediatamente ou agendá-la como um trabalho em lote recorrente. - Baixe os arquivos exportados: Quando o trabalho de exportação for concluído com sucesso, acesse o histórico de trabalhos. Baixe o pacote ZIP, que contém arquivos de dados separados para cada entidade incluída.
- Transforme os dados em um Event Log: Os arquivos exportados contêm dados brutos das tabelas, não um Event Log formatado. Use uma ferramenta externa, como um script Python, o Power Query no Excel ou Power BI, ou uma ferramenta de ETL, para processar e combinar os dados desses arquivos. Aplique a lógica de transformação descrita na seção de consulta para reorganizar os campos de data e status das várias entidades em um único arquivo de Event Log, com uma linha por atividade.
- Estruture o Event Log final: Verifique se o arquivo CSV transformado contém as colunas necessárias:
ProductionOrderNumber,ActivityName,EventTime,SourceSystemeLastDataUpdate, além dos atributos recomendados. O arquivo deve ter uma linha de cabeçalho e estar pronto para ser carregado no ProcessMind.
Configuração
- Principais entidades de dados: Esta extração depende da exportação de várias entidades, que serão combinadas posteriormente. As principais são
ordens de produção(ProdTable),Production order route transactions(ProdRouteTrans) eInventory quality orders(InventQualityOrderTable). - Filtro de período: Para controlar o volume de dados, aplique sempre um filtro de data. Uma boa prática é filtrar a entidade
ordens de produçãoporCreation date(CREATEDDATETIME), considerando os últimos 3 a 6 meses. Assim, você captura processos recentes e completos sem sobrecarregar o sistema. - Filtro de empresa: É essencial definir um filtro para a empresa ou entidade legal que você deseja analisar. Para isso, use a opção
Filtrarem cada entidade do projeto de exportação. - Carga completa ou incremental: A extração inicial exige uma carga completa. Para as atualizações seguintes, recomendamos configurar o acompanhamento de alterações nas entidades e fazer exportações incrementais para melhorar o desempenho e reduzir a carga de dados.
- Pré-requisitos: A pessoa que executar a exportação precisa ter as funções de segurança adequadas, normalmente
Data management administratorou outra função com permissão para acessar as entidades de dados necessárias.
Consulta de exemplo sql
/*
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
- Configure o BYOD no Dynamics 365: Verifique se o recurso 'Bring your own database' está configurado no seu ambiente do Dynamics 365 Finance and Operations. Isso envolve configurar um banco de dados Azure SQL e definir a exportação de dados do Dynamics 365.
- Publique as entidades necessárias: No espaço de trabalho 'Data management', acesse 'Data entities'. Pesquise e publique no banco de dados BYOD as seguintes entidades principais: ProdTable, ProdRouteTrans, InventPickingListJour e InventQualityOrderTable. Configure-as para exportação recorrente.
- Verifique a sincronização dos dados: Confirme se os dados das entidades publicadas estão sendo sincronizados corretamente e com regularidade com o banco de dados Azure SQL de destino. Consulte o histórico de trabalhos de exportação para verificar se há erros.
- Conecte-se ao banco de dados BYOD: Use um cliente SQL, como o SQL Server Management Studio (SSMS) ou o Azure Data Studio, para se conectar ao banco de dados Azure SQL que contém os dados do Dynamics 365.
- Prepare a consulta SQL: Abra uma nova janela de consulta e copie a consulta SQL completa fornecida neste documento.
- Defina os parâmetros da consulta: Localize as variáveis de espaço reservado na consulta. Substitua '{StartDate}', '{EndDate}' e '{CompanyCode}' pelo período desejado e pelo DataAreaId da empresa que você quer analisar.
- Execute a consulta: Execute a consulta SQL modificada no banco de dados BYOD. O tempo de execução varia conforme o volume de dados e o período especificado.
- Revise os resultados: Quando a consulta terminar, confira se a saída contém as colunas e os dados esperados para todas as atividades extraídas. O conjunto de resultados é o Event Log.
- Exporte o Event Log: Exporte os resultados da consulta para um arquivo CSV. A maioria dos clientes SQL tem uma função integrada para salvar os resultados diretamente em um arquivo.
- Formate os dados para o ProcessMind: Verifique se o arquivo CSV exportado usa codificação UTF-8 e se os cabeçalhos das colunas correspondem aos nomes de atributos exigidos pelo ProcessMind, como CaseId, Activity e Timestamp. A consulta fornecida já usa 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 principais informações do cabeçalho e o status das ordens de produção.PRODROUTETRANS: Fornece detalhes sobre operações individuais de produção e sua conclusão.INVENTPICKINGLISTJOUR: Registra a separação de materiais para as ordens de produção.INVENTQUALITYORDERTABLE: Acompanha as ordens de controle de qualidade vinculadas à produção.
- Período: Recomendamos começar com um período limitado, por exemplo, de 3 a 6 meses de dados, para manter o desempenho da consulta em níveis administráveis. A consulta usa a data de criação da ordem de produção (
CREATEDDATETIMEemPRODTABLE) como filtro. - Filtro de código da empresa: O campo
DATAREAIDé usado para filtrar os dados de uma empresa ou entidade legal específica. Substitua o espaço reservado'{CompanyCode}'pelo ID correspondente, por exemplo, 'usmf'. - Pré-requisitos: Este método exige acesso de administrador do sistema ao Dynamics 365 Finance and Operations para configurar o BYOD e permissões de Contributor no banco de dados Azure SQL para executar consultas.
- Desempenho: Se os dados abrangerem vários anos ou empresas e forem muito volumosos, considere executar a consulta fora dos horários de pico. Você também pode dividir a extração em períodos menores e combinar os resultados depois.
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
- Confirme se o Power BI Desktop ou outra ferramenta aprovada com Power Query está disponível e se a pessoa usuária tem autorização para ler as entidades de dados necessárias do Microsoft Dynamics 365 Manufacturing. Confirme a URL do ambiente, o escopo da entidade legal ou empresa e o método de autenticação aprovado.
- No Power BI Desktop, selecione Obter dados e escolha o conector aprovado do Dynamics 365 ou a conexão OData ou Dataverse específica da organização. Use [Your Dynamics 365 environment connection] e [Your credentials] conforme a configuração do administrador. Não presuma que uma entidade, um endpoint ou um caminho de menu específico esteja disponível em todas as implantações.
- Selecione a entidade de cabeçalho da ordem de produção, a entidade de operações ou roteiro da ordem, a entidade de separação de materiais ou lista de separação, as entidades de lançamentos da produção, a entidade de ordens de qualidade e quaisquer entidades aprovadas de auditoria, histórico ou acompanhamento de alterações necessárias para identificar mudanças de status. Substitua cada referência à fonte na consulta pela entidade ou consulta correspondente disponível no seu ambiente.
- Defina o escopo da extração. Aplique [Start date parameter], [End date parameter] e [Your company or legal entity filter]. Restrinja a consulta às ordens de produção das fábricas, dos produtos, dos tipos de ordem e dos status necessários. Mantenha os registros de data e hora de origem necessários para distinguir criação, estimativa, programação, separação, liberação, ajuste, início, conclusão da operação, registro como concluída, qualidade, encerramento e cancelamento.
- No Power Query, padronize os nomes das colunas de origem e os tipos de dados. Converta os registros de data e hora dos eventos para um tipo datetime consistente e normalize identificadores, valores de status, empresa, fábrica, números de produto, usuários, quantidades e prioridades. Se um campo de origem não estiver disponível, retorne um valor nulo em vez de inventar um valor. Use o número da ordem de produção como identificador do caso.
- Crie uma tabela de eventos para cada atividade. Cada tabela deve retornar ProductionOrderNumber, ActivityName, EventTime, SourceSystem, LastDataUpdate, ProductionOrderStatus, PlannedStartDate, PlannedEndDate, UserId, ProductionPlant, ProductNumber, ProductionType, ActualQuantity e ProductionPriority. O nome da atividade deve ser um valor fixo correspondente a um dos 13 nomes obrigatórios.
- Identifique Production Order Adjusted somente com base em uma fonte aprovada de histórico antes e depois, auditoria ou acompanhamento de alterações. Compare campos relevantes, como quantidade, datas planejadas, status, fábrica, produto e prioridade. Gere uma linha de ajuste para cada alteração que atenda aos critérios, usando o registro de data e hora da alteração. Não deduza um ajuste apenas com base no estado atual da ordem de produção.
- Combine as 13 tabelas de atividades com UNION ALL. Remova as linhas sem número de ordem de produção ou sem registro de data e hora do evento, mas não elimine eventos legítimos repetidos de conclusão de operação, ajustes ou qualidade. Ordene por ProductionOrderNumber e EventTime, com uma ordenação secundária determinística quando disponível.
- Carregue a tabela resultante no Power BI ou exporte-a como CSV ou em outro formato de Event Log compatível com o ProcessMind. Verifique se os cabeçalhos exportados são exatamente ProductionOrderNumber, ActivityName, EventTime, SourceSystem, LastDataUpdate, ProductionOrderStatus, PlannedStartDate, PlannedEndDate, UserId, ProductionPlant, ProductNumber, ProductionType, ActualQuantity e ProductionPriority.
- Antes de carregar os dados no ProcessMind, valide se cada atividade obrigatória está representada como uma linha explícita no Event Log, se os registros de data e hora usam um fuso horário consistente, se ProductionOrderNumber está preenchido e se LastDataUpdate identifica a atualização da extração. O ProcessMind lê o Event Log como está e não deduz eventos ausentes.
Configuração
- Conexão: Use o conector e o método de autenticação do Power Query aprovados para o ambiente Dynamics 365. Substitua [Your Dynamics 365 environment connection] e [Your credentials] pelos valores aprovados pela organização.
- Entidades de origem: Selecione as entidades de cabeçalho da ordem de produção, operações ou roteiro, separação de materiais ou lista de separação, lançamentos da produção, ordens de qualidade e auditoria ou acompanhamento de alterações aprovados que estejam disponíveis no ambiente. Os nomes e a disponibilidade das entidades variam conforme a implantação e devem ser confirmados no navegador de metadados.
- Período: Comece com um período de 3 a 6 meses. Sempre que possível, aplique filtros de EventTime na origem e amplie o período ao validar ordens de produção de longa duração ou transições históricas de status.
- Filtros de empresa e fábrica: Aplique [Your company or legal entity filter] e, quando aplicável, o filtro da fábrica de produção necessária. Não use um filtro genérico de empresa se o ambiente tiver várias entidades legais com números de ordem sobrepostos.
- Filtros de ordem de produção: Filtre pelos tipos de ordem de produção, produtos, fábricas, status e intervalos de números de ordem necessários. Evite excluir ordens canceladas ou encerradas quando esses resultados forem importantes para a análise do processo.
- Inclusão de eventos: Preserve os eventos repetidos de conclusão de operação, separação de materiais, qualidade e ajuste. Não reduza o Event Log a uma linha por ordem de produção.
- Fuso horário: Converta todos os registros de data e hora de origem para um único fuso horário documentado. Preserve o registro de data e hora ou o deslocamento de fuso horário de origem, quando fornecido.
- Metadados de atualização: Preencha LastDataUpdate com o registro de data e hora da atualização ou extração em cada linha. Se todo o conjunto de dados for extraído em uma única atualização, você pode usar um único registro de data e hora.
- Desempenho: Aplique os filtros de data, empresa, fábrica e ordem na origem. Selecione somente as colunas necessárias, evite junções desnecessárias, prepare consultas de origem reutilizáveis e considere a atualização incremental para conjuntos de dados grandes.
- Pré-requisitos: Power BI Desktop ou um host aprovado do Power Query, acesso à rede do ambiente Dynamics 365, permissões válidas de leitura para todas as entidades selecionadas e qualquer acesso necessário ao Dynamics 365 Manufacturing, ao armazém, à qualidade, à auditoria ou ao acompanhamento de alterações.
- Dados dependentes da configuração: Se uma fonte de evento necessária não estiver habilitada, use [Configure based on your system] e documente a fonte ausente. Não substitua eventos históricos por um retrato do status atual.
Consulta de exemplo sql
let
StartDate = #datetime(2026, 1, 1, 0, 0, 0),
EndDate = #datetime(2026, 6, 30, 23, 59, 59),
CompanyFilter = "[Your company or legal entity filter]",
SourceSystemValue = "Microsoft Dynamics 365 Manufacturing",
RefreshTime = DateTimeZone.RemoveZone(DateTimeZone.UtcNow()),
ProductionOrderHeader = [Your production order header query],
ProductionOrderOperation = [Your production order operation or route query],
MaterialPicking = [Your material picking or picking list query],
ProductionPosting = [Your production posting query],
QualityOrder = [Your quality order query],
ProductionOrderHistory = [Your approved production order audit or change tracking query],
Header = Table.SelectRows(ProductionOrderHeader, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Operations = Table.SelectRows(ProductionOrderOperation, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Picking = Table.SelectRows(MaterialPicking, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Posting = Table.SelectRows(ProductionPosting, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Quality = Table.SelectRows(QualityOrder, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
History = Table.SelectRows(ProductionOrderHistory, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Created = Table.SelectRows(Header, each [EventType] = "Created" or [EventType] = "Firmed"),
Estimated = Table.SelectRows(Header, each [EventType] = "Estimated"),
Scheduled = Table.SelectRows(Operations, each [EventType] = "Scheduled"),
Picked = Table.SelectRows(Picking, each [EventType] = "Picked" or [EventType] = "Posted"),
Released = Table.SelectRows(Header, each [EventType] = "Released"),
Adjusted = Table.SelectRows(History, each [ChangedField] = "Quantity" or [ChangedField] = "PlannedStartDate" or [ChangedField] = "PlannedEndDate" or [ChangedField] = "Status" or [ChangedField] = "ProductionPlant" or [ChangedField] = "ProductNumber" or [ChangedField] = "ProductionPriority"),
Started = Table.SelectRows(Posting, each [EventType] = "Started"),
OperationCompleted = Table.SelectRows(Operations, each [EventType] = "Completed"),
ReportedFinished = Table.SelectRows(Posting, each [EventType] = "Reported as finished" or [EventType] = "Finished"),
QualityGenerated = Table.SelectRows(Quality, each [EventType] = "Generated" or [EventType] = "Created"),
QualityPassed = Table.SelectRows(Quality, each [EventType] = "Passed" or [EventType] = "Validated"),
Ended = Table.SelectRows(Header, each [EventType] = "Ended"),
Cancelled = Table.SelectRows(Header, each [EventType] = "Cancelled"),
ToEvent = (InputTable as table, Activity as text) as table =>
let
Selected = Table.SelectColumns(InputTable, {"ProductionOrderNumber", "EventTime", "ProductionOrderStatus", "PlannedStartDate", "PlannedEndDate", "UserId", "ProductionPlant", "ProductNumber", "ProductionType", "ActualQuantity", "ProductionPriority"}, MissingField.UseNull),
Named = Table.AddColumn(Selected, "ActivityName", each Activity, type text),
Source = Table.AddColumn(Named, "SourceSystem", each SourceSystemValue, type text),
Updated = Table.AddColumn(Source, "LastDataUpdate", each RefreshTime, type datetime),
Ordered = Table.ReorderColumns(Updated, {"ProductionOrderNumber", "ActivityName", "EventTime", "SourceSystem", "LastDataUpdate", "ProductionOrderStatus", "PlannedStartDate", "PlannedEndDate", "UserId", "ProductionPlant", "ProductNumber", "ProductionType", "ActualQuantity", "ProductionPriority"}),
Valid = Table.SelectRows(Ordered, each [ProductionOrderNumber] <> null and [ProductionOrderNumber] <> "" and [EventTime] <> null)
in
Valid,
EventsCreated = ToEvent(Created, "Production Order Created"),
EventsEstimated = ToEvent(Estimated, "Production Order Estimated"),
EventsScheduled = ToEvent(Scheduled, "Production Order Scheduled"),
EventsPicked = ToEvent(Picked, "Materials Picked For Production"),
EventsReleased = ToEvent(Released, "Production Order Released"),
EventsAdjusted = ToEvent(Adjusted, "Production Order Adjusted"),
EventsStarted = ToEvent(Started, "Production Started"),
EventsOperationCompleted = ToEvent(OperationCompleted, "Operation Completed"),
EventsReportedFinished = ToEvent(ReportedFinished, "Production Reported As Finished"),
EventsQualityGenerated = ToEvent(QualityGenerated, "Quality Order Generated"),
EventsQualityPassed = ToEvent(QualityPassed, "Quality Inspection Passed"),
EventsEnded = ToEvent(Ended, "Production Order Ended"),
EventsCancelled = ToEvent(Cancelled, "Production Order Cancelled"),
EventLog = Table.Combine({EventsCreated, EventsEstimated, EventsScheduled, EventsPicked, EventsReleased, EventsAdjusted, EventsStarted, EventsOperationCompleted, EventsReportedFinished, EventsQualityGenerated, EventsQualityPassed, EventsEnded, EventsCancelled}),
Typed = Table.TransformColumnTypes(EventLog, {{"ProductionOrderNumber", type text}, {"ActivityName", type text}, {"EventTime", type datetime}, {"SourceSystem", type text}, {"LastDataUpdate", type datetime}, {"ProductionOrderStatus", type text}, {"PlannedStartDate", type datetime}, {"PlannedEndDate", type datetime}, {"UserId", type text}, {"ProductionPlant", type text}, {"ProductNumber", type text}, {"ProductionType", type text}, {"ActualQuantity", type number}, {"ProductionPriority", type text}}),
Sorted = Table.Sort(Typed, {{"ProductionOrderNumber", Order.Ascending}, {"EventTime", Order.Ascending}, {"ActivityName", Order.Ascending}})
in
Sorted Pronto para começar?
Com este Template completo, você tem tudo o que precisa para começar a extrair e analisar os dados de planejamento da produção. Comece hoje a otimizar suas operações para alcançar a máxima eficiência.
Alcance a máxima eficiência: otimize hoje o planejamento da produção
Identifique gargalos e reduza o tempo de ciclo da produção em 30% ou mais.
Não é necessário cartão de crédito. Configuração em poucos minutos.