Ir para conteúdo
  • Cadastre-se

dev botao

Tempo De Envio E Retorno


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 3336 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

bom dia a todos

sou novato no projeto ACbr, e estou tendo algumas dificuldades de interpretações de comando.

por favor se alguem poder me ajudar eu agradeço.

ontem em um cliente que emite aproximadamente 6 NFe por dia estava acontecendo o seguinte.

o meu projeto gerava a NFe e enviava a sefaz, mas o tempo de resposta estava muito lento, e meu componente enviada novamente. Estou usando esses parametros:

 

          //Tempo que o componente irá aguardar pelo retorno da consulta ao protocolo de recebimento
          ACBrNFe1.Configuracoes.WebServices.AguardarConsultaRet := 30000;
 
          //se true acerta a propriedade anterior para o valor retornado pelo webservice no protocolo de envio
          ACBrNFe1.Configuracoes.WebServices.AjustaAguardaConsultaRet := True;
 
          //intervalo que o componente irá aguardar antes de tentar novamente
          ACBrNFe1.Configuracoes.WebServices.IntervaloTentativas := 10000;
 
          //numero de tentativas que o componente irá fazer antes de emitir o erro
          ACBrNFe1.Configuracoes.WebServices.Tentativas := 5;
 
acontece que quando ele enviava novamente vinha a reposta de duplicidade de NFe.
o que eu gostaria de entender?
existe alguma coisa nessa configuração que posso deixar que aguarde a resposta da sefaz o tempo que for preciso, sem que o componente tente enviar novamente?
ja deixei a configuração de propriedade de aguardar automatica e da o mesmo problema.
o que me é estranho é que usso esse paramentro em outro cliente com o AguardarConsultaRet := 5000, e o IntervaloTentativas := 2000; e a Tentativas := 5; e da certinho, e esse cliente emite 300 nfe por dia.
 
por favor se alguem poder me ajudar agradeço muito
 
obrigado
paulinho
Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Paulo,

 

Primeiramente:

 

Com a configuração abaixo a sua aplicação vai aguardar 30 segundos entre o envio e a primeira consulta a SEFAZ.

          ACBrNFe1.Configuracoes.WebServices.AguardarConsultaRet := 30000;
Você não acha muito tempo?
Remova essa linha da sua rotina de configuração do componente.
 
Com a configuração abaixo o tempo entre uma consulta e outra será de 10 segundos.
          ACBrNFe1.Configuracoes.WebServices.IntervaloTentativas := 10000;
Você não acha muito tempo?
Remova essa linha da sua rotina de configuração do componente.
 
Se você envia uma nota a SEFAZ, se ocorrer algum problema, você não deve enviar novamente e sim realizar uma consulta usando o método Consultar.
 
Só devemos enviar novamente, quando a nota é rejeitada, neste caso, fazer a correção do dado errado e enviamos novamente ou se ocorrer erro no envio.
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

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

ola italo bom dia

obrigado pelo retorno.

na realidade eu usava nesse cliente essa configuração

ACBrNFe1.Configuracoes.WebServices.AguardarConsultaRet := 5000;

ACBrNFe1.Configuracoes.WebServices.IntervaloTentativas := 2000;

italo quando envio a mesma ela não dá problema de validação, simplesmente ela aguarda o retorno da resposta da sefaz, e como não vem o retorno, o componente esta enviando novamente.

eu não tenho uma função em minha erp que envia novamente.

esse processo acredito que esta sendo enviado sozinho pelo componente.

acredito eu, mas como sou novato nesse projeto tenho duvidas.

o que posso fazer para resolver isso

 

obrigado

paulinho

Link para o comentário
Compartilhar em outros sites

  • Consultores

Paulo,

 

O componente envia o lote de NF-e somente uma vez.

 

O que ele faz é realizar até 5 consultas para poder obter o protocolo de autorização da SEFAZ.

 

Se esta ocorrendo o envio mais de uma vez, o problema esta na sua aplicação, ou alguém fez alguma alteração nos fontes do componente que você esta utilizando para ocorrer o reenvio.

 

O procedimento correto é:

 

1. Enviar o Lote de NF-e;

2. Se ocorrer algum problema e a NF-e não for protocolada devemos então realizar uma consulta através do método Consultar;

3. Se a SEFAZ responder que a nota não existe ai sim devemos enviar novamente.

 

Após o envio se ocorrer um erro temos que levar em consideração que esse erro ocorreu no retorno da SEFAZ, sendo assim não obtivemos a resposta com o protocolo de autorização, resolvemos o problema carregando o XML da respectiva nota através do LoadFromFile e em seguida executamos o método Consultar.

 

Ao realizar essa consulta, se a SEFAZ retornar o erro acusando que a nota não existe, ai sim, podemos concluir que o erro inicial não foi no retorno e sim no envio do lote, neste caso devemos enviar o lote novamente.

 

Trabalhando desta forma não teremos o problema de duplicidade de notas.

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

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

ola italo obrigado pelo retorno.

essas funções uso assim

          //Função que gera o XML
          GerarNFe(vAux);
          ACBrNFe1.NotasFiscais.GerarNFe;
 
          //Função de validação do XML gerado
          ACBrNFe1.NotasFiscais.Valida;
 
          //Função que vai verificar a validação. Caso sim ira enviar
          try
             ACBrNFe1.Enviar(vNumLote,True);
          except
                on E: Exception do
                begin
                     showmessage(E.Message);
                end;
          end;
 
retornando autorização eu uso:
ACBrNFe1.NotasFiscais.ImprimirPDF;
eu uso a função enviar que faz tudo automatico conforme manual
caso eu deixe tentativa zero o que acontece
 
obrigado
paulinho
Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Boa tarde Paulo,

 

Não me recordo se o minimo de tentativas é 5 ou 1, mas lembre-se que o Método Enviar, após o envio do lote ele aguarda cerca de 1 segundo e realiza uma consulta caso o retorno seja lote em processamento aguarda mais 1 segundo e tenta novamente.

 

Eu aconselho deixar o numero de tentativas em 5.

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

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

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