Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Pessoal, boa noite!

Já uso ACBr com Delphi a alguns anos, contribuo com códigos, SAC, etc., e agora estou iniciando os estudos com jACBrFramework.

Gostaria de entender melhor o processo de gerar a DLL/SO do wrapper. Em alguns tópicos vi o pessoal falando sobre gerar o wrapper em C, mas não mostra mais detalhes.

Estudando o módulo de TEF, observei que o código em Delphi tem alguns métodos novos, e o wrapper está desatualizado, no entanto não sei como proceder para incluir esses novos métodos e gerar a nova versão da DLL/SO.

Alguém poderia passar um pequeno resumo?

Os progressos que forem feitos no framework me comprometo em enviar de volta para o projeto.

WRMedeiros

Focus

Postado

Boa noite Welkson,

Quanto a compilação não posso te ajudar pois sempre pego as DLL's já compiladas que ficam no repositório. Os Interops são gerados com base no fonte em C#, através do projeto CBrFramework\ACBrFramework.Net\ACBrDefExporter.

Com base neles são construidas as cascas para acesso ao componente.

Obs.: Há um projeto engatilhado com a parte de arquivos: AAC, EAD, PAF, Sped Fiscal, Contribuições, Contábil e Sintegra, que será nativo, sem a necessidade de acessar via JNI.

Att.,

 

  • Curtir 1
Postado

Boa noite Mauro

Eu conheço o projeto (jposbr), mas como você comentou, o projeto ainda está engatinhando. Minha intenção é também usá-lo e contribuir na medida do possível, mas o coordenador do projeto gostou da ideia de aproveitar o código do Delphi/Lazarus no Java (jACBrFramework), e temos uma certa urgência em terminar esse projeto.

Já fizemos diversos testes (balanças, impressoras fiscais, leitores de códigos de barras, tef, etc.), mas gostaríamos de entender melhor o processo de gerar a DLL/SO, criar a interface no C (wrapper), usar no Java, etc.

Pra piorar, devido esse problema no repositório do SF estou sem acesso ao código que gera a DLL, wrapper em C, etc.

O Rafael Batiati ainda está a frente desse projeto?

WRMedeiros

Focus

Postado

Boa noite Welkson,

Hoje o jACBrFramework possui os recursos básicos para homologação, a geração de documentos eletrônicos NFe, NFC é preciso utilizar o monitor em Delphi.

O processo de compilação da DLL realmente não posso te ajudar porque sempre utilizo a compilada do SVN. Como eu disse, hoje os Interops são gerados via reflexão pelo projeto mencionado, logo para utilizar aquele Exporter é preciso que os fontes em C# estejam atualizados com a DLL da biblioteca.

Então para acrescentar uma nova funcionalidade hoje é preciso:

  1. atualizar os recursos no ACBrFramework.NET;
  2. exportar o interops;
  3. fazer o merge dos interops gerados com os antigos - as vezes são precisos alguns ajustes, ao gerar fica mais claro;
  4. criar manualmente as funcionalidades (classes, métodos, etc.) que se deseja incluir seguindo os padrões de nomes já existentes nos demais projetos.

Esse é o fluxo básico para qualquer adição de funcionalidade. O processo de compilação o pessoal com certeza vai esclarecer melhor, o projeto em .NET quem atualiza é o Rafael Dias.

A geração de arquivos, mesmo que ainda em beta, seria interessante dar uma olhada no JPOSBr, pois você não vai ter trabalho para criar novos registros pois lá está mais atualizado.

Temos um refactor grande para subir para o JPOSBr, mas está bloqueado devido ao SVN, mas acredito que vale a pena considerar e deixar apenas a comunicação de dispositivos com o jACBrFramework.

Att.,

José Mauro

 

Postado

Boa tarde Mauro.

Vendo o changelog percebi que o pessoal migrou de JNI para JNA, então não é mais necessário usar o C pra gerar os wrappers.

Baixei o código pelo SVN, fiz os testes pelo Windows e pelo Linux, consegui gerar a biblioteca sem erros (.dll / .so).

Obrigado.

WRMedeiros

Focus

Postado

Boa noite Mauro.

Como disse no post anterior, consegui gerar nas 2 plataformas, no entanto, só no Windows funciona... no Linux o .so não tem as funções (o Lazarus por algum motivo não exporta).

Estou tratando isso nesse post:

 

WRMedeiros

Focus

  • 2 semanas depois ...
Postado

Bom dia Alexandre.

Fiz várias buscas, e descobri que trata-se de um bug no FPC pra Linux. Abri um tópico no grupo de Lazarus, e após vários testes descobrimos que as funções só conseguem ser exportadas no Linux quando a declaração export fica dentro do lpr (arquivo de projeto). Se colocar o export da função em um .pas, não exporta.

Fiz um projeto de exemplo, coloquei o export dentro do pas, não funcionou. Em seguida movi o export para o lpr, funcionou, segue exemplo:

https://github.com/welkson/TesteFPC

O problema é que peguei o projeto do ACBr, selecionei uma unit para testar (se não me engano ACBrECF_DLL), removi o export da unit, joguei no .lpr, gerei o .so, e após testar com readelf o problema persiste (não exporta a função). 

Essa semana está um pouco corrida, e não tive tempo de continuar os testes, mas minha intenção é comentar no lpr a importação de todas as uses do ACBr, em seguida habilitar apenas 1, e tentar trabalhar nas funções pra ver qual o motivo das mesmas não estarem sendo exportadas.

Qualquer ajuda será bem vinda.

Abraço,

WRMedeiros

Focus

  • Este tópico foi criado há 3381 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.