Ir para conteúdo
  • Cadastre-se

dev botao

ACBrNFSe não pega a lista de mensagens de retorno ao consultar lote (trunk2) Ginfes


  • Este tópico foi criado há 3353 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Olá amigos bom dia!

Estou testando o envio de NFSe na trunk2 e estou tendo problemas ao tentar enviar uma nota. Quando há algum erro o componente não está exibindo a mensagem de erro. 

Comparando com a trunk1 (depois de um dia todo quebrando a cabeça para entender o código hehe) percebi que o problema parece estar na função:

function TRetornoNFSe.LerXml: boolean;

Da unit pnfsLerListaNFSe.pas

Na trunk1, ao ler o retorno, o componente entra em       if (leitor.rExtrai(1, 'ListaMensagemRetorno') <> '') or

Já na trunk2, ao ler o retorno, o componente entra em     if (leitor.rExtrai(1, 'GerarNfseResposta') <> '') or
       (leitor.rExtrai(1, 'GerarNfseResponse') <> '') or
       (leitor.rExtrai(1, 'ConsultarLoteRpsResposta') <> '') or
       (leitor.rExtrai(1, 'ConsultarNfseRpsResposta') <> '') or 

.. 

Sendo que o if de cima está no else.

Não tive segurança para fazer a alteração por não ter entendido bem o código até agora, mas para testar o problema faça o seguinte:

Emita uma NFSe e depois tente enviar outra NFSe com o mesmo número de RPS (o objetivo aqui é levantar um erro). A mensagem de erro não é exibida, é exibido apenas um "Unknown". No trunk1 era exibido a mensagem informando que já existe RPS com o mesmo número para o CNPJ.

Percebi que a mensagem de erro vem no XML que seria processado neste primeiro if, mas como ele não entra lá a mensagem não é capturada.

 

 

 

Gilson do Carmo
WindSoft Sistemas

  • Membros Pro
Postado (editado)

Realmente o problema estava no trecho de código que eu citei acima. Na trunk1 o código estava bem confuso, na trunk2 foi melhorado o código mas foi colocado um else onde não havia antes, ou seja, na trunk1 na leitura do XML eram lidos vários nodes do XML no mesmo procedimento, já na trunk2 como foi colocado um else, ou lê um nó ou lê outro, e isso estava causando o problema. 

@Juliomar Marchetti ou @Italo Jurisato Junior Segue anexo a alteração simples para correção do problema, favor disponibilizar pra todos.

Abraços

 

pnfsLerListaNFSe.pas

Editado por windsoft
  • Curtir 2

Gilson do Carmo
WindSoft Sistemas

  • 5 meses depois ...
Postado

Bom dia. Migrei p/ o trunk2, e ainda não consegui exibir a mensagem com o erro ao enviar nota cujo retorno a situação é 3. Atualizei o ACBr hoje e ainda não deu certo. Se alguém puder ajudar eu agradeço. Abraços!

Postado

Boa tarde Ítalo! Configurei sim, e realmente mostra uma mensagem com o método, num. do lote, data/hora recebimento, protocolo e provedor. Porém se a situacao for 3, nao mostra a mensagem com o erro, como acontecia no trunk1. Eu consigo pegar a situacao e saber que teve erro, porem o erro especifico nao consigo saber. No trunk1 aparecia outra mensagem dizendo qual era o codigo do erro, a descricao e como corrigir. Tentei alguns métodos de retorno do webservice mas todos voltam vazios.

  • Consultores
Postado

Juliana,

Lembre-se que existe o ConsultarSituacao e ConsultarLoteRps.

O primeiro apenas retorna a situação do lote e a resposta é 1, 2, 3 ou 4.

Sendo que 1 = Lote não recebido, 2 = Lope em processamento, 3 = Lote Processado com erro e 4 = Lote processado com sucesso.

Se a situação for 3 ou 4 devemos realizar a segunda consulta, ou seja, ConsultarLoteRps.

Se a situação for 3 teremos a mensagem de erro, por outro lado se for 4 teremos como resposta o XML da NFS-e.

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

  • Este tópico foi criado há 3353 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.