Jump to content

dev botao

Configurações ACBrNFe para evitar contingência


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

Recommended Posts

  • Membros Pro

Prezades,

Estou em busca da melhor configuração para o componente de emissão de NFCe de modo a evitar a quantidade notas em contingência emitidas nos clientes. Fiz uma parametrização padrão como mostrada abaixo:

  ACBrNFe1.Configuracoes.Certificados.URLPFX      := '';
  ACBrNFe1.Configuracoes.Certificados.ArquivoPFX  := ACBR_RES + ACBR_CERT_NAME;
  ACBrNFe1.Configuracoes.Certificados.Senha       := '******';
  ACBrNFe1.Configuracoes.Certificados.NumeroSerie := '';
  ACBrNFe1.SSL.DescarregarCertificado;
  //
  with ACBrNFe1.Configuracoes.Geral do
  begin
    //
    SSLLib        := TSSLLib.libOpenSSL;
    SSLCryptLib   := TSSLCryptLib.cryOpenSSL;
    SSLHttpLib    := TSSLHttpLib.httpOpenSSL;
    SSLXmlSignLib := TSSLXmlSignLib.xsLibXml2;
    //
    AtualizarXMLCancelado := True;
    Salvar                := True;
    ExibirErroSchema      := True;
    RetirarAcentos        := True;
    FormatoAlerta         := 'TAG:%TAGNIVEL% ID:%ID%/%TAG%(%DESCRICAO%) - %MSG%.';
    FormaEmissao          := TpcnTipoEmissao.teNormal;
    ModeloDF              := TpcnModeloDF.moNFCe;
    VersaoDF              := TpcnVersaoDF.ve400;
    //
    IdCSC                 := '*****';
    CSC                   := '*****';
    VersaoQRCode          := '*****';
  end;

  with ACBrNFe1.Configuracoes.WebServices do
  begin
    UF := 'XX';
    Ambiente := TpcnTipoAmbiente.taProducao;
    Visualizar := False;
    Salvar     := True;
    AjustaAguardaConsultaRet := True;
    AguardarConsultaRet      := 0;
    Tentativas               := 5;
    IntervaloTentativas      := 500;
    TimeOut                  := 15000;
  end;

  ACBrNFe1.SSL.SSLType := TSSLType.LT_all;

A aplicação recebe diferentes erros nas emissões ao longo do dia e em seguida volta a operar normalmente. Abaixo seguem alguns dos erros mais frequentes:

  Result := (ACBrNFe1.WebServices.Enviar.cStat = SEM_RETORNO_SEFAZ) and
   // erros de conexão enviar em modo off-line
   ((pos('12007', motivoErro) > 0) or                       // erro de conexão
    (pos('12002', motivoErro) > 0) or                       // timeout
    (pos('12029', motivoErro) > 0) or                       // limite de tempo de conexão
    (pos('12157', motivoErro) > 0) or                       // erro no suporte a canais seguros
    (pos('10091', motivoErro) > 0) or                       // 500 - network subsystem is unusable
    (pos('11001', motivoErro) > 0) or                       // 500 - host not found
    (pos('10054', motivoErro) > 0) or                       // Connection reset by peer
    (pos('TIMED OUT', motivoErro.ToUpper) > 0) or           // timeout
    (pos('ERRO NAO CATALOGADO', motivoErro.ToUpper) > 0) or // erros de tratamento do webservice
    (pos('SERVICO PARALISADO', motivoErro.ToUpper) > 0))    // Servico Paralisado Momentaneamente

Hoje me deparei com mais esse que acabou por não emitir a nota, pois ainda não tratei para entrar em contingência (lista acima):

Erro Interno: 11004
Erro HTTP: 500
URL: https://nfce.svrs.rs.gov.br/ws/NfeAutorizacao/NFeAutorizacao4.asmx
Valid name, no data record of requested type

Gostaria de saber se estou utilizando a configuração ideal, se tem alguma melhor. Por que esses problemas estão acontecendo em todos os clientes que estão colocando essa nova aplicação com ACBr. Ou seja, não é algo isolado. Mesmo no ambiente de testes e desenvolvimento também recebo diversos erros de emissão que fazem a aplicação entrar em contingência.

Saudações,

Rafael Glauber

Link to comment
Share on other sites

  • Fundadores
  • Solution

A questão de entrar ou não em contingência.. depende de vários outros fatores... SEFAZ, internet do cliente, etc..

O principal fator, do lado da aplicação.. será a definição do TimeOut.. que é o tempo que a aplicação desiste de esperar pela resposta da SEFAZ...

    TimeOut                  := 15000;

No seu caso, parece OK...

Mas é fundamental, ter alguma forma de configurar isso em tempo de execução... (não deixe essas configurações chumbadas em hardcode)

47 minutos atrás, ProtonSistemas disse:

A aplicação recebe diferentes erros nas emissões ao longo do dia e em seguida volta a operar normalmente. Abaixo seguem alguns dos erros mais frequentes:

Use o evento: OnTransmitError, para pegar erros de Transmissão

49 minutos atrás, ProtonSistemas disse:
  ACBrNFe1.SSL.SSLType := TSSLType.LT_all;

Isso está ERRADO... Use apenas LT_TLSv12

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

  • Membros Pro

Muito bom, mas surgiu uma duvida, o evento OnTransmiteError deve prever isso?

  Result := (ACBrNFe1.WebServices.Enviar.cStat = SEM_RETORNO_SEFAZ) and
   // erros de conexão enviar em modo off-line
   ((pos('12007', motivoErro) > 0) or                       // erro de conexão
    (pos('12002', motivoErro) > 0) or                       // timeout
    (pos('12029', motivoErro) > 0) or                       // limite de tempo de conexão
    (pos('12157', motivoErro) > 0) or                       // erro no suporte a canais seguros
    (pos('10091', motivoErro) > 0) or                       // 500 - network subsystem is unusable
    (pos('11001', motivoErro) > 0) or                       // 500 - host not found
    (pos('10054', motivoErro) > 0) or                       // Connection reset by peer
    (pos('TIMED OUT', motivoErro.ToUpper) > 0) or           // timeout
    (pos('ERRO NAO CATALOGADO', motivoErro.ToUpper) > 0) or // erros de tratamento do webservice
    (pos('SERVICO PARALISADO', motivoErro.ToUpper) > 0))    // Servico Paralisado Momentaneamente

 

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.

The popup will be closed in 10 seconds...