Seu Template de dados de gestão de armazéns
Seu Template de dados de gestão de armazéns
- Atributos recomendados para uma análise completa
- Principais atividades para acompanhar em todo o processo
- Orientações para extrair dados do SAP EWM
Atributos da gestão de armazém
| Nome | Descrição | ||
|---|---|---|---|
| Ordem do armazém WarehouseOrder | O identificador exclusivo de uma Warehouse Order, que agrupa um conjunto de Warehouse Tasks a serem executadas por um recurso. | ||
| Descrição A Warehouse Order funciona como o principal identificador de caso para acompanhar o processo completo de movimentação de mercadorias dentro do armazém. Ela representa um pacote de trabalho, como separar itens para uma Outbound Delivery ou armazenar mercadorias recebidas. Cada Warehouse Order contém uma ou mais Warehouse Tasks. No Process Mining, analisar por Warehouse Order permite ter uma visão abrangente de todo o ciclo de vida de um pacote de trabalho específico. Isso ajuda a identificar gargalos, medir os tempos de ciclo gerais desde a criação até a conclusão e entender o fluxo completo de atividades associado a uma única instrução logística. Por que isso importa Este é o identificador central que conecta todas as atividades relacionadas do armazém, permitindo analisar o processo de ponta a ponta e medir o tempo de ciclo de uma única unidade de trabalho. Onde obter Esse identificador normalmente é encontrado na tabela de cabeçalho de Warehouse Orders do SAP EWM, como a /SCWM/WHO. Exemplos 200000145200000146200000147 | |||
| Hora de início EventTime | O registro de data e hora que indica quando a atividade ou o evento começou. | ||
| Descrição Este atributo registra a data e a hora exatas em que uma atividade específica do armazém ocorreu. É o principal elemento temporal usado para ordenar eventos e calcular as durações entre eles. No Process Mining, a hora de início é essencial para construir a sequência cronológica de eventos de cada caso. Ela é usada para calcular tempos de ciclo, tempos de espera e tempos de processamento, que são fundamentais para a análise de performance, a identificação de gargalos e o monitoramento de SLA. Por que isso importa Este registro de data e hora é essencial para ordenar cronologicamente os eventos e calcular todas as métricas de performance baseadas em tempo, como tempos de ciclo e durações. Onde obter Normalmente encontrado em tabelas de eventos ou confirmações, como /SCWM/ORDIM_C, por exemplo, no campo CONF_TIMESTAMP, ou em logs de alterações de status associados a Warehouse Orders e Warehouse Tasks. Exemplos 2023-10-26T10:00:00Z2023-10-26T10:15:30Z2023-10-26T11:20:00Z | |||
| Nome da atividade ActivityName | O nome da atividade ou do evento específico de gestão do armazém que ocorreu, como 'Picking Task Created' ou 'Goods Issue Posted'. | ||
| Descrição Este atributo descreve uma única etapa ou evento dentro do processo de gestão do armazém. Essas atividades são os blocos de construção do mapa de processo, representando tarefas como criação, confirmação, packing, carregamento e movimentações de mercadorias. Analisar a sequência e a frequência dessas atividades é fundamental para o Process Mining. Isso ajuda a visualizar o fluxo do processo, identificar caminhos comuns e raros, detectar desvios do procedimento padrão e localizar etapas específicas que estão causando atrasos ou retrabalho. Por que isso importa Define as etapas do processo, formando a base do mapa de processo e permitindo analisar o fluxo, os desvios e os gargalos. Onde obter Derivado de mudanças de status, mensagens de eventos ou logs de transações relacionados a Warehouse Orders e Warehouse Tasks em tabelas como /SCWM/ORDIM_C (Confirmações), ou pela interpretação dos campos de status em /SCWM/WHO e /SCWM/ORDIM_O. Exemplos Tarefa de picking confirmadaTarefa de putaway criadaRecebimento de mercadorias lançadoWarehouse Order concluída | |||
| Sistema de origem SourceSystem | Identifica o sistema de origem do qual os dados foram extraídos, por exemplo, a instância de produção do SAP EWM. | ||
| Descrição Este atributo especifica o sistema oficial de registro onde os dados de gestão do armazém se originam. Em um ambiente corporativo com vários sistemas, é fundamental identificar a origem dos dados para garantir rastreabilidade e contexto. Na análise, isso ajuda a diferenciar processos que podem abranger vários sistemas ou permite comparar processos de diferentes instâncias, como sistemas separados para diferentes regiões. Assim, a linhagem dos dados fica clara e auditável. Por que isso importa Fornece rastreabilidade e contexto, especialmente em ambientes com várias instâncias SAP ou sistemas integrados, garantindo que a linhagem dos dados fique clara. Onde obter Normalmente, é um valor estático adicionado durante o processo de extração, transformação e carregamento (ETL) dos dados, identificando a instância específica do SAP S/4HANA ou EWM. Exemplos SAP_EWM_PROD_EUS4H_US_100EWM_APAC_PRD | |||
| Última atualização dos dados LastDataUpdate | O registro de data e hora que indica a última vez que os dados deste registro foram atualizados a partir do sistema de origem. | ||
| Descrição Este atributo registra quando os dados foram extraídos pela última vez do sistema de origem. Ele fornece um contexto importante sobre a atualidade dos dados analisados. Em qualquer análise ou Dashboard, saber quando os dados foram atualizados é essencial para tomar decisões bem fundamentadas. Esse registro de data e hora ajuda os usuários a entender se estão consultando informações em tempo real ou um retrato de um momento específico, alinhando as expectativas sobre a atualização dos dados. Por que isso importa Indica a atualidade dos dados, o que é fundamental para que os usuários entendam quão atual é sua análise do processo. Onde obter Este é um campo de metadados normalmente gerado e adicionado durante o processo de extração (ETL) dos dados. Ele reflete o registro de data e hora da carga de dados. Exemplos 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
| Hora de término EventEndTime | O registro de data e hora que indica quando uma atividade ou evento foi concluído. | ||
| Descrição Este atributo registra a data e a hora em que uma atividade específica do armazém terminou. Muitas vezes, é igual à hora de início em eventos atômicos, mas pode ser diferente em atividades com duração mensurável, como packing ou carregamento. Ter uma hora de término distinta permite calcular com precisão o tempo de processamento de atividades individuais. Isso é fundamental para Dashboards de performance que analisam a duração de etapas específicas, como 'Eficiência de picking e packing', ajudando a identificar quais tarefas consomem mais tempo. Por que isso importa Permite calcular com precisão a duração de atividades individuais, o que é essencial para identificar etapas demoradas e tarefas que exigem muitos recursos. Onde obter Frequentemente é igual ao registro de data e hora de início em eventos discretos. Para tarefas de longa duração, pode ser um campo separado em tabelas como /SCWM/ORDIM_C ou ser derivado de uma mudança de status posterior. Exemplos 2023-10-26T10:05:00Z2023-10-26T10:25:45Z2023-10-26T11:20:00Z | |||
| ID do usuário User | O identificador do operador ou usuário do armazém que confirmou ou executou a atividade. | ||
| Descrição Este atributo registra o ID do usuário responsável por executar uma Warehouse Task. Pode ser o operador que confirmou um picking, o funcionário da estação de packing ou o operador de empilhadeira que confirmou um putaway. Esses dados são essenciais para o Dashboard de 'Utilização de recursos e equipamentos'. Eles permitem analisar a performance individual ou da equipe, identificar necessidades de treinamento e distribuir melhor as cargas de trabalho entre os funcionários do armazém. Por que isso importa Vincula o trabalho a uma pessoa específica, permitindo analisar a performance por usuário ou equipe e apoiando a gestão de recursos e o balanceamento da carga de trabalho. Onde obter Normalmente encontrado nos dados de confirmação de uma Warehouse Task, por exemplo, na tabela /SCWM/ORDIM_C, no campo UNAME. Exemplos JSMITHARODRIGUEZOPERATOR_05 | |||
| Número do material MaterialNumber | O identificador exclusivo do produto ou material movimentado na Warehouse Task. | ||
| Descrição Este atributo especifica o material que está sendo movimentado, separado, embalado ou recebido. É uma dimensão importante para segmentar e analisar a performance do armazém com base nas características dos produtos. Analisar por número do material ajuda a responder perguntas como quais produtos têm os maiores tempos de putaway, quais aparecem com mais frequência em erros de picking ou quais exigem inspeções de qualidade. Isso é essencial para os Dashboards de 'Performance de recebimento e putaway' e 'Lead time de inspeção de qualidade'. Por que isso importa Permite filtrar e segmentar os dados do processo por produto, o que é fundamental para identificar problemas específicos de manuseio, armazenagem ou controle de qualidade. Onde obter Essas informações normalmente estão disponíveis em tabelas de Warehouse Tasks, como /SCWM/ORDIM_O, vinculadas aos dados mestres de materiais. Exemplos FIN-1001RAW-2050SFIN-300-A | |||
| Prioridade Priority | O nível de prioridade atribuído ao pedido de armazém, indicando sua urgência, como Alta, Média ou Baixa. | ||
| Descrição Este atributo classifica os pedidos de armazém com base em sua importância ou urgência para o negócio. Pedidos de alta prioridade, por exemplo, podem estar relacionados a remessas expressas ou ao abastecimento crítico da produção e exigir processamento acelerado. A prioridade é uma dimensão importante para o Dashboard e o KPI “Aderência ao Atendimento de Pedidos Prioritários”. Ela permite filtrar e segmentar a performance para garantir que os pedidos mais críticos sejam processados dentro dos prazos esperados, alinhando as operações do armazém aos objetivos do negócio. Por que isso importa Permite priorizar a análise e o monitoramento para garantir que os pedidos urgentes cumpram seus níveis de serviço, impactando diretamente a satisfação dos clientes. Onde obter A prioridade pode ser definida no documento de entrega de origem e transferida para o pedido de armazém. Ela pode ser encontrada em tabelas como /SCWM/WHO. Exemplos AltaMédiaBaixa | |||
| Status da Warehouse Order WarehouseOrderStatus | O status atual ou final da Warehouse Order, como 'Completed' ou 'Canceled'. | ||
| Descrição Este atributo indica o resultado final de uma Warehouse Order. Entender se um pedido foi concluído com sucesso ou cancelado é fundamental para analisar as taxas de sucesso do processo e identificar os motivos da não conclusão. Este é um filtro importante para muitas análises. Por exemplo, ao calcular o tempo de ciclo do armazém de ponta a ponta, a análise normalmente considera apenas pedidos concluídos. Ele também ajuda a identificar e investigar a frequência e as causas dos pedidos cancelados. Por que isso importa Indica o resultado de um caso, permitindo filtrar pedidos concluídos e cancelados, o que é fundamental para uma análise precisa de tempo de ciclo e throughput. Onde obter O campo de status normalmente está localizado na tabela de cabeçalho da Warehouse Order, /SCWM/WHO. Exemplos ConcluídoEm andamentoCancelado | |||
| Tipo de Warehouse Order WarehouseOrderType | Classifica a Warehouse Order de acordo com sua finalidade, como Putaway, Picking ou Reabastecimento interno. | ||
| Descrição O tipo de Warehouse Order categoriza os pedidos com base na função logística que desempenham. Essa distinção é fundamental porque diferentes tipos de pedidos seguem caminhos de processo distintos e têm expectativas de performance diferentes. Na análise, esse atributo é uma dimensão principal para filtragem e comparação. Por exemplo, o Dashboard de 'Throughput e volume de Warehouse Orders' usa essa dimensão para segmentar a performance dos processos de entrada (Putaway) e saída (Picking), oferecendo uma visão mais relevante das operações do armazém. Por que isso importa Permite segmentar a análise com base na categoria do processo, como entrada versus saída, possibilitando comparações e insights mais relevantes. Onde obter É determinado pelo tipo de processo do armazém e geralmente é encontrado na tabela de cabeçalho da Warehouse Order, /SCWM/WHO. Exemplos PICKPUTWREPLSTGE | |||
| Data solicitada de conclusão RequestedCompletionDate | A data até a qual se solicita a conclusão de um pedido de armazém de alta prioridade. | ||
| Descrição Este atributo define o acordo de nível de serviço (SLA) ou a data-alvo de conclusão de um pedido de armazém. É o prazo usado para comparar o tempo real de conclusão e determinar se o pedido foi atendido no prazo. Essa data é essencial para calcular o KPI “Taxa de Atendimento de Pedidos Prioritários”. Ao comparar o timestamp real de conclusão com essa data solicitada, a análise pode medir a aderência aos níveis de serviço e destacar pedidos com risco de atraso ou que já estejam atrasados. Por que isso importa Define o SLA de um pedido e serve como referência para medir a performance de atendimento no prazo, especialmente para itens de alta prioridade. Onde obter Essa data geralmente é derivada da data planejada de saída de mercadorias ou da data de entrega no pedido de entrega de saída que acionou o pedido de armazém. Consulte a documentação do SAP Extended Warehouse Management. Exemplos 2023-10-27T17:00:00Z2023-10-28T12:00:00Z | |||
| Equipamento utilizado EquipmentUsed | O identificador do equipamento, como uma empilhadeira ou uma paleteira, usado para executar a tarefa de armazém. | ||
| Descrição Este atributo especifica o equipamento de movimentação de materiais atribuído ou utilizado em uma tarefa de armazém. Pode ser uma empilhadeira específica, um veículo guiado automaticamente (AGV) ou um tipo específico de carrinho. Esses dados são a base do Dashboard “Utilização de Recursos e Equipamentos” e do KPI “Taxa de Utilização de Equipamentos”. Ao acompanhar qual equipamento é usado em cada tarefa e por quanto tempo, os gestores podem analisar padrões de utilização, programar manutenções e tomar decisões mais informadas sobre o tamanho e a composição da frota. Por que isso importa Permite analisar a utilização e a eficiência dos equipamentos, ajudando a otimizar a gestão da frota e identificar restrições de recursos. Onde obter Essas informações podem ser armazenadas nos detalhes da tarefa ou do pedido de armazém quando a gestão de recursos está configurada no SAP EWM. Consulte a documentação do SAP Extended Warehouse Management. Exemplos FORKLIFT-07AGV-02CART-15 | |||
| Está no prazo IsOnTime | Um indicador booleano que informa se um pedido de armazém foi concluído até a data solicitada de conclusão. | ||
| Descrição Este indicador fornece um resultado binário simples sobre a aderência ao SLA. Ele verifica se o evento final de conclusão de um pedido de armazém ocorreu na data solicitada de conclusão ou antes dela. Este atributo é essencial para o Dashboard “Aderência ao Atendimento de Pedidos Prioritários”. Ele simplifica a criação de KPIs e visualizações ao permitir contar e filtrar facilmente pedidos concluídos no prazo e pedidos atrasados. Assim, fica mais fácil avaliar rapidamente a performance em relação às metas de nível de serviço sem cálculos complexos de datas na camada de análise. Por que isso importa Simplifica a análise da performance do SLA ao fornecer um indicador claro e binário de atendimento no prazo ou em atraso para cada pedido. Onde obter Este é um atributo calculado. A lógica compara o timestamp da atividade “Pedido de Armazém Concluído” com o atributo “RequestedCompletionDate”. Exemplos truefalse | |||
| Horário planejado de saída PlannedDepartureTime | O horário programado para a remessa sair do armazém. | ||
| Descrição Este atributo representa o horário-alvo para expedir uma remessa depois que todas as atividades de picking, embalagem e carregamento forem concluídas. Ele serve como referência para medir a performance no prazo da etapa final do processo de saída. Esse timestamp é essencial para o Dashboard “Performance de Expedição de Remessas no Prazo”. Ao comparar o horário real de expedição com o horário planejado, a análise pode identificar atrasos no carregamento, na coordenação com a transportadora ou na documentação, gerando insights sobre a eficiência do planejamento logístico e de transporte. Por que isso importa Fornece a referência para medir a performance de expedição no prazo, um fator importante para o planejamento logístico e o cumprimento dos horários das transportadoras. Onde obter Essas informações normalmente fazem parte do documento de transporte ou de remessa vinculado aos pedidos de armazém. Consulte a documentação do SAP Extended Warehouse Management. Exemplos 2023-10-27T18:00:00Z2023-10-28T14:00:00Z | |||
| Local de armazenagem StorageLocation | O local específico dentro do armazém, como um endereço de armazenagem, para onde as mercadorias são movimentadas ou de onde são retiradas. | ||
| Descrição Este atributo identifica o local físico envolvido em uma tarefa de armazém, como o endereço de origem para picking ou o endereço de destino para putaway. Ele pode representar desde uma área ampla até uma coordenada específica de prateleira. A análise por local de armazenamento pode revelar insights operacionais, como a identificação de “zonas de ouro” com altas taxas de picking ou de áreas problemáticas com atrasos ou erros frequentes. Ela também pode ser usada na análise de “Aderência à Rota de Picking” para entender os deslocamentos dos operadores pelo armazém. Por que isso importa Fornece contexto geográfico dentro do armazém, permitindo analisar a eficiência dos deslocamentos, a acessibilidade dos endereços e a otimização das rotas de picking. Onde obter Normalmente encontrado em tabelas de tarefas de armazém, como /SCWM/ORDIM_O, contendo informações sobre os endereços de origem (VLPLA) e de destino (NLPLA). Exemplos 01-02-03PACK-STATION-01GI-ZONE-A | |||
| Quantidade planejada PlannedQuantity | A quantidade esperada de um material para uma determinada Warehouse Task. | ||
| Descrição Este atributo representa a quantidade-alvo de um material que deve ser movimentada, separada ou recebida conforme a instrução da Warehouse Task. É a referência usada para comparar a quantidade realmente executada. A quantidade planejada é essencial para o Dashboard de 'Análise de divergências de estoque' e para o KPI de 'Taxa de precisão do estoque'. Ao compará-la com a quantidade real, o sistema consegue identificar divergências que podem indicar erros de picking, falhas no recebimento ou problemas de entrada de dados, ajudando a melhorar a precisão do estoque. Por que isso importa Serve como referência para calcular a precisão do estoque e identificar divergências, o que é fundamental para manter os níveis corretos de estoque. Onde obter Encontrada nos dados da Warehouse Task, por exemplo, na tabela /SCWM/ORDIM_O, geralmente em um campo como NISTA (Quantidade-alvo). Exemplos 10050250 | |||
| Quantidade real ActualQuantity | A quantidade real de um material confirmada pelo usuário para uma Warehouse Task. | ||
| Descrição Este atributo representa a quantidade que foi manuseada fisicamente e confirmada pelo operador do armazém. Pode ser a quantidade retirada de um endereço, armazenada ou contada durante o recebimento de mercadorias. Comparar a quantidade real com a quantidade planejada é fundamental para a 'Análise de divergências de estoque'. Uma variação entre os dois valores destaca diretamente uma exceção do processo que precisa ser investigada. Essa é uma medida direta da precisão operacional e uma entrada importante para os KPIs de 'Taxa de precisão do estoque' e 'Taxa de erros de picking'. Por que isso importa É a referência do que foi manuseado fisicamente. Compará-la com a quantidade planejada mede diretamente a precisão operacional e identifica erros. Onde obter Encontrada nos dados de confirmação da Warehouse Task, por exemplo, na tabela /SCWM/ORDIM_C, geralmente em um campo como NDIFF (Quantidade da diferença) ou derivada das quantidades confirmadas. Exemplos 10049250 | |||
| Tarefa do armazém WarehouseTask | O identificador exclusivo de uma única Warehouse Task, que é um componente de uma Warehouse Order. | ||
| Descrição Uma Warehouse Task é a instrução para executar uma movimentação específica de mercadorias, como mover um produto de um endereço de armazenagem para uma estação de packing. Uma Warehouse Order agrupa uma ou mais dessas tarefas. Analisar no nível da tarefa oferece uma visão mais detalhada das operações do armazém. Isso ajuda a entender a performance dos recursos em movimentações específicas, identificar endereços de armazenagem de difícil acesso ou analisar a eficiência de atividades individuais de picking ou putaway. Por que isso importa Fornece um nível detalhado de análise, permitindo examinar movimentações e etapas individuais dentro de uma Warehouse Order maior. Onde obter Encontrado em tabelas de Warehouse Tasks, como /SCWM/ORDIM_O (Dados da tarefa) e /SCWM/ORDIM_C (Dados de confirmação). Exemplos 300000451300000452300000453 | |||
| Tempo de ciclo de ponta a ponta EndToEndCycleTime | O tempo total decorrido entre a criação do pedido de armazém e sua conclusão final. | ||
| Descrição Este KPI mede toda a duração do ciclo de vida de um pedido de armazém. É um indicador estratégico da eficiência e da velocidade geral das operações do armazém. Essa métrica é a base do Dashboard “Tempo de Ciclo de Armazém de Ponta a Ponta”. Acompanhar esse KPI ao longo do tempo e segmentá-lo por dimensões como tipo de pedido ou material ajuda a identificar ineficiências sistêmicas e medir o impacto das iniciativas de melhoria de processos em toda a operação. Por que isso importa Este é um KPI principal para medir a eficiência geral do processo de armazém, oferecendo uma visão ampla da performance operacional. Onde obter Calculado no nível do caso, subtraindo o timestamp do primeiro evento (“Pedido de Armazém Criado”) do timestamp do último evento (“Pedido de Armazém Concluído”). Exemplos 8640017280043200 | |||
| Variação de quantidade QuantityVariance | A diferença entre a quantidade planejada e a quantidade real confirmada para uma tarefa. | ||
| Descrição Essa métrica calculada quantifica a divergência identificada durante uma tarefa de armazém. Um valor diferente de zero indica que a realidade física não correspondeu ao registro do sistema, sinalizando um possível problema, como um erro de picking, uma falha no recebimento ou um item danificado. Este atributo apoia diretamente o Dashboard “Análise de Divergências de Inventário”, destacando a magnitude dos erros. Analisar a frequência e o tamanho dessas variações ajuda a localizar problemas sistêmicos na gestão de inventário e na execução operacional, orientando esforços para melhorar a precisão. Por que isso importa Quantifica diretamente as imprecisões do inventário e da operação, facilitando a identificação e a análise da magnitude das divergências. Onde obter Calculado subtraindo PlannedQuantity de ActualQuantity para cada tarefa relevante. Exemplos 0-15 | |||
Atividades de gestão de armazém
| Atividade | Descrição | ||
|---|---|---|---|
| Packing concluído | Esta atividade indica que todos os itens de uma remessa foram embalados em uma unidade de manuseio, que agora está fechada e etiquetada. As mercadorias embaladas estão prontas para a próxima etapa, como staging ou carregamento. | ||
| Por que isso importa Este marco encerra a etapa de packing. Ele é um pré-requisito para staging e envio, portanto qualquer atraso aqui afeta diretamente o lead time geral e o KPI de lead time de packing e staging. Onde obter Pode ser capturado quando o status da unidade de manuseio (HU) é definido como 'Closed' ou quando a última Warehouse Task relacionada ao packing da WO é confirmada. A tabela /SCWM/HUHDR contém informações sobre o status da HU. Captura Identifique o registro de data e hora em que a unidade de manuseio final de envio associada ao pedido é fechada ou concluída. Tipo de evento inferred | |||
| Saída de mercadorias lançada | Esta é a etapa logística e financeira final no sistema, que remove formalmente as mercadorias do estoque do armazém. Ela indica que a propriedade legal foi transferida e que a remessa foi oficialmente despachada. | ||
| Por que isso importa Um ponto final essencial do fluxo de saída, que aciona o faturamento e as atualizações de estoque. É um componente importante para medir o envio no prazo e o KPI de tempo de carregamento e despacho da remessa. Onde obter É inferido a partir do lançamento de um documento de Outbound Delivery associado à Warehouse Order. Verifique o fluxo do documento ou os campos de status, como DGI_STAT, na tabela /SCDL/DB_PROCH_O. Captura Identifique o registro de data e hora em que o status de Goods Issue é definido como 'Completed' para a Outbound Delivery associada. Tipo de evento explicit | |||
| Tarefa de picking confirmada | Um operador do armazém confirma a conclusão de uma Warehouse Task de picking, indicando que as mercadorias foram retiradas fisicamente do local de armazenagem. Normalmente, isso é feito por meio de um scanner RF. | ||
| Por que isso importa Este é um marco crítico no atendimento do pedido, afetando diretamente o tempo de ciclo entre o pedido e o envio. Analisar essa atividade ajuda a medir a produtividade dos operadores de picking e identificar gargalos no picking. Onde obter Capturado pelo registro de data e hora de confirmação, no campo CONFIRMED_AT, da tabela de Warehouse Tasks, /SCWM/WT. O status da tarefa, STAT, é atualizado para 'Confirmed'. Captura Use o registro de data e hora de confirmação da tabela /SCWM/WT para as tarefas de picking associadas à Warehouse Order. Tipo de evento explicit | |||
| Tarefa de putaway confirmada | Um operador do armazém confirma que a Warehouse Task de putaway foi concluída, o que significa que as mercadorias foram colocadas fisicamente no endereço de armazenagem designado. Essa confirmação atualiza a localização do estoque em tempo real. | ||
| Por que isso importa Esta atividade é um marco importante do processamento de entrada, pois confirma que o estoque está disponível para picking. Atrasos nessa etapa afetam diretamente o KPI de tempo de ciclo do recebimento das mercadorias ao putaway. Onde obter Capturado pelo registro de data e hora de confirmação, no campo CONFIRMED_AT, da tabela de Warehouse Tasks, /SCWM/WT. O status da tarefa, STAT, também muda para 'Confirmed'. Captura Use o registro de data e hora de confirmação da tabela /SCWM/WT para as tarefas de putaway associadas à Warehouse Order. Tipo de evento explicit | |||
| Warehouse Order concluída | O status da Warehouse Order é definido como 'Completed' depois que todas as Warehouse Tasks associadas são confirmadas. Isso encerra o pacote de trabalho do ponto de vista da execução. | ||
| Por que isso importa Este é o principal evento de fim bem-sucedido do processo. Ele é essencial para calcular o tempo de ciclo do armazém de ponta a ponta e medir o throughput geral. Onde obter Capturado pelo acompanhamento da mudança do campo de status, STAT, para 'Completed' na tabela de cabeçalho da Warehouse Order, /SCWM/WHO. O log de alterações dessa tabela, DBTABLOG, ou um campo de registro de data e hora dedicado pode ser usado. Captura Identifique o registro de data e hora em que o status na /SCWM/WHO é definido como 'C' (Completed). Tipo de evento inferred | |||
| Warehouse Order criada | Esta atividade marca a criação de uma Warehouse Order (WO), que é um pacote de trabalho composto por várias tarefas do armazém. O sistema gera uma WO para agrupar e organizar o trabalho dos funcionários do armazém com base em critérios como área de atividade, fila ou produto. | ||
| Por que isso importa Este é o principal evento de início do processo de execução do armazém. Analisar o tempo entre a criação e a primeira ação ajuda a identificar atrasos na atribuição do trabalho e na alocação de recursos. Onde obter Este evento é capturado pelo registro de data e hora de criação, no campo CREATED_AT, da tabela de cabeçalho da Warehouse Order, /SCWM/WHO. Captura Extraia o registro de data e hora de criação da tabela /SCWM/WHO para cada número de Warehouse Order (WHO). Tipo de evento explicit | |||
| Carregamento concluído | Indica que todas as mercadorias de uma remessa foram carregadas fisicamente na unidade de transporte. Este é um pré-requisito para lançar a saída de mercadorias e despachar o veículo. | ||
| Por que isso importa Um marco importante antes do envio final. Atrasos entre a conclusão do carregamento e a saída de mercadorias podem indicar problemas de documentação ou do sistema que retêm as transportadoras. Onde obter É inferido a partir da mudança de status da Transportation Unit (TU) ou da Outbound Delivery Order associada para 'Loading Completed'. Os status nas tabelas /SCWM/TU e /SCDL/DB_PROCH_O são relevantes. Captura Capture o registro de data e hora em que o status da TU ou da Delivery Order é atualizado para refletir a conclusão do carregamento. Tipo de evento inferred | |||
| Carregamento iniciado | Esta atividade marca o início do carregamento físico das mercadorias da área de staging para um caminhão ou unidade de transporte. Geralmente, ela é iniciada por uma ação do usuário no sistema. | ||
| Por que isso importa É o início da etapa física final no armazém. Analisar a duração do carregamento ajuda a otimizar a utilização das portas da doca e o tempo de permanência da transportadora. Onde obter É inferido a partir da mudança de status da Transportation Unit (TU) ou da Outbound Delivery Order associada para 'Loading Started'. A tabela /SCWM/TU_STATUS pode ser consultada. Captura Capture o registro de data e hora em que o status da TU ou da Delivery Order é atualizado para refletir o início do carregamento. Tipo de evento inferred | |||
| Packing iniciado | Representa o início das atividades de packing, quando os itens separados são consolidados e colocados em contêineres de envio ou unidades de manuseio. Geralmente, esta é a primeira etapa em um centro de trabalho de packing. | ||
| Por que isso importa Marca o início da fase de serviços de valor agregado. Medir a duração do packing ajuda a otimizar o layout do centro de trabalho, o dimensionamento da equipe e os materiais. Onde obter Talvez seja necessário inferir este evento. Ele pode ser derivado do primeiro scan de um item ou de uma unidade de manuseio em uma estação de packing, geralmente registrado nos logs do centro de trabalho ou da unidade de manuseio. Tabelas como /SCWM/PACKSPEC e logs de execução relacionados podem ser usadas como fonte. Captura Use o registro de data e hora da primeira confirmação de Warehouse Task relacionada ao packing para a entrega ou o horário de criação da HU final de envio. Tipo de evento inferred | |||
| Recebimento de mercadorias lançado | Marca a aceitação formal das mercadorias no estoque do armazém, provenientes de um fornecedor externo ou da produção. Este é um lançamento financeiro e de estoque importante, que torna o estoque visível e disponível para processos posteriores, como o putaway. | ||
| Por que isso importa Este é um marco crítico no processo de entrada. O tempo entre a chegada das mercadorias e esse lançamento pode indicar acúmulos na área de recebimento, afetando a disponibilidade do estoque. Onde obter É inferido a partir do lançamento de um documento de Inbound Delivery associado à Warehouse Order. Verifique o fluxo do documento ou os campos de status, como DGRSTAT, na tabela /SCDL/DB_PROCH_I. Captura Identifique o registro de data e hora em que o status de Goods Receipt é definido como 'Completed' para a Inbound Delivery associada. Tipo de evento inferred | |||
| Tarefa de picking criada | O sistema gera uma Warehouse Task (WT) para retirar mercadorias de um endereço de armazenagem e atender a um pedido de Outbound Delivery. Isso representa a instrução do sistema para que um operador retire um produto. | ||
| Por que isso importa É o início do processo físico de saída. O intervalo entre a criação e a confirmação das tarefas de picking é essencial para analisar a eficiência do picking e a disponibilidade de recursos. Onde obter Capturado pelo registro de data e hora de criação, no campo CREATED_AT, da Warehouse Task relevante na tabela /SCWM/WT, cujo tipo de processo indica picking. Captura Filtre as Warehouse Tasks com tipo de processo de picking vinculadas à Warehouse Order e use o registro de data e hora de criação. Tipo de evento explicit | |||
| Tarefa de putaway criada | O sistema gera uma instrução específica, uma Warehouse Task (WT), para mover as mercadorias recebidas da área de recebimento para um endereço de armazenagem final. Esta atividade representa que o sistema está pronto para executar a movimentação de putaway. | ||
| Por que isso importa Acompanhar o tempo entre a criação e a confirmação da tarefa revela quanto tempo as instruções de putaway levam para ser assumidas e executadas pelos operadores do armazém, destacando possíveis faltas de mão de obra ou equipamentos. Onde obter Capturado pelo registro de data e hora de criação, no campo CREATED_AT, da Warehouse Task relevante na tabela /SCWM/WT, cujo tipo de processo indica putaway. Captura Filtre as Warehouse Tasks com tipo de processo de putaway vinculadas à Warehouse Order e use o registro de data e hora de criação. Tipo de evento explicit | |||
| Tarefa de staging confirmada | Um operador do armazém confirma a movimentação de uma unidade de manuseio embalada de uma estação de packing ou área de consolidação para uma área designada de staging de remessas. As mercadorias agora estão posicionadas para o carregamento. | ||
| Por que isso importa Marca a transição do processamento interno para a logística de saída. Atrasos no staging podem causar desorganização nas docas de carregamento e fazer com que os horários de coleta das transportadoras não sejam cumpridos. Onde obter Capturado pelo registro de data e hora de confirmação, no campo CONFIRMED_AT, de uma Warehouse Task (/SCWM/WT) com tipo de processo de movimentação para staging. Captura Identifique o registro de data e hora de confirmação da tarefa de staging associada à unidade de manuseio ou à entrega. Tipo de evento explicit | |||
| Warehouse Order cancelada | A Warehouse Order é cancelada antes que todas as tarefas sejam concluídas, impedindo a continuidade da execução. Isso pode acontecer devido à indisponibilidade de estoque, a alterações nos pedidos dos clientes ou a outras exceções. | ||
| Por que isso importa Representa um caminho de falha ou exceção. Analisar a frequência e os motivos dos cancelamentos ajuda a identificar problemas upstream no planejamento, na precisão do estoque ou na gestão de pedidos. Onde obter Capturado pelo acompanhamento da mudança do campo de status, STAT, para 'Canceled' na tabela de cabeçalho da Warehouse Order, /SCWM/WHO. Captura Identifique o registro de data e hora em que o status na /SCWM/WHO é definido como um valor de status de cancelamento. Tipo de evento inferred | |||
Guias de extração
Etapas
- Pré-requisito: identifique ou crie CDS Views: as principais fontes de dados são as CDS Views padrão do SAP S/4HANA para gerenciamento de armazéns. As principais views são
I_WarehouseOrder, para eventos no nível do pedido, eI_WarehouseTask, para eventos no nível da tarefa. Outras views, comoI_OutboundDeliveryItem,I_InboundDeliveryItemeI_EWMTransportationUnit, são necessárias para eventos logísticos relacionados. Confirme se essas views estão ativas no seu sistema. - Crie uma CDS View personalizada: para combinar dados de várias fontes em um único formato de registro de eventos, você precisa criar uma CDS View personalizada. Use as ABAP Development Tools (ADT) no Eclipse para criar uma nova Data Definition. Essa view personalizada usará
UNION ALLpara reunir registros de fontes diferentes, cada um representando uma atividade de negócio distinta. - Defina a estrutura do Event Log: na sua CDS View personalizada, defina os campos que formarão as colunas do Event Log. Eles devem incluir
WarehouseOrder,ActivityName,EventTimee outros atributos obrigatórios e recomendados. Mapeie esses campos a partir das CDS Views padrão subjacentes. - Modele os eventos de Warehouse Order: adicione as primeiras instruções
SELECTà sua união. Selecione dados deI_WarehouseOrderpara gerar o evento 'Warehouse Order Created' usando o registro de data e hora de criação. Em seguida, adicione instruçõesSELECTpara os eventos 'Warehouse Order Completed' e 'Warehouse Order Canceled', filtrando pelo status do pedido e usando os registros de data e hora de confirmação ou alteração apropriados. - Modele os eventos de Warehouse Task: adicione instruções
SELECTdeI_WarehouseTask. Gere os eventos 'Putaway Task Created' e 'Putaway Task Confirmed' filtrando pelas categorias de processo de armazém relacionadas ao putaway. Da mesma forma, crie os eventos 'Picking Task Created', 'Picking Task Confirmed' e 'Staging Task Confirmed' com base nas respectivas categorias de processo, usando os registros de data e hora de criação e confirmação. - Modele os eventos de movimentação de mercadorias: faça a junção das views relacionadas às entregas com as warehouse tasks para capturar as movimentações de mercadorias. Para 'Goods Receipt Posted', selecione dados de
I_InboundDeliveryItemusandoActualGoodsMovementDateTime. Para 'Goods Issue Posted', use o mesmo campo deI_OutboundDeliveryItem, vinculando-o à Warehouse Order ou à task correspondente. - Modele os eventos de carregamento e embalagem: selecione dados de
I_EWMTransportationUnitpara capturar os eventos 'Loading Started' e 'Loading Completed' usando seus registros de data e hora específicos. Para a embalagem, que pode ser complexa, use um proxy selecionando dados de uma view de Handling Unit. Nesse caso, o horário de criação pode representar 'Packing Started', e o horário de alteração de status pode representar 'Packing Completed'. Talvez seja necessário ajustar esta etapa de acordo com o seu processo específico de embalagem. - Adicione anotações para expor a CDS View: adicione a anotação
@OData.publish: trueà definição da sua CDS View personalizada. Isso instrui o SAP a gerar automaticamente um serviço OData com base na estrutura da view. - Ative a CDS View e o serviço OData: ative a nova Data Definition no ADT. Em seguida, acesse o sistema hub do SAP Gateway e use a transação
/IWFND/MAINT_SERVICEpara localizar e ativar o serviço OData recém-gerado. Isso disponibiliza os dados por meio de um endpoint de API REST. - Extraia os dados: use sua plataforma de dados de destino ou ferramenta de ETL para se conectar ao endpoint do serviço OData ativado. Aplique filtros diretamente na URI do OData, como um filtro em
EventTimepara limitar o escopo dos dados, por exemplo,?$filter=EventTime ge datetime'2023-01-01T00:00:00'. - Formate os dados para Process Mining: confirme se os dados extraídos foram salvos em um formato de arquivo simples, como CSV, com cabeçalhos de coluna correspondentes aos atributos necessários do ProcessMind (
WarehouseOrder,ActivityName,EventTimeetc.). Carregue o arquivo final na ferramenta de Process Mining.
Configuração
- Visão CDS personalizada: uma visão CDS dedicada, por exemplo,
Z_C_EWM_EVENTLOG_CDS, deve ser criada para unificar os dados de eventos. Esse é o objeto central da extração. - Serviço OData: o serviço OData gerado a partir da visão CDS personalizada deve ser ativado. O nome do serviço normalmente é o nome da visão CDS com o sufixo
_CDS. - Filtragem por intervalo de datas: é fundamental aplicar um filtro de data ao campo
EventTimeao chamar a API OData. Um intervalo comum para uma análise inicial é de 3 a 6 meses de dados. Sem um filtro, a consulta pode atingir o tempo limite ou causar problemas de performance. - Filtragem por entidade: para limitar ainda mais o escopo dos dados, considere aplicar filtros a atributos como Número do armazém (
Armazém), Tipo de ordem do armazém (WarehouseOrderType) ou materiais específicos (MaterialNumber). - Autorizações do sistema: o usuário que cria a visão CDS precisa ter acesso de desenvolvedor SAP no ADT. O usuário ou a conta de serviço que chama a API OData precisa ter autorizações para acessar os dados subjacentes de gerenciamento de armazéns.
a Consulta de exemplo sql
DEFINE VIEW Z_C_EWM_EVENTLOG_CDS
WITH PARAMETERS
P_StartDate : abap.dats,
P_EndDate : abap.dats
AS SELECT FROM I_WarehouseOrder AS WO
{
-- Required Attributes
WO.WarehouseOrder AS WarehouseOrder,
CAST('Warehouse Order Created' AS abap.char(40)) AS ActivityName,
WO.CreationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
-- Recommended Attributes
CAST(NULL AS abap.tstp) AS EventEndTime,
CAST(NULL AS abap.char(40)) AS MaterialNumber,
WO.CreationUser AS User,
WO.WarehouseOrderType AS WarehouseOrderType,
WO.WarehouseOrderStatus AS WarehouseOrderStatus,
WO.Priority AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
CAST(WO.CreationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseOrder AS WO
{
WO.WarehouseOrder,
CAST('Warehouse Order Completed' AS abap.char(40)) AS ActivityName,
WO.ConfirmationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
CAST(NULL AS abap.char(40)) AS MaterialNumber,
WO.ConfirmationUser AS User,
WO.WarehouseOrderType,
WO.WarehouseOrderStatus,
WO.Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WO.WarehouseOrderStatus = 'C' AND
CAST(WO.ConfirmationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseOrder AS WO
{
WO.WarehouseOrder,
CAST('Warehouse Order Canceled' AS abap.char(40)) AS ActivityName,
WO.LastChangeDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
CAST(NULL AS abap.char(40)) AS MaterialNumber,
WO.LastChangeUser AS User,
WO.WarehouseOrderType,
WO.WarehouseOrderStatus,
WO.Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WO.WarehouseOrderStatus = 'X' AND
CAST(WO.LastChangeDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
LEFT JOIN I_InboundDeliveryItem AS IBD ON WT.DeliveryDocument = IBD.InboundDelivery AND WT.DeliveryDocumentItem = IBD.InboundDeliveryItem
{
WT.WarehouseOrder,
CAST('Goods Receipt Posted' AS abap.char(40)) AS ActivityName,
IBD.ActualGoodsMovementDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
IBD.LastChangedByUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '1' AND -- Putaway
IBD.GoodsMovementStatus = 'C' AND -- Completed
CAST(IBD.ActualGoodsMovementDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Putaway Task Created' AS abap.char(40)) AS ActivityName,
WT.CreationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
WT.ConfirmationDateTime AS EventEndTime,
WT.Product AS MaterialNumber,
WT.CreationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '1' AND -- Putaway
CAST(WT.CreationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Putaway Task Confirmed' AS abap.char(40)) AS ActivityName,
WT.ConfirmationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
WT.ConfirmationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
WT.ProcessorProcTimeInSec AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '1' AND -- Putaway
WT.WarehouseTaskStatus = 'C' AND
CAST(WT.ConfirmationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Picking Task Created' AS abap.char(40)) AS ActivityName,
WT.CreationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
WT.ConfirmationDateTime AS EventEndTime,
WT.Product AS MaterialNumber,
WT.CreationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '2' AND -- Stock Removal
CAST(WT.CreationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Picking Task Confirmed' AS abap.char(40)) AS ActivityName,
WT.ConfirmationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
WT.ConfirmationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
WT.ProcessorProcTimeInSec AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '2' AND -- Stock Removal
WT.WarehouseTaskStatus = 'C' AND
CAST(WT.ConfirmationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Packing Started' AS abap.char(40)) AS ActivityName,
WT.CreationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
WT.ConfirmationDateTime AS EventEndTime,
WT.Product AS MaterialNumber,
WT.CreationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '5' AND -- Packing
CAST(WT.CreationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Packing Completed' AS abap.char(40)) AS ActivityName,
WT.ConfirmationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
WT.ConfirmationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
WT.ProcessorProcTimeInSec AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '5' AND -- Packing
WT.WarehouseTaskStatus = 'C' AND
CAST(WT.ConfirmationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Staging Task Confirmed' AS abap.char(40)) AS ActivityName,
WT.ConfirmationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
WT.ConfirmationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
WT.ProcessorProcTimeInSec AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '4' AND -- Staging
WT.WarehouseTaskStatus = 'C' AND
CAST(WT.ConfirmationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_EWMTransportationUnit AS TU
INNER JOIN I_WarehouseTask AS WT ON TU.TransportationUnit = WT.ShipmentOrTransportationUnit
{
WT.WarehouseOrder,
CAST('Loading Started' AS abap.char(40)) AS ActivityName,
TU.LoadingStartDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
TU.LoadingEndDateTime AS EventEndTime,
WT.Product AS MaterialNumber,
TU.LastChangeUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
TU.LoadingStartDateTime IS NOT NULL AND
CAST(TU.LoadingStartDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_EWMTransportationUnit AS TU
INNER JOIN I_WarehouseTask AS WT ON TU.TransportationUnit = WT.ShipmentOrTransportationUnit
{
WT.WarehouseOrder,
CAST('Loading Completed' AS abap.char(40)) AS ActivityName,
TU.LoadingEndDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
TU.LastChangeUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
TU.LoadingEndDateTime IS NOT NULL AND
TU.LoadingStatus = 'C' AND
CAST(TU.LoadingEndDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
LEFT JOIN I_OutboundDeliveryItem AS OBD ON WT.DeliveryDocument = OBD.OutboundDelivery AND WT.DeliveryDocumentItem = OBD.OutboundDeliveryItem
{
WT.WarehouseOrder,
CAST('Goods Issue Posted' AS abap.char(40)) AS ActivityName,
OBD.ActualGoodsMovementDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
OBD.LastChangedByUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '2' AND -- Stock Removal
OBD.GoodsMovementStatus = 'C' AND -- Completed
CAST(OBD.ActualGoodsMovementDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate Etapas
- Confirme se o acesso direto de leitura ao esquema do banco de dados do SAP EWM foi aprovado e identifique os objetos físicos do banco que representam cabeçalhos de Warehouse Order, warehouse tasks, histórico de status de Warehouse Order, lançamentos de entrada e saída de mercadorias, embalagem, staging e carregamento. As referências lógicas /SCWM/WHO e /SCWM/WT são frequentemente usadas como ponto de partida, mas verifique os objetos, campos, códigos de status, semântica dos registros de data e hora e esquema do banco de dados reais do seu sistema.
- Obtenha o mapeamento de campos validado com o responsável técnico pelo SAP EWM ou no dicionário de dados. Mapeie o ID da Warehouse Order, o tipo de Warehouse Order, o status, a prioridade, o ID da warehouse task, a categoria da task ou o tipo de processo, o material, o usuário, o registro de data e hora de criação, o registro de data e hora de confirmação, os registros de data e hora de embalagem, staging e carregamento, o registro de data e hora do recebimento de mercadorias, o registro de data e hora da saída de mercadorias, o sistema de origem e o registro de data e hora da última atualização. Não presuma que um campo exista na mesma tabela nem que um código de status tenha o mesmo significado em diferentes implementações.
- Configure a conexão de extração com uma conta de banco de dados somente leitura, o esquema de produção ou de relatórios e valores parametrizados para a data inicial da extração, a data final da extração, o nome do sistema de origem e quaisquer filtros específicos da empresa. Aplique o filtro de data ao registro de data e hora do evento relevante, e não apenas ao registro de data e hora de criação da Warehouse Order, para que eventos ocorridos posteriormente no ciclo de vida do pedido não sejam excluídos.
- Crie as linhas de eventos selecionando uma linha para cada atividade explicitamente necessária. A consulta deve usar os campos de origem validados para cada atividade e não deve depender do ProcessMind para inferir eventos. Se uma atividade for representada por um histórico de status ou por um Application Log, em vez de um campo atual do cabeçalho, use esse histórico ou log e mantenha o registro de data e hora do evento e o usuário executor.
- Normalize todos os registros de data e hora das atividades para um único fuso horário, preferencialmente UTC, ou documente o fuso horário do servidor de aplicações SAP. Converta os códigos de status e de processo específicos da origem nos nomes exatos das atividades exigidos pelo Event Log: Warehouse Order Created, Goods Receipt Posted, Putaway Task Created, Putaway Task Confirmed, Picking Task Created, Picking Task Confirmed, Packing Started, Packing Completed, Staging Task Confirmed, Loading Started, Loading Completed, Goods Issue Posted, Warehouse Order Completed e Warehouse Order Canceled.
- Confirme se todas as linhas de saída contêm WarehouseOrder, ActivityName, EventTime, SourceSystem e LastDataUpdate. Preencha EventEndTime quando houver um registro de data e hora de conclusão confiável. Para eventos no nível da task, associe a task à Warehouse Order correspondente. Se uma Warehouse Order contiver várias tasks relevantes, mantenha uma linha de evento por evento de task, preservando a Warehouse Order como identificador do caso. Use um critério estável de desempate, como o ID da task ou o ID do evento de origem, se o formato de importação de destino oferecer suporte a isso.
- Valide o resultado antes da exportação. Verifique se os 14 nomes de atividades aparecem quando os dados de origem contêm os eventos de negócio correspondentes, se os registros de data e hora estão dentro do intervalo solicitado, se as Warehouse Orders não estão inesperadamente em branco e se as linhas duplicadas podem ser explicadas por várias tasks ou alterações de status repetidas. Faça a conciliação das contagens com os relatórios operacionais do SAP ou com uma extração aprovada de forma independente.
- Exporte o resultado como um arquivo delimitado compatível com o ProcessMind ou como um resultado de banco de dados com um evento por linha. Preserve os nomes exatos das colunas obrigatórias, use um formato de registro de data e hora inequívoco, como ISO 8601, coloque os valores de texto entre aspas quando exigido pelo formato do delimitador e inclua uma linha de cabeçalho. Carregue o arquivo no ProcessMind ou configure a conexão com o banco de dados, definindo WarehouseOrder como identificador do caso, ActivityName como atividade, EventTime como registro de data e hora inicial e EventEndTime como registro de data e hora final, quando disponível.
Configuração
- Mapeamento de objetos de origem: Verifique os objetos físicos do banco de dados e os campos de pedidos de armazém, tarefas de armazém, histórico de status, movimentações de mercadorias, embalagem, staging e carregamento. /SCWM/WHO e /SCWM/WT podem ser objetos lógicos relevantes, mas a representação implantada no banco de dados deve ser confirmada antes da implementação.
- Intervalo de datas: Comece com um período controlado de três a seis meses. Use um período menor nos testes iniciais e amplie o intervalo após a conciliação. Inclua uma pequena sobreposição entre as execuções incrementais para capturar registros lançados com atraso e correções.
- Seleção do timestamp do evento: Use timestamps de criação para atividades criadas, timestamps de confirmação para atividades confirmadas, timestamps de lançamento para entrada e saída de mercadorias e timestamps de execução validados para embalagem, staging e carregamento. Não substitua todos os eventos pelo horário de criação do pedido de armazém.
- Filtros: Aplique somente filtros de negócio validados, como número do armazém, código da empresa, tipo de documento, tipo de pedido de armazém, área de atividade, fila, centro ou sistema de origem. Os campos de código da empresa e tipo de documento podem estar em objetos relacionados e precisam ser mapeados no sistema de destino.
- Mapeamento de status: Configure os códigos exatos de status ou processo do SAP que representam pedidos de armazém concluídos e cancelados. Valide o mapeamento com o responsável funcional pelo EWM, pois os códigos de status e seu armazenamento podem variar conforme a versão e a implementação.
- SourceSystem: Defina um valor estável que identifique a instância de produção ou de relatórios do EWM. Não derive esse valor de um campo de negócio que possa estar vazio.
- LastDataUpdate: Preencha esse campo de forma consistente em todas as linhas de uma execução, usando o timestamp da extração ou da atualização da origem.
- Extração incremental: Use um marcador de progresso persistido com base no timestamp de origem mais recente extraído com sucesso, incluindo uma janela de sobreposição para registros que chegam atrasados. Elimine duplicidades usando identificadores de origem validados, quando disponíveis.
- Performance: Restrinja o intervalo de datas logo no início, selecione apenas as colunas necessárias, filtre campos indexados, evite funções em colunas de timestamp indexadas nas condições e processe intervalos grandes em lotes diários ou semanais. Use uma réplica de relatórios quando permitido.
- Estratégia de junção: Confirme a cardinalidade entre pedidos e tarefas de armazém. Evite multiplicações acidentais ao fazer junções com dados de tarefas, status, materiais e unidades de manuseio. Agregue ou selecione o registro de evento apropriado antes da junção.
- Fusos horários: Configure o fuso horário da origem e a regra de conversão. Armazene os timestamps de forma consistente e documente o tratamento do horário de verão.
- Pré-requisitos: Autorização de banco de dados somente leitura, acesso aprovado ao esquema do EWM, mapeamentos validados no dicionário de dados, permissão para ler os objetos operacionais e históricos relevantes e uma configuração de importação do ProcessMind aprovada. Os módulos, as licenças e as autorizações SAP necessários dependem da arquitetura do EWM implantada e devem ser confirmados pelo responsável pelo sistema.
a Consulta de exemplo sql
WITH
params AS (
SELECT
CAST('[Start date and time]' AS TIMESTAMP) AS start_time,
CAST('[End date and time]' AS TIMESTAMP) AS end_time,
CAST('[Source system name]' AS VARCHAR(255)) AS source_system,
CAST(CURRENT_TIMESTAMP AS TIMESTAMP) AS last_data_update
),
warehouse_orders AS (
SELECT
CAST(wo.[Warehouse order ID field] AS VARCHAR(255)) AS WarehouseOrder,
CAST(wo.[Warehouse order type field] AS VARCHAR(255)) AS WarehouseOrderType,
CAST(wo.[Warehouse order status field] AS VARCHAR(255)) AS WarehouseOrderStatus,
CAST(wo.[Priority field] AS VARCHAR(255)) AS Priority,
CAST(wo.[Warehouse order creation timestamp field] AS TIMESTAMP) AS WarehouseOrderCreatedTime,
CAST(wo.[Warehouse order completion timestamp field] AS TIMESTAMP) AS WarehouseOrderCompletedTime,
CAST(wo.[Warehouse order cancellation timestamp field] AS TIMESTAMP) AS WarehouseOrderCanceledTime,
CAST(wo.[Material number field] AS VARCHAR(255)) AS MaterialNumber,
CAST(wo.[User field] AS VARCHAR(255)) AS [User]
FROM [Your warehouse order header table] wo
),
warehouse_tasks AS (
SELECT
CAST(wt.[Warehouse order ID field] AS VARCHAR(255)) AS WarehouseOrder,
CAST(wt.[Warehouse task ID field] AS VARCHAR(255)) AS WarehouseTask,
CAST(wt.[Task category or process type field] AS VARCHAR(255)) AS TaskType,
CAST(wt.[Material number field] AS VARCHAR(255)) AS MaterialNumber,
CAST(wt.[Task creation timestamp field] AS TIMESTAMP) AS TaskCreatedTime,
CAST(wt.[Task confirmation timestamp field] AS TIMESTAMP) AS TaskConfirmedTime,
CAST(wt.[User field] AS VARCHAR(255)) AS [User]
FROM [Your warehouse task table] wt
),
events AS (
SELECT wo.WarehouseOrder, 'Warehouse Order Created' AS ActivityName, wo.WarehouseOrderCreatedTime AS EventTime, CAST(NULL AS TIMESTAMP) AS EventEndTime, wo.MaterialNumber, wo.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_orders wo
UNION ALL
SELECT gr.[Warehouse order ID field], 'Goods Receipt Posted', CAST(gr.[Goods receipt posting timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(gr.[Material number field] AS VARCHAR(255)), CAST(gr.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your goods receipt posting table] gr LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(gr.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT wt.WarehouseOrder, 'Putaway Task Created', wt.TaskCreatedTime, CAST(NULL AS TIMESTAMP), wt.MaterialNumber, wt.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_tasks wt LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = wt.WarehouseOrder WHERE wt.TaskType = '[Verified putaway task type]'
UNION ALL
SELECT wt.WarehouseOrder, 'Putaway Task Confirmed', wt.TaskConfirmedTime, CAST(NULL AS TIMESTAMP), wt.MaterialNumber, wt.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_tasks wt LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = wt.WarehouseOrder WHERE wt.TaskType = '[Verified putaway task type]' AND wt.TaskConfirmedTime IS NOT NULL
UNION ALL
SELECT wt.WarehouseOrder, 'Picking Task Created', wt.TaskCreatedTime, CAST(NULL AS TIMESTAMP), wt.MaterialNumber, wt.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_tasks wt LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = wt.WarehouseOrder WHERE wt.TaskType = '[Verified picking task type]'
UNION ALL
SELECT wt.WarehouseOrder, 'Picking Task Confirmed', wt.TaskConfirmedTime, CAST(NULL AS TIMESTAMP), wt.MaterialNumber, wt.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_tasks wt LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = wt.WarehouseOrder WHERE wt.TaskType = '[Verified picking task type]' AND wt.TaskConfirmedTime IS NOT NULL
UNION ALL
SELECT pk.[Warehouse order ID field], 'Packing Started', CAST(pk.[Packing start timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(pk.[Material number field] AS VARCHAR(255)), CAST(pk.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your packing event table] pk LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(pk.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT pk.[Warehouse order ID field], 'Packing Completed', CAST(pk.[Packing completion timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(pk.[Material number field] AS VARCHAR(255)), CAST(pk.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your packing event table] pk LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(pk.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT st.[Warehouse order ID field], 'Staging Task Confirmed', CAST(st.[Staging confirmation timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(st.[Material number field] AS VARCHAR(255)), CAST(st.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your staging event table] st LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(st.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT ld.[Warehouse order ID field], 'Loading Started', CAST(ld.[Loading start timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(ld.[Material number field] AS VARCHAR(255)), CAST(ld.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your loading event table] ld LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(ld.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT ld.[Warehouse order ID field], 'Loading Completed', CAST(ld.[Loading completion timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(ld.[Material number field] AS VARCHAR(255)), CAST(ld.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your loading event table] ld LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(ld.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT gi.[Warehouse order ID field], 'Goods Issue Posted', CAST(gi.[Goods issue posting timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(gi.[Material number field] AS VARCHAR(255)), CAST(gi.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your goods issue posting table] gi LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(gi.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT wo.WarehouseOrder, 'Warehouse Order Completed', wo.WarehouseOrderCompletedTime, CAST(NULL AS TIMESTAMP), wo.MaterialNumber, wo.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_orders wo WHERE wo.WarehouseOrderCompletedTime IS NOT NULL
UNION ALL
SELECT wo.WarehouseOrder, 'Warehouse Order Canceled', wo.WarehouseOrderCanceledTime, CAST(NULL AS TIMESTAMP), wo.MaterialNumber, wo.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_orders wo WHERE wo.WarehouseOrderCanceledTime IS NOT NULL
)
SELECT
e.WarehouseOrder,
e.ActivityName,
e.EventTime,
e.EventEndTime,
p.source_system AS SourceSystem,
p.last_data_update AS LastDataUpdate,
e.MaterialNumber,
e.[User],
e.WarehouseOrderType,
e.WarehouseOrderStatus,
e.Priority
FROM events e
CROSS JOIN params p
WHERE e.WarehouseOrder IS NOT NULL
AND e.EventTime IS NOT NULL
AND e.EventTime >= p.start_time
AND e.EventTime < p.end_time
ORDER BY e.WarehouseOrder, e.EventTime, e.ActivityName; Pronto para começar?
Comece hoje sua jornada rumo a operações de armazém otimizadas. Use este Template para alcançar a máxima eficiência e acelerar o atendimento de pedidos.
Elimine erros de picking e otimize a gestão do armazém hoje
Alcance 99,5% de precisão no inventário e elimine atrasos no atendimento de pedidos em poucas semanas.
Não é necessário cartão de crédito. Configure em poucos minutos.