Ir para conteúdo
  • Cadastre-se

dev botao

ACBrLib Nfe - Iniciante utilizando Cobol


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

Recommended Posts

Postado

Bom dia,
Sou iniciante no projeto ACBr e também iniciante na comunicação por dll utilizando o Cobol. Através do exemplo disponível, e da DLL demo,  consegui grandes avanços, mas estou "empacada" e espero que possam me ajudar. A idéia é mostrar para a diretoria que a comunicação funciona, através de um programa exemplo que consulta a situação do serviço e é este comando q não consigo executar, recebendo sempre o status -10. Achei q talvez a Demo, não funcionasse com arquivo pfx, e pra minha surpresa o comando ObterCertificado, tbem retorna -10. Agora não sei se é configuração ou a forma como estou chamando estas rotinas para executar. Consegui configurar o log (anexo) mas realmente não sei o q preciso fazer para corrigir este erro, espero q possam me ajudar.
Luciana - SAV Sistemas
 

ACBRLIB-exemplo.ini ACBrLibNFE Demo-20240611.log

  • Consultores
Postado
1 hora atrás, [email protected] disse:

Bom dia,
Sou iniciante no projeto ACBr e também iniciante na comunicação por dll utilizando o Cobol. Através do exemplo disponível, e da DLL demo,  consegui grandes avanços, mas estou "empacada" e espero que possam me ajudar. A idéia é mostrar para a diretoria que a comunicação funciona, através de um programa exemplo que consulta a situação do serviço e é este comando q não consigo executar, recebendo sempre o status -10. Achei q talvez a Demo, não funcionasse com arquivo pfx, e pra minha surpresa o comando ObterCertificado, tbem retorna -10. Agora não sei se é configuração ou a forma como estou chamando estas rotinas para executar. Consegui configurar o log (anexo) mas realmente não sei o q preciso fazer para corrigir este erro, espero q possam me ajudar.
Luciana - SAV Sistemas
 

ACBRLIB-exemplo.ini 5.46 kB · 1 download ACBrLibNFE Demo-20240611.log 13.42 kB · 2 downloads

-10 quer dizer que houve erro ao executar o método.. 
Por estar utilizando ACBrLib versão Demonstração, pode ser questão do timeout de uso, você consegue usar por 30min, após isso, precisa reiniciar a aplicação.
Outro detalhe também é que o ambiente é somente homologação, então os envios dos DFes (NFe/NFCe), somente para ambiente de homologação.. 
Caso persistir, anexe um log atualizado, por favor.
Configure o Log para nivel 4 -> Paranoico
https://acbr.sourceforge.io/ACBrLib/Geral.html

  • Curtir 1
Postado

log nivel 4 - é realmente muito interessante.

pelo que entendi, a biblioteca não esta carregando as dlls do openssl

como tenho clientes com maquinas diferentes, agrupei das dlls em um diretorio especifico (acbrdll32/acbrdll64) e coloquei este diretorio no path do windows, o processo encontra a acbr.dll - com esta configuração recebi 2 erros distintos:
no comando ObterCertificados - SetRetorno(-10, "CarregarCertificadoDeNumeroSerie" não suportado em: TDFeOpenSSL)
no comando StatusServico - SetRetorno(-10, WebService Consulta Status serviço:
- Inativo ou Inoperante tente novamente.
Erro ao carregar bibliotecas do OpenSSL)
 

fiz então um teste copiando as bibliotecas no mesmo diretorio do meu executável,
o erro mudou para o comando ObertCertificados -  SetRetorno(-10, Erro ao carregar bibliotecas do OpenSSL)
no comando StatusServico - mesmo erro

estou anexando o log, espero q possam me ajudar

ACBrLibNFE Demo-20240611.log

  • Consultores
Postado
Agora, [email protected] disse:

log nivel 4 - é realmente muito interessante.

pelo que entendi, a biblioteca não esta carregando as dlls do openssl

como tenho clientes com maquinas diferentes, agrupei das dlls em um diretorio especifico (acbrdll32/acbrdll64) e coloquei este diretorio no path do windows, o processo encontra a acbr.dll - com esta configuração recebi 2 erros distintos:
no comando ObterCertificados - SetRetorno(-10, "CarregarCertificadoDeNumeroSerie" não suportado em: TDFeOpenSSL)
no comando StatusServico - SetRetorno(-10, WebService Consulta Status serviço:
- Inativo ou Inoperante tente novamente.
Erro ao carregar bibliotecas do OpenSSL)
 

fiz então um teste copiando as bibliotecas no mesmo diretorio do meu executável,
o erro mudou para o comando ObertCertificados -  SetRetorno(-10, Erro ao carregar bibliotecas do OpenSSL)
no comando StatusServico - mesmo erro

estou anexando o log, espero q possam me ajudar

ACBrLibNFE Demo-20240611.log 91.04 kB · 0 downloads

Legal.. no download que você fez do ACBrLib Demo, tem a pasta dep, dentro desta pasta, contém as dlls de dependências, libxml2 e openssl, você vai copiar elas e colar junto ao ACBrLib..  além disso tem também a pasta schemas, precisa ser informado em PathSchemas
https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca16.html

Postado

as dlls de dependências, eu deixei na mesma pasta, só os schemas q mantive em uma pasta a parte, identificada no .ini.

Será q é por isso q não funcionou?  os schemas tem q estar na mesma pasta tbem ?

 

  • Consultores
Postado
1 minuto atrás, [email protected] disse:

as dlls de dependências, eu deixei na mesma pasta, só os schemas q mantive em uma pasta a parte, identificada no .ini.

Será q é por isso q não funcionou?  os schemas tem q estar na mesma pasta tbem ?

 

Não, o erro é bem claro, você esta com problema ao carregar dlls OpenSSL.. o ACBrLib não esta encontrando as dlls de dependências.

Postado

eu passei o número do certificado pq pensei q estava chamando a rotina StatusServico de forma errada.

apaguei o numero de série do .ini e tirei a chamada obtercertificados, mas o erro manteve-se.

pensei assim: vou carregar as libs do openssl manualmente.

quando fui carregar, percebi q a lib-64.dll esta na pasta do openssl 32bits - mas esta é a unica q consigo carregar

uma vez q carregou, fiz o teste e desta vez o erro ao consultar o statusserviço foi -10 access violation

ACBrLibNFE Demo-20240611.log

Postado

Descobri uma falha na chamada da função StatusServiço; que provavelmente foi a causa do access violation.
Só gostaria de confirmar com vcs se as dlls da openssl estão colocadas de forma invertida no demo.

Grata pela ajuda

  • Moderadores
Postado
4 hours ago, [email protected] said:

Descobri uma falha na chamada da função StatusServiço; que provavelmente foi a causa do access violation.
Só gostaria de confirmar com vcs se as dlls da openssl estão colocadas de forma invertida no demo.

Grata pela ajuda

não, as dll's estão de forma correta nos exemplos conforme disponibilizamos

se houve alguma mudança ou não entendimento foi como usar eles

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
 

 

  • Consultores
Postado
13 horas atrás, [email protected] disse:

como tenho clientes com maquinas diferentes, agrupei das dlls em um diretorio especifico (acbrdll32/acbrdll64) e coloquei este diretorio no path do windows, o processo encontra a acbr.dll

Isso deve estar causando o problema. 

As dlls devem ser da mesma arquitetura da sua aplicação, seja qual for a do SO.

Apague essas cópias e deixe somente a versão da mesma arquitetura da sua aplicação, provavelmente x86, salve na mesma pasta da aplicação.

Faça o mesmo para a OpenSSL e LibXml2, se tiver feito cópias delas, apague e copie para a pasta da aplicação somente a versão equivalente. 

Postado

Confesso a vocês minha inexperiência em trabalhar com dlls.

A forma que funcionou a consulta status serviço p/mim foi chamando a dll ACBrNFe64.dll com as dependências em 32bits.

Estou anexando o log, para ter o aval de vocês de que posso continuar nesta caminhada pq realmente a comunicação esta ocorrendo.


 

ACBrLibNFE Demo-20240612.log

  • Moderadores
Postado
43 minutes ago, [email protected] said:

Confesso a vocês minha inexperiência em trabalhar com dlls.

A forma que funcionou a consulta status serviço p/mim foi chamando a dll ACBrNFe64.dll com as dependências em 32bits.

Estou anexando o log, para ter o aval de vocês de que posso continuar nesta caminhada pq realmente a comunicação esta ocorrendo.


 

ACBrLibNFE Demo-20240612.log 21.83 kB · 1 download

sua aplicação é x64 ou x86?

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
 

 

  • Consultores
  • Solution
Postado

Você precisa levantar essa informação, verifique com sua equipe qual o compilador que você utiliza e se estão gerando a aplicação em 32 ou 64bits.

Com esta informação, siga os passos que citei no tópico anterior.

12 horas atrás, Renato Rubinho disse:

As dlls devem ser da mesma arquitetura da sua aplicação, seja qual for a do SO.

Apague essas cópias e deixe somente a versão da mesma arquitetura da sua aplicação, provavelmente x86, salve na mesma pasta da aplicação.

Faça o mesmo para a OpenSSL e LibXml2, se tiver feito cópias delas, apague e copie para a pasta da aplicação somente a versão equivalente. 

1. Apague todas as cópias que fez da Lib para evitar utilizar a incorreta. 

2. Copie para a pasta da aplicação somente a mesma versão que você compila a aplicação. 

3. Copie também, para a pasta da aplicação, as dlls da OpenSSL e LibXml2, somente as da mesma arquitetura que você compila sua aplicação.

https://acbr.sourceforge.io/ACBrLib/Dependencias.html

  • Este tópico foi criado há 169 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

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.