Estoque negativo no Protheus: onde procurar o problema?

Estoque negativo no Protheus: onde procurar o problema?

Entendendo o conceito de estoque negativo no contexto do Protheus

Estoque negativo é um sintoma — não a causa — que indica divergência entre saldo contabilizado pelo sistema e o estoque lógico/operacional esperado. No Protheus essa divergência pode decorrer de diferenças entre saldos calculados a partir de movimentos (entradas, saídas, ajustes, baixas) e registros físicos, de parametrizações que permitem operação em negativo, ou de inconsistências geradas por integrações, jobs em lote e customizações (ADVPL/rotinas). Para diagnosticar corretamente é necessário separar os conceitos de saldo teórico (soma dos movimentos lançados) e saldo disponível (aplicado para bloqueios e vendas), e entender como cada rotina do Protheus impacta ambos.

Fontes comuns que geram estoque negativo

As causas típicas costumam se agrupar em categorias técnicas e operacionais. Conhecer cada uma ajuda a direcionar a investigação.

  • Parametrização do sistema: parâmetros que permitem vendas mesmo com saldo insuficiente, regras de bloqueio não ativadas ou parâmetros de controle de estoque desativados.
  • Movimentos não contabilizados ou pendentes: notas fiscais de entrada/saida lançadas mas não confirmadas/baixadas, recontagens e ajustes pendentes, entradas cuja baixa foi abortada por erro.
  • Concorrência e transações: processamento simultâneo de pedidos, commits não realizados, deadlocks ou rollback em processos que deixam movimentos incompletos.
  • Integrações e jobs externos: WMS, transportadoras, B2B, e-commerce e processos ETL que inserem ou atualizam movimentos fora do fluxo padrão do Protheus.
  • Customizações e rotinas ADVPL: rotinas desenvolvidas que não atualizam saldo corretamente, triggers que não tratam quebra de regra ou registros duplicados.
  • Gestão por lote/serie/armazenagem: consumo errado de lote, redestribuição de saldo por depósito, ou regras de apuramento de custo que alteram o saldo por lote, mas não o saldo global.
  • Erro humano e operações manuais: ajustes de estoque feitos diretamente na base de dados, lançamentos duplicados ou com sinal invertido.

Onde começar: identificação rápida dos pontos com maior probabilidade

Implemente uma triagem inicial para classificar o incidente em urgente (impacto em venda/produção) ou investigável. Passos iniciais recomendados:

  • Identificar produtos/depositos com saldo negativo via consulta agregada.
  • Verificar se o parâmetro que permite estoque negativo está ativo.
  • Listar movimentos do período recente por ordem cronológica e identificar operações pendentes (NF-e sem baixa, ordens de produção não apontadas).
  • Checar jobs/rotinas agendadas (scheduler/serviços Windows/Linux, integrações) executadas nas últimas 24–48 horas.

Exemplo de consulta genérica para identificar saldos negativos (adaptar para o esquema de dados do cliente):

SELECT produto_id, deposito_id, SUM(qtd_mov) AS saldo FROM tabela_movimentos GROUP BY produto_id, deposito_id HAVING SUM(qtd_mov) < 0;

Análise de movimentos detalhada: como rastrear a origem do débito

Depois da triagem inicial, execute uma análise detalhada por produto/depósito. O objetivo é responder: quando o saldo passou a ficar negativo e quais transações contribuíram diretamente?

  • Recorte temporal por evento: extraia todos os movimentos (entradas, saídas, ajustes, estornos) do produto do dia anterior ao primeiro sinal de negativo até o momento atual. Ordene por data/hora e sequencial do lançamento.
  • Auditoria de documentos: identifique documentos fiscais (NF-e, CT-e), pedidos, notas de devolução e ordens de transferência com status não finalizado. Muitas vezes uma NF de entrada com erro de conferência fica em "digitada" e não gera a entrada física.
  • Verificação de movimentos fantasma: procure por lançamentos com usuário system, processos batch, ou rotinas que geram movimentações sem referência ao documento original — isso indica integração automatizada.
  • Separação por natureza do movimento: verificar se o negativo vem de SAÍDAS (vendas) sem correspondentes ENTRADAS, ou de ajustes manuais. Classificar por tipo facilita fixar rotina causadora: faturamento, expedição, PCP, inventário.

Queries auxiliares úteis (pseudo-SQL para adaptar):

  • Movimentos por usuário/processo: SELECT usuario, processo, COUNT(*) FROM movimentos WHERE produto='XXX' AND data >='YYYY-MM-DD' GROUP BY usuario, processo;
  • Últimos movimentos ordenados: SELECT * FROM movimentos WHERE produto='XXX' AND deposito='YYY' ORDER BY data_hora DESC;

Verificação das parametrizações e regras de negócio do Protheus

Parâmetros do sistema determinam comportamento crítico: bloqueio de venda por saldo, exigência de baixa de NF-e para liberar estoque, regras de cálculo de saldo por depósito e por lote. Em ambientes Protheus é comum encontrar parâmetros que diferem entre homologação e produção — validar ambos é essencial.

  • Regras de bloqueio e disponibilidade: confirme se o fluxo comercial respeita o bloqueio automático quando saldo é insuficiente ou se existe parametrização que libera pedidos mesmo com saldo negativo.
  • Regras de custo: custo por média, custo por lote, FIFO/LIFO afetam apuração e às vezes o saldo disponível. Configurações de custo que alteram o saldo por lançamento de revalorização podem gerar efeitos colaterais.
  • Configuração de depósitos: se o cliente usa depósitos virtuais, cross-docking ou depósito negativo configurado, verifique regras que movem saldo entre depósitos automaticamente.
  • Validações de estoque para nota fiscal: confirme se o lançamento de NF-e exige conferência física antes de atualizar o estoque ou se a rotina de baixa automática está ativa.

Obs.: anote as configurações ativas antes de qualquer alteração e documente o entendimento para auditoria.

Impacto de integrações, jobs em lote e replicações de banco

Integrações externas (WMS, e-commerce, TMS, manufatura) são causas recorrentes. Além disso, jobs agendados que consolidam movimentos, atualizam saldos ou fazem reconciliações podem deixar o sistema em estado inconsistente se falharem parcialmente.

  • Mensageria e filas: verifique filas de integração (MQ, filas ADF) para mensagens não processadas ou processadas fora de ordem.
  • ETL e atualizações massivas: processos que atualizam registros em lote via SQL/Stored Procedures podem ter sido interrompidos, deixando saldos temporariamente negativos.
  • Replicação/HA: em clusters e replicações (mirroring, log shipping) atrasos de sincronização podem projetar saldos distintos entre nós; garanta que está consultando a base primária e não uma réplica com latência.
  • Jobs de recalculo: rotinas agendadas de apuração de saldo, se rodadas simultaneamente por instâncias diferentes, podem causar condições de corrida.

Customizações ADVPL, triggers e procedimentos armazenados: pontos sensíveis

Customizações frequentemente intervêm diretamente em tabelas de estoque ou criam movimentos auxiliares. Erros comuns incluem commits em pontos errados, tratamentos deficientes de exceção e operações que não disparam as rotinas de atualização de saldo oficiais do Protheus.

  • Revisão de código: audite funções/rotinas customizadas que inserem registros na tabela de movimentos, alteram estoque ou chamam API internas do Protheus. Procure por uso invulgar de SQL direto, falta de tratamento de rollback e logs insuficientes.
  • Triggers e jobs DB: triggers de banco que fazem updates ou inserts podem causar duplicidade ou inversão de sinais nas quantidades se não estiverem alinhadas com as regras do Protheus.
  • Testes unitários e cobertura: exija teste automatizado nas rotinas que afetam estoque; cenários de concorrência (multi-user) são essenciais.

Procedimento de auditoria e reconciliação passo a passo

Para corrigir e mitigar risco, execute uma auditoria controlada seguindo estes passos:

  • Isolamento: identifique produtos/depositos com saldo negativo e isole-os do fluxo comercial (bloqueie venda/produção até resolver).
  • Dump de dados: extraia todas as linhas de movimentos para os SKUs afetados com filtros por data, usuário e tipo de movimento.
  • Reconciliação direta: some entradas e saídas para cada SKU e compare com o saldo registrado. A discrepância indicará qual faixa de datas ou rotina provocou o problema.
  • Verificação física: realizar inventário físico ou conferência pontual nos SKUs críticos para corroborar o saldo real.
  • Ação corretiva controlada: gerar documentos de ajuste (nota de ajuste/entrada ou baixa) pelo fluxo correto do sistema para restaurar o saldo, preferencialmente com justificativa e responsável apontado.
  • Pós-correção: reexecutar rotinas de fechamento e relatórios para confirmar que o problema não reaparece.

Importante: evitar UPDATE direto nas tabelas de saldo sem utilizar rotinas do Protheus; ajustes manuais reduzem a rastreabilidade e podem quebrar controles fiscais.

Correção: estratégias e comandos seguros

Ao planejar correções, prefira sempre criar documentos que passam pela lógica do sistema (notas de ajuste, ordens de expedição inversa, entradas manuais). Procedimentos típicos:

  • Estornar movimentos inválidos: se houver movimento de saída que não deveria ter sido processado, estorne pelo módulo (faturamento/expedição) para que as rotinas de baixa sigam o fluxo normal.
  • Gerar nota de ajuste: quando o estoque físico for maior que o sistema, registrar nota de entrada/ajuste com histórico técnico; se for menor, gerar baixa/consumo com justificativa.
  • Reprocessar filas e jobs: identificar mensagens falhas nas filas de integração e reprocessá-las na ordem correta; observar dependências por timestamps.
  • Rollback controlado: quando houver erro em lote recente que afetou saldos, e for possível, restaurar backup transacional e reprocessar com controle de concorrência.

Se for inevitável executar updates diretos, seguir estas premissas: (1) executar primeramente em ambiente de homologação, (2) gerar backup completo da(s) tabela(s), (3) criar scripts idempotentes e reversíveis, (4) documentar e obter autorização da governança de TI/negócio.

Prevenção e melhores práticas para evitar recorrência

Implementar controles preventivos reduz muito a probabilidade de novos episódios de estoque negativo.

  • Monitoramento e alertas: criar jobs que verificam saldos negativos e disparam alertas por e-mail/SMS com lista de produtos e responsáveis.
  • Locking e serialização: para processos críticos, aplicar mecanismos de lock a nível de negócio (por exemplo, bloquear SKU durante baixa/expedição) para evitar condições de corrida.
  • Fluxo de integração padronizado: garantir que integrações escrevam por APIs/rotinas oficiais do Protheus sempre que possível; evitar gravação direta em tabelas.
  • Auditoria e logging: ampliar log de transações que alteram estoque com informações de processo e racional; ter um histórico consultável com data/hora, usuário/processo e hash de transação.
  • Segregação de ambientes: garantir que homologação e produção usem bases distintas e que deploys de rotina/patch sejam testados em homologação com volume representativo.
  • Capacitação operacional: treinar usuários nas diferenças entre movimentações que afetam saldo e registros auxiliares; processos operacionais inadequados são causas frequentes.

Checklist técnico para investigação rápida

Use este checklist para padronizar investigação:

  • Identificar SKUs e depósitos com saldo negativo (consulta agregada).
  • Confirmar parâmetro de permissão de estoque negativo e regras de bloqueio.
  • Extrair movimentos completos por SKU/depósito em ordem cronológica.
  • Checar filas de integração e logs de jobs nas últimas 48 horas.
  • Revisar customizações/ADVPL que alteram movimentos ou saldos.
  • Verificar replicação/latência se consultar base secundária.
  • Conferir inventário físico ou amostragem operacional.
  • Definir ação corretiva via fluxo do sistema e registrar justificativas.

Ferramentas e queries úteis (exemplos genéricos)

Algumas queries e verificações que auxiliam a investigação. Adaptar nomes de tabelas/colunas conforme a versão/estrutura do cliente.

  • Consulta de saldo por SKU/depósito (pseudo-SQL): SELECT produto, deposito, SUM(qtd) AS saldo FROM movimentos GROUP BY produto, deposito HAVING SUM(qtd) < 0;
  • Listagem de movimentos por período: SELECT * FROM movimentos WHERE produto='XXX' AND deposito='YYY' AND data >= '2026-01-01' ORDER BY data_hora;
  • Movimentos por usuário/processo: SELECT usuario, COUNT(*) FROM movimentos WHERE data >= '2026-01-01' GROUP BY usuario ORDER BY 2 DESC;
  • Jobs/cron falhos: revisar logs do scheduler do Protheus e do sistema operacional (/var/log, Event Viewer) nos timestamps correlacionados.
  • Verificar mensagens de integração: consultar filas e tabelas de mensageria para mensagens com status 'error' ou 'pending'.

Guardar resultados em CSV para análise e comparação com inventários físicos.

Casos especiais: gestão por lote, série e produção

Ambientes que controlam lote e série introduzem complexidade adicional. Problemas típicos:

  • Consumo por lote inexistente: ordens de produção ou faturamento consumem lotes que não têm saldo, gerando negativo por lote mesmo com saldo global positivo.
  • Movimentação de lote incorreta: transferências que alteram o lote sem ajustar o saldo do lote original.
  • Apontamento de produção: consumo parcial sem fechamento da ordem deixa componentes com saldo negativo até finalização.

Para esses casos, rastrear por combinação produto+lote+depósito, e sempre produzir ajustes pelo fluxo de lote do Protheus, garantindo rastreabilidade e conformidade fiscal.

Governança, documentação e lições aprendidas

Além da correção técnica, estabeler governança é essencial para evitar recorrência:

  • Documentar incidente, causa raiz e ações tomadas.
  • Atualizar checklist operacional e playbooks de recuperação.
  • Programar auditorias periódicas (mensal/quinzenal) de saldos e reconciliation automatizada.
  • Implementar indicadores de qualidade de dados de estoque (ex.: divergência % por SKU, tempo médio de resolução de inconsistência).

Registro contínuo e melhoria de processos reduz o custo operacional e risco fiscal.

Resumo operacional: passos práticos para as primeiras 24 horas

Plano curto para quando o estoque negativo for detectado com impacto:

  • Isolar SKUs críticos do front-end (bloquear vendas/produção temporariamente).
  • Executar consultas agregadas para mapear magnitude e escopo.
  • Identificar se problema é sistêmico (vários SKUs/depósitos) ou pontual.
  • Revogar parâmetros temporariamente que permitam vendas em negativo (se for o caso).
  • Iniciar reconciliação com movimentos e preparar documentos de ajuste.
  • Comunicar equipe de operação, controle interno e fiscais sobre impacto e timeline de correção.

Estoque negativo no Protheus exige investigação multidisciplinar: entender integração entre módulos, rotinas customizadas, configurações e operações reais. A resposta mais robusta combina diagnóstico técnico (logs, queries, revisão de código), reconciliação operacional (inventário físico) e melhores práticas de governança para prevenir reincidência.

Index

Categorias

Sobre o Autor

Foto do Autor
Fábio Hayama

Apaixonado por gestão, tecnologia e inovação, Fábio Hayama possui mais de 15 anos de experiência no universo do ERP Protheus, estratégia empresarial e automação de processos.

Leia mais sobre o Fábio

Entre em contato conosco

Veja mais artigos relacionados

Protheus lento: 8 pontos que você deve verificar antes de culpar o servidor
Quando o Protheus fica lento a primeira reação de muita gente é apontar o dedo para o servidor: “É o servidor que está pesado”. Antes de abrir chamado e bate...
Estoque negativo no Protheus: onde procurar o problema?
Estoque negativo é um sintoma — não a causa — que indica divergência entre saldo contabilizado pelo sistema e o estoque lógico/operacional esperado. No Proth...
Como replicar campos da base de testes para produção no Protheus?
Quem trabalha com TOTVS Protheus sabe que criar campos, tabelas, índices, gatilhos e outras configurações em uma base de testes é apenas uma parte do trabalho. Depois que tudo está validado, surge uma etapa que pode gerar bastante dúvida: qual é a melhor forma de levar essas alterações da base de testes para produção? Fazer […]
5G: o que muda na conectividade e na indústria
5G: o que muda na conectividade e na indústria Quando a gente fala em 5G, muita gente pensa só em internet mais rápida no celular. E sim, velocidade é parte disso — mas o impacto vai bem além. O 5G muda a forma como dispositivos conversam entre si, como fábricas funcionam e até como a […]