Histórico da Página
...
Lentidão na performance para inclusão de pedido de compras (MATA120 a partir do módulo SIGAEIC ) com mais de 900 itens, através de rotina automática.
03. SOLUÇÃO
Foram realizados os seguintes ajustes para melhoria de performance na inclusão do pedido de compras com muitos itens:
Foi identificado que a função de avaliação de permissão ao armazém (MAAVALPERM) era chamada duas vezes para a mesma finalidade, uma vez pela função A120PRODUTO e novamente pela função A120TUDOK para fazer a mesma coisa.
O programa foi alterado para efetuar a validação somente uma vez pela função A120TUDOK.
Também foi inserida validação na função A120LINOK para que a permissão seja verificada somente uma vez por armazém/produto, para não validar várias vezes desnecessariamente.
Também foi identificado que recentemente foi incluída uma validação na função A120LINOK que executava dois laços em todos os campos usados da tabela SC7 para checar se os campos obrigatórios estão preenchidos.
Estes dois laços eram executados para cada item do documento, causando lentidão.
Este trecho foi removido do programa pois esta validação já é executada em outro trecho de forma mais rápida.
Também foi identificado que uma função utilizada para retornar os grupos que o usuário do sistema faz parte (UsrRetGrp()) estava sendo chamada duas vezes para cada item do documento (1806) causando lentidão.
Os programas MATA120 e MATXALC foram ajustados pois só é necessário fazer esta verificação uma vez.
Também foi efetuado um ajuste na chamada da função CTBENTARR() (verificação de entidades contábeis adicionais) para que seja executada somente uma vez, economizando tempo.
Ajuste nas chamadas da função A100SEGUM() (conversão de segunda unidade de medida) para executar somente a partir da função de validação de Quantidade e não mais de Produto quando for rotina automática.
Ajuste para que a chamada da função MTGLASTDBM() (validação de itens alçada de pedido liberados) não seja feita desnecessariamente.
...