Ir para conteúdo
  • Cadastre-se

dev botao

DANFe - Thread Safe


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

Recommended Posts

Prezados, temos um processo de geração de DANFe em massa, e precisamos acelerar ele, tivemos um percalço no caminho e problemas com as Threads porque o FastReport precisa de duas configurações para funcionarem corretamente com Threads paralelas, mesmo pedindo para silenciar os diálogos o problema acontece, e ainda tem um segundo problema que é o cache interno do FastReport, fazendo que dentro de um range muito alto de documentos algumas DANFe ficassem com o mesmo conteúdo. 

Felizmente basta alterar duas propriedades para resolver o problema. 

// Desabilita todo e qualquer tipo de mensagem
frxReport.EngineOptions.SilentMode := True;
// Habilita o FR a trabalhar com multiplas threads com segurança
frxReport.EngineOptions.EnableThreadSafe := True;
// Desabilita o cache, que no caso de múltiplas threas pode dar conflito de conteúdo entre arquivos.
frxReport.EngineOptions.UseFileCache := false;

Segue os arquivos atualizados.

ACBrNFeDANFEFR.pas ACBrNFeDANFEFRDM.pas

  • Curtir 1

 www.datalider.com.br - [email protected] - Macgayver Armini

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Boa tarde

pode ser que habilitando pare de funcionar para algumas pessoas pois senão me engano isso só serve no enterprise.

seria necessário testes para validar isso

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

19 horas atrás, Juliomar Marchetti disse:

Boa tarde

pode ser que habilitando pare de funcionar para algumas pessoas pois senão me engano isso só serve no enterprise.

seria necessário testes para validar isso

No código está condicionado a uma variável estar True, e a versão testada foi a Emb Edition.

No help do componente, essa propriedade existe desde o FR4.

Na versão de teste de vocês, com vários ambientes diferentes, talvez pode acontecer  de algum não compilar por não existir em componentes antigos, ai seria o caso então, de condicionar também no ACBR.inc acredito.

Editado por Data Lider
Adição de informação

 www.datalider.com.br - [email protected] - Macgayver Armini

 

Link para o comentário
Compartilhar em outros sites

Segue os arquivos novamente, faltou adicionar a NFCe também. Olhando aqui a classe, se não quiserem implementar essa sugestão, pelo menos então se puderem deixar o objeto do tipo TACBrNFeFRClass em protected or public das classes TACBrNFeDANFEFR/TACBrNFeDANFCEFR para quem precisar dessa implementação.

 

bb.png

 

ACBrNFeDANFEFR.pas ACBrNFeDANFEFRDM.pas

  • Curtir 1

 www.datalider.com.br - [email protected] - Macgayver Armini

 

Link para o comentário
Compartilhar em outros sites

17 horas atrás, Juliomar Marchetti disse:

algum motivo pra isso?

image.png

Corrigi e subi.

caso ocorra problemas e houver relatos vou reverter

Não, erro meu mesmo. Obrigado!

Edição do Post:

Na verdade, eu não subiu a alteração para a NFC-e, ai ficou assim (igual ao primeiro), vou carregar aqui, e desculpa.

(TACBrNFeDANFCEFR) ficou sem o Thread Safe.

ACBrNFeDANFEFR.pas

Editado por Data Lider
complemento resposta

 www.datalider.com.br - [email protected] - Macgayver Armini

 

Link para o comentário
Compartilhar em outros sites

  • 4 meses depois ...

Sim Juliano, sigo a tua recomendação desde sempre. Apaguei tudo e reinstalei.

Alias já fiz esse procedimento 2 x e recompilei tb o Fast Report.

Agora o que fiz foi reverter a versao para antes de outubro quando da tua atualização e vou testar na intenção de isolar o problema.

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Então vai precisar mexer e adicionar IFDEF para conforme a versão do Fast Report não colocar essa propriedade e dai anexar aqui pra nós que subimos ao svn

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

  • Moderadores

A propriedade ThreadSafe é da classe TACBrNFeDANFEFR e não do FastReport.

Se está tendo o erro provavelmente os teus fontes do ACBr estão desatualizados, ou não reinstalou usando o ACBrInstall_Trunk2 pra recompilar os pacotes, ou tem fontes antigos do ACBr em algum lugar da máquina que estão sendo enxergados pelo Delphi.

Atualize os fontes e reinstale marcando a opção de apagar os arquivos antigos.

  • Obrigado 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Humm verdade é quase certo que é aquelas situações que fazem compilação manual dos pacotes ou ficam copiando para a pasta bpl do delphi os mesmos sem necessidade

 

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

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