O erro "Data width error" nos campos B2_VATU1 a B2_VATU5 no Protheus ocorre quando o valor excede o limite do campo. Para resolver, remova moedas não utilizadas do parâmetro MV_MOEDACM ou ajuste o valor/custo negativo via movimentação valorizada. Alternativamente, aumente o tamanho dos campos no configurador para evitar o estouro.
Tempo aproximado para leitura: 00:04:15 min
Dúvida
Em rotinas de processamentos como o Recálculo do Custo Médio - MATA330, ocorre o error.log apontando "Data Width error - Field: B2_VATU1 / B2_VATU2 / B2_VATU3 / B2_VATU4 / B2_VATU5 / B2_VFIM1 / B2_VFIM2 / B2_VFIM3 / B2_VFIM4 / B2_VFIM5". Como resolver este problema de estouro de campo em outras moedas?
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) - Estoque/Custos - Todas as versões.
Solução
Normalmente o erro "Data width error - Field: B2_VATU2" (por exemplo se o estouro fosse neste campo) ocorre quando o sistema está tentando gravar um valor maior que a configuração do campo pode suportar.
Como resolver?
O primeiro passo é validar se utiliza por padrão aquela moeda.
Se não utilizar a moeda cujo campo aponta o estouro, basta removê-lo do parâmetro MV_MOEDACM.
Se por exemplo o estouro for no campo B2_VATU2 e a Moeda 2 não for utilizada no seu ambiente, basta acessar ao parâmetro MV_MOEDACM e retirar o valor 2 da relação das moedas.
Caso tenha resíduos de moedas, clique aqui e saiba como limpá-los
Caso utilize a moeda ao qual apontou o estouro do campo:
1° Proposta de Solução: Ajuste de Estoque por Movimento Valorizado para acerto do custo negativo
Normalmente estes erros ocorrem quando o custo está extremamente negativo. Vamos usar o exemplo o erro abaixo:
Data width error - Field: B2_VATU2 Value: -1022318108.853568 on B2ATUCOMD2(SIGACUSA.PRX)
Neste caso, criamos um Tipo de Movimentação (TM) valorizada, através da rotina MATA230
Acessamos à rotina MATA240 para criar a Movimentação do ajuste do valor de -1022318108.853568 no Custo na 2° moeda:
Obs: Note que o campo "Custo" refere-se à Moeda 1. Como não é possível criar Movimento com Custo na Moeda 1 = 0,00, basta inserir 1 centavo para que consiga prosseguir com a movimentação.
Conclusão: desta forma, o custo na Moeda 2 é zerado e o processamento não gerará mais o estouro.
2° Proposta de Solução: Aumentar o tamanho do(s) campo(s) referido(s).
Acesse o módulo "Configurador (SIGACFG) >> Base de Dados >> Dicionário >> Base de Dados" para coletar qual grupo o campo referido pertence.
No exemplo abaixo, usamos o campo B2_VATU1:
Após coletar o grupo, deve-se realizar o processo descrito na documentação abaixo, para que seja alterado o tamanho do grupo (alterando assim também todos os campos relacionados):
Com o ajuste do tamanho do grupo, ele não dará o mesmo erro de outrora.
Observação: As mesmas propostas de soluções valem para campos de Quantidade (B2_QATU, B2_QFIM), precisando apenas em se atentar à efetuar os procedimentos no grupo numérico relacionado à quantidade).
Saiba mais:
Clique aqui e veja artigos sobre Processamentos no Estoque
Clique aqui e veja artigos sobre Custos no Estoque
MP - SIGAEST - Data width error - Estouro de campo de Valor em outras moedas
MATA330 - Como aumentar a quantidade de Casas Decimais para os campos de CUSTOS
Precisao de calculo - Custo médio
0 Comentários