ADRIANOOLLIE Postado 6 Abril Postado 6 Abril Olá pessoal, tudo bem? Estou desenvolvendo uma API RESTful usando o framework Horse no Lazarus, com o objetivo de centralizar a emissão de DC-e (Declaração de Conteúdo Eletrônica). Essa API vai rodar como um serviço de background em um servidor Linux (Debian) em modo console, sem ambiente gráfico. A motivação para essa arquitetura é que nosso ERP principal é legado (Delphi 2009) e não consegue mais lidar nativamente com as exigências atuais de TLS 1.2 da SEFAZ. Portanto, o microserviço em Lazarus receberá uma requisição do ERP, fará a montagem, assinatura com certificado A1 e o envio. O Problema: O obstáculo que estou enfrentando é a forte dependência da LCL nos pacotes do ACBr. Ao criar um projeto do tipo "Console Application" e declarar as units do componente (ex: ACBrDCe) no uses, o projeto não compila, gerando erros de dependência de bibliotecas visuais, mesmo eu não utilizando nenhuma tela. O que já tentei: Pesquisando no fórum e na documentação, tentei a abordagem de "enganar" o compilador: Criei um projeto Application padrão e removi os formulários. Fui em Project Options > Compiler Options > Additions and Overrides. Alterei o LCLWidgetType para nogui. Certifiquei-me de não incluir nenhum pacote de impressão (como Fortes Report), usando apenas o componente base de comunicação. Ainda assim, não tive sucesso. Durante a compilação, a árvore de dependências do ACBr acaba puxando referências que quebram a geração do executável de terminal, ou dão erro ao tentar rodar no Debian puro.
Moderadores datilas Postado 6 Abril Moderadores Postado 6 Abril eu uso o ACBrNFe,ACBrGtin,ACBrBoleto,ACBrNFSeX(todos com horse) sem problema, no seu caso DCe nunca usei. mas eu uso "console application" 52 minutos atrás, ADRIANOOLLIE disse: Fui em Project Options > Compiler Options > Additions and Overrides. e exatamente como vc citou acima: e custom options: 1
ADRIANOOLLIE Postado 6 Abril Autor Postado 6 Abril Olá @datilas, desde já obrigado pela resposta! Tentei criar um novo projeto de teste com os parâmetros que você descreveu, criei também um datamodule com um NFe e ainda tenho o mesmo retorno:
Moderadores datilas Postado 6 Abril Moderadores Postado 6 Abril 2 horas atrás, ADRIANOOLLIE disse: Olá @datilas, desde já obrigado pela resposta! Tentei criar um novo projeto de teste com os parâmetros que você descreveu, criei também um datamodule com um NFe e ainda tenho o mesmo retorno: segue um exemplo funcional ACBrGTIN compilando para apache, vc pode adaptar a sua necessidade: corrija os paths para o seu ambiente
ADRIANOOLLIE Postado 6 Abril Autor Postado 6 Abril @datilas baixei seu projeto e tentei fazer os testes, aqui no PC do trabalho não consegui rodar, vou tentar no meu pessoal em casa.
Moderadores Solution datilas Postado 6 Abril Moderadores Solution Postado 6 Abril 1 hora atrás, ADRIANOOLLIE disse: @datilas baixei seu projeto e tentei fazer os testes, aqui no PC do trabalho não consegui rodar, vou tentar no meu pessoal em casa. fiz um novo só com horse sem dependencias minhas é só abrir "horse-master\samples\lazarus\console\Console.lpi" alterar os paths para seu ambiente: compilar e testar exemplo2.zip
ADRIANOOLLIE Postado 7 Abril Autor Postado 7 Abril @datilas Boa tarde, baixei seu exemplo atualizei o caminho dos Search paths conforme necessário, adicionei diretamente no uses o ACBrDCe e funcionou perfeitamente... Muito Obrigado!
Moderadores datilas Postado 7 Abril Moderadores Postado 7 Abril que bom que pude ajudar. Fechando. Para novas dúvidas, criar um novo tópico.
Recommended Posts