Ir para conteúdo
  • Cadastre-se

dev botao

Utilizando o ACBRCEP com NodeJs


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

Recommended Posts

Olá a todos, espero que estejam bem.

Estamos enfrentando alguns problemas ao tentar utilizar a biblioteca (Lib) CEP em nosso projeto e ainda não conseguimos utilizá-la corretamente. Já utilizamos outras DLLs em nosso projeto com sucesso, mas estamos enfrentando dificuldades ao tentar testar o da ACBr.

Se alguém puder oferecer ajuda, ficarei imensamente grato.

A inicialização é feita, porém no momento da consulta uma mensagem é mostrada -10

config.ini

[CEP]
WebService=wsRepublicaVirtual
ChaveAcesso=
Usuario=
Senha=
PesquisarIBGE=0

-10

Indica que houve erro ao consultar pelo numero do CEP no ACBrCEP.

const ffi = require('ffi-napi');
const path = require('path');

export default class Services {
// @ts-ignore
private lib: any

constructor() {
const dllPath = path.join(__dirname, 'ACBrCEP64.dll');
const configPath = path.join(__dirname, 'config.ini');
this.lib = ffi.Library(dllPath, {
'CEP_Inicializar': ['int', ['string']],
'CEP_BuscarPorCEP': ['int', ['string']],
});
this.lib.CEP_Inicializar(configPath)


}

public async CEP_BuscarPorCEP () {
return this.lib.CEP_BuscarPorCEP('55612-450')
// return __dirname
}

}

Em node nós utilizamos 

Link para o comentário
Compartilhar em outros sites

2 horas atrás, lucimauro disse:

Ola!

WebService=wsRepublicaVirtual
por
WebService=03

No seu config.ini

Sem sucesso. Fiz uma atualização no código e mesmo assim nada.

10 horas atrás, Marcelo Wanderley disse:

Olá a todos, espero que estejam bem.

Estamos enfrentando alguns problemas ao tentar utilizar a biblioteca (Lib) CEP em nosso projeto e ainda não conseguimos utilizá-la corretamente. Já utilizamos outras DLLs em nosso projeto com sucesso, mas estamos enfrentando dificuldades ao tentar testar o da ACBr.

Se alguém puder oferecer ajuda, ficarei imensamente grato.

A inicialização é feita, porém no momento da consulta uma mensagem é mostrada -10

config.ini

[CEP]
WebService=wsRepublicaVirtual
ChaveAcesso=
Usuario=
Senha=
PesquisarIBGE=0

-10

Indica que houve erro ao consultar pelo numero do CEP no ACBrCEP.

const ffi = require('ffi-napi');
const path = require('path');

export default class Services {
// @ts-ignore
private lib: any

constructor() {
const dllPath = path.join(__dirname, 'ACBrCEP64.dll');
const configPath = path.join(__dirname, 'config.ini');
this.lib = ffi.Library(dllPath, {
'CEP_Inicializar': ['int', ['string']],
'CEP_BuscarPorCEP': ['int', ['string']],
});
this.lib.CEP_Inicializar(configPath)


}

public async CEP_BuscarPorCEP () {
return this.lib.CEP_BuscarPorCEP('55612-450')
// return __dirname
}

}

Em node nós utilizamos 

 

Código atualizado abaixo.

 

import * as ffi from 'ffi-napi';
import * as ref from 'ref-napi';
import * as path from 'path';

export default class Services {
// @ts-ignore
private lib: any

constructor() {
const dllPath = path.join(__dirname, 'ACBrCEP64.dll');
const configPath = path.join(__dirname, 'config.ini');
const stringPtr = ref.refType(ref.types.CString);

this.lib = ffi.Library(dllPath, {
'CEP_Inicializar': ['int', ['string']],
'CEP_BuscarPorCEP': ['int', ['string', stringPtr, 'int']],
});
this.lib.CEP_Inicializar(configPath)


}

public async CEP_BuscarPorCEP () {

// Criar um buffer para armazenar a resposta.
const buffer = Buffer.alloc(256);
const cep = '55612450';
const ret = this.lib.CEP_BuscarPorCEP(cep, buffer, buffer.length);

// Verificar se a chamada foi bem sucedida.
if (ret === 0) {
// Converter o buffer de resposta em uma string e imprimir no console.
const sResposta = ref.readCString(buffer, 0);
console.log(sResposta);
return sResposta;
} else {
throw new Error('CEP_BuscarPorCEP failed with error code ' + ret);
}

// return __dirname
}

}
Link para o comentário
Compartilhar em outros sites

40 minutos atrás, Marcelo Wanderley disse:

 

Estamos usando a versão single thread

 

Sempre retornar -10

Não consigo imaginar o que posso fazer para funcionar.

import * as ffi from 'ffi-napi';
import * as ref from 'ref-napi';
import * as path from 'path';

export default class Services {
// @ts-ignore
private lib: any

constructor() {
const dllPath = path.join(__dirname, 'ACBrCEP64.dll');
const stringPtr = ref.refType(ref.types.CString);

this.lib = ffi.Library(dllPath, {
'CEP_Inicializar': ['int', ['string']],
'CEP_Finalizar': ['int', []],
'CEP_BuscarPorCEP': ['int', ['string', stringPtr, 'int']],
});
}

public async CEP_BuscarPorCEP () {
await this.lib.CEP_Inicializar(path.join(__dirname, 'config.ini'))

const buffer = Buffer.alloc(256);
const cep = '55612450';
const ret = this.lib.CEP_BuscarPorCEP(cep, buffer, buffer.length);

this.lib.CEP_Finalizar()

if (ret === 0) {
const sResposta = ref.readCString(buffer, 0);
return sResposta;
} else {
throw new Error('CEP_BuscarPorCEP failed with error code ' + ret);
}
}
}
Link para o comentário
Compartilhar em outros sites

  • Consultores
14 horas atrás, Marcelo Wanderley disse:

Sempre retornar -10

você configurou o webservice no ACBrLib.ini ?
https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca8.html

Se tiver os logs, pode anexar por favor..

-10, Indica que houve erro ao consultar pelo numero do CEP no ACBrCEP.
https://acbr.sourceforge.io/ACBrLib/CEP_BuscarPorCEP.html

ACBrLibCEP na versão demonstração, tem algumas limitações.. por exemplo tempo de uso, depois de 30 min, você precisa reiniciar sua aplicação.. pois a Lib tem um timeout de uso.

Link para o comentário
Compartilhar em outros sites

1 minuto atrás, antonio.carlos disse:

você configurou o webservice no ACBrLib.ini ?
https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca8.html

Se tiver os logs, pode anexar por favor..

-10, Indica que houve erro ao consultar pelo numero do CEP no ACBrCEP.
https://acbr.sourceforge.io/ACBrLib/CEP_BuscarPorCEP.html

Olá Carlos, Obrigado pela atenção.

Sim, configuramos o config.ini

[CEP]
WebService=15
ChaveAcesso=
Usuario=
Senha=
PesquisarIBGE=0

Estamos lendo a documentação, já faz alguns dias que estamos tentando fazer funcionar e não conseguimos. Acreditamos que a lib não chega a consultar no webservices, pois a resposta -10 é rapidamente exibida.

Já tentamos com todos os webservices.

Poderia nos auxiliar.

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia,

@Marcelo Wanderley por favor anexe os logs solicitados para que seja possivel lhe apoiar.

At.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Consultores
21 minutos atrás, Marcelo Wanderley disse:

Olá Carlos, Obrigado pela atenção.

Sim, configuramos o config.ini

[CEP]
WebService=15
ChaveAcesso=
Usuario=
Senha=
PesquisarIBGE=0

Estamos lendo a documentação, já faz alguns dias que estamos tentando fazer funcionar e não conseguimos. Acreditamos que a lib não chega a consultar no webservices, pois a resposta -10 é rapidamente exibida.

Já tentamos com todos os webservices.

Poderia nos auxiliar.

Fiz um teste com o programa exemplo em C#, utilizando ACBrLibCEP Demo:
image.png

Funcionando, com wsBrasilAPI.. igual esta configurado ai do seu lado:
[CEP]
WebService=15 -> wsBrasilAPI
ChaveAcesso=
Usuario=
Senha=
PesquisarIBGE=0

Veja se por um acaso não esta faltando a dlls de dependência OpenSSL.. a mesma fica na pasta Dep do arquivo .zip e essas dlls, precisam ficar junto ao ACBrLibCEP e deve ser na mesma versão, ACBrLibCEP x64, dlls dependência também x64 ou vice-versa.. ACBrLibCEP x86 dls dependência também x86.
image.png

Link para o comentário
Compartilhar em outros sites

13 minutos atrás, antonio.carlos disse:

Fiz um teste com o programa exemplo em C#, utilizando ACBrLibCEP Demo:
image.png

Funcionando, com wsBrasilAPI.. igual esta configurado ai do seu lado:
[CEP]
WebService=15 -> wsBrasilAPI
ChaveAcesso=
Usuario=
Senha=
PesquisarIBGE=0

Veja se por um acaso não esta faltando a dlls de dependência OpenSSL.. a mesma fica na pasta Dep do arquivo .zip e essas dlls, precisam ficar junto ao ACBrLibCEP e deve ser na mesma versão, ACBrLibCEP x64, dlls dependência também x64 ou vice-versa.. ACBrLibCEP x86 dls dependência também x86.
image.png

Coloquei a Dep na pasta e ainda não funcionou.

Como faço para emitir log ?

Trabalhamos com Nodejs usamos a biblioteca ffi-napi para encapsular dll em nossas aplicações. Ela tem suporte a Cdecl ou StdCall. Tentamos utilizar até a versão da Lib MT e nada.

Link para o comentário
Compartilhar em outros sites

  • Consultores
2 minutos atrás, Marcelo Wanderley disse:

Como faço para emitir log ?

https://acbr.sourceforge.io/ACBrLib/Geral.html
Log, precisa informar um path em LogPath e o Nivel dele, deve ser = 4 (Paranoico)
 

2 minutos atrás, Marcelo Wanderley disse:

 Cdecl ou StdCall.

Sim, tem suporte, exemplo em C# usamos em cdecl e o exemplo em VB6 stdcall.. 
Lib MT você tem que usar um parâmetro adicional, melhor você focar primeiro em ST (SingleThread), depois veja em MT.
https://acbr.sourceforge.io/ACBrLib/ACBrLibeMultiThread.html

Em nosso SVN, tem exemplo em Node, foram contribuição de colegas..
http://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/Node.js/

Talvez possa te ajudar em alguma coisa..

Link para o comentário
Compartilhar em outros sites

2 horas atrás, Juliana Tamizou disse:

Bom dia,

@Marcelo Wanderley por favor anexe os logs solicitados para que seja possivel lhe apoiar.

At.

 

Log abaixo.

A libssl-1_1-x64.dll já esta na mesma pasta do ACBrCEP64.dll. Onde deve ser instalado?

16/06/23 11:56:11:284 - LIB_Finalizar
16/06/23 11:56:11:287 - Finalizar
16/06/23 11:57:38:411 - TLibCEPConfig.AplicarConfiguracoes: C:\Users\marce\Desktop\Projeto\Lunar\software\providers\AcbrProvider\config.ini
16/06/23 11:57:38:414 - Travar
16/06/23 11:57:38:416 - TLibCEPConfig.AplicarConfiguracoes - Feito
16/06/23 11:57:38:418 - Destravar
16/06/23 11:57:38:419 - TLibCEPConfig.Ler - Feito
16/06/23 11:57:38:421 - Destravar
16/06/23 11:57:38:424 - LIB_Inicializar( C:\Users\marce\Desktop\Projeto\Lunar\software\providers\AcbrProvider\config.ini,  )
16/06/23 11:57:38:426 -    ACBrLibCEP Demo - 0.0.1.134
16/06/23 11:57:38:429 - CEP_BuscarPorCEP( 55612-450 )
16/06/23 11:57:38:431 - Travar
16/06/23 11:57:38:464 - Destravar
16/06/23 11:57:38:466 -    SetRetorno(-10, Erro HTTP: 500 
Socket Error: 10091 Error loading OpenSSL lib
URL: https://brasilapi.com.br/api/cep/v2/55612450

Resposta HTTP:

)
16/06/23 11:57:38:469 - LIB_Finalizar
16/06/23 11:57:38:472 - Finalizar
 

Editado por Marcelo Wanderley
Link para o comentário
Compartilhar em outros sites

  • Consultores
29 minutos atrás, Marcelo Wanderley disse:

16/06/23 11:57:38:466 -    SetRetorno(-10, Erro HTTP: 500 
Socket Error: 10091 Error loading OpenSSL lib
URL: https://brasilapi.com.br/api/cep/v2/55612450

Resposta HTTP:

)

erro esta dizendo que esta faltando dlls dependência, OpenSSL.
você copiou versão x64 ? tem que ser a mesma versão ACBrLib.. 
veja se esta aqui resolve
http://svn.code.sf.net/p/acbr/code/trunk2/DLLs/OpenSSL/1.1.1.10/

Link para o comentário
Compartilhar em outros sites

  • Consultores

vc está usando a Lib de 64 bits.


Só pra confirmar, sua aplicação é 64bits? Se não for poderia mudar para a lib32 e as dependencias X86...
 

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

Link para o comentário
Compartilhar em outros sites

6 minutos atrás, Alexandre de Paula disse:

vc está usando a Lib de 64 bits.


Só pra confirmar, sua aplicação é 64bits? Se não for poderia mudar para a lib32 e as dependencias X86...
 

A nossa aplicação é x64

 

Testamos x86 e um erro é mostrado como abaixo.

 

ERROR (lunar/33764): Dynamic Linking Error: Win32 error 193
    err: {
      "type": "Error",
      "message": "Dynamic Linking Error: Win32 error 193",
      "stack":
          Error: Dynamic Linking Error: Win32 error 193
 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

2 horas atrás, antonio.carlos disse:

erro esta dizendo que esta faltando dlls dependência, OpenSSL.
você copiou versão x64 ? tem que ser a mesma versão ACBrLib.. 
veja se esta aqui resolve
http://svn.code.sf.net/p/acbr/code/trunk2/DLLs/OpenSSL/1.1.1.10/

É necessário estar 

 

4 horas atrás, antonio.carlos disse:

Fiz um teste com o programa exemplo em C#, utilizando ACBrLibCEP Demo:
image.png

Funcionando, com wsBrasilAPI.. igual esta configurado ai do seu lado:
[CEP]
WebService=15 -> wsBrasilAPI
ChaveAcesso=
Usuario=
Senha=
PesquisarIBGE=0

Veja se por um acaso não esta faltando a dlls de dependência OpenSSL.. a mesma fica na pasta Dep do arquivo .zip e essas dlls, precisam ficar junto ao ACBrLibCEP e deve ser na mesma versão, ACBrLibCEP x64, dlls dependência também x64 ou vice-versa.. ACBrLibCEP x86 dls dependência também x86.
image.png

 

consegue testar usando x64?

 

 

Link para o comentário
Compartilhar em outros sites

 

consegui fazer carregar o OPENssl, porém agora esta mostrando outro erro.

Segue o log abaixo.

16/06/23 17:26:08:629 - TLibCEPConfig.AplicarConfiguracoes: C:\Users\sistemas\Desktop\Projeto\qualinfo\testeACBR\config.ini
16/06/23 17:26:08:629 - Travar
16/06/23 17:26:08:638 - TLibCEPConfig.AplicarConfiguracoes - Feito
16/06/23 17:26:08:638 - Destravar
16/06/23 17:26:08:646 - TLibCEPConfig.Ler - Feito
16/06/23 17:26:08:650 - Destravar
16/06/23 17:26:08:650 - LIB_Inicializar( C:\Users\sistemas\Desktop\Projeto\qualinfo\testeACBR\config.ini,  )
16/06/23 17:26:08:654 -    ACBrLibCEP Demo - 0.0.1.134
16/06/23 17:26:08:662 - CEP_BuscarPorCEP( 55612450 )
16/06/23 17:26:08:662 - Travar
16/06/23 17:26:09:201 - Destravar
16/06/23 17:26:09:201 -    SetRetorno(-10, Access violation)
16/06/23 17:26:09:201 - LIB_Finalizar
16/06/23 17:26:09:209 - Finalizar
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 321 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
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.