Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

  • Membro Pro Verificado
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

  • Membro Pro Verificado
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...
  • Consultores
Postado

Tópico fechado por falta de retorno do usuário

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

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

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...