Ir para conteúdo
  • Cadastre-se

dev botao

Erro ao Gerar Arq. MFD -- DLLATO17GeraArquivo Cod 4097


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

Recommended Posts

Com uma impressora ZPM ao imprimir qualquer documento que utilize leiaute ATO COTEPE 17/04 o erro sempre aparece. Pesquisei sobre o assunto e trata-se de um erro anterior a este na verdade, em DLLReadLeMemorias que não gera o arquivo .tdm, por isso o erro 4097 que pelo manual significa arquivo aberto ou inexistente.

O erro acontece porque os parâmetros estão incorretos em ACBrECFFiscNET.pas:

Linha 3047 => DiaIni := FormatDateTime('yyyymmdd', DataInicial);

Correto => DiaIni := FormatDateTime('ddmmyy', DataInicial);

Linha 3048 => DiaFim := FormatDateTime('yyyymmdd', DataFinal);

Correto => DiaFim := FormatDateTime('ddmmyy', DataFinal);

Linha 3050 => iRet := xDLLReadLeMemorias( PortaSerial, ArqTmp, NumFab, '1');

Correto => iRet := xDLLReadLeMemorias( PortaSerial, ArqTmp, NumFab, #1);

Com esta correção o arquivo ACBr.TDM é criado perfeitamente e quando DLLATO17GeraArquivo é executado o arquivo então pode ser lido (porque agora ele existe).

Link para o comentário
Compartilhar em outros sites

  • Fundadores

natanaelsimoes,

Notei que o mesmo problema poderia ocorrer na linha 3015, no método: ArquivoMFD_DLL...

Poderia verificar se também é necessária a correção da formatação da Data nesse método ?

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Agora que notei que se trata de outro IF...

O ECF não é detectado como Elgin ? Ele não entra no IF ?

     else if (fsMarcaECF = 'elgin') then
begin[/code]

Se NÃO entra... qual é o valor da variável: fsMarcaECF ?

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

Nos testes que fiz bastou fazer as alterações nas 3 linhas indicadas na abertura do post e funcionou perfeitamente. Segundo a Elgin o problema era apenas a passagem de parâmetros que estava incorreta. Tentei usar também a Elgin.DLL diretamente passar pelo ACBr e também dava o erro talvez porque a impressora não seja mesmo Elgin mas sim ZPM.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Vc poderia testar com a alteração do IF para entrar nos métodos que usam as DLLs da Elgin ?

Tenho receio que esta alteração quebre a compatibilidade com algum outro ECF ZPM

Resta também saber se a chamada para os métodos da DLL da Elgin estão corretas ou se tb precisam ser alterados...

Nossas modificações podem afetar centenas de desenvolvedores então temos que tentar ter certeza do que estamos fazendo...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

Mudei o if da elgin para também entrar com zpm, mas dá erro de violação de acesso durante a leitura da mfd.

O negócio é que mesmo sendo usando Elgin.dll de qualquer jeito vai executar DLLReadLeMemorias de Leitura.dll

(tentar rodar qualquer função que envolva leitura da mfd sem Leitura.dll não funciona )

No manual da elgin está escrito o seguinte sobre Elgin_LeMemoriasBinario:

"Realiza a leitura binária das memórias do ECF, e grava em um arquivo no computador.

Esta função realiza uma chamada para a função DLLReadLeMemorias da DLL leitura.dll, que envia o

comando para ECF para fazer a leitura da Memória Fiscal e da Memória Fita Detalhe e gravar em

uma arquivo magnético."

então aqui fiquei em dúvida também se a própria Elgin.dll não estivesse falhando em passar os parâmetros para Leitura.DLL para gerar o arquivo binário também.

Agora a tarde vou realizar um teste usando uma Elgin X5 pra confirmar isto, daí posto mais resultados

post-2923-13548987856625.jpg

post-2923-13548987857171.jpg

Link para o comentário
Compartilhar em outros sites

Testei com uma Elgin X5 e pra minha surpresa usando Elgin_LeMemoriasBinario acontece o mesmo erro.(imagens em anexo)

O pessoal da Elgin me enviou um exemplo de como fazer a leitura binária e nem eles mesmos usam Elgin_LeMemoriaBinario

usam DLLReadLeMemorias da Leitura.DLL (imagem em anexo) E funciona tanto na Elgin como na ZPM sem problemas.

Reparem nos parâmetros de entrada em DLLReadLeMemorias e DLLATO17GeraArquivo (formato da data) como são diferentes do que está hoje no arquivo FiscNet da ACBr.

Li os manuais das dlls Elgin, ATO17, Leitura e pelo que vi, Elgin.DLL na realidade só faz chamar Leitura.DLL, então fiz uma modificação no fonte para não utilizar a dll da Elgin para gerar os arquivos binários, utilizando diretamente Leitura.DLL e passando os parâmetros como no exemplo. (modificação em anexo)

Com este fonte, tanto elgin quanto zpm passaram a executar corretamente todas as funções que precisam gerar arquivo binário.

post-2923-13548987858717.jpg

ACBrECFFiscNET.pas

post-2923-13548987858926.jpg

post-2923-13548987859088.jpg

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Bom, na verdade todos ECFs dessa classe são FiscNET, ou seja, usam o mesmo protocolo...

Portanto se a DLL não tiver "travas" de software, deveria funcionar igualmente em todos os modelos...

@natanaelsimoes,

Onde posso baixar a documentação (atual) da Elgin ? Gostaria de verificar qual DLL eles sugerem e como está documentada o uso da mesma

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

Boa tarde

Estou utilizando em meu sistema e tenho clientes com Elgin X5 e funciona perfeitamente a Leitura MFD.

muito estranho.

Leitura MFD pra ser impresso também está ok pra mim mas tenta executar qualquer função que tenho que gerar arquivo eletrônico segundo modelo do ATO/COTEPE

Meu sempre dá pau...

Manual e dlls atualizadas Elgin

https://www.elgin.com.br/PortalElginAdm/Upload/DownloadPublico/Automacao/if/Docs_SWH/FIT_X5_IF6000_ZP_K_Docs-SoftwareHouse_Rev10018.zip

Link para o comentário
Compartilhar em outros sites

  • 11 meses depois ...
  • Fundadores

Cada classe tem um código específico... um problema na Daruma não é significa que o mesmo erro ocorre na Classe FiscNet...

 

Não houve modificações nos fontes nesse sentido... Use o recurso de LOG do SVN e analise você mesmo..

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois ...
  • 4 meses depois ...
  • Membros Pro

Boa tarde a todos,

Tive o mesmo problema relatado pelos colegas, dava o tal erro 4097, em uma busca sem sucesso de soluções fui analisando o processo passo-a-passo, tudo parecia estar perfeito no meu código, foi então que fiz tudo diretamente na máquina do cliente, pois na minha dava certo, no cliente não. Foi então que fui verificar os devidos diretórios para ver se estavam as DLL's no devido lugar e para minha surpresa estava, só o que não existia na máquina era o diretório de destino, ondo o programa iria salvar o arquivo ACBr.tdm, não tinha essa pasta, mas até descobrir isto foram 3 dias de intenso trabalho revisando código onde tudo parecia estar perfeito, e de fato estava tudo certo, só um simples detalhe de não ter criado a pasta de destino ocasionou essa perda de tempo, daí então toda a vez que pesso para gerar o ATO17/04 faço uma verificação se a pasta existe e caso não exista crio ela em tempo de execução e pronto meus problemas acabaram

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

  • 9 meses depois ...

Boa tarde, também estou com esse erro ao executar: Elgin_LeMemoriasBinario .Cod:0. Já atualizei as dll's (pasta da aplicação e no diretório system32) de acordo com o repositório ACBR e permaneceu o mesmo erro, com as dll's fornecidas pelo fabricante também é gerado a mesma situação, está ocorrendo tanto na minha aplicação como também no ECFTeste. Fazendo o mesmo procedimento no sistema fornecido pela Elgin, é gerado o arquivo normalmente. Isso está ocorrendo apenas com as ECF Elgin nas demais marcas está gerando o arquivo normal.

Link para o comentário
Compartilhar em outros sites

  • 5 meses depois ...
  • 3 meses depois ...
  • Moderadores

Sim quase todos que usam Paf-ECF ou outros arquivos do sefaz!

Basta observar os arquivos que fazem parte e se estão devidamente atualizados, se existem somente eles no micro e assim por diante que irá conseguir!

há quase esqueci qual a marca e modelo da ECF?

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Conseguiiiii... no meu caso a Elgin.dll estava desatualiza e ao chamar a funcao LeMemoriasBinario, passei o nome do arquivo com o serialdaimpressora.tmd (essa ultima alteração não sei se influenciou). Esta gerando o arquivo ainda (demora muito)... assim que terminar posto novamentel.

Link para o comentário
Compartilhar em outros sites

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

The popup will be closed in 10 segundos...