Seu Template de dados de planejamento de produção
Seu Template de dados de planejamento de produção
- Atributos recomendados para coleta
- Principais atividades a 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 | O identificador exclusivo de uma ordem de produção, usado como o principal ID 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 um trabalho de fabricação específico. Ele permite uma análise completa, de ponta a ponta, do ciclo de vida do planejamento e da execução da produção para uma única unidade de trabalho. No Process Mining, esse 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 iniciais até a conclusão e o custeio. 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 obter Este é o campo 'ProdId' na tabela 'ProdTable' do Microsoft Dynamics 365 Manufacturing. Exemplos WO-000456WO-000457WO-000458 | |||
| Horário do Evento EventTime | O registro de data e hora preciso que indica quando a atividade ocorreu. | ||
| Descrição O Horário do Evento, ou registro de data e hora, registra a data e o horário exatos em que uma atividade específica ocorreu. Esses dados são fundamentais para todas as análises de Process Mining baseadas em tempo, incluindo o cálculo de tempos de ciclo, a identificação de atrasos entre etapas e a compreensão da performance do processo ao longo do tempo. No contexto do Planejamento da Produção, esse atributo é usado para medir durações como o lead time do planejamento, os atrasos no início da produção e o tempo total de atendimento da ordem. Registros de data e hora precisos e cronológicos são essenciais para criar um modelo de processo correto e significativo. Por que isso importa Esse registro de data e hora é essencial para ordenar eventos, calcular durações entre atividades e realizar qualquer análise baseada em tempo, como o tempo de ciclo e a identificação de gargalos. Onde obter Encontrado em várias tabelas de transações, como 'createdDateTime' na 'ProdTable' ou nos campos de data das transações em 'ProdRouteTrans', 'ProdJournalRoute' e 'ProdJournalBOM'. Exemplos 2023-04-15T09:00:12Z2023-04-15T11:30:00Z2023-04-16T14:22:05Z | |||
| Nome da Atividade ActivityName | O nome do evento ou da etapa de negócio específica que ocorreu no processo de Planejamento da Produção. | ||
| Descrição O Nome da Atividade descreve uma única etapa do ciclo de vida do Planejamento da Produção, como 'Production Order Created', 'Materials Picked For Production' ou 'Production Started'. Essas atividades são os blocos de construção do mapa de processo. Analisar a sequência e a duração dessas atividades permite visualizar o fluxo do processo, identificar caminhos comuns, detectar loops de retrabalho e medir o tempo gasto em diferentes etapas. Esse atributo é fundamental para entender o que acontece em cada ponto do processo. Por que isso importa Este atributo define as etapas do processo, permitindo construir um mapa de processo e analisar o fluxo, as variações e os gargalos do processo. Onde obter Esse valor normalmente é obtido de Event Logs ou pelo mapeamento de diferentes alterações de status e tipos de transação em tabelas como 'ProdRouteTrans', 'ProdJournalBOM' e 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 do qual os dados foram extraídos. | ||
| Descrição Este atributo identifica o sistema de informação de origem no qual os dados do evento foram gerados. Para esta visão do processo, o valor seria sempre 'Microsoft Dynamics 365 Manufacturing'. Em ambientes com vários sistemas integrados, esse campo é fundamental para a linhagem dos dados, a investigação de problemas de qualidade e a compreensão de como diferentes sistemas contribuem para o processo geral. Ele garante clareza sobre a origem dos dados analisados. Por que isso importa Ele fornece um 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 provenientes de vários sistemas corporativos. Onde obter Este é um valor estático que deve ser adicionado durante o processo de extração e 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 | O registro de data e hora que indica quando os dados deste evento foram atualizados ou extraídos pela última vez do sistema de origem. | ||
| Descrição Este atributo fornece a data e o horário da extração mais recente de dados do sistema de origem. É um campo de metadados fundamental para entender o nível de atualização e a atualidade da análise. Saber quando os dados foram atualizados pela última vez ajuda analistas e usuários de negócio a confiar nos insights obtidos com a ferramenta de Process Mining. Isso esclarece se os Dashboards refletem informações em tempo real ou dados de um momento anterior, algo importante para a tomada de decisões operacionais. Por que isso importa Este atributo é essencial para a governança de dados, garantindo que os usuários entendam o nível de atualização dos dados e possam confiar na atualidade dos insights do processo. Onde obter Esse registro de data e hora é gerado e gravado em cada registro 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 o horário em que a ordem de produção está programada para começar. | ||
| Descrição A Data de Início Planejada é um resultado importante do processo de programação, representando o horário-alvo para o início das atividades de produção de uma ordem. Essa data é determinada com base na disponibilidade de materiais, na capacidade dos recursos e nos prazos da demanda. Esse atributo é essencial para analisar a aderência ao cronograma. Ao comparar a Data de Início Planejada com o horário real de início da produção, obtido no registro de data e hora da atividade 'Production Started', as organizações podem medir a pontualidade, identificar as causas dos atrasos e calcular KPIs como a Taxa de Aderência ao Cronograma de Produção. Por que isso importa Ele serve como referência para medir a aderência ao cronograma e identificar atrasos entre o planejamento 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 o horário em que a ordem de produção está programada para ser concluída. | ||
| Descrição A Data de Término Planejada é o horário-alvo de conclusão de uma ordem de produção, conforme determinado pelo mecanismo de programação. Ela considera os tempos das operações, os calendários dos recursos e os lead times para prever quando os produtos acabados estarão prontos. Na análise de processos, esse atributo é fundamental para avaliar a performance da conclusão no prazo. Comparar a Data de Término Planejada com o registro de data e hora real da conclusão, obtido 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 ajuda a identificar causas sistêmicas de entregas atrasadas. Por que isso importa Este atributo é a referência para medir as taxas de conclusão no prazo e analisar a precisão da programação 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 exclusivo do 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 deve criar. Ele conecta o processo de produção ao produto específico que está sendo fabricado, junto com sua lista de materiais e suas instruções de rota. Analisar o processo por Número do Produto ajuda a revelar variações específicas do produto no ciclo de vida da fabricação. Isso pode mostrar que determinados produtos têm tempos de ciclo mais longos, exigem mais retrabalho ou sofrem atrasos com maior frequência, fornecendo informações valiosas para engenheiros de produto e de processos. Por que isso importa Ele permite analisar as variações do processo com base no produto fabricado, ajudando a identificar gargalos ou problemas de qualidade específicos do produto. Onde obter Este é o campo 'ItemId' na tabela 'ProdTable'. Exemplos FG-1001FG-2050ASSY-500B | |||
| Prioridade da produção ProductionPriority | Uma classificação que indica a urgência ou a prioridade do pedido de produção. | ||
| Descrição Production Priority é um campo usado por planejadores e programadores para gerenciar a sequência de trabalho no chão de fábrica. Pedidos com prioridade mais alta podem ser acelerados, potencialmente interrompendo o cronograma planejado de outros pedidos. Analisar esse atributo ajuda a entender com que frequência os planos de produção são interrompidos por pedidos de alta prioridade ou acelerados. Acompanhar as mudanças de prioridade ao longo do ciclo de vida de um pedido pode revelar instabilidade na demanda ou no planejamento. Esse dado é essencial para o Dashboard “Expedited Production Trends” e o KPI “Expedited Production Rate”. Por que isso importa Isso ajuda a identificar a frequência e o impacto dos pedidos acelerados, que podem indicar instabilidade no planejamento ou uma gestão operacional reativa. Onde obter Esse pode ser um campo padrão ou personalizado da “ProdTable”. A configuração costuma variar de acordo com a empresa. Exemplos NormalAltaUrgente | |||
| Quantidade real ActualQuantity | A quantidade de produtos fabricados com sucesso e registrados como concluídos para o pedido. | ||
| Descrição A Actual Quantity representa o número de unidades concluídas e aprovadas nas verificações de qualidade para um determinado pedido 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 Actual Quantity com a Planned Quantity ajuda a calcular as taxas de sucata e entender as perdas de produção. Ele 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 sucata e o throughput real, gerando insight sobre a eficiência e a performance da fabricação. Onde obter Esse valor geralmente vem do campo “QtyGood” da “ProdTable” ou de tabelas relacionadas de lançamento de diários quando um pedido é registrado como concluído. 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 ao longo do ciclo de vida da fabricação. Os status comuns no Dynamics 365 incluem Created, Estimated, Scheduled, Released, Started, Reported as finished e Ended. Esse atributo fornece uma visão do estágio em que cada ordem se encontra em determinado momento. No Process Mining, analisar as alterações 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 gasto em cada status e identificar ordens paradas ou atrasadas. Por que isso importa Este atributo fornece uma visão geral do progresso da ordem e é fundamental para filtrar, verificar a conformidade e analisar o tempo gasto em diferentes fases da produção. Onde obter Este é o campo 'ProdStatus' na tabela 'ProdTable'. Exemplos AgendadaLiberadaIniciadaEncerrada | |||
| Tipo de Produção ProductionType | A classificação da ordem de produção, como padrão, retrabalho ou baseada em projeto. | ||
| Descrição Production Type categoriza o pedido com base na finalidade. Por exemplo, um pedido “Standard” é destinado à produção regular para estoque, um pedido “Rework” serve para corrigir defeitos em um item produzido anteriormente e um pedido “Project” está vinculado a um projeto específico de cliente. Esse atributo é importante para criar visões de análise comparáveis. O processo de um pedido de retrabalho é naturalmente diferente do processo de um pedido padrão. Segmentar a análise do processo por Production Type garante comparações 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 diferentes tipos de pedido, como “Standard” e “Rework”, normalmente seguem processos distintos e têm expectativas de performance diferentes. Onde obter Esse é o campo “ProdType” da tabela “ProdTable”. Exemplos PadrãoRetrabalhoProjeto | |||
| Unidade de Produção ProductionPlant | A unidade ou planta de fabricação 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 a performance da produção. No Process Mining, esse atributo permite comparar a performance entre diferentes unidades. Os analistas podem comparar tempos de ciclo, utilização de recursos e aderência aos processos padrão entre as unidades para identificar boas práticas ou localizar instalações que possam precisar de melhorias operacionais. Ele é essencial para a análise da utilização da capacidade. Por que isso importa Isso permite comparar e avaliar a performance entre diferentes unidades de fabricação, ajudando a identificar boas práticas e problemas específicos de cada área. Onde obter Este é o campo 'InventSiteId' na tabela 'ProdTable'. Exemplos SITE-ASITE-BMain-WH | |||
| Usuário UserId | O identificador do usuário que executou ou é responsável pela atividade. | ||
| Descrição O ID do Usuário identifica o funcionário ou a conta do sistema que executou uma determinada etapa do processo, como liberar uma ordem ou reportar uma conclusão. Essas informações mostram 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 a performance entre pessoas ou equipes e investigar desvios realizados por usuários específicos. Também é importante para a conformidade e a trilha de auditoria. Por que isso importa Ele permite analisar a performance do processo por usuário ou equipe, ajuda a identificar oportunidades de automação e fornece uma trilha de auditoria para as principais atividades do processo. Onde obter Encontrado em campos como 'modifiedBy' ou 'createdBy' em várias tabelas, ou em campos de usuário de tabelas de logs de transações, como 'ProdJournalTable'. Exemplos j.smithm.jonesAX_BATCH_SVC | |||
| Atraso no início da produção ProductionStartDelay | O tempo decorrido entre a liberação do pedido e o início real da produção. | ||
| Descrição Essa duração calculada mede o tempo de espera ou o tempo em fila no chão de fábrica. Ela corresponde à 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 foi concluído e o pedido está pronto 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, oferecendo um alvo claro para melhorias operacionais. Por que isso importa Ela mede com precisão o atraso entre estar pronto e começar, ajudando a localizar gargalos relacionados à disponibilidade de recursos ou à preparação do chão de fábrica. Onde obter Essa é uma métrica calculada: Timestamp(“Production Started”) - Timestamp(“Production Order Released”). Exemplos 0d 4h 15min1d 2h 0min0d 1h 30min | |||
| Disponibilidade de material MaterialAvailabilityStatus | Indica se as matérias-primas necessárias para o pedido de produção estão disponíveis. | ||
| Descrição Esse atributo acompanha a disponibilidade dos componentes necessários para a produção. Ele pode refletir status como “Available”, “On Order” ou “Shortage”. Essa informação é essencial para que os programadores entendam se um pedido de produção pode realmente começar conforme o planejado. No Process Mining, esse atributo é fundamental para diagnosticar as causas-raiz dos atrasos no início da produção. Ao relacionar esse status ao tempo entre “Production Order Released” e “Production Started”, os analistas podem quantificar o impacto da falta de materiais no cumprimento do cronograma e no tempo total do ciclo. Isso dá suporte direto ao Dashboard “Material Availability Delay Impact”. Por que isso importa Esse dado é essencial para entender e quantificar os atrasos no início da produção causados pela falta de materiais, conectando a performance da cadeia de suprimentos à eficiência da fabricação. Onde obter Esse status geralmente não está em um único campo. Ele é derivado da verificação dos níveis de estoque disponível de todos os itens da Bill of Materials (BOM) do pedido de produção por meio da tabela “InventSum”. Exemplos Totalmente disponívelFalta parcialIndisponível | |||
| Hora de término EndTime | O registro de data e hora preciso que indica quando a atividade foi concluída. | ||
| Descrição A End Time marca a conclusão de uma atividade específica. Enquanto a Start Time indica o início, a End Time é necessária para entender a duração real ou o tempo de processamento dessa etapa. No Process Mining, ter Start Time e End Time para as atividades permite uma análise mais detalhada do tempo de espera em comparação com o tempo de processamento. Isso ajuda a diferenciar o período em que uma atividade estava sendo executada do período gasto aguardando o início da próxima etapa, algo essencial para uma análise detalhada de gargalos. Por que isso importa Ela permite calcular o tempo de processamento da atividade e diferenciá-lo do tempo de espera, possibilitando uma análise mais precisa de gargalos. Onde obter Esse valor geralmente é derivado. Por exemplo, a hora de término de “Production Started” pode ser a hora de início de “Operation Completed”. Em alguns registros, o timestamp de término é armazenado explicitamente. Exemplos 2023-04-15T09:30:45Z2023-04-15T12:00:00Z2023-04-16T15:00:10Z | |||
| Início no prazo ProductionScheduleAdherence | Um indicador booleano que é verdadeiro quando o pedido de produção começa na data planejada ou antes dela. | ||
| Descrição Esse atributo calculado fornece um indicador binário simples do cumprimento do cronograma no início da produção. Ele compara o timestamp real de início, o evento “Production Started”, com o atributo “PlannedStartDate”. Esse indicador é extremamente útil para criar Dashboards e KPIs claros e objetivos, como o “Production Schedule Adherence Rate”. Ele permite filtrar e agregar facilmente os dados para ver qual percentual dos pedidos começa no prazo e analisar as características dos pedidos atrasados, sem precisar fazer comparações de datas diretamente na ferramenta de análise. Por que isso importa Isso simplifica os relatórios e o cálculo de KPIs de cumprimento do cronograma, permitindo filtrar e agregar facilmente os pedidos iniciados no prazo e os atrasados. Onde obter Essa é uma métrica calculada. A lógica é: Evento “Production Started” EventTime <= PlannedStartDate. Exemplos truefalse | |||
| Linha de produção ProductionLine | A linha de produção, o centro de trabalho ou o grupo de recursos específico atribuído ao pedido de produção. | ||
| Descrição A Production Line 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 mais granular do que a Production Plant. Analisar o processo por Production Line é essencial para uma análise detalhada de capacidade e utilização. 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 podem não ser visíveis no nível da planta. Por que isso importa Isso permite uma análise granular da utilização e da performance dos recursos, ajudando a identificar centros de trabalho sobrecarregados ou linhas ineficientes. Onde obter Essa informação geralmente está no campo “WrkCtrId” das transações de roteiro de produção, nas tabelas “ProdRoute” ou “ProdRouteTrans”. Exemplos LINE-01LINE-02CNC-A | |||
| Número da revisão ProductionOrderRevisionNumber | A quantidade 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 um pedido de produção, como alterações na quantidade, nas datas ou no roteiro, depois que ele foi programado ou liberado. Um número maior indica maior instabilidade no plano. Essa é uma medida direta para o KPI “Production Plan Revision Rate”. Analisá-la ajuda a identificar fontes de instabilidade no planejamento, como mudanças frequentes na demanda ou um planejamento inicial impreciso. Ela quantifica o volume de retrabalho e reagendamento, que geralmente gera ineficiências. Por que isso importa Isso mede diretamente a estabilidade do planejamento e dá suporte ao KPI “Production Plan Revision Rate”, destacando processos com mudanças e retrabalho excessivos. Onde obter Esse é um atributo derivado que exige contar as ocorrências das atividades “Production Order Adjusted” para cada caso. Exemplos 012 | |||
| Número do pedido de qualidade QualityOrderNumber | O identificador de um pedido de controle de qualidade vinculado ao pedido de produção. | ||
| Descrição Quando uma inspeção de qualidade é necessária, um Quality Order geralmente é gerado no Dynamics 365. Esse atributo conecta o processo de produção ao processo de garantia da qualidade, registrando o ID do pedido de qualidade associado. Essa conexão permite uma visão mais completa do processo de ponta a ponta, incluindo as etapas de gestão da qualidade. Ela ajuda a analisar como as inspeções de qualidade afetam os prazos de produção, identificar atrasos no processo de qualidade e entender a frequência das verificações de qualidade para diferentes produtos ou linhas de produção. Por que isso importa Ele conecta o processo de produção ao processo de garantia da qualidade, permitindo analisar como as inspeções de qualidade afetam os prazos totais. Onde obter Essa informação é armazenada em tabelas de gestão da qualidade, como “InventQualityOrderTable”, e precisa ser vinculada novamente ao pedido de produção. Exemplos QO-00123QO-00124QO-00125 | |||
| Quantidade planejada PlannedQuantity | A quantidade do item planejada para produção. | ||
| Descrição A Planned Quantity é o número-alvo de unidades a serem fabricadas para um determinado pedido de produção. Essa quantidade normalmente é definida pela demanda de pedidos de venda, pelos requisitos de estoque de segurança ou pelo planejamento mestre. Esse atributo serve como base para métricas de performance, como rendimento e sucata. Comparando a Planned Quantity com a Actual Quantity dos produtos fabricados, os planejadores podem acompanhar a eficiência da produção e as variações de material. É um dado fundamental para o planejamento de capacidade e de necessidades de materiais. Por que isso importa Essa é a quantidade de referência usada para medir o rendimento da produção e as taxas de sucata, comparando-a com a quantidade realmente produzida. Onde obter Esse é o campo “QtySched” da tabela “ProdTable”. Exemplos 1005000250 | |||
Atividades de planejamento da produção
| Atividade | Descrição | ||
|---|---|---|---|
| Ordem de Produção Criada | Esta atividade marca a criação de uma ordem de produção, formalizando a demanda por uma quantidade específica de um produto. Normalmente, ela é registrada quando uma ordem de produção planejada é firmada, criando um registro oficial no sistema com um ID exclusivo. | ||
| Por que isso importa Este é o principal evento de início do processo de produção. Analisar o tempo entre essa criação e as etapas seguintes ajuda a medir o lead time e a eficiência gerais do planejamento. Onde obter Este evento é inferido a partir do registro de data e hora de criação do registro da ordem de produção na ProdTable. O status inicial normalmente é 'Created'. Captura Capture o registro de data e hora de criação de uma nova entrada na ProdTable em que ProdStatus seja 'Created'. Tipo de evento inferred | |||
| Ordem de Produção Encerrada | Esta é a atividade final, representando o fechamento financeiro da ordem de produção. Todos os custos foram calculados e lançados, e nenhuma transação adicional pode ser feita 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 nos processos de contabilidade de custos ou de fechamento financeiro. Onde obter Esta é a alteração de status final, registrada quando o campo 'ProdStatus' na 'ProdTable' é definido como 'Ended'. Isso é acionado pela execução do cálculo de custos e pelo encerramento da ordem. Captura Detecte o registro de 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 rota. | ||
| Por que isso importa Esta é a transferência oficial do planejamento para a execução. O tempo entre 'Scheduled' e 'Released' pode indicar atrasos nas aprovações ou nas verificações finais, enquanto o tempo entre 'Released' e 'Started' mede a prontidão do chão de fábrica. Onde obter Este evento é registrado quando o status da ordem de produção na ProdTable muda para 'Released'. Isso é resultado de uma ação manual ou automatizada do usuário. Captura Detecte o registro de data e hora em que o campo ProdStatus da ProdTable muda para 'Released'. Tipo de evento inferred | |||
| Ordem de Produção Programada | Esta atividade marca a programação da ordem de produção, alocando recursos, datas e horários específicos para suas operações. Essa etapa pode envolver a programação das operações ou uma programação mais detalhada dos trabalhos. | ||
| Por que isso importa A programação é essencial para o planejamento da capacidade e o gerenciamento de recursos. Analisar o tempo necessário para programar as ordens e o intervalo até a liberação revela restrições de planejamento e capacidade. Onde obter Registrado quando o status da ordem de produção na ProdTable muda para 'Scheduled'. Isso é acionado quando um usuário executa uma função de programação. Captura Detecte o registro de data e hora em que o campo ProdStatus da ProdTable muda para 'Scheduled'. 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. Normalmente, isso é registrado quando a primeira operação ou trabalho é iniciado por meio de um terminal do chão de fábrica ou do lançamento de um diário. | ||
| Por que isso importa Esta atividade fornece o horário real de início da produção, essencial para calcular atrasos no início, aderência ao cronograma e lead times reais. Onde obter Registrado quando o status da ordem de produção na ProdTable muda para 'Started'. Isso geralmente é acionado pelo lançamento de um diário de cartão de trabalho ou cartão de rota para a primeira operação. Captura Detecte o registro de data e hora em que o campo ProdStatus da ProdTable muda para 'Started'. Tipo de evento inferred | |||
| Produção Reportada como Concluída | Indica que o processo de fabricação da quantidade especificada do produto foi concluído fisicamente e que os produtos acabados agora estão em estoque. Esta é uma atualização de status crítica que aciona transações de estoque. | ||
| Por que isso importa 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 Registrado quando o status da ordem de produção na ProdTable muda para 'Reported as finished'. Isso é acionado pelo lançamento de um diário 'Report as Finished'. Captura Detecte o registro de data e hora em que o campo ProdStatus da 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 à produção. Isso confirma que os itens produzidos atendem aos padrões de qualidade exigidos. | ||
| Por que isso importa 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 QA. Onde obter Inferido a partir da alteração do status do registro na InventQualityOrderTable para 'Pass'. O valor específico do status pode variar. Captura Detecte o registro de 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 armazém e estão prontas para consumo. Esse evento é registrado após a conclusão de um trabalho de separação de matéria-prima ou do lançamento de um diário de lista de separação. | ||
| Por que isso importa Esta atividade é um ponto de controle crítico para o início da produção. Atrasos entre a programação e a separação dos materiais destacam problemas nas operações do armazém ou na disponibilidade de materiais. Onde obter Normalmente, este é um evento explícito registrado nas tabelas de gerenciamento de armazém (WHSWorkTable) ou nos diários de estoque (InventJournalTrans) vinculados à ordem de produção. Captura Capture o registro de data e hora do 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 indica a conclusão de uma operação individual de fabricação ou de uma etapa da rota de produção. Normalmente, uma ordem de produção terá vários desses eventos. | ||
| Por que isso importa Analisar o tempo entre as operações ajuda a identificar gargalos dentro do próprio processo de produção. Isso fornece uma visão mais detalhada do fluxo no chão de fábrica. Onde obter Este é um evento explícito capturado a partir do lançamento de diários de cartão de rota (ProdJournalRoute) para cada operação, indicando a conclusão dessa etapa. Captura Capture o registro de data e hora do 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 sua liberação, como uma mudança de quantidade ou de data. Esse evento é inferido comparando campos importantes antes e depois de uma alteração. | ||
| Por que isso importa Ajustes frequentes indicam instabilidade no planejamento ou demanda volátil, levando a ineficiências e retrabalho. Isso ajuda a quantificar a frequência e o impacto dessas alterações. Onde obter Inferido pela análise de logs de alterações ou pela comparação de snapshots do registro da ProdTable para campos como 'QtySched' ou 'SchedEnd' após o status da ordem mudar para 'Released'. Captura Identifique alterações em campos importantes, como quantidade e datas, na ProdTable após o registro de 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 encerramento alternativo e malsucedido do processo. | ||
| Por que isso importa Acompanhar os cancelamentos ajuda a identificar as causas das falhas no processo, como mudanças na demanda ou erros de planejamento. Taxas elevadas de cancelamento podem indicar problemas sistêmicos. Onde obter Este é um estado final alternativo inferido a partir de uma alteração 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 Detecte uma alteração de status que indique o cancelamento. Isso pode exigir uma análise específica do sistema para ser identificado. Tipo de evento inferred | |||
| Ordem de Produção Estimada | Representa o cálculo do consumo estimado de materiais e custos da ordem de produção. Esta é uma etapa crítica do planejamento para garantir que os requisitos financeiros e de materiais sejam compreendidos antes do prosseguimento. | ||
| Por que isso importa Atrasos na estimativa podem representar um gargalo significativo na fase de planejamento. Acompanhar essa atividade ajuda a identificar ineficiências no processo de planejamento de custos e materiais. Onde obter Este evento é registrado quando o status da ordem de produção na ProdTable muda para 'Estimated'. Isso é acionado quando um usuário executa a função 'Estimate' na ordem. Captura Detecte o registro de 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 a saída da ordem de produção. Esse 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 lead time total. Atrasos na inspeção de qualidade podem impedir que os produtos sejam enviados ou utilizados em processos posteriores. Onde obter Este é um evento explícito baseado na criação de um registro na InventQualityOrderTable que referencia a ordem de produção de origem. Captura Capture o registro de data e 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
- Navegue até o espaço de trabalho Data Management: faça login 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 novo projeto de exportação de dados. Informe um nome descritivo para o projeto, comoProcessMind_Production_Orders. - Selecione o formato do arquivo de exportação: na configuração do projeto, escolha o formato de dados desejado para a exportação, como CSV ou Excel. Defina a opção
Entitye especifique os detalhes do formato. O CSV é recomendado por oferecer boa performance e compatibilidade. - Adicione as entidades de dados necessárias: adicione ao projeto as entidades de dados necessárias para capturar todos os eventos das ordens de produção. Você precisará adicionar cada uma das seguintes 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 da consulta. - Aplique filtros de dados: para cada entidade, use a opção Filtrar para definir o escopo da exportação. No mínimo, filtre por
Companypara selecionar a entidade legal correta. É altamente recomendável aplicar um filtro de intervalo de datas a um campo de data importante, comoCreation datena entidadeordens de produção, para limitar o volume de dados a um período administrável, por exemplo, os últimos seis meses. - Configure exportações incrementais (opcional): para análises contínuas, configure o projeto para exportações incrementais. Isso pode ser feito rastreando alterações nas entidades de origem, o que permite extrair apenas registros novos ou modificados desde a última exportação e reduz significativamente o tempo de exportação.
- Execute o trabalho de exportação: depois de configurar o projeto, inicie a exportação clicando em
Exportno painel de ações. Você pode executá-la imediatamente ou programá-la como um trabalho em lote recorrente. - Baixe os arquivos exportados: depois que o trabalho de exportação for concluído com sucesso, acesse o histórico de trabalhos. Baixe o pacote, que será um arquivo ZIP contendo arquivos de dados separados para cada entidade incluída.
- Transforme os dados em um registro de eventos: os arquivos exportados representam dados brutos de tabelas, não um registro de eventos formatado. Você deverá usar uma ferramenta externa, como um script Python, o Power Query no Excel ou Power BI, ou uma ferramenta ETL, para processar e combinar os dados desses arquivos. A lógica de transformação descrita na seção da consulta deve ser aplicada para dinamizar os campos de data e status das várias entidades em um único arquivo de registro de eventos, com uma linha por atividade.
- Estruture o registro de eventos final: confirme que o arquivo CSV transformado contém as colunas obrigató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: o núcleo desta extração depende da exportação de várias entidades e da posterior junção entre elas. As principais entidades são
ordens de produção(ProdTable),Production order route transactions(ProdRouteTrans) eInventory quality orders(InventQualityOrderTable). - Filtragem por intervalo de datas: para controlar o volume de dados, sempre aplique um filtro de data. Uma boa prática é filtrar a entidade
ordens de produçãopelaCreation date(CREATEDDATETIME) dos últimos três a seis meses. Assim, você captura processos recentes e completos sem sobrecarregar o sistema. - Filtro de empresa: é fundamental definir um filtro para a empresa ou entidade legal específica que você deseja analisar. Isso é feito por meio da opção Filtrar em cada entidade do projeto de exportação.
- Carga completa versus incremental: para a extração inicial, é necessário fazer uma carga completa. Para as atualizações seguintes, é altamente recomendável configurar o rastreamento de alterações nas entidades e realizar exportações incrementais para melhorar a performance e reduzir a carga de dados.
- Pré-requisitos: o usuário que executa a exportação deve ter as funções de segurança adequadas, normalmente incluindo
Data management administratorou uma função com permissões para acessar as entidades de dados necessárias.
a 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: confirme se o recurso “Bring your own database” está configurado no seu ambiente do Dynamics 365 for Finance and Operations. Isso envolve configurar um Azure SQL Database e a exportação de dados do Dynamics 365.
- Publique as entidades necessárias: no workspace “Data management”, acesse “Data entities”. Pesquise e publique as seguintes entidades principais no seu banco de dados BYOD: ProdTable, ProdRouteTrans, InventPickingListJour e InventQualityOrderTable. Garanta que elas estejam configuradas para exportação recorrente.
- Verifique a sincronização dos dados: confirme se os dados das entidades publicadas estão sendo sincronizados regularmente e com sucesso com o Azure SQL Database de destino. Verifique o histórico de trabalhos de exportação para identificar 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 Azure SQL Database onde estão os dados do Dynamics 365.
- Prepare a consulta SQL: abra uma nova janela de consulta. 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 intervalo de datas desejado e pelo DataAreaId da empresa específica que você deseja analisar. - Execute a consulta: execute a consulta SQL modificada no banco de dados BYOD. O tempo de execução varia de acordo com o volume de dados e o intervalo de datas especificado.
- Revise os resultados: quando a consulta for concluída, revise a saída para garantir que ela contenha 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 para o ProcessMind: garanta que o arquivo CSV exportado use codificação UTF-8 e que os cabeçalhos das colunas correspondam 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 das seguintes entidades exportadas para sua instância BYOD:
PRODTABLE: contém as principais informações de cabeçalho e o status do pedido 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 os pedidos de produção.INVENTQUALITYORDERTABLE: acompanha os pedidos de garantia da qualidade vinculados à produção.
- Intervalo de datas: recomenda-se começar com um intervalo limitado, por exemplo, de 3 a 6 meses de dados, para garantir uma performance de consulta administrável. A consulta usa a data de criação do pedido de produção (
CREATEDDATETIMEdaPRODTABLE) como filtro. - Filtro de código da empresa: o campo
DATAREAIDé usado para filtrar os dados de uma entidade legal ou empresa específica. Você deve substituir o espaço reservado'{CompanyCode}'pelo ID relevante, por exemplo, “usmf”. - Pré-requisitos: este método exige acesso de administrador do sistema ao Dynamics 365 Finance and Operations para configurar o BYOD, além de permissões de Contributor no Azure SQL Database para executar consultas.
- Performance: para conjuntos de dados muito grandes, abrangendo vários anos ou empresas, 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 posteriormente.
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
- Confirme se o Power BI Desktop ou outra ferramenta aprovada que contenha o Power Query está disponível e se o usuário 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 configurados pelo administrador. Não presuma que uma determinada entidade, endpoint ou caminho de menu esteja disponível em todas as implantações.
- Selecione a entidade de cabeçalho da ordem de produção, a entidade de operação ou rota da ordem de produção, a entidade de separação de materiais ou lista de separação, as entidades de apontamento da produção, a entidade de ordem de qualidade e quaisquer entidades aprovadas de auditoria, histórico ou rastreamento de alterações necessárias para identificar mudanças de status. Substitua cada referência de origem na consulta pela entidade ou consulta correspondente disponível no seu ambiente.
- Configure 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 plantas, produtos, tipos de ordem e status necessários. Mantenha os carimbos 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, apontamento como concluída, qualidade, encerramento e cancelamento.
- No Power Query, padronize os nomes e os tipos de dados das colunas de origem. Converta os carimbos de data e hora dos eventos para um tipo datetime consistente e normalize identificadores, valores de status, valores de empresa, valores de planta, números de produto, usuários, quantidades e prioridades. Quando 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 por 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 a partir de uma fonte aprovada de histórico anterior e posterior, auditoria ou rastreamento de alterações. Compare campos relevantes, como quantidade, datas planejadas, status, planta, produto e prioridade. Gere uma linha de ajuste para cada alteração qualificada, usando o carimbo de data e hora registrado para a alteração. Não deduza um ajuste apenas a partir do snapshot 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 carimbo de data e hora do evento, mas não elimine duplicatas legítimas de conclusões repetidas de operações, ajustes ou eventos de qualidade. Ordene por ProductionOrderNumber e EventTime, usando uma ordenação secundária determinística quando disponível.
- Carregue a tabela resultante no Power BI ou exporte-a como CSV ou outro formato de Event Log compatível com o ProcessMind. Garanta que os cabeçalhos exportados sejam exatamente ProductionOrderNumber, ActivityName, EventTime, SourceSystem, LastDataUpdate, ProductionOrderStatus, PlannedStartDate, PlannedEndDate, UserId, ProductionPlant, ProductNumber, ProductionType, ActualQuantity e ProductionPriority.
- Antes de fazer o upload para o ProcessMind, valide se todas as atividades obrigatórias estão representadas como linhas explícitas no Event Log, se os carimbos 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 deriva eventos ausentes.
Configuração
- Conexão: use o conector aprovado do Power Query e o método de autenticação do ambiente do 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ção ou rota, separação de materiais ou lista de separação, apontamento da produção, ordem de qualidade e auditoria ou rastreamento de alterações aprovados disponíveis no ambiente. Os nomes e a disponibilidade das entidades variam conforme a implantação e precisam ser confirmados no navegador de metadados.
- Intervalo de datas: comece com um intervalo de 3 a 6 meses. Use filtros de EventTime na origem sempre que possível e amplie o intervalo ao validar ordens de produção de longa duração ou transições históricas de status.
- Filtros de empresa e planta: aplique [Your company or legal entity filter] e, quando aplicável, o filtro da planta de produção necessária. Não use um filtro de empresa genérico se o ambiente contiver 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, plantas, status e intervalos de números de ordem necessários. Evite excluir ordens canceladas ou encerradas quando esses resultados forem necessários para a análise do processo.
- Inclusão de eventos: preserve eventos repetidos de conclusão de operação, separação de materiais, qualidade e ajustes. Não reduza o log a uma linha por ordem de produção.
- Fuso horário: converta todos os carimbos de data e hora de origem para um único fuso horário documentado. Preserve o carimbo de data e hora de origem ou o deslocamento do fuso quando a origem fornecer essa informação.
- Metadados de atualização: preencha LastDataUpdate com o carimbo de data e hora da atualização ou extração em todas as linhas. Um único carimbo de atualização é aceitável quando todo o conjunto de dados é extraído em uma única atualização.
- Performance: aplique os filtros de data, empresa, planta e ordem na origem. Selecione apenas as colunas necessárias, evite combinações desnecessárias, prepare consultas de origem reutilizáveis e considere a atualização incremental para grandes conjuntos de dados.
- Pré-requisitos: Power BI Desktop ou um host aprovado do Power Query, acesso à rede do ambiente do Dynamics 365, permissões válidas de leitura para todas as entidades selecionadas e qualquer acesso necessário ao Dynamics 365 Manufacturing, armazém, qualidade, auditoria ou rastreamento de alterações.
- Dados dependentes da configuração: se uma fonte de eventos 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 snapshot do status atual.
a 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 de que precisa para começar a extrair e analisar os dados do seu planejamento de produção. Comece hoje a otimizar suas operações para alcançar a máxima eficiência.
Alcance a máxima eficiência: simplifique o planejamento de produção hoje
Identifique gargalos e reduza o tempo do ciclo de produção em 30% ou mais.
Não é necessário cartão de crédito. Configure em poucos minutos.