Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Cross Segmento - Backoffice (Linha Protheus) - SIGAEST - Controle de numeração D3_DOC

O campo D3_DOC na tabela SD3 do Protheus armazena números de documentos em movimentos de estoque, controlados pela variável cDocumento nas rotinas MATA241 e MATA242 de acordo digitação do usuário. A numeração é sequencial automática, mas pode ser alterada manualmente, o que pode causar inconsistências, especialmente com caracteres especiais ou espaços. Recomenda-se evitar digitação manual, revisar a base e garantir collation correto no banco. Correções podem ser feitas via estorno, ajuste por DBA, customização ou bloqueio da digitação manual.

time.png Tempo aproximado para leitura: 00:02:00 min

Dúvida
Como funciona o controle de numeração do campo D3_DOC no Protheus?

Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) - Estoque/Custos - Todas as versões.

Solução
O campo D3_DOC, da tabela SD3, é responsável por armazenar o número do documento associado a determinados movimentos de estoque.
O controle e a numeração deste campo são realizados por meio de funções internas, que pegam o proximo numero maior disponivel na base de dados em relação a tabela SD3, utilizada nas rotinas de movimentações, onde vamos abordar aqui no caso as rotinas MATA241,MATA242 E MATA261.

 

Este KCS tem como objetivo esclarecer:

  • Como o campo D3_DOC é gravado;
  • Quais cuidados devem ser observados;
  • Como proceder em caso de inconsistências;
  • Quais alternativas existem para correção e controle.

Onde o campo é usado nas rotinas em questão

  • Movimentação Múltipla (MATA241)
  • Desmontagem de Produto (MATA242)
  • Transferência Múltipla (MATA261)

utilizam a variável cDocumento para definir o valor do campo D3_DOC durante a digitação.

Por padrão, não há restrição quanto ao que pode ser digitado nesse campo. Entretanto, é necessário cautela no uso de caracteres especiais, tais como:

!   @   #   $   %   ^   &   *   (   )   _   -   +   =   {   }  
[   ]   |   \   :   ;   "   '   <   >   ,   .   ?   /   ~   `  "espaço"

O uso desses caracteres pode:

  • Impactar processos internos do sistema;
  • Causar a busca incorreta do próximo número sequencial (tratamento alfanumérico);
  • Gerar inconsistências dependendo do SGBD utilizado (ex.: Oracle, PostgreSQL, etc.).

Como o sistema gera a numeração

Para garantir um controle saudável da numeração, o sistema possui uma regra interna padrão, que sugere o preenchimento sequencial do campo D3_DOC:

cDocumento := IIf(Empty(cDocumento), NextNumero("SD3", 2, "D3_DOC", .T.), cDocumento)

Ou seja:

  • Se a variável cDocumento estiver vazia, o sistema busca automaticamente o próximo número disponível;
  • Caso o usuário digite manualmente um valor, esse será considerado como base para a sequência.

Exemplo prático

Imagine que sua numeração atual esteja em 000099.
Se, por engano, alguém digitar manualmente o valor 100050, o próximo documento gravado será 100051, pois o sistema sempre identifica o maior número sequencial disponível.
Com isso, a sequência esperada (000100) será quebrada.

 

Possíveis inconsistências

O campo D3_DOC pode apresentar problemas quando contém:

  • Caracteres especiais
  • Espaços em branco;
  • Sequências manuais fora do padrão.

Essas situações não configuram erro do sistema, mas sim efeitos colaterais de digitação indevida.

Além disso, é essencial verificar se o Collation do banco de dados está configurado corretamente.
Clique aqui e acesse a FAQ com orientações sobre Collation por SGBD.

 

Como corrigir a sequência?

Se ocorrer erro de digitação ou quebra da sequência, existem quatro alternativas:

 

1. Estorno do movimento e exclusão física do mesmo

Caso tenha sido movimentos recentes e houver a possibilidade de estorno, e processar a rotina Recalculo do Custo Médio (MATA330) com o pergunte "Apaga Estornos = SIM" para que os estornos sejam excluídos fisicamente do banco. Forma mais rápida e ágil para solução.

 

2. Ajuste com DBA ou ANALISTA IN LOCO

Nos casos em que o campo D3_DOC apresente conteúdos incorretos e o sistema impeça o estorno pelos meios convencionais, que não possa ser realizado pelo cliente, impossibilitando o retorno ao sequencial anterior. 

Recomendamos não realizar ajustes manuais via banco de dados sem supervisão técnica. Para restabelecer a integridade do sequencial e das tabelas de movimentação, a orientação é o acionamento de um consultor especialista in loco, com domínio em Estoque e Custos e banco de dados, para a realização de ajustes pontuais e seguros na base de dados.

 

3. Customização do campo

Implementar uma regra personalizada para que a numeração seja gravada de acordo com a necessidade do cliente, após ajustes necessarios dos dados incorretos. Veja mais informações na Documentação: Ajuste da Numeração do Campo D3_DOC por customização do campo

 

4. Bloqueio da digitação manual

Configurar o sistema para que o campo cDocumento (D3_DOC) não possa ser digitado manualmente, mantendo assim apenas o controle automático sequencial.

 

Possuo de forma legado, campos com caracter minusculo e maiusculo, e preciso considerar os minusculos, o que fazer?

Criado o parametro MV_ESTMINU que ativo vai permitir o uso de minusculas no documento, pois nas versões mais recentes, o controle de numeração segue apenas para caracteres maiusculos sequenciais.

No Configurador (SIGACFG), acesse Ambientes / Cadastros / Parâmetros (CFGX017). Crie o parâmetro a seguir:

Nome MV_ESTMINU
Tipo L
Cont. Por .T.
Descrição Define se permite o uso de minusculas no numero do documento  .T. = Sim; .F. = Não (default)


 

Recomendações finais

  • Sempre que possível, evite a digitação manual no campo D3_DOC;
  • Prefira o uso do controle automático oferecido pela regra interna do sistema;
  • Revise periodicamente a base de dados para identificar inconsistências;
  • Garanta que o Collation esteja correto para evitar problemas de ordenação.

 

Saiba mais:

Clique aqui e veja mais artigos sobre Movimentações no Estoque

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _