Seu Template de Dados de Planejamento de Produção
Seu Template de Dados de Planejamento de Produção
- Atributos recomendados para análise de planejamento de produção
- Principais atividades de planejamento de produção para rastrear
- Guia detalhado de extração de dados para SAP S/4HANA
Atributos de Planejamento de Produção
| Nome | Descrição | ||
|---|---|---|---|
| Atividade Activity | O nome do evento ou tarefa específica que ocorreu em um determinado momento no processo de planejamento de produção. | ||
| Descrição Este atributo registra as etapas e marcos distintos no ciclo de vida da ordem de produção. Exemplos incluem 'Ordem de Produção Criada', 'Disponibilidade de Material Verificada', 'Produção Iniciada' e 'Ordem Encerrada Financeiramente'. Cada atividade representa uma ação específica ou mudança de status documentada no sistema. Analisar a sequência e a frequência dessas atividades é o cerne do Process Mining. Ajuda a visualizar o fluxo do processo, identificar desvios do procedimento padrão e apontar atividades que causam atrasos ou exigem retrabalho frequente, como 'Plano de Produção Ajustado'. Por que é importante Define as etapas do processo, permitindo a descoberta e visualização do workflow real de produção e suas variações. Onde obter Derivado de mudanças de status em tabelas como JEST e JCDS, códigos de transação utilizados (ex: CO01 para criação) ou registros específicos de confirmação na AFRU. Exemplos Ordem de Produção CriadaOrdem de Produção LiberadaProdução IniciadaConfirmação Final InseridaEntrada de mercadorias lançada | |||
| Hora de Início StartTime | O `timestamp` indicando quando uma atividade ou evento específico começou. | ||
| Descrição Este atributo fornece a data e o horário para cada evento registrado no processo de produção. É a base temporal para todas as análises de processo baseadas em tempo. O Horário de Início é crucial para calcular durações entre atividades, medir o tempo de ciclo total de uma ordem de produção e entender o cronograma dos eventos. Ele permite a análise de gargalos, tempos de espera e aderência ao cronograma ao comparar os registros reais com as datas planejadas. Por que é importante Fornece o contexto cronológico para todos os eventos, possibilitando analisar o desempenho do processo, durações e gargalos. Onde obter Essas informações são normalmente encontradas em tabelas de documentos de modificação (CDHDR/CDPOS) para mudanças de status, tabelas de confirmação (AFRU) para etapas de execução e tabelas de cabeçalho (AFKO) para datas de criação. Exemplos 2023-10-26T09:00:00Z2023-10-26T14:30:00Z2023-10-27T08:15:00Z | |||
| Ordem de Produção ProductionOrder | O identificador exclusivo de uma ordem de produção, servindo como o ID de caso principal para o processo de planejamento de produção. | ||
| Descrição O número da Ordem de Produção é uma chave exclusiva gerada pelo SAP S/4HANA para gerenciar e rastrear todas as atividades relacionadas à fabricação de uma quantidade específica de produto. Ele vincula todos os eventos relacionados, desde o planejamento e liberação até a execução e a liquidação final. No Process Mining, este atributo é essencial para agrupar todos os eventos relacionados em uma única instância de processo de ponta a ponta. Analisar processos por Ordem de Produção permite a medição de KPIs como tempo de ciclo, aderência ao cronograma e a identificação de gargalos que afetam lotes de produção específicos. Por que é importante É o atributo fundamental que conecta todas as etapas do processo, permitindo uma análise completa de todo o ciclo de vida da produção. Onde obter Este é o número da Ordem de Produção, normalmente encontrado em tabelas SAP como AFKO (campo AUFNR) e AFPO. Exemplos 100056710008341001299 | |||
| Sistema de Origem SourceSystem | O sistema do qual os dados de planejamento de produção foram extraídos. | ||
| Descrição Este atributo identifica a origem dos dados, o que é essencial em ambientes com vários sistemas integrados. Para este processo, geralmente será a instância específica do SAP S/4HANA. Em um contexto mais amplo de análise de dados, conhecer o sistema de origem ajuda a garantir a integridade dos dados e permite o contexto adequado ao mesclar dados de diferentes fontes. É um metadado fundamental para a governança e rastreabilidade dos dados. Por que é importante Fornece metadados cruciais para a governança de dados, garantindo que a origem e o contexto dos dados do processo estejam claros. Onde obter Geralmente é um valor estático adicionado durante o processo de extração de dados para identificar o cliente SAP S/4HANA e o ID do sistema (SID). Exemplos S4P_100S4H_PRD_200S4Q_300 | |||
| Última Atualização de Dados LastDataUpdate | O timestamp que indica quando os dados foram atualizados pela última vez ou extraídos do sistema de origem. | ||
| Descrição Este atributo registra a data e o horário da extração de dados mais recente. É um metadado crítico que informa aos usuários sobre a atualidade dos dados que estão analisando. Saber o horário da última atualização é essencial para interpretar a análise corretamente. Ajuda os usuários a entenderem se estão visualizando informações em tempo real ou um retrato (snapshot) de um momento específico, o que afeta a relevância das conclusões e decisões tomadas com base nos dados. Por que é importante Garante que os usuários saibam quão atualizados estão os dados, o que é crítico para tomar decisões de negócio precisas. Onde obter Este timestamp é gerado e adicionado durante o processo de extração, transformação e carga (ETL). Exemplos 2024-05-21T02:00:00Z2024-05-22T02:00:00Z2024-05-23T02:00:00Z | |||
| Centro Plant | A instalação fabril ou local onde a ordem de produção está sendo executada. | ||
| Descrição O Centro (Plant) é uma unidade organizacional no SAP que representa um local ou instalação de produção. Cada ordem de produção é atribuída a um centro específico onde as atividades de fabricação ocorrerão. Este atributo é crítico para análises comparativas entre diferentes locais de fabricação. Ao segmentar os dados do processo por Centro, as organizações podem comparar o desempenho (benchmarking), identificar problemas ou boas práticas específicas de cada local e entender variações regionais em eficiência, capacidade ou conformidade com padrões. Por que é importante Permite comparar o desempenho entre diferentes unidades de produção, ajudando a identificar e compartilhar boas práticas ou resolver problemas locais. Onde obter Encontrado na tabela de cabeçalho da Ordem de Produção AFKO (campo DWERK). Exemplos 100017102000 | |||
| Centro de Trabalho WorkCenter | A máquina específica, grupo de máquinas ou área de montagem responsável por uma operação. | ||
| Descrição Um Centro de Trabalho representa uma unidade operacional específica dentro de uma planta onde uma etapa de produção é realizada. Pode ser uma única máquina, uma linha de produção ou um grupo de funcionários. Analisar os dados do processo por Centro de Trabalho é fundamental para identificar gargalos de capacidade e otimizar a alocação de recursos. Isso ajuda a responder quais centros estão sobrecarregados, quais estão subutilizados e onde os atrasos ocorrem com mais frequência durante a execução da produção. É um dado vital para o dashboard de Identificação de Gargalos de Capacidade. Por que é importante Ajuda a localizar máquinas ou linhas de produção específicas que agem como gargalos, permitindo melhorias focadas em capacidade e uso de recursos. Onde obter Encontrado nos dados de operação de uma ordem de produção, tabela AFVC (campo ARBPL). Exemplos CT-MONTAGEM-01CT-FRESAGEM-05CT-EMBALAGEM | |||
| Data de Término Planejada PlannedEndDate | A data de conclusão programada para a ordem de produção conforme o plano inicial. | ||
| Descrição A Data de Término Planejada é a data pretendida para que todas as atividades de produção de uma ordem sejam finalizadas. Essa data é definida durante a fase de agendamento do planejamento de produção. Este atributo é essencial para medir a aderência ao cronograma. Ao comparar a Data de Término Planejada com o registro real de conclusão, as empresas podem calcular o KPI de Taxa de Aderência ao Cronograma de Produção e identificar ordens em atraso. Essa análise é fundamental para melhorar a precisão do planejamento e a satisfação do cliente. Por que é importante Serve como base para medir a aderência ao cronograma, ajudando a avaliar a precisão do planejamento e a eficiência da execução. Onde obter Encontrado na tabela de cabeçalho da Ordem de Produção AFKO (campo GLTRP). Exemplos 2023-11-152023-12-012024-01-20 | |||
| Número do Material MaterialNumber | O identificador exclusivo do produto que está sendo fabricado na ordem de produção. | ||
| Descrição O Número do Material especifica o item que a ordem de produção visa produzir. Ele vincula o processo de produção aos dados mestre do material, incluindo sua lista técnica (BOM) e informações de roteiro. Analisar o processo pelo Número do Material ajuda a identificar se certos produtos são mais propensos a atrasos, retrabalho ou falta de materiais. Isso permite a otimização de processos específicos, como o ajuste de parâmetros de planejamento ou a melhoria da cadeia de suprimentos para componentes específicos. Por que é importante Permite filtrar e analisar com base no produto fabricado, revelando ineficiências ou gargalos específicos de cada item. Onde obter Encontrado na tabela de item da Ordem de Produção AFPO (campo MATNR). Exemplos RM-1001FG-2050SA-3100-B | |||
| Status do Pedido OrderStatus | O status atual de processamento da ordem de produção, como Criada, Liberada ou Concluída Tecnicamente. | ||
| Descrição O Status da Ordem indica o estágio geral da ordem de produção em seu ciclo de vida. É um resumo dos vários status do sistema e do usuário aplicados à ordem. Os status comuns incluem CRTD (Criada), REL (Liberada), CNF (Confirmada), TECO (Concluída Tecnicamente) e CLSD (Encerrada). Analisar o status atual das ordens é útil para entender o cenário do trabalho em andamento (WIP). No Process Mining, o rastreamento das transições entre esses status ao longo do tempo é o que gera o log de atividades e permite uma visão detalhada do fluxo do processo e das durações em cada etapa. Por que é importante Oferece uma visão de alto nível do estágio do ciclo de vida da ordem e é fundamental para derivar a sequência de atividades no Process Mining. Onde obter Derivado do status do sistema armazenado na tabela JEST, vinculado pelo número do objeto na AFKO (campo OBJNR). Exemplos CRTDREL (Liberado)TECOCLSD | |||
| Data de Início Planejada PlannedStartDate | A data de início programada para a ordem de produção conforme o plano inicial. | ||
| Descrição A Data de Início Planejada é a data pretendida para que as atividades de produção de uma ordem comecem. Este é um resultado fundamental do processo de agendamento. Este atributo fornece a linha de base inicial para a análise de aderência ao cronograma. Comparar a Data de Início Planejada com o horário real de início ajuda a entender atrasos iniciais, como demora na preparação de materiais ou na liberação da ordem, que podem causar um efeito cascata em todo o cronograma de produção. Por que é importante Fornece uma base para medir a aderência ao horário de início, o que é crucial para identificar atrasos em etapas de pré-produção, como liberação e disponibilidade de material. Onde obter Encontrado na tabela de cabeçalho da Ordem de Produção AFKO (campo GSTRP). Exemplos 2023-11-102023-11-252024-01-15 | |||
| É Retrabalho IsRework | Um sinalizador que indica se uma ordem de produção envolveu retrabalho ou ajustes significativos no plano após o início. | ||
| Descrição Este atributo booleano é derivado para identificar ordens de produção que passaram por ações corretivas ou mudanças de plano após a produção já estar em andamento. Isso pode ser acionado por uma atividade de retrabalho explícita ou por um evento 'Plano de Produção Ajustado' ocorrendo após 'Produção Iniciada'. Este sinalizador é crucial para calcular o KPI de Taxa de Retrabalho de Produção e para o dashboard de Retrabalho e Revisões de Produção. Ele permite filtrar e analisar facilmente casos problemáticos, ajudando a descobrir as causas raiz de problemas de qualidade ou desvios de processo que levam a retrabalhos dispendiosos. Por que é importante Isola os casos de retrabalho, permitindo uma análise focada para entender e reduzir problemas de qualidade, desvios e custos associados. Onde obter Campo calculado. Definido como verdadeiro se uma atividade "Plano de Produção Ajustado" ocorrer após uma atividade "Produção Iniciada" no mesmo caso, ou se um tipo específico de ordem de retrabalho for utilizado. Exemplos verdadeirofalse | |||
| End Time EndTime | O timestamp que indica quando uma atividade ou evento específico foi concluído. | ||
| Descrição Este atributo fornece a data e o horário de término de cada evento registrado. Ele complementa o Horário de Início para definir a duração das atividades. O Horário de Término é crucial para calcular o tempo exato de processamento de atividades individuais, que é um dado fundamental para a análise de utilização de recursos e capacidade. Ele ajuda a diferenciar o tempo de trabalho ativo do tempo de inatividade ou espera, levando a uma identificação mais precisa de gargalos. Por que é importante Permite calcular a duração precisa das atividades, o que é essencial para analisar a eficiência dos recursos e identificar gargalos. Onde obter Encontrado nas tabelas de confirmação (AFRU) para etapas de execução. Para outros eventos, pode ser o mesmo que o Start Time se o evento for instantâneo. Exemplos 2023-10-26T09:45:00Z2023-10-26T15:00:00Z2023-10-27T10:30:00Z | |||
| Está no prazo IsOnTime | Um sinalizador que indica se a ordem de produção foi concluída na data final planejada ou antes dela. | ||
| Descrição Este atributo booleano calculado mede diretamente a aderência ao cronograma comparando a data real de conclusão com a data de término planejada. Ele fornece um resultado binário claro para a pontualidade de cada ordem de produção. Este atributo é a base para o KPI de Taxa de Aderência ao Cronograma de Produção. Ele simplifica a análise ao permitir uma segmentação fácil de ordens no prazo versus ordens atrasadas, ajudando a identificar características comuns ou caminhos de processo associados a atrasos. Por que é importante Oferece uma medida clara e simples de aderência ao cronograma para cada ordem, facilitando a análise das causas raiz dos atrasos. Onde obter Campo calculado. Definido como verdadeiro se o timestamp da atividade "Ordem Tecnicamente Encerrada" for menor ou igual ao atributo "Data de Término Planejada". Exemplos verdadeirofalse | |||
| Prioridade de Produção ProductionPriority | Um código ou valor atribuído a uma ordem de produção para indicar sua urgência ou importância. | ||
| Descrição A Prioridade de Produção é usada por planejadores e programadores para sequenciar ordens, especialmente quando os recursos são limitados. Uma ordem de maior prioridade deve, idealmente, ser processada antes de uma de menor prioridade. Analisar este atributo ajuda a avaliar se as prioridades atribuídas estão sendo respeitadas no chão de fábrica. O dashboard de Consistência de Priorização da Produção compara a sequência de processamento com a prioridade definida para identificar inconsistências, o que pode levar a uma melhor disciplina de agendamento e maior alinhamento entre planejamento e execução. Por que é importante Ajuda a determinar se o cronograma de produção segue as prioridades do negócio, garantindo que ordens críticas sejam agilizadas conforme o planejado. Onde obter Geralmente é um campo personalizado ou baseado em outros parâmetros da ordem. A localização específica depende da configuração. Exemplos AltoMédioBaixo15 | |||
| Quantidade Confirmada TotalConfirmedQuantity | A quantidade total do material que foi confirmada como produzida para a ordem. | ||
| Descrição Este atributo representa a quantidade acumulada de produtos acabados ou semiacabados que foram relatados por meio de confirmações de produção. Ele rastreia o progresso da ordem em direção à meta de conclusão. Comparar a quantidade confirmada com a planejada ajuda a monitorar o progresso da produção e a identificar problemas de rendimento ou discrepâncias. É uma medida fundamental de produtividade e é usada em vários cálculos de desempenho, incluindo taxas de refugo e eficiência. Por que é importante Rastreia a produção real da ordem, sendo essencial para monitorar o progresso, calcular o rendimento (yield) e identificar discrepâncias. Onde obter Agregado a partir dos registros de confirmação na AFRU (campo LMNGA para quantidade produzida). Exemplos 9801000501200 | |||
| Status de Disponibilidade de Material MaterialAvailabilityStatus | Indica se todos os materiais necessários para a ordem de produção estão disponíveis. | ||
| Descrição Este status reflete o resultado da verificação de disponibilidade de material realizada para uma ordem de produção. Pode indicar que todos os materiais estão disponíveis, alguns estão faltando ou a verificação não foi realizada. Um status de 'falta' é um gatilho importante para atrasos potenciais. Este atributo é fundamental para o dashboard de Análise de Impacto de Falta de Material. Ajuda a quantificar os atrasos causados pela indisponibilidade de material ao correlacionar o status de falta com o tempo entre a liberação da ordem e o início da produção. Melhorar essa métrica é a chave para um fluxo de produção mais suave. Por que é importante Explica diretamente os atrasos entre a liberação da ordem e o início da produção, ajudando a quantificar o impacto de problemas na cadeia de suprimentos. Onde obter Este é um status, frequentemente derivado do status coletivo dos componentes de material. Pode ser encontrado no status do sistema (JEST) com códigos como 'MSPT' (Falta de material). Exemplos DisponívelFalta de MaterialNão Verificado | |||
| Tempo de Ciclo de Produção ProductionCycleTime | O tempo total decorrido desde a liberação de uma ordem de produção até sua conclusão técnica. | ||
| Descrição Esta métrica calculada mede a duração de ponta a ponta do ciclo de vida de uma ordem de produção em execução. É um indicador-chave de desempenho que reflete a eficiência geral do processo de produção. Este atributo é a medida principal para o dashboard de Visão Geral do Lead Time da Ordem de Produção e o KPI de Tempo de Ciclo Médio da Ordem de Produção. Analisar seus componentes, como tempos de espera versus tempos de processamento, ajuda a identificar as maiores oportunidades para aceleração de processos e redução de lead time. Por que é importante Este é um KPI crítico para medir a eficiência geral da produção e identificar oportunidades para acelerar o cumprimento das ordens. Onde obter Calculado pela duração entre a atividade "Ordem de Produção Liberada" e a atividade "Ordem Tecnicamente Encerrada" para cada ordem de produção. Exemplos P5DT12H30MP10DT2HP3D | |||
| Tipo de Pedido OrderType | Uma classificação da ordem de produção que define sua finalidade e controla seu processamento. | ||
| Descrição O Tipo de Ordem é um elemento de configuração essencial no SAP PP que determina como uma ordem de produção é tratada pelo sistema. Ele controla intervalos de numeração, seleção de dados mestre, parâmetros de custos e regras de liquidação. Os exemplos incluem ordens de produção padrão, ordens de retrabalho ou ordens de protótipo. Analisar o processo pelo Tipo de Ordem permite comparar o desempenho e o fluxo de diferentes tipos de processos produtivos. Isso pode revelar se as ordens de retrabalho demoram significativamente mais ou se certos tipos de ordens são mais propensos a ajustes de planejamento, fornecendo insights valiosos para melhorias direcionadas. Por que é importante Permite segmentar a análise pela finalidade de negócio da ordem, possibilitando comparar produção padrão, retrabalho e outros processos. Onde obter Encontrado na tabela de cabeçalho da Ordem de Produção AFKO (campo AUART). Exemplos PP01PP03ZP01 | |||
| Utilizador User | O ID do sistema do usuário que criou, alterou ou confirmou um evento da ordem de produção. | ||
| Descrição Este atributo captura o ID do usuário SAP associado a uma transação ou mudança de status específica, como liberar uma ordem ou inserir uma confirmação. Ele fornece rastreabilidade para as ações realizadas no sistema. Analisar atividades por Usuário ajuda a entender a distribuição da carga de trabalho, identificar necessidades de treinamento e garantir a conformidade com os procedimentos. Por exemplo, pode destacar se certos usuários estão frequentemente envolvidos em ajustes de plano ou se os atrasos estão associados a equipes específicas. Por que é importante Garante a responsabilidade e permite analisar a carga de trabalho, comportamentos específicos de usuários e oportunidades de treinamento. Onde obter Normalmente encontrado em cabeçalhos de documentos de modificação (CDHDR, campo UNAME) ou registros de confirmação (AFRU, campo PERNR para número de pessoal). Exemplos CB9980000021JSMITHPLANNER01 | |||
Atividades de Planejamento de Produção
| Atividade | Descrição | ||
|---|---|---|---|
| Confirmação Final Inserida | Esta atividade marca a confirmação da última operação no roteiro da ordem de produção. Significa que todas as etapas de fabricação planejadas foram concluídas no chão de fábrica. | ||
| Por que é importante A confirmação final é um marco importante que indica o fim do trabalho físico de produção. Geralmente é usada como um ponto final mais preciso para medir o tempo de ciclo do chão de fábrica antes da entrada final da mercadoria. Onde obter Inferido a partir dos dados de confirmação na tabela AFRU. É identificado como o registro de confirmação para a última sequência de operação (AFVC-VPLNR) que possui o indicador de "confirmação final" (AFRUD-AUERU) definido. Captura Localizar a última confirmação de operação na AFRU com o sinalizador de confirmação final ativado. Tipo de evento inferred | |||
| Entrada de mercadorias lançada | Este evento registra o recebimento do produto acabado da linha de produção no estoque. Ele aumenta formalmente o nível de estoque do material produzido. | ||
| Por que é importante Este é um marco crítico que representa a conclusão da produção. Geralmente é considerado o fim do ciclo de produção para medir a entrega no prazo e o lead time geral. Onde obter Este é um lançamento financeiro explícito registrado nas tabelas de documentos de material MSEG (nível de item) e MKPF (nível de cabeçalho), geralmente com o tipo de movimento 101. Esses documentos estão vinculados à ordem de produção. Captura Localizar o documento de material na MSEG vinculado à ordem com o tipo de movimento 101. Tipo de evento explicit | |||
| Ordem Concluída Tecnicamente | Esta é uma etapa de fechamento administrativo que impede novas alterações logísticas na ordem, como movimentos de mercadorias ou confirmações. A ordem é considerada concluída do ponto de vista logístico. | ||
| Por que é importante O TECO é um ponto final definitivo para o processo de produção, crucial para calcular o tempo total de ciclo da ordem. Ele sinaliza que todas as atividades logísticas foram concluídas e que a ordem está pronta para a liquidação financeira. Onde obter Isso é acionado por um usuário que define o status como TECO (Concluída Tecnicamente). O evento é capturado como uma mudança de status na tabela JCDS com um registro de data e hora correspondente. Captura Registro de data e hora da mudança de status para 'TECO' na tabela JCDS. Tipo de evento inferred | |||
| Ordem de Produção Criada | Esta é a criação inicial da ordem de produção no sistema, que serve como a solicitação formal para produzir uma quantidade especificada de um produto. Esse evento é capturado explicitamente quando um usuário salva uma nova ordem, definindo seu status inicial como CRTD (Criada). | ||
| Por que é importante Marca o início do ciclo de vida da ordem. Analisar o tempo da criação até a liberação ajuda a identificar atrasos administrativos ou de planejamento antes do agendamento formal. Onde obter Este evento é registrado na tabela AUFK (Dados Mestre da Ordem) com a data de criação (ERDAT). O status de criação (CRTD) é registrado nas tabelas JEST e JCDS, vinculadas por meio do número do objeto da ordem (OBJNR). Captura Registro de data e hora de AUFK-ERDAT ou log de mudança de status para 'CRTD' no JCDS. Tipo de evento explicit | |||
| Ordem de Produção Liberada | Este é um marco fundamental onde a ordem de produção é aprovada e disponibilizada para execução no chão de fábrica. A liberação permite o início das saídas de mercadorias, confirmações e outras etapas de execução. | ||
| Por que é importante Este evento marca o início oficial do processo de produção executável e é um ponto crítico para medir lead times. O tempo entre a criação e a liberação é um KPI fundamental para a eficiência da pré-produção. Onde obter A liberação é acionada explicitamente por um usuário ou job do sistema, resultando no status REL. Essa alteração de status é registrada com um timestamp na tabela JCDS. A data de liberação também é frequentemente armazenada no campo AFKO-FTRMI. Captura Registro de data e hora da mudança de status para 'REL' na tabela JCDS. Tipo de evento inferred | |||
| Plano de Produção Ajustado | Representa uma alteração significativa feita na ordem de produção após sua liberação, como mudança na quantidade, datas ou na lista técnica (BOM). Isso é capturado pela análise de documentos de modificação. | ||
| Por que é importante Ajustes frequentes podem indicar instabilidade no planejamento ou demanda volátil. Esta atividade serve de base para o KPI de Taxa de Revisão do Plano de Produção e ajuda a identificar fontes de variabilidade no processo. Onde obter Inferido a partir dos logs de alteração gravados nas tabelas CDHDR (Cabeçalho de documento de modificação) e CDPOS (Itens de documento de modificação) para o objeto de ordem de produção (AUFK ou AFPO). Alterações feitas após a data de liberação são consideradas ajustes. Captura Identificar alterações nas tabelas CDHDR/CDPOS para campos principais (ex: quantidade, datas) após o evento de liberação. Tipo de evento inferred | |||
| Produção Iniciada | Indica o início das atividades físicas de produção da ordem. Geralmente é inferido pela primeira confirmação de chão de fábrica ou pela primeira saída de mercadorias de componentes vinculada à ordem. | ||
| Por que é importante Esta atividade marca a transição do planejamento para a execução. É essencial para rastrear a aderência ao cronograma, comparando a data de início real com a planejada. Onde obter Este é um evento inferido. Geralmente é derivado do registro de data e hora mais antigo de um lançamento de movimento de mercadorias (tabela MSEG, tipo de movimento 261) ou de um lançamento de confirmação de tempo (tabela AFRU) associado à ordem. Captura Timestamp mais antigo da AFRU (confirmações) ou MSEG (movimentos de mercadoria) para a ordem. Tipo de evento inferred | |||
| Confirmação de Produção Inserida | Representa o registro do progresso de uma operação específica na ordem de produção. Isso inclui o registro de quantidades produzidas, refugo e tempo gasto em um centro de trabalho. | ||
| Por que é importante As confirmações oferecem visibilidade em tempo real do progresso no chão de fábrica e são vitais para rastrear o status da produção. Analisar a frequência e o tempo das confirmações ajuda a monitorar o fluxo e identificar atrasos entre as operações. Onde obter Cada confirmação é registrada explicitamente como uma entrada na tabela AFRU (Confirmações de Conclusão de Ordem) com um timestamp (BUDAT, UZEIT) e detalhes da operação. Captura Registrado como um documento na tabela AFRU. Tipo de evento explicit | |||
| Disponibilidade de Material Verificada | Representa a ação do sistema ou do usuário de verificar se todos os componentes necessários para a ordem de produção estão disponíveis nas quantidades certas e no prazo. Geralmente é uma verificação automática na criação ou liberação da ordem, ou uma verificação manual, que atualiza o status da ordem. | ||
| Por que é importante A identificação precoce da falta de materiais é crucial para o planejamento proativo. Rastrear essa atividade ajuda a entender como a disponibilidade de componentes afeta a liberação de ordens e o início da produção no prazo. Onde obter Inferido pelo status da ordem. Um status como MACM (Material comprometido) ou uma alteração na data de disponibilidade do material (AFKO-MSERF) indica que uma verificação foi feita. A ausência de status de falta de material (MSPT) também pode inferir disponibilidade. Captura Inferido por mudanças de status relacionadas à reserva de material ou execução da transação COMAC. Tipo de evento inferred | |||
| Falta de Material Ocorrida | Este evento indica que o processo de produção foi afetado ou interrompido devido à indisponibilidade de um ou mais componentes necessários. O sistema define um status específico na ordem para refletir isso. | ||
| Por que é importante Rastrear a falta de materiais é fundamental para a Análise de Impacto de Falta de Material. Ajuda a quantificar atrasos causados por problemas na cadeia de suprimentos e a melhorar o planejamento de materiais. Onde obter Isso é inferido pela ativação do status 'MSPT' (Falta de material) para a ordem de produção. O registro de data e hora para essa mudança de status pode ser encontrado na tabela JCDS. Captura Registro de data e hora da mudança de status para 'MSPT' na tabela JCDS. Tipo de evento inferred | |||
| Necessidades de Capacidade Planejadas | Esta atividade envolve o agendamento das operações da ordem de produção e a verificação da disponibilidade de capacidade nos centros de trabalho necessários. O sistema avalia as cargas de capacidade e as nivela, se configurado, determinando as datas de produção. | ||
| Por que é importante Esta etapa é fundamental para garantir um cronograma de produção viável. Analisar sua duração e resultados ajuda a identificar gargalos de capacidade e melhora a precisão do planejamento de recursos. Onde obter Isso geralmente é inferido do status do sistema indicando que a ordem foi programada, como SETC (Programação realizada). O preenchimento das datas de início e término programadas (AUFK-GSTRP, AUFK-GLTRP) também sinaliza a conclusão desta atividade. Captura Inferido pelo preenchimento de datas programadas em AUFK/AFKO ou um status relacionado a escalonamento na JEST. Tipo de evento inferred | |||
| Ocorreu Parada Não Planejada | Este evento calculado representa um período de inatividade significativo durante a fase de execução da produção. Não é um evento explícito do sistema, mas é derivado da identificação de grandes intervalos de tempo entre confirmações de produção consecutivas. | ||
| Por que é importante Ajuda a monitorar interrupções não planejadas, como quebras de máquinas ou problemas de qualidade. Identificar paradas frequentes ou longas é a chave para melhorar a estabilidade e o rendimento do chão de fábrica. Onde obter Isso é calculado analisando os registros de data e hora de atividades consecutivas de 'Confirmação de Produção Inserida' da tabela AFRU. Um intervalo que excede um limite predefinido é sinalizado como uma parada não planejada. Captura Cálculo da diferença de tempo entre timestamps de confirmação consecutivos (AFRU-BUDAT/UZEIT). Tipo de evento calculated | |||
| Ordem de Produção Cancelada | Representa o cancelamento de uma ordem de produção antes de sua conclusão. Este é um estado final alternativo e mal-sucedido do processo. | ||
| Por que é importante Analisar ordens canceladas pode revelar falhas no planejamento de demanda, nos dados mestres ou no processo de vendas. Taxas de cancelamento elevadas costumam indicar problemas sistêmicos que precisam de atenção. Onde obter Isso é inferido pelo status do sistema CACL (Cancelamento) sendo definido na tabela JCDS. Alternativamente, um sinalizador de exclusão (AUFK-LOEKZ) também pode significar o cancelamento. Captura Registro de data e hora da mudança de status para 'CACL' no JCDS ou ativação do sinalizador de exclusão no AUFK. Tipo de evento inferred | |||
| Ordem Encerrada Financeiramente | A etapa final de fechamento, onde a ordem é liquidada e não são mais possíveis lançamentos financeiros. Isso marca o fim do ciclo de vida da ordem sob a perspectiva contábil e de controladoria. | ||
| Por que é importante Embora muitas vezes fora do escopo da análise de produção pura, esta atividade oferece uma visão completa de ponta a ponta. Ela ajuda a analisar o tempo entre a conclusão logística (TECO) e o encerramento financeiro. Onde obter Isso é acionado por um usuário que define o status como CLSD (Encerrado). O evento é capturado como uma mudança de status na tabela JCDS com um registro de data e hora correspondente. Captura Registro de data e hora da mudança de status para 'CLSD' na tabela JCDS. Tipo de evento inferred | |||
Guias de Extração
Etapas
- Verificação de Pré-requisitos: Certifique-se de que possui um usuário no SAP S/4HANA com autorizações adequadas para acessar as views de Core Data Services (CDS) necessárias. As views exigidas incluem
I_ProductionOrder,I_ProdOrdConfirmation,I_MaterialDocumentItem,I_ObjectStatuseI_ChangeDocument. Também é necessário acesso a um ambiente de execução SQL conectado ao banco de dados SAP HANA, como o SAP HANA Studio, DBeaver ou uma ferramenta de ETL externa. - Identificação dos Detalhes do Sistema: Defina o identificador do sistema de origem para o atributo
SourceSystem. Trata-se de um nome lógico para identificar a origem dos dados, por exemplo,S4H_PROD. - Definição dos Parâmetros de Extração: Antes de rodar a consulta, defina os parâmetros principais. Isso inclui as datas de início e término para o período de extração e filtros específicos, como
Plant(Centro) ouProductionOrderType, para limitar o escopo. - Preparação da Consulta SQL: Copie a consulta SQL completa fornecida na seção
querypara o seu cliente SQL ou ferramenta de extração de dados. - Configuração de Placeholders: Substitua os valores de placeholder na consulta pelos seus parâmetros específicos. Isso inclui
_StartDate,_EndDatee o identificador do sistema de origem. Ajuste o limite para o eventoUnplanned Halt Occurred(ex:'24:00:00') conforme o contexto do seu negócio. - Execução da Consulta de Extração: Execute o script SQL configurado no banco de dados do sistema SAP S/4HANA. Para grandes conjuntos de dados, considere executar a extração em partes menores, por exemplo, mês a mês, para evitar problemas de desempenho.
- Revisão Inicial dos Dados: Após a execução, faça uma revisão rápida dos resultados. Verifique a contagem de linhas, se todas as colunas estão presentes e se a coluna
Activitycontém os eventos esperados. - Validação de Dados: Siga as etapas descritas na seção
validationStepspara uma validação mais detalhada. Compare algumas ordens de produção com os detalhes no sistema SAP usando a transaçãoCO03para confirmar a precisão do log de eventos extraído. - Exportação para CSV: Exporte o resultado final para um arquivo CSV. Certifique-se de que a codificação do arquivo seja UTF-8 para evitar problemas de caracteres.
- Preparação para Upload: Confirme se os cabeçalhos das colunas no CSV correspondem aos nomes de atributos exigidos:
ProductionOrder,Activity,StartTime,SourceSystemeLastDataUpdate. Garanta que a colunaStartTimeesteja em um formato de timestamp padrão, como ISO 8601 (AAAA-MM-DDTHH:MM:SS), antes de carregar na ferramenta de Process Mining.
Configuração
- Views CDS Principais: A extração depende principalmente de um conjunto de views CDS padrão que oferecem uma visão estruturada e voltada ao negócio das tabelas SAP subjacentes. As views principais incluem:
I_ProductionOrder: Para dados de cabeçalho e eventos de criação.I_ProdOrdConfirmation: Para todas as confirmações de operação.I_MaterialDocumentItem: Para movimentos de mercadorias, como entradas e saídas.I_ObjectStatus: Para ler as mudanças de status da ordem de produção.I_ChangeDocumente views associadas: Para capturar alterações nos campos principais da ordem.
- Filtro de Intervalo de Datas: É fundamental aplicar um filtro de data para gerenciar o volume de dados. A consulta fornecida utiliza o
CreationDateda ordem de produção. Um intervalo comum para uma análise inicial é de 3 a 6 meses de dados. - Filtros de Negócio Essenciais: Para refinar o conjunto de dados, aplique filtros baseados em atributos organizacionais ou de dados mestres. Filtros comuns incluem:
Plant: Para analisar um centro de produção específico.ProductionOrderType: Para focar em produção padrão, retrabalho ou outros tipos de ordem.CompanyCode: Para restringir os dados a uma entidade legal específica.
- Limite de Parada Não Planejada: A consulta inclui uma lógica para derivar eventos de
Unplanned Halt Occurred. Essa lógica exige um limite de tempo para definir o que constitui um intervalo significativo entre as operações. Esse valor deve ser configurado com base nos tempos de ciclo de produção típicos e nas regras de negócio. - Pré-requisitos de Autorização: O usuário SAP que executa a consulta deve ter autorização de exibição para todas as views CDS e suas tabelas subjacentes. A falta de autorizações resultará em um conjunto de resultados vazio ou incompleto.
a Consulta de Exemplo sql
WITH BaseOrders AS (
SELECT
ProductionOrder,
Material AS MaterialNumber,
ProductionPlant AS Plant,
CreationDate,
CreationTime,
BasicEndDate AS PlannedEndDate,
TechnicalCompletionDate,
LastChangeDateTime
FROM I_ProductionOrder
-- P_CreationDateFrom and P_CreationDateTo are placeholders for your date range
WHERE CreationDate BETWEEN '[_StartDate]' AND '[_EndDate]'
-- Add other filters as needed, for example:
-- AND ProductionPlant IN ('[Your_Plant_1]', '[Your_Plant_2]')
-- AND ProductionOrderType = '[Your_Order_Type]'
)
SELECT
bo.ProductionOrder,
'Production Order Created' AS Activity,
TO_TIMESTAMP(bo.CreationDate || ' ' || LPAD(bo.CreationTime, 6, '0'), 'YYYYMMDD HH24MISS') AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
'CRTD' AS OrderStatus
FROM BaseOrders bo
UNION ALL
-- System status changes like Released, Technically Completed, Closed, Cancelled, Material Shortage
SELECT
os.ObjectInternalID AS ProductionOrder,
CASE os.SystemStatus
WHEN 'I0002' THEN 'Production Order Released'
WHEN 'I0043' THEN 'Material Availability Checked' -- Status: MACM (Material committed)
WHEN 'I0045' THEN 'Order Technically Completed'
WHEN 'I0046' THEN 'Order Financially Closed'
WHEN 'I0047' THEN 'Production Order Cancelled'
WHEN 'I0010' THEN 'Material Shortage Occurred' -- Status: MSPT (Material shortage)
END AS Activity,
os.StatusChangeDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
os.SystemStatus AS OrderStatus
FROM I_ObjectStatus AS os
JOIN BaseOrders AS bo ON os.ObjectInternalID = bo.ProductionOrder
WHERE os.SystemStatus IN ('I0002', 'I0043', 'I0045', 'I0046', 'I0047', 'I0010') AND os.StatusIsInactive = ''
UNION ALL
-- Production Started, inferred from the first goods issue or first confirmation
SELECT
s.ProductionOrder,
'Production Started' AS Activity,
s.StartEventTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
s.MaterialNumber,
s.Plant,
NULL AS WorkCenter,
s.PlannedEndDate,
NULL AS OrderStatus
FROM (
SELECT
bo.ProductionOrder,
bo.MaterialNumber,
bo.Plant,
bo.PlannedEndDate,
MIN(COALESCE(gm.PostingTime, cf.ConfirmationDateTime)) AS StartEventTime,
ROW_NUMBER() OVER(PARTITION BY bo.ProductionOrder ORDER BY MIN(COALESCE(gm.PostingTime, cf.ConfirmationDateTime))) as rn
FROM BaseOrders bo
LEFT JOIN I_MaterialDocumentItem gm ON bo.ProductionOrder = gm.ProductionOrder AND gm.GoodsMovementType IN ('261', '262') -- Goods Issue
LEFT JOIN I_ProdOrdConfirmation cf ON bo.ProductionOrder = cf.ProductionOrder
WHERE gm.ProductionOrder IS NOT NULL OR cf.ProductionOrder IS NOT NULL
GROUP BY bo.ProductionOrder, bo.MaterialNumber, bo.Plant, bo.PlannedEndDate
) s
WHERE s.rn = 1
UNION ALL
-- Production Confirmation Entered (for each confirmation)
SELECT
cf.ProductionOrder,
'Production Confirmation Entered' AS Activity,
cf.ConfirmationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
cf.WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
UNION ALL
-- Final Confirmation Entered
SELECT
cf.ProductionOrder,
'Final Confirmation Entered' AS Activity,
cf.ConfirmationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
cf.WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
WHERE cf.IsFinalConfirmation = 'X'
UNION ALL
-- Unplanned Halt Occurred (derived from gaps between confirmations)
SELECT
ProductionOrder,
'Unplanned Halt Occurred' AS Activity,
PreviousConfirmationTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
MaterialNumber,
Plant,
WorkCenter,
PlannedEndDate,
NULL AS OrderStatus
FROM (
SELECT
cf.ProductionOrder,
bo.MaterialNumber,
bo.Plant,
bo.PlannedEndDate,
cf.WorkCenter,
cf.ConfirmationDateTime,
LAG(cf.ConfirmationDateTime, 1) OVER (PARTITION BY cf.ProductionOrder ORDER BY cf.ConfirmationDateTime) AS PreviousConfirmationTime,
(SECONDS_BETWEEN(LAG(cf.ConfirmationDateTime, 1) OVER (PARTITION BY cf.ProductionOrder ORDER BY cf.ConfirmationDateTime), cf.ConfirmationDateTime) / 3600.0) as HoursDiff
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
) AS gaps
WHERE gaps.HoursDiff > 24 -- Configurable threshold in hours, e.g. 24 hours
UNION ALL
-- Goods Receipt Posted
SELECT
gm.ProductionOrder,
'Goods Receipt Posted' AS Activity,
gm.PostingTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_MaterialDocumentItem gm
JOIN BaseOrders bo ON gm.ProductionOrder = bo.ProductionOrder
WHERE gm.GoodsMovementType = '101'
UNION ALL
-- Capacity Requirements Planned (using Release event as a proxy)
SELECT
os.ObjectInternalID AS ProductionOrder,
'Capacity Requirements Planned' AS Activity,
os.StatusChangeDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
os.SystemStatus AS OrderStatus
FROM I_ObjectStatus AS os
JOIN BaseOrders AS bo ON os.ObjectInternalID = bo.ProductionOrder
WHERE os.SystemStatus = 'I0002' AND os.StatusIsInactive = '' -- Status 'REL' (Released)
UNION ALL
-- Production Plan Adjusted
SELECT
ch.ObjectValue AS ProductionOrder,
'Production Plan Adjusted' AS Activity,
ch.CreationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL as WorkCenter,
bo.PlannedEndDate,
NULL as OrderStatus
FROM I_ChangeDocument AS ch
JOIN BaseOrders bo ON ch.ObjectValue = bo.ProductionOrder
WHERE ch.ChangeDocumentObject = 'PRODORDER'
-- Monitoring changes in key fields like Total Quantity (GAMNG) or Basic Finish Date (GLTRP)
AND ch.FieldName IN ('GAMNG', 'GLTRP')
GROUP BY ch.ObjectValue, ch.CreationDateTime, bo.MaterialNumber, bo.Plant, bo.PlannedEndDate Etapas
- Verificação de Pré-requisitos: Certifique-se de que possui um usuário no SAP S/4HANA com autorizações adequadas para acessar as views de Core Data Services (CDS) necessárias. As views exigidas incluem
I_ProductionOrder,I_ProdOrdConfirmation,I_MaterialDocumentItem,I_ObjectStatuseI_ChangeDocument. Também é necessário acesso a um ambiente de execução SQL conectado ao banco de dados SAP HANA, como o SAP HANA Studio, DBeaver ou uma ferramenta de ETL externa. - Identificação dos Detalhes do Sistema: Defina o identificador do sistema de origem para o atributo
SourceSystem. Trata-se de um nome lógico para identificar a origem dos dados, por exemplo,S4H_PROD. - Definição dos Parâmetros de Extração: Antes de rodar a consulta, defina os parâmetros principais. Isso inclui as datas de início e término para o período de extração e filtros específicos, como
Plant(Centro) ouProductionOrderType, para limitar o escopo. - Preparação da Consulta SQL: Copie a consulta SQL completa fornecida na seção
querypara o seu cliente SQL ou ferramenta de extração de dados. - Configuração de Placeholders: Substitua os valores de placeholder na consulta pelos seus parâmetros específicos. Isso inclui
_StartDate,_EndDatee o identificador do sistema de origem. Ajuste o limite para o eventoUnplanned Halt Occurred(ex:'24:00:00') conforme o contexto do seu negócio. - Execução da Consulta de Extração: Execute o script SQL configurado no banco de dados do sistema SAP S/4HANA. Para grandes conjuntos de dados, considere executar a extração em partes menores, por exemplo, mês a mês, para evitar problemas de desempenho.
- Revisão Inicial dos Dados: Após a execução, faça uma revisão rápida dos resultados. Verifique a contagem de linhas, se todas as colunas estão presentes e se a coluna
Activitycontém os eventos esperados. - Validação de Dados: Siga as etapas descritas na seção
validationStepspara uma validação mais detalhada. Compare algumas ordens de produção com os detalhes no sistema SAP usando a transaçãoCO03para confirmar a precisão do log de eventos extraído. - Exportação para CSV: Exporte o resultado final para um arquivo CSV. Certifique-se de que a codificação do arquivo seja UTF-8 para evitar problemas de caracteres.
- Preparação para Upload: Confirme se os cabeçalhos das colunas no CSV correspondem aos nomes de atributos exigidos:
ProductionOrder,Activity,StartTime,SourceSystemeLastDataUpdate. Garanta que a colunaStartTimeesteja em um formato de timestamp padrão, como ISO 8601 (AAAA-MM-DDTHH:MM:SS), antes de carregar na ferramenta de Process Mining.
Configuração
- Views CDS Principais: A extração depende principalmente de um conjunto de views CDS padrão que oferecem uma visão estruturada e voltada ao negócio das tabelas SAP subjacentes. As views principais incluem:
I_ProductionOrder: Para dados de cabeçalho e eventos de criação.I_ProdOrdConfirmation: Para todas as confirmações de operação.I_MaterialDocumentItem: Para movimentos de mercadorias, como entradas e saídas.I_ObjectStatus: Para ler as mudanças de status da ordem de produção.I_ChangeDocumente views associadas: Para capturar alterações nos campos principais da ordem.
- Filtro de Intervalo de Datas: É fundamental aplicar um filtro de data para gerenciar o volume de dados. A consulta fornecida utiliza o
CreationDateda ordem de produção. Um intervalo comum para uma análise inicial é de 3 a 6 meses de dados. - Filtros de Negócio Essenciais: Para refinar o conjunto de dados, aplique filtros baseados em atributos organizacionais ou de dados mestres. Filtros comuns incluem:
Plant: Para analisar um centro de produção específico.ProductionOrderType: Para focar em produção padrão, retrabalho ou outros tipos de ordem.CompanyCode: Para restringir os dados a uma entidade legal específica.
- Limite de Parada Não Planejada: A consulta inclui uma lógica para derivar eventos de
Unplanned Halt Occurred. Essa lógica exige um limite de tempo para definir o que constitui um intervalo significativo entre as operações. Esse valor deve ser configurado com base nos tempos de ciclo de produção típicos e nas regras de negócio. - Pré-requisitos de Autorização: O usuário SAP que executa a consulta deve ter autorização de exibição para todas as views CDS e suas tabelas subjacentes. A falta de autorizações resultará em um conjunto de resultados vazio ou incompleto.
a Consulta de Exemplo sql
WITH BaseOrders AS (
SELECT
ProductionOrder,
Material AS MaterialNumber,
ProductionPlant AS Plant,
CreationDate,
CreationTime,
BasicEndDate AS PlannedEndDate,
TechnicalCompletionDate,
LastChangeDateTime
FROM I_ProductionOrder
-- P_CreationDateFrom and P_CreationDateTo are placeholders for your date range
WHERE CreationDate BETWEEN '[_StartDate]' AND '[_EndDate]'
-- Add other filters as needed, for example:
-- AND ProductionPlant IN ('[Your_Plant_1]', '[Your_Plant_2]')
-- AND ProductionOrderType = '[Your_Order_Type]'
)
SELECT
bo.ProductionOrder,
'Production Order Created' AS Activity,
TO_TIMESTAMP(bo.CreationDate || ' ' || LPAD(bo.CreationTime, 6, '0'), 'YYYYMMDD HH24MISS') AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
'CRTD' AS OrderStatus
FROM BaseOrders bo
UNION ALL
-- System status changes like Released, Technically Completed, Closed, Cancelled, Material Shortage
SELECT
os.ObjectInternalID AS ProductionOrder,
CASE os.SystemStatus
WHEN 'I0002' THEN 'Production Order Released'
WHEN 'I0043' THEN 'Material Availability Checked' -- Status: MACM (Material committed)
WHEN 'I0045' THEN 'Order Technically Completed'
WHEN 'I0046' THEN 'Order Financially Closed'
WHEN 'I0047' THEN 'Production Order Cancelled'
WHEN 'I0010' THEN 'Material Shortage Occurred' -- Status: MSPT (Material shortage)
END AS Activity,
os.StatusChangeDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
os.SystemStatus AS OrderStatus
FROM I_ObjectStatus AS os
JOIN BaseOrders AS bo ON os.ObjectInternalID = bo.ProductionOrder
WHERE os.SystemStatus IN ('I0002', 'I0043', 'I0045', 'I0046', 'I0047', 'I0010') AND os.StatusIsInactive = ''
UNION ALL
-- Production Started, inferred from the first goods issue or first confirmation
SELECT
s.ProductionOrder,
'Production Started' AS Activity,
s.StartEventTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
s.MaterialNumber,
s.Plant,
NULL AS WorkCenter,
s.PlannedEndDate,
NULL AS OrderStatus
FROM (
SELECT
bo.ProductionOrder,
bo.MaterialNumber,
bo.Plant,
bo.PlannedEndDate,
MIN(COALESCE(gm.PostingTime, cf.ConfirmationDateTime)) AS StartEventTime,
ROW_NUMBER() OVER(PARTITION BY bo.ProductionOrder ORDER BY MIN(COALESCE(gm.PostingTime, cf.ConfirmationDateTime))) as rn
FROM BaseOrders bo
LEFT JOIN I_MaterialDocumentItem gm ON bo.ProductionOrder = gm.ProductionOrder AND gm.GoodsMovementType IN ('261', '262') -- Goods Issue
LEFT JOIN I_ProdOrdConfirmation cf ON bo.ProductionOrder = cf.ProductionOrder
WHERE gm.ProductionOrder IS NOT NULL OR cf.ProductionOrder IS NOT NULL
GROUP BY bo.ProductionOrder, bo.MaterialNumber, bo.Plant, bo.PlannedEndDate
) s
WHERE s.rn = 1
UNION ALL
-- Production Confirmation Entered (for each confirmation)
SELECT
cf.ProductionOrder,
'Production Confirmation Entered' AS Activity,
cf.ConfirmationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
cf.WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
UNION ALL
-- Final Confirmation Entered
SELECT
cf.ProductionOrder,
'Final Confirmation Entered' AS Activity,
cf.ConfirmationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
cf.WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
WHERE cf.IsFinalConfirmation = 'X'
UNION ALL
-- Unplanned Halt Occurred (derived from gaps between confirmations)
SELECT
ProductionOrder,
'Unplanned Halt Occurred' AS Activity,
PreviousConfirmationTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
MaterialNumber,
Plant,
WorkCenter,
PlannedEndDate,
NULL AS OrderStatus
FROM (
SELECT
cf.ProductionOrder,
bo.MaterialNumber,
bo.Plant,
bo.PlannedEndDate,
cf.WorkCenter,
cf.ConfirmationDateTime,
LAG(cf.ConfirmationDateTime, 1) OVER (PARTITION BY cf.ProductionOrder ORDER BY cf.ConfirmationDateTime) AS PreviousConfirmationTime,
(SECONDS_BETWEEN(LAG(cf.ConfirmationDateTime, 1) OVER (PARTITION BY cf.ProductionOrder ORDER BY cf.ConfirmationDateTime), cf.ConfirmationDateTime) / 3600.0) as HoursDiff
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
) AS gaps
WHERE gaps.HoursDiff > 24 -- Configurable threshold in hours, e.g. 24 hours
UNION ALL
-- Goods Receipt Posted
SELECT
gm.ProductionOrder,
'Goods Receipt Posted' AS Activity,
gm.PostingTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_MaterialDocumentItem gm
JOIN BaseOrders bo ON gm.ProductionOrder = bo.ProductionOrder
WHERE gm.GoodsMovementType = '101'
UNION ALL
-- Capacity Requirements Planned (using Release event as a proxy)
SELECT
os.ObjectInternalID AS ProductionOrder,
'Capacity Requirements Planned' AS Activity,
os.StatusChangeDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
os.SystemStatus AS OrderStatus
FROM I_ObjectStatus AS os
JOIN BaseOrders AS bo ON os.ObjectInternalID = bo.ProductionOrder
WHERE os.SystemStatus = 'I0002' AND os.StatusIsInactive = '' -- Status 'REL' (Released)
UNION ALL
-- Production Plan Adjusted
SELECT
ch.ObjectValue AS ProductionOrder,
'Production Plan Adjusted' AS Activity,
ch.CreationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL as WorkCenter,
bo.PlannedEndDate,
NULL as OrderStatus
FROM I_ChangeDocument AS ch
JOIN BaseOrders bo ON ch.ObjectValue = bo.ProductionOrder
WHERE ch.ChangeDocumentObject = 'PRODORDER'
-- Monitoring changes in key fields like Total Quantity (GAMNG) or Basic Finish Date (GLTRP)
AND ch.FieldName IN ('GAMNG', 'GLTRP')
GROUP BY ch.ObjectValue, ch.CreationDateTime, bo.MaterialNumber, bo.Plant, bo.PlannedEndDate