Ir para conteúdo
  • Cadastre-se

dev botao

Erro DistribuicaoDFe


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

Recommended Posts

  • Membros Pro

Tudo neste projeto foi feito com Thread, teve alguma alteração que o uso de Thread poderia a vim comprometer algo? Pois se que o uso de Thread é chato, uma mudança no projeto lá a gente que quer mexer em um monte de coisa que a Thread venha funcionar lega.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Bom dia,
Encontrei o mesmo problema na utilização do trunk2 revision 9532 (dia 13/07) ,  resolvi o problema alterando  a unit ACBrNFeWebServices.pas sobrescrevendo o método procedure DefinirEnvelopeSoap; override;
procedure TDistribuicaoDFe.DefinirEnvelopeSoap;
var
  Texto: AnsiString;
begin
  Texto := '<?xml version="1.0" encoding="utf-8"?>';
  Texto := Texto + '<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
                                    'xmlns:xsd="http://www.w3.org/2001/XMLSchema" ' +
                                    'xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">';
  Texto := Texto +   '<soap12:Body>';
  Texto := Texto +     '<nfeDistDFeInteresse xmlns="' + Servico + '">';
  Texto := Texto +       '<nfeDadosMsg>';
  Texto := Texto +         FPDadosMsg;
  Texto := Texto +       '</nfeDadosMsg>';
  Texto := Texto +     '</nfeDistDFeInteresse>';
  Texto := Texto +   '</soap12:Body>';
  Texto := Texto + '</soap12:Envelope>';
  FPEnvelopeSoap := Texto;
end;


att

André.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia André,

Essa alteração eu até tinha feito, mas depois foi removida e feita de uma outra forma.

Assim que normalizar o SVN por favor atualize os seus fontes novamente.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • 5 meses depois ...

Bom dia Pessoal, gostaria de compartilhar com você, ontem estive com um problema semelhante, e estou postando abaixo a solução que fiz para min, estava ocorrendo porque após configurar o componente eu não estava dando esse comando:

WS.SSL.CarregarCertificado;

Com ele consegui resolver, porém comecei a investigar o problema do porque o mesmo ocorre e identifiquei que no fonte ACBrDFeCapicom.pas nos métodos TDFeCapicom.Assinar e TDFeCapicom.Validar é utilizado o seguinte código:

  CoInitialize(nil);
  try
    CarregarCertificadoSeNecessario;
...

Acontece que no método CarregarCertificadoSeNecessario também é validado se tem ou não o número do certificado carregado, caso não tenha executa o método que carrega o certificado digital para memória, dentro desse método também se executa o CoInitialize(nil); e CoUninitialize; acabando liberando o recurso.

Uma sugestão de melhoria caso queiram aceitar seria alterar nos dois métodos "TDFeCapicom.Assinar" e "TDFeCapicom.Validar" para que o código fique dessa maneira:

  CarregarCertificadoSeNecessario;  
  CoInitialize(nil);
  try    
...

Isso irá evitar esse tipo de problema caso o programador esqueça de na hora de configurar de chamar o método:

WS.SSL.CarregarCertificado;

Anexei o fonte com a alteração caso queiram aceitar.

ACBrDFeCapicom.pas

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Já testou com a alteração de ontem a noite ?... agora está assim:

  Inicializado := (CoInitialize(nil) in [ S_OK, S_FALSE ]);
  try
    ...
  finally
    if Inicializado then
      CoUninitialize;
  end;

 

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

8 minutos atrás, Daniel Simoes disse:

Já testou com a alteração de ontem a noite ?... agora está assim:


  Inicializado := (CoInitialize(nil) in [ S_OK, S_FALSE ]);
  try
    ...
  finally
    if Inicializado then
      CoUninitialize;
  end;

 

Realmente Daniel, pelo que vi isso vai resolver também. 

Vou fazer um teste aqui para verificar se funciona.

Link para o comentário
Compartilhar em outros sites

  • Fundadores
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

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