Seu Template de dados de gestão de armazém
Seu Template de dados de gestão de armazém
- Atributos recomendados para uma análise completa
- Principais atividades para acompanhar ao longo do processo
- Orientações para extrair dados do SAP EWM
Atributos de gestão de armazém
| Nome | Descrição | ||
|---|---|---|---|
| Warehouse Order WarehouseOrder | Identificador exclusivo de uma ordem de armazém, que agrupa um conjunto de tarefas a serem executadas por um recurso. | ||
| Descrição A Warehouse Order é 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 entrega de saída ou armazenar mercadorias recebidas. Cada Warehouse Order contém uma ou mais tarefas de armazém. No Process Mining, analisar os dados por Warehouse Order oferece uma visão completa do ciclo de vida de um pacote de trabalho específico. Isso ajuda a identificar gargalos, medir os tempos de ciclo do início ao fim e entender todo o fluxo de atividades associado a uma única instrução logística. Por que isso importa Este é o identificador central que conecta todas as atividades relacionadas no armazém, permitindo analisar o processo de ponta a ponta e medir o tempo de ciclo de uma única unidade de trabalho. Onde encontrar Em geral, esse identificador fica na tabela de cabeçalho de ordens de armazém do SAP EWM, como /SCWM/WHO. Exemplos 200000145200000146200000147 | |||
| Hora de início EventTime | Horário 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 dado temporal usado para ordenar eventos e calcular os intervalos entre eles. No Process Mining, a hora de início é essencial para montar a sequência cronológica de eventos de cada caso. Ela é usada para calcular tempos de ciclo, de espera e de processamento, fundamentais para analisar a performance, identificar gargalos e monitorar SLAs. Por que isso importa Este horário é essencial para ordenar os eventos cronologicamente e calcular todas as métricas de performance baseadas em tempo, como tempos de ciclo e durações. Onde encontrar Geralmente encontrado em tabelas de eventos ou confirmações, como /SCWM/ORDIM_C (por exemplo, no campo CONF_TIMESTAMP), ou em logs de mudanças de status associados a ordens e tarefas de armazém. Exemplos 2023-10-26T10:00:00Z2023-10-26T10:15:30Z2023-10-26T11:20:00Z | |||
| Nome da atividade ActivityName | Nome da atividade ou do evento específico de gestão de armazém que ocorreu, como 'Tarefa de separação criada' ou 'Saída de mercadorias registrada'. | ||
| Descrição Este atributo descreve uma etapa ou um evento do processo de gestão de armazém. Essas atividades formam o mapa do processo e representam tarefas como criação, confirmação, embalagem, carregamento e movimentação 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 causam atrasos ou retrabalho. Por que isso importa Define as etapas do processo, servindo de base para o mapa do processo e permitindo analisar o fluxo, os desvios e os gargalos. Onde encontrar Derivado de mudanças de status, mensagens de eventos ou logs de transações relacionados a ordens e tarefas de armazém em tabelas como /SCWM/ORDIM_C (confirmações), ou da interpretação dos campos de status em /SCWM/WHO e /SCWM/ORDIM_O. Exemplos Tarefa de separação confirmadaTarefa de armazenagem criadaEntrada de mercadorias registradaWarehouse Order concluída | |||
| Sistema de origem SourceSystem | Identifica o sistema de origem dos dados extraídos, por exemplo, a instância de produção do SAP EWM. | ||
| Descrição Este atributo especifica o sistema de registro de onde vêm os dados de gestão do armazém. Em uma empresa com vários sistemas, identificar a origem dos dados é essencial para garantir rastreabilidade e contexto. Na análise, isso ajuda a diferenciar processos que passam por vários sistemas ou comparar processos de instâncias diferentes, como sistemas separados por região. Assim, a linhagem dos dados fica clara e pode ser auditada. Por que isso importa Oferece rastreabilidade e contexto, especialmente em ambientes com várias instâncias SAP ou sistemas integrados, garantindo clareza sobre a linhagem dos dados. Onde encontrar Em geral, este é um valor estático adicionado durante o processo de extração, transformação e carregamento de dados (ETL), que identifica a instância específica do SAP S/4HANA ou do EWM. Exemplos SAP_EWM_PROD_EUS4H_US_100EWM_APAC_PRD | |||
| Última atualização dos dados LastDataUpdate | Horário que indica a última atualização dos dados deste registro 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 oferece um contexto importante sobre a atualização dos dados analisados. Em qualquer análise ou Dashboard, saber quando os dados foram atualizados é essencial para tomar decisões fundamentadas. Esse horário ajuda a entender se as informações são atuais ou se representam um instantâneo de um momento específico, alinhando as expectativas sobre a atualização dos dados. Por que isso importa Indica o nível de atualização dos dados, informação essencial para entender o quanto a análise do processo está atualizada. Onde encontrar Este é um campo de metadados geralmente gerado e adicionado durante o processo de extração de dados (ETL). Ele indica o horário em que os dados foram carregados. Exemplos 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
| Hora de término EventEndTime | Horário que indica quando uma atividade ou um evento foi concluído. | ||
| Descrição Este atributo registra a data e a hora em que uma atividade específica do armazém terminou. Em eventos pontuais, costuma ser igual à hora de início, mas pode ser diferente em atividades com duração mensurável, como embalagem ou carregamento. Ter uma hora de término separada permite calcular com precisão o tempo de processamento de cada atividade. Isso é essencial para Dashboards de performance que analisam a duração de etapas específicas, como 'Eficiência de separação e embalagem', e ajudam a identificar quais tarefas consomem mais tempo. Por que isso importa Permite calcular com precisão a duração de cada atividade, o que é essencial para identificar etapas demoradas e tarefas que consomem muitos recursos. Onde encontrar Em eventos pontuais, costuma ser igual ao horário de início. Em tarefas mais longas, pode haver um campo separado em tabelas como /SCWM/ORDIM_C, ou o horário pode 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 | Identificador do operador do armazém ou usuário que confirmou ou executou a atividade. | ||
| Descrição Este atributo registra o ID do usuário responsável por executar uma tarefa de armazém. Pode ser o separador que confirmou a separação, o embalador em uma estação de embalagem ou o operador de empilhadeira que confirmou a armazenagem. 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 a carga 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 equilíbrio da carga de trabalho. Onde encontrar Geralmente encontrado nos dados de confirmação de uma tarefa de armazém, por exemplo, no campo UNAME da tabela /SCWM/ORDIM_C. Exemplos JSMITHARODRIGUEZOPERATOR_05 | |||
| Número do material MaterialNumber | Identificador exclusivo do produto ou material movimentado na tarefa de armazém. | ||
| 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 levam mais tempo para serem armazenados, quais aparecem com mais frequência em erros de separação e quais exigem inspeção de qualidade? Essa análise é essencial para os Dashboards de 'Performance de recebimento e armazenagem' e 'Tempo de inspeção de qualidade'. Por que isso importa Permite filtrar e segmentar os dados do processo por produto, o que é essencial para identificar problemas específicos no manuseio, na armazenagem ou no controle de qualidade. Onde encontrar Essas informações geralmente estão disponíveis em tabelas de tarefas de armazém, 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 à ordem de armazém, que indica sua urgência (por exemplo, alta, média ou baixa). | ||
| Descrição Este atributo classifica as ordens de armazém conforme sua importância para o negócio ou urgência. Ordens de alta prioridade, por exemplo, podem corresponder a remessas expressas ou ao abastecimento de itens essenciais para a produção e exigir atendimento acelerado. A prioridade é uma dimensão importante para o Dashboard e o KPI de aderência ao atendimento de ordens prioritárias. Ela permite filtrar e segmentar a performance para garantir que as ordens mais críticas sejam processadas dentro dos prazos esperados, alinhando as operações do armazém aos objetivos do negócio. Por que isso importa Permite priorizar análises e monitoramentos para garantir que as ordens mais urgentes cumpram seus níveis de serviço, com impacto direto na satisfação dos clientes. Onde encontrar A prioridade pode ser definida no documento de entrega correspondente e transferida para a ordem de armazém. Ela pode ser encontrada em tabelas como /SCWM/WHO. Exemplos AltaMédiaBaixa | |||
| Status da Warehouse Order WarehouseOrderStatus | Status atual ou final da ordem de armazém, como 'Concluído' ou 'Cancelado'. | ||
| Descrição Este atributo indica o resultado final de uma ordem de armazém. Saber se a ordem foi concluída com sucesso ou cancelada é essencial para analisar as taxas de sucesso do processo e identificar os motivos de não conclusão. Este é um filtro importante para muitas análises. Por exemplo, ao calcular o tempo de ciclo de ponta a ponta do armazém, a análise normalmente considera apenas as ordens concluídas. O atributo também ajuda a identificar e investigar a frequência e as causas dos cancelamentos. Por que isso importa Indica o resultado de um caso e permite filtrar ordens concluídas ou canceladas, o que é essencial para analisar com precisão o tempo de ciclo e o volume processado. Onde encontrar O campo de status geralmente fica na tabela de cabeçalho da ordem de armazém, /SCWM/WHO. Exemplos ConcluídoEm andamentoCancelado | |||
| Tipo de Warehouse Order WarehouseOrderType | Classifica a ordem de armazém conforme sua finalidade, como armazenagem, separação ou reposição interna. | ||
| Descrição O tipo de Warehouse Order categoriza as ordens conforme sua função logística. Essa distinção é fundamental porque cada tipo segue um fluxo de processo diferente e tem expectativas de performance próprias. Na análise, este atributo é uma dimensão essencial para filtrar e comparar dados. Por exemplo, o Dashboard de 'Volume e throughput de Warehouse Orders' usa esse atributo para segmentar a performance dos processos de entrada (armazenagem) e de saída (separação), oferecendo uma visão mais relevante das operações do armazém. Por que isso importa Permite segmentar a análise por categoria de processo, como entrada ou saída, facilitando comparações e insights mais relevantes. Onde encontrar É determinado pelo tipo de processo do armazém e geralmente consta na tabela de cabeçalho de ordens de armazém /SCWM/WHO. Exemplos PICKPUTWREPLSTGE | |||
| Data solicitada para conclusão RequestedCompletionDate | A data-limite solicitada para a conclusão de uma ordem 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 uma ordem de armazém. É o prazo usado para comparar o horário real de conclusão e determinar se a ordem foi atendida dentro do prazo. Essa data é essencial para calcular o KPI de taxa de atendimento de ordens prioritárias. Ao comparar o horário real de conclusão com a data solicitada, a análise mede a aderência aos níveis de serviço e destaca as ordens com risco de atraso ou já atrasadas. Por que isso importa Define o SLA de uma ordem e serve de referência para medir o atendimento dentro do prazo, especialmente para itens de alta prioridade. Onde encontrar Essa data costuma ser derivada da data planejada de saída de mercadorias ou da data de entrega da ordem de entrega de saída que gerou a ordem de armazém. Consulte a documentação do SAP Extended Warehouse Management. Exemplos 2023-10-27T17:00:00Z2023-10-28T12:00:00Z | |||
| Diferença de quantidade QuantityVariance | A diferença entre a quantidade planejada e a quantidade real confirmada para uma tarefa. | ||
| Descrição Esta métrica calculada quantifica a divergência identificada durante uma tarefa de armazém. Um valor diferente de zero indica que a situação física não corresponde ao registro do sistema, sinalizando um possível problema, como erro de separação ou recebimento, ou um item danificado. Este atributo contribui diretamente para o Dashboard de análise de divergências de estoque, destacando a dimensão dos erros. Analisar a frequência e o tamanho dessas diferenças ajuda a identificar problemas sistêmicos na gestão de estoque e na execução operacional, orientando as iniciativas para melhorar a acuracidade. Por que isso importa Quantifica diretamente as imprecisões no estoque e na operação, facilitando a identificação e a análise da dimensão das divergências. Onde encontrar Calculada subtraindo PlannedQuantity de ActualQuantity para cada tarefa relevante. Exemplos 0-15 | |||
| Endereço de armazenagem StorageLocation | O local específico dentro do armazém, como uma posição de estoque, 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 da separação ou o endereço de destino da armazenagem. Pode indicar uma área ampla ou as coordenadas de uma prateleira específica. A análise por endereço de armazenagem pode revelar insights operacionais, como áreas com alta frequência de separação ou locais problemáticos, com atrasos ou erros frequentes. Também pode ser usada na análise de aderência à rota de separação para entender os deslocamentos dos separadores pelo armazém. Por que isso importa Fornece o contexto geográfico dentro do armazém e permite analisar a eficiência da movimentação, a acessibilidade das posições de estoque e a otimização das rotas de separação. Onde encontrar Geralmente encontrado em tabelas de tarefas de armazém, como /SCWM/ORDIM_O, que contêm informações sobre as posições de origem (VLPLA) e destino (NLPLA). Exemplos 01-02-03ESTAÇÃO-EMBALAGEM-01ZONA-SAÍDA-A | |||
| Equipamento utilizado EquipmentUsed | O identificador do equipamento, como uma empilhadeira ou paleteira, usado para realizar a tarefa de armazém. | ||
| Descrição Este atributo especifica o equipamento de movimentação de materiais designado para uma tarefa de armazém ou usado nela. Pode ser uma empilhadeira específica, um veículo guiado automaticamente (AGV) ou um tipo determinado de carrinho. Esses dados são a base do Dashboard de utilização de recursos e equipamentos e do KPI de taxa de utilização de equipamentos. Ao acompanhar quais equipamentos são usados em cada tarefa e por quanto tempo, os gestores podem analisar padrões de utilização, programar manutenções e tomar decisões fundamentadas 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 limitações de recursos. Onde encontrar Se o gerenciamento de recursos estiver configurado no SAP EWM, essas informações podem ser armazenadas nos detalhes da tarefa ou da ordem de armazém. Consulte a documentação do SAP Extended Warehouse Management. Exemplos EMPILHADEIRA-07AGV-02CARRINHO-15 | |||
| 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 de expedição da remessa, após a conclusão das atividades de separação, embalagem e carregamento. Ele serve de referência para medir a performance de pontualidade da etapa final do processo de saída. Esse horário é essencial para o Dashboard de performance de pontualidade na expedição de remessas. Ao comparar o horário real de expedição com o planejado, a análise identifica 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 Serve de referência para medir a pontualidade da expedição, essencial para o planejamento logístico e o cumprimento dos horários das transportadoras. Onde encontrar Essas informações geralmente fazem parte do documento de transporte ou da remessa vinculada às ordens de armazém. Consulte a documentação do SAP Extended Warehouse Management. Exemplos 2023-10-27T18:00:00Z2023-10-28T14:00:00Z | |||
| No prazo IsOnTime | Um indicador booleano que informa se uma ordem de armazém foi concluída até a data solicitada. | ||
| Descrição Este indicador mostra, de forma simples e binária, se o SLA foi cumprido. Ele verifica se o evento final de conclusão da ordem de armazém ocorreu até a data solicitada para conclusão. Este atributo é essencial para o Dashboard de aderência ao atendimento de ordens prioritárias. Ele facilita a criação de KPIs e visualizações, permitindo contar e filtrar facilmente as ordens concluídas no prazo ou com atraso. Assim, fica mais fácil avaliar a performance em relação às metas de nível de serviço, sem precisar fazer cálculos complexos de datas na camada de análise. Por que isso importa Simplifica a análise da performance do SLA com um indicador claro e binário de atendimento no prazo ou com atraso para cada ordem. Onde encontrar Este atributo é calculado comparando o horário da atividade "Ordem de armazém concluída" com o atributo RequestedCompletionDate. Exemplos truefalse | |||
| Quantidade planejada PlannedQuantity | A quantidade esperada de um material para uma determinada tarefa de armazém. | ||
| Descrição Este atributo representa a quantidade-alvo de um material que deve ser movimentada, separada ou recebida conforme as instruções da tarefa de armazém. É a referência usada para comparar a quantidade efetivamente movimentada. A quantidade planejada é essencial para o Dashboard de análise de divergências de estoque e para o KPI de índice de acuracidade do estoque. Ao compará-la com a quantidade real, o sistema identifica divergências que podem indicar erros de separação ou recebimento, ou problemas na entrada de dados, ajudando a melhorar a acuracidade do estoque. Por que isso importa Serve de referência para calcular a acuracidade do estoque e identificar divergências, algo essencial para manter os níveis de estoque corretos. Onde encontrar Encontrada nos dados da tarefa de armazém, 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 tarefa de armazém. | ||
| Descrição Este atributo corresponde à quantidade efetivamente movimentada 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 diferença entre os dois valores evidencia uma exceção no processo que precisa ser investigada. Essa é uma medida direta da acuracidade operacional e um dado importante para os KPIs de índice de acuracidade do estoque e taxa de erros de separação. Por que isso importa Este atributo mostra o que foi efetivamente movimentado. Compará-lo com a quantidade planejada mede diretamente a acuracidade operacional e ajuda a identificar erros. Onde encontrar Encontrada nos dados de confirmação da tarefa de armazém, por exemplo, na tabela /SCWM/ORDIM_C, geralmente em um campo como NDIFF (quantidade da diferença) ou calculada a partir das quantidades confirmadas. Exemplos 10049250 | |||
| Tempo de ciclo de ponta a ponta EndToEndCycleTime | O tempo total entre a criação e a conclusão de uma ordem de armazém. | ||
| Descrição Este KPI mede a duração completa do ciclo de vida de uma ordem de armazém. É um indicador geral importante da eficiência e da velocidade das operações do armazém. Essa métrica é a base do Dashboard de tempo de ciclo de ponta a ponta do armazém. Acompanhar o KPI ao longo do tempo e segmentá-lo por dimensões como tipo de ordem 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 essencial para medir a eficiência geral do processo do armazém e oferece uma visão abrangente da performance operacional. Onde encontrar Calculado no nível do caso, subtraindo o horário do primeiro evento ("Ordem de armazém criada") do horário do último evento ("Ordem de armazém concluída"). Exemplos 8640017280043200 | |||
| Warehouse Task WarehouseTask | Identificador exclusivo de uma tarefa de armazém, que faz parte de uma ordem de armazém. | ||
| Descrição Uma tarefa de armazém é uma instrução para executar uma movimentação específica de mercadorias, como levar um produto de um endereço de armazenagem até uma estação de embalagem. Uma ordem de armazém agrupa uma ou mais dessas tarefas. Analisar os dados 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 e analisar a eficiência de atividades individuais de separação ou armazenagem. Por que isso importa Oferece mais detalhes para a análise, permitindo examinar movimentações e etapas individuais dentro de uma ordem de armazém mais ampla. Onde encontrar Encontrado em tabelas de tarefas de armazém, como /SCWM/ORDIM_O (dados da tarefa) e /SCWM/ORDIM_C (dados de confirmação). Exemplos 300000451300000452300000453 | |||
Atividades de gestão de armazém
| Atividade | Descrição | ||
|---|---|---|---|
| Embalagem concluída | 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 a preparação para envio ou o carregamento. | ||
| Por que isso importa Este marco encerra a etapa de embalagem. É um pré-requisito para a preparação e o envio, portanto, qualquer atraso afeta diretamente o prazo total e o KPI de tempo de embalagem e preparação para envio. Onde encontrar O evento pode ser registrado quando o status da unidade de manuseio (HU) muda para 'Fechado' ou quando a última Warehouse Task de embalagem da WO é confirmada. A tabela /SCWM/HUHDR contém informações sobre o status da HU. Coleta Identifique o horário em que a unidade de manuseio final de envio associada ao pedido é fechada ou concluída. Tipo de evento inferred | |||
| Saída de mercadorias registrada | Esta é a última etapa logística e financeira no sistema, que remove formalmente as mercadorias do estoque do armazém. Ela indica a transferência da propriedade legal e a saída oficial da remessa. | ||
| Por que isso importa Um ponto final essencial do fluxo de saída, que aciona o faturamento e as atualizações do estoque. É um componente importante para medir o envio no prazo e o KPI de tempo de carregamento e despacho da remessa. Onde encontrar Inferido a partir do lançamento de um documento de entrega de saída associado à Warehouse Order. Consulte o fluxo do documento ou os campos de status, como DGI_STAT, na tabela /SCDL/DB_PROCH_O. Coleta Identifique o horário em que o status de saída de mercadorias é definido como 'Concluído' para a entrega de saída associada. Tipo de evento explicit | |||
| Tarefa de armazenagem confirmada | Um operador do armazém confirma que a Warehouse Task de armazenagem foi concluída, ou seja, que as mercadorias foram colocadas fisicamente no endereço de armazenagem indicado. Essa confirmação atualiza a localização do estoque em tempo real. | ||
| Por que isso importa Esta atividade é um marco importante no processo de entrada, pois confirma que o estoque está disponível para separação. Atrasos nessa etapa afetam diretamente o KPI de tempo de ciclo entre o recebimento e a armazenagem. Onde encontrar Registrado a partir do horário de confirmação (campo CONFIRMED_AT) na tabela de Warehouse Tasks, /SCWM/WT. O status da tarefa (STAT) também muda para 'Confirmado'. Coleta Use o horário de confirmação da tabela /SCWM/WT para as tarefas de armazenagem associadas à Warehouse Order. Tipo de evento explicit | |||
| Tarefa de separação confirmada | Um operador do armazém confirma a conclusão de uma Warehouse Task de separação, indicando que as mercadorias foram retiradas fisicamente do local de armazenagem. Em geral, essa confirmação é feita por um leitor de radiofrequência. | ||
| Por que isso importa Este é um marco importante no atendimento do pedido e afeta diretamente o tempo de ciclo entre o pedido e o envio. Analisar esta atividade ajuda a medir a produtividade dos separadores e identificar gargalos na separação. Onde encontrar Registrado a partir do horário de confirmação (campo CONFIRMED_AT) na tabela de Warehouse Tasks, /SCWM/WT. O status da tarefa (STAT) é atualizado para 'Confirmado'. Coleta Use o horário de confirmação da tabela /SCWM/WT para as tarefas de separação associadas à Warehouse Order. Tipo de evento explicit | |||
| Warehouse Order concluída | O status da Warehouse Order muda para 'Concluído' depois que todas as tarefas de armazém associadas são confirmadas. Do ponto de vista da execução, isso encerra o pacote de trabalho. | ||
| Por que isso importa Este é o principal evento de fim que indica o sucesso do processo. Ele é essencial para calcular o tempo de ciclo do armazém de ponta a ponta e medir o throughput geral. Onde encontrar Registrado ao acompanhar a mudança do campo de status (STAT) para 'Concluído' na tabela de cabeçalho da Warehouse Order, /SCWM/WHO. É possível usar o log de alterações dessa tabela (DBTABLOG) ou um campo de horário específico. Coleta Identifique o horário em que o status na tabela /SCWM/WHO muda para 'C' (Concluído). Tipo de evento inferred | |||
| Warehouse Order criada | Esta atividade marca a criação de uma Warehouse Order (WO), um pacote de trabalho composto por várias tarefas de 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 no 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 encontrar Este evento é registrado a partir do horário de criação (campo CREATED_AT) na tabela de cabeçalho da Warehouse Order, /SCWM/WHO. Coleta Extraia o horário 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 da remessa foram carregadas fisicamente na unidade de transporte. Esta etapa é um pré-requisito para registrar 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 o registro da saída de mercadorias podem indicar problemas de documentação ou do sistema que retêm as transportadoras. Onde encontrar Inferido a partir da mudança de status da unidade de transporte (TU) ou do pedido de entrega de saída associado para 'Carregamento concluído'. Os status nas tabelas /SCWM/TU e /SCDL/DB_PROCH_O são relevantes. Coleta Registre o horário em que o status da TU ou do pedido de entrega é atualizado para indicar 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 preparação para um caminhão ou unidade de transporte. Muitas vezes, o processo começa com uma ação do usuário no sistema. | ||
| Por que isso importa É o início da última etapa física no armazém. Analisar o tempo de carregamento ajuda a otimizar o uso das docas e o tempo de permanência da transportadora. Onde encontrar Inferido a partir da mudança de status da unidade de transporte (TU) ou do pedido de entrega de saída associado para 'Carregamento iniciado'. Consulte a tabela /SCWM/TU_STATUS. Coleta Registre o horário em que o status da TU ou do pedido de entrega é atualizado para indicar o início do carregamento. Tipo de evento inferred | |||
| Embalagem iniciada | Marca o início das atividades de embalagem, quando os itens separados são agrupados e colocados em contêineres de envio ou unidades de manuseio. Muitas vezes, esta é a primeira etapa em uma estação de embalagem. | ||
| Por que isso importa Marca o início da etapa de serviços de valor agregado. Medir o tempo de embalagem ajuda a otimizar o layout, a equipe e os materiais do centro de trabalho. Onde encontrar Talvez seja necessário inferir este evento. Ele pode ser identificado pela primeira leitura de um item ou de uma unidade de manuseio em uma estação de embalagem, geralmente registrada nos logs do centro de trabalho ou da unidade de manuseio. Tabelas como /SCWM/PACKSPEC e logs de execução relacionados podem servir como fonte. Coleta Use o horário da primeira confirmação de Warehouse Task relacionada à embalagem para a entrega ou o horário de criação da unidade de manuseio (HU) final de envio. Tipo de evento inferred | |||
| Entrada de mercadorias registrada | Marca o recebimento formal de mercadorias no estoque do armazém, vindas de um fornecedor externo ou da produção. Esse lançamento financeiro e de estoque é essencial para que os produtos fiquem visíveis e disponíveis para etapas seguintes, como a armazenagem. | ||
| Por que isso importa Este é um marco importante no processo de entrada. O tempo entre a chegada das mercadorias e o lançamento pode indicar acúmulo de trabalho na área de recebimento, afetando a disponibilidade do estoque. Onde encontrar Inferido a partir do lançamento de um documento de entrega de entrada associado à Warehouse Order. Consulte o fluxo do documento ou os campos de status, como DGRSTAT, na tabela /SCDL/DB_PROCH_I. Coleta Identifique o horário em que o status de recebimento de mercadorias é definido como 'Concluído' para a entrega de entrada associada. Tipo de evento inferred | |||
| Tarefa de armazenagem criada | O sistema gera uma instrução específica, uma Warehouse Task (WT), para mover as mercadorias recebidas da área de recebimento até o endereço de armazenagem final. Esta atividade indica que o sistema está pronto para executar a movimentação de armazenagem. | ||
| Por que isso importa Acompanhar o tempo entre a criação e a confirmação da tarefa mostra quanto os operadores do armazém demoram para iniciar e executar as instruções de armazenagem, ajudando a identificar possíveis faltas de mão de obra ou equipamentos. Onde encontrar Registrado a partir do horário de criação (campo CREATED_AT) da Warehouse Task correspondente na tabela /SCWM/WT, cujo tipo de processo indica armazenagem. Coleta Filtre as Warehouse Tasks vinculadas à Warehouse Order cujo tipo de processo seja de armazenagem e use o horário de criação. Tipo de evento explicit | |||
| Tarefa de preparação para envio confirmada | Um operador do armazém confirma a movimentação de uma unidade de manuseio embalada, da estação de embalagem ou da área de consolidação até a área designada para preparação da remessa. As mercadorias ficam posicionadas para o carregamento. | ||
| Por que isso importa Esta etapa marca a transição do processamento interno para a logística de saída. Atrasos na preparação podem desorganizar as docas de carregamento e fazer com que o horário de coleta da transportadora seja perdido. Onde encontrar Registrado a partir do horário de confirmação (campo CONFIRMED_AT) de uma Warehouse Task (/SCWM/WT) cujo tipo de processo corresponde a movimentações para a área de preparação de remessas. Coleta Identifique o horário de confirmação da tarefa de preparação para envio associada à unidade de manuseio ou à entrega. Tipo de evento explicit | |||
| Tarefa de separação criada | O sistema gera uma Warehouse Task (WT) para separar mercadorias de um endereço de armazenagem e atender a um pedido de entrega de saída. Essa instrução do sistema orienta o operador a retirar um produto. | ||
| Por que isso importa Este é o início do processo físico de saída. O intervalo entre a criação e a confirmação das tarefas de separação é essencial para analisar a eficiência da separação e a disponibilidade de recursos. Onde encontrar Registrado a partir do horário de criação (campo CREATED_AT) da Warehouse Task correspondente na tabela /SCWM/WT, cujo tipo de processo indica separação. Coleta Filtre as Warehouse Tasks vinculadas à Warehouse Order cujo tipo de processo seja de separação e use o horário de criação. Tipo de evento explicit | |||
| Warehouse Order cancelada | A Warehouse Order é cancelada antes da conclusão de todas as tarefas, impedindo que o processo continue. Isso pode ocorrer por falta de estoque, mudanças nos pedidos dos clientes ou 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 nas etapas anteriores, no planejamento, na precisão do estoque ou na gestão de pedidos. Onde encontrar Registrado ao acompanhar a mudança do campo de status (STAT) para 'Cancelado' na tabela de cabeçalho da Warehouse Order, /SCWM/WHO. Coleta Identifique o horário em que o status na tabela /SCWM/WHO muda para um valor 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 gestão de armazéns. As views principais 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. Verifique 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 Event Log, crie uma CDS View personalizada. Use o ABAP Development Tools (ADT) no Eclipse para criar uma nova Data Definition. Essa view personalizada usará
UNION ALLpara reunir registros de diferentes fontes, cada um representando uma atividade de negócio distinta. - Defina a estrutura do Event Log: Na CDS View personalizada, defina os campos que formarão as colunas do Event Log. Inclua
WarehouseOrder,ActivityName,EventTimee outros atributos obrigatórios e recomendados. Mapeie esses campos a partir das CDS Views padrão subjacentes. - Modele os eventos do pedido de armazém: Adicione as primeiras instruções
SELECTà união. ConsulteI_WarehouseOrderpara gerar o evento 'Warehouse Order Created' usando o timestamp de criação. Depois, adicione instruçõesSELECTpara os eventos 'Warehouse Order Completed' e 'Warehouse Order Canceled', filtrando pelo status do pedido e usando os timestamps adequados de confirmação ou alteração. - Modele os eventos das tarefas de armazém: 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 armazenamento. Da mesma forma, crie os eventos 'Picking Task Created', 'Picking Task Confirmed' e 'Staging Task Confirmed' com base nas respectivas categorias de processo e use os timestamps 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 tarefas de armazém para capturar as movimentações de mercadorias. Para 'Goods Receipt Posted', consulte
I_InboundDeliveryItemusandoActualGoodsMovementDateTime. Para 'Goods Issue Posted', use o mesmo campo deI_OutboundDeliveryItem, vinculando o registro ao pedido ou à tarefa de armazém correspondente. - Modele os eventos de carregamento e embalagem: Consulte
I_EWMTransportationUnitpara capturar os eventos 'Loading Started' e 'Loading Completed' usando os timestamps específicos da view. A embalagem pode exigir uma abordagem mais complexa. Como alternativa, consulte uma view de Handling Unit: o horário de criação pode representar 'Packing Started' e o horário de alteração do status pode representar 'Packing Completed'. Talvez seja necessário ajustar essa etapa conforme o processo de embalagem da sua operação. - Adicione anotações para disponibilizar a CDS View: Adicione a anotação
@OData.publish: trueà definição da CDS View personalizada. Com isso, o SAP gera 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 SAP Gateway hub e use a transação
/IWFND/MAINT_SERVICEpara localizar e ativar o serviço OData recém-gerado. Assim, os dados ficam disponíveis em um endpoint de API REST. - Extraia os dados: Use a plataforma de dados ou a ferramenta ETL de destino para se conectar ao endpoint do serviço OData ativado. Aplique filtros diretamente na URI OData, por exemplo, filtre
EventTimepara limitar o escopo dos dados (?$filter=EventTime ge datetime'2023-01-01T00:00:00'). - Formate os dados para Process Mining: Salve os dados extraídos em um arquivo simples, como CSV, com cabeçalhos de coluna correspondentes aos atributos exigidos pelo ProcessMind (
WarehouseOrder,ActivityName,EventTimeetc.). Carregue o arquivo final na ferramenta de Process Mining.
Configuração
- CDS View personalizada: Crie uma CDS View específica, por exemplo,
Z_C_EWM_EVENTLOG_CDS, para unificar os dados dos eventos. Esse é o objeto central da extração. - Serviço OData: Ative o serviço OData gerado a partir da CDS View personalizada. Em geral, o nome do serviço corresponde ao nome da CDS View com o sufixo
_CDS. - Filtro por período: Ao chamar a API OData, é essencial aplicar um filtro de data ao campo
EventTime. Para uma análise inicial, use um período de 3 a 6 meses. Sem esse filtro, a consulta pode expirar ou causar problemas de performance. - Filtro por entidade: Para limitar ainda mais o escopo dos dados, considere aplicar filtros a atributos como número do armazém (
Warehouse), tipo de pedido de armazém (WarehouseOrderType) ou materiais específicos (MaterialNumber). - Autorizações do sistema: A pessoa que criar a CDS View precisa de acesso de desenvolvedor SAP no ADT. A pessoa ou conta de serviço que chamar a API OData precisa de autorização para acessar os dados subjacentes de gestão de armazéns.
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 está aprovado e identifique os objetos físicos que representam cabeçalhos de pedidos de armazém, tarefas de armazém, histórico de status de pedidos, 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 pontos de partida comuns, mas verifique os objetos, campos, códigos de status, significado dos timestamps e esquema do banco de dados usados no seu sistema.
- Obtenha o mapeamento de campos validado com a pessoa responsável pela área técnica do SAP EWM ou consulte o dicionário de dados. Mapeie o ID do pedido de armazém, tipo de pedido, status, prioridade, ID da tarefa de armazém, categoria da tarefa ou tipo de processo, material, usuário, timestamp de criação, timestamp de confirmação, timestamps de embalagem, staging e carregamento, timestamp de entrada de mercadorias, timestamp de saída de mercadorias, sistema de origem e timestamp da última atualização. Não presuma que um campo esteja na mesma tabela nem que um código de status tenha o mesmo significado em todas as 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 e final da extração, o nome do sistema de origem e os filtros específicos da empresa. Aplique o filtro de data ao timestamp do evento correspondente, não apenas ao timestamp de criação do pedido de armazém, para não excluir eventos que ocorram mais adiante no ciclo de vida do pedido.
- Crie as linhas de eventos selecionando uma linha para cada atividade explicitamente exigida. 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 estiver representada no histórico de status ou no log da aplicação, e não em um campo atual do cabeçalho, use esse histórico ou log e mantenha o timestamp do evento e o usuário responsável pela execução.
- Normalize todos os timestamps das atividades para um único fuso horário, de preferência 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 para os nomes exatos de atividade 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.
- Verifique se cada linha de saída contém
WarehouseOrder,ActivityName,EventTime,SourceSystemeLastDataUpdate. PreenchaEventEndTimequando houver um timestamp de conclusão confiável. Para eventos no nível da tarefa, associe a tarefa ao pedido de armazém correspondente. Se um pedido de armazém tiver várias tarefas relevantes, mantenha uma linha de evento para cada evento de tarefa e preserve o pedido de armazém como identificador do caso. Use um critério estável para desempate, como o ID da tarefa ou do evento de origem, se o formato de importação permitir. - Valide o resultado antes de exportar. Confira se os 14 nomes de atividade aparecem quando os dados de origem contêm os eventos de negócio correspondentes, se os timestamps estão dentro do período solicitado, se os pedidos de armazém não estão inesperadamente em branco e se as linhas duplicadas podem ser explicadas por várias tarefas ou alterações repetidas de status. Compare as 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 consulta ao banco de dados, com um evento por linha. Mantenha os nomes exatos das colunas obrigatórias, use um formato de timestamp inequívoco, como ISO 8601, coloque valores de texto entre aspas quando o formato delimitado exigir e inclua uma linha de cabeçalho. Carregue o arquivo ou configure a conexão com o banco de dados no ProcessMind. Defina
WarehouseOrdercomo identificador do caso,ActivityNamecomo atividade,EventTimecomo timestamp de início eEventEndTimecomo timestamp de término, quando disponível.
Configuração
- Mapeamento dos objetos de origem: Verifique os objetos físicos do banco de dados e os campos de pedidos e 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 confirme a representação no banco de dados implantado antes de implementar a extração.
- Período: Comece com um intervalo controlado de três a seis meses. Use um período menor nos testes iniciais e amplie-o após a conciliação. Inclua uma pequena sobreposição entre execuções incrementais para capturar lançamentos tardios 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 entradas e saídas de mercadorias e timestamps de execução validados para embalagem, staging e carregamento. Não use o horário de criação do pedido de armazém para todos os eventos.
- 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 a pessoa responsável pela área funcional do EWM, pois os códigos de status e onde ficam armazenados 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 nulo.
- LastDataUpdate: Preencha o 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 marco de controle persistido com base no timestamp mais recente da origem extraído com sucesso e inclua uma janela de sobreposição para registros que cheguem com atraso. Remova duplicatas usando identificadores de origem validados, quando disponíveis.
- Performance: Restrinja o período logo no início, selecione apenas as colunas necessárias, filtre campos indexados, evite aplicar funções a colunas de timestamp indexadas nos predicados e processe períodos longos 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 combinar dados de tarefas, status, materiais e unidades de manuseio. Agregue ou selecione o registro de evento adequado antes de fazer a 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 leitura no banco de dados, 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 configuração de importação do ProcessMind aprovada. Os módulos, as licenças e as autorizações SAP necessários dependem da arquitetura EWM implantada e devem ser confirmados pela pessoa responsável pelo sistema.
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 a otimizar as operações do seu armazém. Use este Template para alcançar a máxima eficiência e acelerar o atendimento de ordens.
Elimine erros de separação e otimize a gestão do armazém hoje
Alcance 99,5% de precisão no estoque e elimine atrasos no atendimento de pedidos em poucas semanas.
Não é necessário informar o cartão de crédito. Configure tudo em poucos minutos.