Ir para conteúdo
  • Cadastre-se

dev botao

'' is not a valid integer value ao Emitir NFSe - Provedor IPM Arapongas/PR


Ver Solução Respondido por fabio alberto,

Recommended Posts

Postado

Boa tarde, 

Estou com o seguinte problema, ao emitir NFSe utilizando o componente NFSeX, eu consigo emitir a NF normalmente e inclusive os XML's de envio e retorno são criados certinho na pasta, porém, toda vez que eu chamo a procedure emitir acaba ocorrendo o famoso is not a valid integer value (Dando break consegui identificar que é algum valor em branco passando pela funcão StrToInt64, mas não consegui identificar a origem desse valor vazio).

O exception acontece na seguinte linha de código:

image.thumb.png.51eaad2a8671b56a739fe68cf8105a5c.png

 

Dando F7, ele chega até aqui:

image.thumb.png.91bd55900a6781460b5633f7e72bbbc1.png

Chegando nesse cara da imagem acima, ele da o exception:

image.thumb.png.9ed0f3d3f6344d5a9d5f0f6f382c1dde.png

Esse problema começou depois que atualizei meu ACBr, por vias das dúvidas tentei agora baixar os fontes novamente e reinstalar, mas acabou não mudando nada.

Mesmo acontecendo esse problema, o ACBr está fazendo o envio, recebendo o retorno e criando os XML's na pasta, conforme imagem abaixo:

image.png.b93204235aaeb90722c423bba1747ed0.png

Só que o exception está fazendo a minha aplicação entrar no tratamento do try except independente se houve sucesso ou erro, por isso preciso solucionar esse problema.

Alguém já passou por alguma situação parecida e talvez consiga me ajudar? Imagino que provavelmente seja algum campo que acabei esquecendo de popular, mas até agora não encontrei.

  • Consultores
Postado

Boa tarde @fabio alberto,

Favor configurar o componente para salvar o arquivo soap.

Faça um novo teste e anexe aqui o arquivo soap de retorno ou envie para mim por mensagem privada para que eu possa analisar o problema.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Pior que até recebo o retorno, o problema é que toda vez que roda o emitir tá gerando esse exception do '' is not a valid integer value, até tentei tirar o emitir de dentro do try agora, mas ficou na mesma.

image.thumb.png.0870d39f5a397e8b42ae1e1649910bcf.png

O programa de exemplo eu rodei com a configuração padrão de lá e pareceu funcionar normal, no pior dos casos, vou precisar remontar na minha aplicação as procedures de configuração do componente e alimentacomponente para tentar deixar a aplicação o mais parecido possível com o aplicativo de exemplo de novo, pois da última vez que fiz isso o programa de exemplo estava um pouco diferente.

Postado (editado)

Tava fuçando procurando por soluções e acabei achando esse post

Ele estava tendo o mesmo problema que eu por conta de um erro de conversão, mas no caso dele ele já conseguiu achar o campo de cara.

No meu caso quando dou break após aparecer o exepction, o delphi me indica que se trata de um valor branco sendo passado na funcao strtoint64

image.png.f4aedc91718da68d73b4c1d0b4e52aed.png

Tem alguma forma de eu descobrir de onde vem esse valor branco debugando? Porque se for algum campo que faltou preencher, seria só inserir e vida que segue, imagino que a função esteja sendo usada pelo acbr, já que no meu projeto ela não aparece nenhuma vez.

 

Editado por fabio alberto
  • Moderadores
Postado

o seu erro é um campo que está indo vazio.

depura. e quando der o erro use o f7 e f8 pra ver onde ele para

ou desde o momento que começa enviar use o f7 e vai entrando na função até chegar ao campo que não informou ocasionando o erro

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Consultores
Postado

Bom dia @fabio alberto,

A minha sugestão é você abrir a sua aplicação, abrir a unit IPM.Provider e nela colocar um ponto de parada na primeira linha da procedure TratarRetornoEmitir, como nessa unit temos 2 procedures com o mesmo nome a que eu me refiro é:

procedure TACBrNFSeProviderIPM.TratarRetornoEmitir(Response: TNFSeEmiteResponse);

Rode a sua aplicação e quando parar no ponto de parada vai "debugando" com o F7.

Desta forma você vai descobrir se o erro ocorre nos fontes do componente ou na sua aplicação.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Solution
Postado

Bom dia,

Consegui encontrar o campo, o ACBR usa essa função CodTOMToCodIBGE passando o código da cidade do Tomador, dentro da função ele passa o código da cidade pelo StrToInt64, no meu caso a cidade do tomador estava em branco, por isso o erro.

Preencher esse campo Tomador.Endereco.CodigoMunicipio resolveu o problema.

Obrigado pela ajuda, Italo e Juliomar.

image.thumb.png.120b3da002e17ed41d9d0e31bcbe0d9a.png

  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...