Ir para conteúdo
  • Cadastre-se

dev botao

Recommended Posts

Postado

Depois que atualizei o ACbr não estou mais conseguindo emitir notas ficais NFCe

está dando um erro de exceção ao enviar, houve alguma atualização nesse componente?

porque está retornando mensagem vazia e código de cstatus 0

 

    if Enviar(1, False, FSincrono) then
                     begin
                       if FSincrono then
                         FDomParser.XML := WebServices.Enviar.RetWS
                       else

 

Postado

Tinha atualizado uns meses atrás, para mexer no detalhe no sincrono,

mas exceção está bem no "enviar" e não pega nada está vazio

  • 2 semanas depois ...
Postado

Voltei para a versão anterior antes de atualizar o ACBr e está enviado,

nessa versão que tá com esse problema, agora tá aparecendo a mensagem de erro

image.thumb.png.01ab7cce17b54ec2ddbb7172b039dc3e.png

  • Moderadores
Postado
6 minutos atrás, Artsio disse:

Voltei para a versão anterior antes de atualizar o ACBr e está enviado,

nessa versão que tá com esse problema, agora tá aparecendo a mensagem de erro

image.thumb.png.01ab7cce17b54ec2ddbb7172b039dc3e.png

joia. faz o seguinte.

salva todos os soaps de envio e recebimento nesse que funciona

depois deixa o acbr atualizado e faz o mesmo e dai compara os soaps se tem diferença e qual

para dai sabermos o que ficou diferente

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
 

 

Postado

Comparei os xmls da versão anterior com nova que atualizei e está igual.

Pelo xml vi que e status 100 é retornado em ambos. Na antiga eu usava um consultar para pegar o status igual na versão atualizada.

Só que nessa agora na hora que dou enviar aparece esse erro, mensagem vazia, só conseguir pegar a msg da exceção uma  vez,

das outras vezes vazia.

Tentei fazer dá um consultar para pegar o status depois da mensagem de erro só que vem 0.

Só depois de alguns segundos que fecho a tela abro novamente e consulto o status que retorna certo 100.

Obs: O que pude observar que xml está sendo enviado e retornado, só que o compenente não está conseguindo ler o cstatus  "FACBrNFCe.WebServices.Enviar.cStat"

pode ser por conta dessa exceção..

1-env-lot.xml 1-env-lot-soap.xml 1-pro-lot.xml 1-pro-lot-soap.xml

Postado

Utilizei o evento do componente "OnGerarLog"

e apareceu assim

13/08/2024 11:36:16: "EnviaNFCe" - Linha: 2103
13/08/2024 11:36:17: ---------------------------
13/08/2024 11:36:17: Inicio TNFeRecepcao
13/08/2024 11:36:17: 
13/08/2024 11:36:17: ---------------------------
13/08/2024 11:36:24: ---------------------------
13/08/2024 11:36:24: ERRO: 
Erro Interno: 0
Erro HTTP: 0
URL: https://homologacao.nfce.sefa.pr.gov.br/nfce/NFeAutorizacao4


13/08/2024 11:36:24: 
13/08/2024 11:36:24: ---------------------------
13/08/2024 11:37:35: "EnviaNFCe" - Linha: 2137 - Msg: 
Erro Interno: 0
Erro HTTP: 0
URL: https://homologacao.nfce.sefa.pr.gov.br/nfce/NFeAutorizacao4


13/08/2024 11:37:58: ---------------------------
13/08/2024 11:37:58: Inicio TNFeRecepcao
13/08/2024 11:37:58: 
13/08/2024 11:37:58: ---------------------------
13/08/2024 11:38:01: ---------------------------
13/08/2024 11:38:01: Versão Layout:  
Ambiente: 1 
Versão Aplicativo:  
Status Código: 0 
Status Descrição:  
UF: .A 
dhRecbto: 30/12/1899 00:00:00 
chNFe:  

 

 

Percebi um detalhe quando volta mensagem de erro vazia tá em Ambiente 1,  só que estou em homologação

Postado

Ambiente no xml está certo sendo enviado em homologação 2, o que está dando esse problema é na recepção, voltando vazio.

Tenho a versão anterior de backup, e está igual, senão daria o erro, só apareceu isso depois que atualizei.

Está esquisito isso!

  • Moderadores
Postado
12 minutos atrás, Artsio disse:

Ambiente no xml está certo sendo enviado em homologação 2, o que está dando esse problema é na recepção, voltando vazio.

Tenho a versão anterior de backup, e está igual, senão daria o erro, só apareceu isso depois que atualizei.

Está esquisito isso!

novamente esquece seu backup e exclua .

tu só vai para frente. e se fazia tempo que não atualizava quer dizer que te muita coisa

mas é algo em seu código que está mudando o ambiente

lembre-se tu informa isso no componente e ao emitir a nota

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
 

 

Postado

No xml retorno aparece certo

<retEnviNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="4.00">
<tpAmb>2</tpAmb>
<verAplic>PR-v4_4_68</verAplic>
<cStat>104</cStat>
<xMotivo>Lote processado</xMotivo>
<cUF>41</cUF>
<dhRecbto>2024-08-13T14:46:52-03:00</dhRecbto>
<protNFe versao="4.00">
<infProt Id="ID141240000377990">
<tpAmb>2</tpAmb>
<verAplic>PR-v4_4_68</verAplic>
<chNFe>41240807424383000174650060000000531000000540</chNFe>
<dhRecbto>2024-08-13T14:46:52-03:00</dhRecbto>
<nProt>141240000377990</nProt>
<digVal>2dtWccDWYMDob/g8ypBzjCWkq74=</digVal>
<cStat>100</cStat>
<xMotivo>Autorizado o uso da NF-e</xMotivo>
</infProt>
</protNFe>
</retEnviNFe>

Só se tiver perdendo algum dado na memória na hora da recepção.

Mas tem alguma ideia do que pode ser?

 

Postado

Procurei no meu código e não achei nada mudando o ambiente, esse erro de ambiente "1" é porque está vazio.

Tem algum bug ou problema no ACBr que ele não consegue lerXml de retorno, e dá vazio e lança a exceção.

Fui direto ao fonte e rastreei o seguinte:

13/08/2024 18:24:14: "TNFeRecepcao.TratarResposta" :
<retConsSitNFe versao='4.00' xmlns='http://www.portalfiscal.inf.br/nfe'>
<tpAmb>2</tpAmb>
<verAplic>PR-v4_4_68</verAplic>
<cStat>104</cStat>
<xMotivo>Lote processado</xMotivo>
<cUF>41</cUF>
<dhRecbto>2024-08-13T18:24:13-03:00</dhRecbto>
<protNFe versao='4.00'><infProt Id='ID141240000378909'>
<tpAmb>2</tpAmb>
<verAplic>PR-v4_4_68</verAplic>
<chNFe>41240807424383000174650060000000591000000609</chNFe>
<dhRecbto>2024-08-13T18:24:13-03:00</dhRecbto>
<nProt>141240000378909</nProt>
<digVal>N/ZKUSxH1TH3cwgaU4+g438XDQw=</digVal>
<cStat>100</cStat><xMotivo>Autorizado o uso da NF-e</xMotivo>
</infProt>
</protNFe>
</retConsSitNFe>
13/08/2024 18:24:14: "TNFeRecepcao.TratarResposta" FcStatus: 0

Ambiente e status estão certo.

Por algum motivo no método "LerXml" ele não consegue pegar os dados, e dá vazio.

 

Postado

Indo mais a fundo no método LerXml, editei e implementei o "Exception" que não tinha, salvando em  um arquivo

e tudo indica parece que é problema com nessa "ntdll.dll" do windows 

13/08/2024 21:11:03: "TRetConsSitNFe.LerXml" : Exception: Access violation at address 7756F953 in module 'ntdll.dll'. Write of address 00000014

Estou usando o Capicom, pois nos outros ficava parecendo esse mesmo erro da dll "ntdll.dll"

E esse problema só está dando na NFCe.

Na NFe, CTe está enviando e recebendo normal.

Pode ser que está aparecendo no meu porque uso de forma RunTime carrego as bpls td junto

  • Moderadores
Postado
17 minutos atrás, Artsio disse:

Estou usando o Capicom, pois nos outros ficava parecendo esse mesmo erro da dll "ntdll.dll"

Capicom não é mais dado suporte nem mesmo pela microsoft que é fabricante

use WinCrypt

pegue e atualize o ACBr

esqueça backups, revert se tiver alterações

e use o exemplo do ACBr para emitir NFCe

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
 

 

Postado

Usei o WinCrypt tempo atrás e não deu certo, até aqui na empresa pagamos pelo ACBrPro e não ajudou com a questão da dll ntdll.dll

Seja como for depois dessas últimas alterações do ACBr que foi mexido na leitura do XML, esse bug apareceu, deve ter alguma pecualidade com essas mudanças no LerXml qdo é NFCe, vi pelos logs de atualizações até tem uma mudança com função "ParseText"

 

 

  • Moderadores
Postado
6 minutos atrás, Artsio disse:

Usei o WinCrypt tempo atrás e não deu certo, até aqui na empresa pagamos pelo ACBrPro e não ajudou com a questão da dll ntdll.dll

Wincrypt depende de ter o windows o atualizado . não sei o que tem a ver o PRO com a questão da ntdll.dll que é do windows que está ocasionando o erro

 

8 minutos atrás, Artsio disse:

Seja como for depois dessas últimas alterações do ACBr que foi mexido na leitura do XML, esse bug apareceu, deve ter alguma pecualidade com essas mudanças no LerXml qdo é NFCe, vi pelos logs de atualizações até tem uma mudança com função "ParseText"

note que não temos outros relatos

então quer dizer que tu tem arquivos modificados locais ou não fez a atualização total do ACBr para utilizar ele

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
 

 

Postado (editado)

Já usei exemplo de TD a forma possível, e o problema está nessa função LerXml que é uma função interna do ACBr.

Seja como for seria bom vcs darem uma revisão nessa função...

Atualizei umas 10 vezes, desde esse problema e nada...

Fiz atualização dll, schemas, td que é possível e nada

Editado por Artsio
  • Moderadores
Postado

Não vi erro algum e se fosse como disse

o fórum estaria inundado de mensagem e o discord também

novamente é alterações locais suas ou units que estão perdidas dentro se seu fonte

tu não tá usando a libxml2

sete somente SSLib para WinCrypt e o SSLType para tls 1.2

as demais configurações o componente faz. e tente novamente

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
 

 

  • Membros Pro
Postado

Estou com o mesmo problema de access violation ao enviar porem no meu caso o erro acontece eventualmente e somente quando é um pagamento via TEF (paygo)

pra mim ocorre nessa linha:

ACBrNFe1.Enviar('1',false,true);

 

 

 

  • Moderadores
Postado
3 horas atrás, Felipe Govoni disse:

Estou com o mesmo problema de access violation ao enviar porem no meu caso o erro acontece eventualmente e somente quando é um pagamento via TEF (paygo)

pra mim ocorre nessa linha:

ACBrNFe1.Enviar('1',false,true);

 

 

 

Creio serem casos bem diferentes

mas isso tem a ver com uso do capicom . mude para wincrypt quye resolve e deixa o componente usar o libxml2 conforme configura o sslib como wincrypt

sempre defina só sslib e ssltype

um wincrypt o outro tls 1.2

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
 

 

Postado

No meu limpei todas dll e com WinCrypt não funciona nada,

Mas esses erros estão correndo na leitura do retorno do xml.

Para mim descubrir o "Action Violation" tive que entrar no código fonte do ACBr na unit " ACBrNFe.RetConsSit", 

onde adicionei o exception e salvei num logo para descobrir o erro, senão tava procurando vento.

function TRetConsSitNFe.LerXml: Boolean;
var
  Document: TACBrXmlDocument;
  ANode, ANodeAux: TACBrXmlNode;
  ANodeArray: TACBrXmlNodeArray;
  ok: Boolean;
  i: Integer;
  Item : TRetEventoNFeCollectionItem;
begin
  Document := TACBrXmlDocument.Create;

  try
    try
      Result := False;
      if XmlRetorno = '' then Exit;

      Document.LoadFromXml(XmlRetorno);

      ANode := Document.Root;

      if ANode <> nil then
      begin
        versao := ObterConteudoTag(ANode.Attributes.Items['versao']);
        verAplic := ObterConteudoTag(ANode.Childrens.FindAnyNs('verAplic'), tcStr);
        tpAmb := StrToTpAmb(ok, ObterConteudoTag(ANode.Childrens.FindAnyNs('tpAmb'), tcStr));
        cUF := ObterConteudoTag(ANode.Childrens.FindAnyNs('cUF'), tcInt);
        nRec := ObterConteudoTag(ANode.Childrens.FindAnyNs('nRec'), tcStr);
        cStat := ObterConteudoTag(ANode.Childrens.FindAnyNs('cStat'), tcInt);
        xMotivo := ObterConteudoTag(ANode.Childrens.FindAnyNs('xMotivo'), tcStr);
        dhRecbto := ObterConteudoTag(ANode.Childrens.FindAnyNs('dhRecbto'), tcDatHor);
        chNFe := ObterConteudoTag(ANode.Childrens.FindAnyNs('chNFe'), tcStr);

        case cStat of
          100, 101, 104, 110, 150, 151, 155, 301, 302, 303:
            begin
              ANodeAux := ANode.Childrens.FindAnyNs('protNFe');

              if ANodeAux <> nil then
              begin
                // A propriedade XMLprotNFe contem o XML que traz o resultado do
                // processamento da NF-e.
                XMLprotNFe := ANodeAux.OuterXml;

                ANodeAux := ANodeAux.Childrens.FindAnyNs('infProt');

                if ANodeAux <> nil then
                begin
                  protNFe.tpAmb := StrToTipoAmbiente(ok, ObterConteudoTag(ANodeAux.Childrens.FindAnyNs('tpAmb'), tcStr));
                  protNFe.verAplic := ObterConteudoTag(ANodeAux.Childrens.FindAnyNs('verAplic'), tcStr);
                  protNFe.chDFe := ObterConteudoTag(ANodeAux.Childrens.FindAnyNs('chNFe'), tcStr);
                  protNFe.dhRecbto := ObterConteudoTag(ANodeAux.Childrens.FindAnyNs('dhRecbto'), tcDatHor);
                  protNFe.nProt := ObterConteudoTag(ANodeAux.Childrens.FindAnyNs('nProt'), tcStr);
                  protNFe.digVal := ObterConteudoTag(ANodeAux.Childrens.FindAnyNs('digVal'), tcStr);
                  protNFe.cStat := ObterConteudoTag(ANodeAux.Childrens.FindAnyNs('cStat'), tcInt);
                  protNFe.xMotivo := ObterConteudoTag(ANodeAux.Childrens.FindAnyNs('xMotivo'), tcStr);
                  protNFe.cMsg := ObterConteudoTag(ANodeAux.Childrens.FindAnyNs('cMsg'), tcInt);
                  protNFe.xMsg := ObterConteudoTag(ANodeAux.Childrens.FindAnyNs('xMsg'), tcStr);
                end;
              end;
            end;
        end;

        retCancNFe.cStat := 0;

        if cStat in [101, 151, 155] then
        begin
          ANodeAux := ANode.Childrens.FindAnyNs('infCanc');

          if ANodeAux <> nil then
          begin
            retCancNFe.tpAmb := StrToTpAmb(ok, ObterConteudoTag(ANodeAux.Childrens.FindAnyNs('tpAmb'), tcStr));
            retCancNFe.verAplic := ObterConteudoTag(ANodeAux.Childrens.FindAnyNs('verAplic'), tcStr);
            retCancNFe.cStat := ObterConteudoTag(ANodeAux.Childrens.FindAnyNs('cStat'), tcInt);
            retCancNFe.xMotivo := ObterConteudoTag(ANodeAux.Childrens.FindAnyNs('xMotivo'), tcStr);
            retCancNFe.cUF := ObterConteudoTag(ANodeAux.Childrens.FindAnyNs('cUF'), tcInt);
            retCancNFe.chNFe := ObterConteudoTag(ANodeAux.Childrens.FindAnyNs('chNFe'), tcStr);
            retCancNFe.dhRecbto := ObterConteudoTag(ANodeAux.Childrens.FindAnyNs('dhRecbto'), tcDatHor);
            retCancNFe.nProt := ObterConteudoTag(ANodeAux.Childrens.FindAnyNs('nProt'), tcStr);
          end;
        end;

        if Assigned(procEventoNFe) then
          procEventoNFe.Free;

        procEventoNFe := TRetEventoNFeCollection.Create;

        try
          ANodeArray := ANode.Childrens.FindAllAnyNs('procEventoNFe');

          if Assigned(ANodeArray) then
          begin
            for i := Low(ANodeArray) to High(ANodeArray) do
            begin
              AnodeAux := ANodeArray[i];

              Item := procEventoNFe.New;

              Item.RetEventoNFe.XmlRetorno := AnodeAux.OuterXml;
              Item.RetEventoNFe.XML := AnodeAux.OuterXml;
              Item.RetEventoNFe.LerXml;
            end;
          end;
        finally
          Result := True;
        end;
      end;

//      Result := True;
    except on E: Exception do
      begin
        {$IFDEF TESTAR}
          LogSalvar('"TRetConsSitNFe.LerXml" : Exception: ' + E.Message);
        {$ENDIF}
        Result := False;
      end;
    end;

  finally
    FreeAndNil(Document);
  end;
end;

       Adicionei esse código...

 

       {$IFDEF TESTAR}
          LogSalvar('"TRetConsSitNFe.LerXml" : Exception: ' + E.Message);
        {$ENDIF}

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.