Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

Bom dia,

Estou tentando criar uma rotina para fazer o download do XML do MDF-e autorizado e não encerrado. Os clientes algumas vezes não esta conseguindo receber o XML autorizado da SEFAZ.

Estou recebendo somente os dados da autorização e não o xml completo, é possível eu conseguir o xml completo com a autorização?

ACBrMDFe.Manifestos.Clear;
GerarMDFe(codigo, serie, dsSIMDFEREG.DataSet.FieldByName('CHAVE_MDFE').AsString);
ACBrMDFe.Manifestos.Validar;
ACBrMDFe.Manifestos.Assinar;
ACBrMDFe.Manifestos.Items[0].GravarXML('','');
ACBrMDFe.Manifestos.LoadFromFile(caminhoXML + Copy(ACBrMDFe.Manifestos.Items[0].MDFe.infMDFe.ID, 5, 44) + '-mdfe.xml');
ACBrMDFe.Consultar;

// Me retorna os dados da autorização:

SalvaArquivoUTF8(UTF8Encode(ACBrMDFe.WebServices.Consulta.RetWS), caminhoXML + dsSIMDFEREG.DataSet.FieldByName('CHAVE').AsString+'-mdfe.xml');

//Retorna em branco

SalvaArquivoUTF8(UTF8Encode(ACBrMDFe.WebServices.Consulta.RetMDFeDFe), caminhoXML + dsSIMDFEREG.DataSet.FieldByName('CHAVE').AsString+'-mdfe.xml');

Grato.

 

 

 

 

 

31190202830994000107580000000067021810734620-mdfe.xml

  • Consultores
Postado

Boa noite,

Se o componente estiver configurado para salvar os XML, o método Consultar é para atualizar o XML do MDF-e e salvar em disco ele completo.

Se não esta salvando ele completo é porque esta ocorrendo alguma divergência no DigisteValue do XML do MDF-e com o do XML retornado pela consulta.

Essa divergência pode esta sendo provocada pela data/hora de emissão do MDF-e.

Vejo que você gerando novamente o XML do MDF-e, porque?

Você já não tem o XML do MDF-e que esta sem o protocolo de autorização?

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

  • Membros Pro
Postado
12 horas atrás, Italo Jurisato Junior disse:

Boa noite,

Se o componente estiver configurado para salvar os XML, o método Consultar é para atualizar o XML do MDF-e e salvar em disco ele completo.

Se não esta salvando ele completo é porque esta ocorrendo alguma divergência no DigisteValue do XML do MDF-e com o do XML retornado pela consulta.

Essa divergência pode esta sendo provocada pela data/hora de emissão do MDF-e.

Vejo que você gerando novamente o XML do MDF-e, porque?

Você já não tem o XML do MDF-e que esta sem o protocolo de autorização?

Bom dia Italo,

O componente esta configurado para salvar "ACBrMDFe.Configuracoes.Arquivos.Salvar  := True;

Gero o XML novamente por que não tenho o XML  que foi enviado.

Você já não tem o XML do MDF-e que esta sem o protocolo de autorização? Não

 

O interessante que ele retorna o XML completo quando o MDF-e esta encerrado. Quando esta somente autorizado retorna somente os dados da autorização conforme anexo anterior.

Grato pelo retorno Italo.

  • Consultores
Postado

Bom dia,

Como dito antes:

Se você carrega o XML assinado com o LoadFromFile e depois executa o método Consultar, se o MDF-e foi autorizado o componente atualiza o XML deixando-o completo, ou seja, assinado e com o protocolo de autorização.

Para que isso ocorra, o XML tem que estar assinado, tem que estar autorizado na SEFAZ e o DigestValue que consta na assinatura do XML ser igual ao DigestValue que consta no retorno ao consultar.

Você anexou o retorno, favor anexar o XML assinado bem como o seu retorno.

Sugiro também que refaça a sua rotina:

ACBrMDFe.Manifestos.Clear;
GerarMDFe(codigo, serie, dsSIMDFEREG.DataSet.FieldByName('CHAVE_MDFE').AsString);
ACBrMDFe.Manifestos.Assinar;
ACBrMDFe.Manifestos.Validar;
ACBrMDFe.Consultar; 

Devemos primeiro Assinar e depois Validar, pois o método Validar exige que o XML esteja assinado.

Segundo o método Assinar se encarrega de salvar o XML em Disco.

Terceiro não se faz necessário carregar o XML novamente pois o mesmo já esta na memória do componente, se for carregar novamente é preciso executar o Clear, caso contrario você terá na memória do componente dois MDF-e.

  • Curtir 2
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

  • 2 anos depois...
  • Este tópico foi criado há 1058 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.