Jump to content

Assista click.png tectoy.png

C6 chamada_c6.png botao.png

Erro ao enviar RPS, arquivo retorna vazio


Go to solution Solved by Italo Giurizzato Junior,
  • Este tópico foi criado há 785 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde!

Estamos com problema no envio do RPS para os provedores GINFES (cidade de SÃO JOSÉ DO RIO PRETO/SP) e PRONIMV2 (MIRASSOL/SP). Seguindo o DEMO do ACBrNFSe, segue as telas abaixo o problema encontrado.

Na imagem debug_1, mostra que o nome do arquivo está vazio.

Na imagem debug_2, mostra o erro enquanto estamos debugando o sistema.

Na imagem debug_3, mostra a mensagem de erro ao usuário final, mas mesmo com o erro, a nota foi gerada no site da GINFES, conforme mostra a imagem gerou_nfse.

Precisamos de uma orientação de como corrigir o problema.

debug_3.png

debug_2.png

debug_1.png

gerou_nfse.png

Link to comment
Share on other sites

Italo,

Segue as telas das pastas e os arquivos gerados nas mesmas. Tentei fazer a consulta de NFSe por RPS e retornou : ERRO: Campo telefone do tomador informado incorretamente. O campo telefone do tomador devera ter tamanho maximo de 11 caracteres, mas veja nas imagens que o exemplo tem apenas 8 dígitos.

consultar_nfse_por_rps.png

Pasta_2.png

Pasta_1.png

Link to comment
Share on other sites

  • Consultores

Augusto,

Noto que pela sua imagem onde aparece o Total de Cidades (1140) os seus fontes estão desatualizados.

Pois o arquivo Cidades.ini já contempla 1184 cidades.

Se os fontes estão atualizados, então você não esta fazendo uma atualização completa, esta esquecendo de atualizar a pasta Exemplos.

Um arquivo INI (Cidades.ini ou <provedor>.ini) desatualizado pode gerar erros.

Notei que você fez alterações no programa exemplo, fazendo com que ele carregue um XML e o imprime.

Você não deve ter o conceito correto da NFS-e em mente.

O componente ACBrNFSe gera e envia o XML do RPS e temos como retorno o numero do protocolo que atesta que o lote de RPS foi recebido pelo webservice.

De posse do numero do protocolo mais o numero do lote devemos consultar a situação do Lote, teremos como resposta uma das seguintes situações:

1. Lote não recebido, 2. Lote em processamento, 3. Lote processado com falhas, 4. Lote processado com sucesso.

Se a situação for 3 ou 4 devemos consultar o lote, teremos como resposta a lista de rejeições caso a situação for 3 ou o XML da NFSe se for 4.

É o XML da NFS-e salvo na pasta Notas que devemos carregar para imprimir o DANFSE.

  • Like 1
Consultor SAC ACBr Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

Boa noite Italo,

Agradeço sua explicação, fiz alguns testes e quando o retorno da consulta é 3 ou 4 está tranquilo, porque se for 3, dependendo do erro, reenviamos o RPS e se for 4, carregamos o arquivo de retorno e imprimimos a NFSe, mas quando é 2, qual o procedimento correto a ser feito ? Devemos aguardar algum tempo e fazer a consulta do lote, usando o método ConsultarLoteRps ? 

Link to comment
Share on other sites

Boa tarde Italo,

Desculpe a demora em responder, mas temos um outro problema. No componente a propriedade ConsultarLoteAposEnvio, nós configuramos para = TRUE e as vezes o RPS é enviado tranquilamente, mas tem vezes que ocorre o erro de Access Violation e não chega no nosso tratamento de erros, mas a nota é gerada no servidor da prefeitura. Veja as telas abaixo, o que pode ser feito para resolvermos. A primeira imagem é do erro e a segunda é do processo, onde nós temos o Envio do RPS, veja que tem um try except, mas não cai dentro dele quando dá o erro de Access Violation.

 

02_04_erro_nfse_jealtec.png

02_04_tratamento_fontes.png

Link to comment
Share on other sites

Italo,

Melhorando a explicação acima, segue a sequencia dos arquivos XML gerados pelo processo.

No arquivo 02_04_etapa_5.png, mostra a mensagem que o RPS não está na base de dados, mas foi gerada sim, tanto que depois fizemos a consulta e a nota estava lá.

 

02_04_etapa_5.png

02_04_etapa_4.png

02_04_etapa_3.png

02_04_etapa_2.png

02_04_etapa_1.png

Link to comment
Share on other sites

  • Consultores

Boa tarde Augusto,

Quanto a violação de acesso é preciso descobrir se esta ocorrendo no componente ou na sua aplicação.

Pelo que entendi não é sempre que ocorre, ai fica difícil de descobrir.

O Ginfes é meio problemático, quando não é uma coisa é outra com problema.

Será que a violação de acesso não esta ocorrendo logo nas 3 primeiras linhas do seu except?

Tem (..).Items[0].(...), não seria interessante checar se essa lista realmente possui itens? 

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

  • Consultores
  • Solution

Augusto,

Notei agora que se a cidade não for Mirassol é executado o método Enviar caso contrario é o Gerar.

Esse tipo de abordagem para mim esta errada.

O seu maior problema é o seguinte, nas linhas que contem o Items[0] você faz referencia a classe GerarNFSe que tem haver com o Gerar e não com o Enviar.

Esta ai o seu erro.

Quando ocorre um erro não necessariamente no envio do lote, mas sim não consulta por exemplo ele cai ai e vai checar o retorno, mas esse retorno que esta sendo checado é do Gerar e não do Enviar.

Logo na lista de retorno do GerarNFSe não existe nenhum item.

Você deve separar as coisas.

Você deve ter um tratamento para o Enviar e outro para o Gerar.

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.