Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Expandir
titletype mismatch on _ on _____(_____.PR_)

Explicação

Esse erro acontece quando é feito alguma operação com variáveis (subtração, adição, multiplicação, divisão, potenciação) de tipos diferentes (caractere, numérico, data, nula), sejam as possíveis causas:

  • Gatilhos/customizações/parâmetros injetando informações nos campos com natureza diferente do tipo do campo
  • Alteração da estrutura padrão do campo/parâmetro
  • Customizações


Tópicos de Análise (com tickets de exemplo)

Deck of Cards
startHiddenfalse
effectDuration0.5
idCusto Médio
effectTypehorizontal
loopCardstrue
Card
defaulttrue
id#17743817
label#17743817

Erro

Expandir
titleVer erro (cabeçalho)

Para ver o erro completo, abra o ticket: link aqui: https://totvssuporte.zendesk.com/agent/tickets/17743817

Bloco de código
firstline1
titleTrecho
linenumberstrue
THREAD ERROR ([9556], wander.silva, SPON010117778)   07/08/2023 14:40:28
type mismatch on +  on A410TUDOK(MATV410A.PRW) 05/05/2023 11:20:05 line : 172

Ao ver o cabeçalho, podemos extrair que o erro está acontecendo na função A410TUDOK, no fonte MATV410.PRW na operação de adição:

Entre variáveis.


Tópicos de Análise

Expandir
title1 - Avaliar o retorno dentro da primeira função

Note que na linha 172 do fonte, linha 2 abaixo, procuramos a somatória com variáveis que está gerando o erro:

Bloco de código
firstline1
titleTrecho
linenumberstrue
	SED->(DBSetOrder(1))
	If SED->(DBSeek(xFilial("SED")+cPVNaturez) .And. !RegistroOk("SED",.F.))
		Help(" ",1,"A410NATBLK",,STR0406,1,0)	//##"Natureza utilizada encontra-se bloqueada para uso"
		lRetorna := .F.
	EndIf
EndIf


Trecho exato:

Bloco de código
firstline1
titleTrecho
linenumberstrue
If SED->(DBSeek(xFilial("SED")+cPVNaturez) .And. !RegistroOk("SED",.F.))

Sabemos então, que na seleção do índice da tabela "SED", onde há "adição" de caracteres, o erro está ocorrendo.


Expandir
title2 - Procurar qual variável está recebendo um valor incorreto diferente da outra

A - No trecho do fonte separado, podemos isolar, como visto na linha abaixo, a operação onde o problema ocorre:

Bloco de código
firstline1
titleTrecho
linenumberstrue
xFilial("SED") + cPVNaturez


B - Temos que verificar o que leva valor ao campo "filial da tabela SED" e valor a variável "cPVNaturez"

Por ser uma busca de índice, sabemos que o que leva valar ao: xFilial("SED") é justamente a filial do sistema no cadastro de natureza, conhecido como o campo  "ED_FILIAL".

Para sabermos o valor colocado no campo cPVNaturez, podemos varrer o fonte analisando as atribuições:

Bloco de código
firstline1
titleTrecho
linenumberstrue
Local cPVNaturez := ""


If "C5_NATUREZ" $ cMV1DupNat
		cPVNaturez	:= M->C5_NATUREZ
ElseIf "A1_NATUREZ" $ cMV1DupNat
		cPVNaturez	:= Posicione("SA1",1,xFilial("SA1")+M->C5_CLIENTE+M->C5_LOJACLI,"A1_NATUREZ")
Else
		cPVNaturez	:= &(cMV1DupNat)
EndIf


If "C5_NATUREZ" $ cMV2DupNat
	cPVNaturez	:= M->C5_NATUREZ
ElseIf "A2_NATUREZ" $ cMV2DupNat
	cPVNaturez := Posicione("SA2",1,xFilial("SA2")+M->C5_CLIENTE+M->C5_LOJACLI,"A2_NATUREZ")
Else
	cPVNaturez	:=  &(cMV2DupNat)
EndIf


Podemos extrair que:

  • O valor da variável pode vir dos campos "A2_NATUREZ" (linha 15 acima), "A1_NATUREZ" (linha 6 acima), "MV_1DUPNAT" (linha 3 acima) e "C5_NATUREZ" (linha 4 acima)
  • O erro pode vir tanto do conteúdo natural dos campos ou gatilhos acima, quanto de customizações/gatilhos que atribuam valor a esses campos.
  • É importante verificar se o campo ED_FILIAL tem a mesma estrutura dos campos e parâmetros acima.

Resultado pós análise/interação:

"Boa tarde e grato pelo retorno. Pode encerrar o chamado, pois já descobri o motivo, era o parâmetro mesmo."



Expandir
titleTime-out occurred while waiting for buffer latch type 4 for pageData width error - Field: ___._____ Value: _____._____ on _____(_____.PR_)

Explicação

Este erro ocorre quando o sistema tentar colocar um valor em campo maior do que seu tamanho suporta.

  • Verifique as variáveis/campos que atribuem o valor ao campo do erro e quais suas rotinas/módulos detentores
  • Verifique se há customizações
Dica
titleComplemento

Ticket de exemplo: #17848020

Expandir
titleVer erro
Bloco de código
firstline1
titleTrecho
linenumberstrue
THREAD ERROR ([1328], NOVA PIRATININGA, IGOR-CONTABILID)   18/08/2023 12:49:02
Data width error - Field: ADB_QTDEMP Value: 10023570.000000 on MAAVALSC6(FATXFUN.PRX) 29/08/2022 18:15:53

[TOTVS build: 7.00.210324P-20230228]
Called from A410GRAVA(MATN410.PRW) 30/11/2022 15:39:57 line : 1307
Called from A410INCLUI(MATA410.PRX) 26/09/2022 15:59:37 line : 1317
Called from FT400PV(FATA400.PRX) 27/01/2022 15:20:43 line : 1921
Called from FT400REMES(FATA400.PRX) 27/01/2022 15:20:43 line : 1585
Called from FWFORMBROWSE:EXECUTE(FWFORMBROWSE.PRW) 04/04/2023 15:05:10 line : 1147
Called from {|| OSELF:EXECUTE("FT400REMES",              6,             0,"REMESSA",              9,"","REMESSA","",               9) }(FWFORMBROWSE.PRW) 04/04/2023 15:05:10 line : 579
Called from ::MSDIALOG:ACTIVATE
Called from FWMBROWSE:ACTIVATE(FWMBROWSE.PRW) 04/04/2023 15:05:10 line : 700
Called from FWMBROWSE(MSLIB.PRW) 04/04/2023 15:05:10 line : 10499
Called from MBROWSE(MSLIB.PRW) 04/04/2023 15:05:10 line : 170
Called from FATA400(FATA400.PRX) 27/01/2022 15:20:43 line : 91
Called from __EXECUTE(APLIB090.PRW) 04/04/2023 15:05:08 line : 721
Called from MDIEXECUTE(APLIB260.PRW) 04/04/2023 15:05:08 line : 924
Expandir
titleAnálise realizada

1. No cabeçalho do erro, podemos ver qual o campo que o sistema está tentando inserir valor e podemos ver o valor inserido, sabendo assim, seu tamanho:

Bloco de código
firstline1
titleTrecho
linenumberstrue
Data width error - Field: ADB_QTDEMP Value: 10023570.000000 on MAAVALSC6(FATXFUN.PRX) 29/08/2022 18:15:53

O campo está tentando inserir um campo da ordem de: 15 casas totais / 6 casas decimais após a vírgula.

OBSERVAÇÃO: Para compor o valor total se conta o ponto flutuante (o que separa as casas inteiras das casas decimais)


2. Há dois caminhos para seguir, o valor está errado e precisamos entender a origem dele, isto é, as variáveis/campos que injetam valor do erro nesse campo "ADB_QTDEMP" ou, simplesmente aumentar o campo no configurador pois pode estar correto (depende da resposta do cliente) para que o campo suporte o tamanho e não ofereça mais erro.


2.1 - Estudar origem (Pequisar no Azure e analisar)


2.2 - Aumentar campo para que o erro não ocorra:

Expandir
titleConclusão do caso

( . . . )


...