Ir para conteúdo
  • Cadastre-se

dev botao

NFCe com horse


Ver Solução Respondido por Maurício Sareto,

Recommended Posts

Boa tarde a todos, tenho uma aplicação stand-Alone rodando com horse conectado em um banco de dados firebird. Na minha maquina de desenvolvimento em homologação consigo validar nfce sem problema mas quando coloco no cliente em produção, ao chamar o método enviar cai no tratamento da exception e acontece um mistério, não tem nada nesse exception, ou seja, gera uma exception em branco. O pior de tudo a NFCe é validada no sefaz...
Alguem ja viu isso acontecer?

function TDAO_NFCe.SendToValidate(AID: Integer): TJSONObject;
begin
  Try
    try
      FACBrNFe.Enviar(0, False, True); //Nao imprimir automatico pois caso ficasse aberto danfe nao atualizava base enquanto nao era fechado
      UpdateStatus(
        AID,
        FACBrNFe.NotasFiscais.Items[0].NFe.procNFe.cStat,
        FACBrNFe.NotasFiscais.Items[0].NFe.procNFe.xMotivo,
        FACBrNFe.NotasFiscais.Items[0].NFe.procNFe.nProt,
        FACBrNFe.NotasFiscais.Items[0].XML,
        False);
      case FACBrNFe.NotasFiscais.Items[0].NFe.procNFe.cStat of
        110,301,302,303: begin //Denegado
          CancelDataBase(AID, tpCanc);
        end;
      end;
      Result := TJSONObject.Create;
      Result.AddPair('cStat'  , FACBrNFe.NotasFiscais.Items[0].NFe.procNFe.cStat.ToString);
      Result.AddPair('xMotivo', FACBrNFe.NotasFiscais.Items[0].NFe.procNFe.xMotivo);
      Result.AddPair('nProt'  , FACBrNFe.NotasFiscais.Items[0].NFe.procNFe.nProt);
      Result.AddPair('chNFe'  , FACBrNFe.NotasFiscais.Items[0].NFe.procNFe.chNFe);
      Result.AddPair('XML'    , FACBrNFe.NotasFiscais.Items[0].XML);
      Result.AddPair('IsPrazo', IfThen(getIsPrazo(AID),'S','N'));
    finally
      MoveFileProc('');
    end;  
  Except
    on e:Exception do
    begin
      Result := TJSONObject.Create;
      Result.AddPair('Error'  , e.Message); //e.Message esta em branco
      Result.AddPair('cStat'  , FACBrNFe.WebServices.Enviar.cStat.ToString); //cStat esta em branco
      Result.AddPair('xMotivo', FACBrNFe.WebServices.Enviar.xMotivo);//xMotivo fica em branco
    end;
  end;
end;

 

EL Soluções em Informática

Desenvolvimento  e Suporte (ERP, NF-e, Sped Fiscal, EFD Contribuições, Emissor de Cupom Fiscal)
Ronda Alta - RS

(54)3364-1588
www.elinfo.com.br

 

Link para o comentário
Compartilhar em outros sites

@Juliomar Marchetti obrigado pela sua resposta. O problema é que o erro acontece no método enviar... Deixei somente o enviar dentro da try e cai no exception... Você diz que devo alterar os fontes do acbr e adicionar logs?

EL Soluções em Informática

Desenvolvimento  e Suporte (ERP, NF-e, Sped Fiscal, EFD Contribuições, Emissor de Cupom Fiscal)
Ronda Alta - RS

(54)3364-1588
www.elinfo.com.br

 

Link para o comentário
Compartilhar em outros sites

try
   // Rotina  de Envio
except
on e:Exception do
  begin
    LRetorno.AddPair('message', e.message);
    LRetorno.AddPair('status', TJSONNumber.Create(500));
    Res.Send<TJSONAncestor>(LRetorno).Status(500);
  end;
end;

Sugiro capturar "e.message" aqui vc terá sua mensagem.

image.png.7b12b65221605b4e2ee1b0693683f18d.png

Sistemas para Bares, Restaurantes e Varejo

https://www.wllsistemas.com.br

 

Link para o comentário
Compartilhar em outros sites

5 horas atrás, William F. L. disse:
try
   // Rotina  de Envio
except
on e:Exception do
  begin
    LRetorno.AddPair('message', e.message);
    LRetorno.AddPair('status', TJSONNumber.Create(500));
    Res.Send<TJSONAncestor>(LRetorno).Status(500);
  end;
end;

Sugiro capturar "e.message" aqui vc terá sua mensagem.

opa, obrigado pela resposta, se vc verificar no meu exception ja é capturado o e.message...

@Juliomar Marchetti instalei o delphi na maquina do cliente e tenho mais dados coletados que talvez ajudem a identificar o problema.

Ele não consegue ler o XML de retorno, da um erro na classe ACBrLibXml2, a propriedade _xmlParseDoc esta nil, ai retorna um exception de acessViolation...
Infelizmente não consigo inserir imagens aqui todas são maiores que o máximo permitido

Editado por Maurício Sareto

EL Soluções em Informática

Desenvolvimento  e Suporte (ERP, NF-e, Sped Fiscal, EFD Contribuições, Emissor de Cupom Fiscal)
Ronda Alta - RS

(54)3364-1588
www.elinfo.com.br

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
7 minutos atrás, Maurício Sareto disse:

opa, obrigado pela resposta, se vc verificar no meu exception ja é capturado o e.message...

@Juliomar Marchetti instalei o delphi na maquina do cliente e tenho mais dados coletados que talvez ajudem a identificar o problema.

Ele não consegue ler o XML de retorno, da um erro na classe ACBrLibXml2, a propriedade _xmlParseDoc esta nil, ai retorna um exception de acessViolation...
Infelizmente não consigo inserir imagens aqui todas são maiores que o máximo permitido

quer dizer que nãotá com uma versão o libxml2 certo ou as dependencias das dll´s dela

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
 

 

Link para o comentário
Compartilhar em outros sites

5 minutos atrás, Juliomar Marchetti disse:

quer dizer que nãotá com uma versão o libxml2 certo ou as dependencias das dll´s dela

certo, mas mesmo não usando LibXml2 nas configurações ele depende dela?

EL Soluções em Informática

Desenvolvimento  e Suporte (ERP, NF-e, Sped Fiscal, EFD Contribuições, Emissor de Cupom Fiscal)
Ronda Alta - RS

(54)3364-1588
www.elinfo.com.br

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
12 minutos atrás, Maurício Sareto disse:

certo, mas mesmo não usando LibXml2 nas configurações ele depende dela?

Boa tarde!

Rapaz, pegue as dll's da libxml2 em "ACBr\DLLs\LibXml2\x86 ou x64". Semana passada formatei meu pc e na hora de emitir NFC-e, vinha o xml de autorização, mas dava exceção no meu programa. Atualizei as dll's e voltou a funcionar tudo lindo!

 

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Link para o comentário
Compartilhar em outros sites

  • Moderadores
14 minutos atrás, Maurício Sareto disse:

certo, mas mesmo não usando LibXml2 nas configurações ele depende dela?

como assim tu não usa?

se notar está sendo refatorado o acbr todo e removendo as classes pcn onde eram e são lentas pra xml

e está introduzido algo já antigo que haviamos começado baseado em TACBrXMLDocument e o mesmo usa a libxml2 para gerenciar os xmls

seja para gerar ou ler mudando drasticamente a velocidade

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
 

 

Link para o comentário
Compartilhar em outros sites

14 horas atrás, Cleber Ferreira disse:

Boa tarde!

Rapaz, pegue as dll's da libxml2 em "ACBr\DLLs\LibXml2\x86 ou x64". Semana passada formatei meu pc e na hora de emitir NFC-e, vinha o xml de autorização, mas dava exceção no meu programa. Atualizei as dll's e voltou a funcionar tudo lindo!

 

cara, ai que ta, eu ja fiz isso, coloquei na pasta do system, na pasta da DLL... Estranho que meu sistema desktop valida as NFCe, somente o horse standAlone que não...

EL Soluções em Informática

Desenvolvimento  e Suporte (ERP, NF-e, Sped Fiscal, EFD Contribuições, Emissor de Cupom Fiscal)
Ronda Alta - RS

(54)3364-1588
www.elinfo.com.br

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
42 minutos atrás, Maurício Sareto disse:

cara, ai que ta, eu ja fiz isso, coloquei na pasta do system, na pasta da DLL... Estranho que meu sistema desktop valida as NFCe, somente o horse standAlone que não...

já sei é algo nas opções de projeto no build e compiler

deve ter algo diferente ai

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
 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
1 hora atrás, Maurício Sareto disse:

cara, ai que ta, eu ja fiz isso, coloquei na pasta do system, na pasta da DLL... Estranho que meu sistema desktop valida as NFCe, somente o horse standAlone que não...

Tente esse comando em algum ponto de criação das suas units. Ele serve para setar em qual diretório irá buscar as dll's. Utilizo em minhas aplicações ISAPI no IIS:

SetDllDirectory(PChar('path_das_dlls'));

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Link para o comentário
Compartilhar em outros sites

  • Solution

Pessoal, resolvemos. Aparentemente, com a dll na pasta do windows ele não conseguia carregar, sei la porque...

Removi do system32 e sysWow64 e deixei apenas na pasta do exe ai carregou certo e validou a NFCe

Agradeço pelas respostas.

EL Soluções em Informática

Desenvolvimento  e Suporte (ERP, NF-e, Sped Fiscal, EFD Contribuições, Emissor de Cupom Fiscal)
Ronda Alta - RS

(54)3364-1588
www.elinfo.com.br

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.