Maurício Sareto Postado 22 Agosto Postado 22 Agosto 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-1588www.elinfo.com.br www.elsolucoeseminformatica.blogspot.com.br
Moderadores Juliomar Marchetti Postado 22 Agosto Moderadores Postado 22 Agosto Não vi mas a exceção deve ter algum lugar que parte coloca logs na aplicação pra descobrir Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Maurício Sareto Postado 22 Agosto Autor Postado 22 Agosto @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-1588www.elinfo.com.br www.elsolucoeseminformatica.blogspot.com.br
Moderadores Juliomar Marchetti Postado 22 Agosto Moderadores Postado 22 Agosto Não. somente criar logs mas no enviar o exception volta sem nada de erro e nem depurando posso sugerir que seja alguma dll faltando Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
William F. L. Postado 26 Agosto Postado 26 Agosto 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. Sistemas para Bares, Restaurantes e Varejo https://www.wllsistemas.com.br
Maurício Sareto Postado 26 Agosto Autor Postado 26 Agosto (editado) 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 26 Agosto 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-1588www.elinfo.com.br www.elsolucoeseminformatica.blogspot.com.br
Moderadores Juliomar Marchetti Postado 26 Agosto Moderadores Postado 26 Agosto 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 Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Maurício Sareto Postado 26 Agosto Autor Postado 26 Agosto 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-1588www.elinfo.com.br www.elsolucoeseminformatica.blogspot.com.br
Moderadores Cleber Ferreira Postado 26 Agosto Moderadores Postado 26 Agosto 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. FerreiraAnalista de Sistemas e Consultor Email e Skype: [email protected] Formiga-MG
Moderadores Juliomar Marchetti Postado 26 Agosto Moderadores Postado 26 Agosto 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 Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Maurício Sareto Postado 27 Agosto Autor Postado 27 Agosto 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-1588www.elinfo.com.br www.elsolucoeseminformatica.blogspot.com.br
Moderadores Juliomar Marchetti Postado 27 Agosto Moderadores Postado 27 Agosto 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 Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Moderadores Cleber Ferreira Postado 27 Agosto Moderadores Postado 27 Agosto 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. FerreiraAnalista de Sistemas e Consultor Email e Skype: [email protected] Formiga-MG
Solution Maurício Sareto Postado 27 Agosto Autor Solution Postado 27 Agosto 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-1588www.elinfo.com.br www.elsolucoeseminformatica.blogspot.com.br
Moderadores Juliomar Marchetti Postado 27 Agosto Moderadores Postado 27 Agosto Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico. Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Recommended Posts