Um dos problemas mais comuns relacionados com MRP é o tempo to total de execução, que geralmente é muito alto.

Com algumas alterações simples de customizing ou nos parâmetros de execução, além de controlar o tamanho das tabelas envolvidas, é possível melhorar a performance da execução do MRP.

Para a melhor análise destes parâmetros e customizing que podem afetar negativamente a performance do MRP, eu criei um report em ABAP que realiza uma verificação automática.

Este report verifica os pontos abaixo:

– Tamanho da tabela RESB

– Bom buffering ativo no customizing

– Listas MRP agregadas está ativo no customizing

– Modo de planejamento 2 ou 3 foi utilizado

– Chave de processamento NEUPL utilizada em combinação com mode de planejamento 2

– Horizonte de planejamento detalhado

– Processamento em paralelo

– Entradas no arquivo de planejamento convertidas para MRP areas.

Se você está interessado em executar este report no seu sistema, o código fonte está disponível na WIKI abaixo:

MRP Performance Analyzer – ERP Manufacturing (PP) – SCN Wiki

Seguem abaixo algumas screenshots do report e da tela de resultados:

1 – Tela de seleção:

MRP performance check 1.png

2 – Resultados:

MRP performance check 2.png

Como é possível observar nesta screenshot, o report mostra quais os parâmetros e customizing que podem causar problemas de performance, explica a solução do problema e, quando disponível, disponibiliza um link para notas que explicam o problema em mais detalhes.

Esta ainda é uma versão beta do report, mas ele pode ser implementado com segurança, uma vez que não altera ou deleta nada no sistema.

Desde já agradeço a quem puder implementar testar este report no seu sistema e  descrever os resultados nos comentários. Além disso, se tiverem outras sugestões de melhorias, também podem deixar nos comentários.

To report this post you need to login first.

5 Comments

You must be Logged on to comment or reply to a post.

  1. Guilherme Frisoni

    Bom report Caetano! Uma pequena sugestão na questão do código.

    Você tem uma rotina para buscar a quantidade de registros da tabela RESB. Ao invés de carregar todas as linhas da tabela para ter a quantidade correta, você poderia fazer um SELECT COUNT(*), assim evita o uso de memória, já que a tabela é muito grande, e ainda tem um ganho de performance no programa.

    Ficaria assim:

    *–> Check the number of lines on table RESB
         SELECT COUNT(*) FROM resb.
         nlines_resb = sy-dbcnt.

    Abraço,

    Frisoni

    (0) 
  2. roberto engels Garay

    Excelente.

    Contribuindo…

    Manter uma base de dados acurada e válida também é muito importante. Tanto para dados mestres como transacionais. A tabela RESB precisa disso. Se isso não for feito, o processamento virtualmente será mais rápido sem dúvida, ainda que lixo esteja sendo processado.

    Utilizar o desenho do processo de forma coerente vai ajudar muito. Exemplo, já vi algumas plantas configuradas  para converter todas suas ordens planejadas, em ordens de produção ou em requerimentos de compras. Há que se determinar um horizonte para isso, pois onera performance e define dados que posteriormente deverão ser ajustados, enfim algo a se pesar quanto a real necessidade outras alternativas a disposição.

    Sucesso.

    (0) 

Leave a Reply