Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

O problema é o seguinte , eu salvo a parte do xml do mdf no banco, quando autorizado, salvo a parte do protocolo também no banco de dados. Quando mando imprimir, junto as 2 partes e uso loadfromstream. O que o ocorre é que a função só lê a parte referente a mdfe e a parte do protocolo não é preenchida. Faço isso na Nfe e funciona correto! Uso o fortes!

Postado

Uso a seguinte função que acredito não seja necessaria para você testar:

function StringToStream(const ANFe, ANFeProt: WideString): TStringStream;
    var
      vXml: WideString;
      str_versao:string;
    begin
     str_versao:='1.00';
      if ANFeProt <> '' then
      begin
        vXml := '<?xml version="1.0" encoding="UTF-8" ?>'+
                '<MDFeProc versao="'+str_versao+'" xmlns="http://www.portalfiscal.inf.br/mdfe">'+
                  ANFe+ //parte que recebe o mdfe
                  '<protMDFe versao="'+str_versao+'">'+
                  ANFeProt+ //parte que recebe o protocolo
                  '</protMDFe>'+
                '</MDFeProc>';
      end
      else
        begin
          vXml := ANFe;
        end;
      Result := TStringStream.Create(vXml);
    end;

O comando a seguir é usado para carregar no compomente o xml:

ACBrMDFe1.Manifestos.LoadFromStream(StringToStream(vXML, vXMLProt));

 

Ou seja se você usar uma variável contendo qualquer xml no comando acima você vera o erro;

  • Consultores
Postado

Boa noite Guto,

O arquivo mdfe.xml contem o XML do MDF-e assinado mas não contem o protocolo de autorização.

Por outro lado o prot.xml contem somente o protocolo de autorização.

Desculpe, mas você guardar esses dois arquivos não servem para nada.

O que você precisa guardar é o XML completo, ou seja o XML do MDF-e assinado e protocolado.

O componente ACBrMDFe gera esse arquivo e salva em disco, caso esteja configurado para salvar e também o disponibiliza para salvar no banco de dados na propriedade XMLOriginal.

Para ler essa propriedade faça o seguinte:

sXML := ACBrMDFe1.Manifestos.Items[ 0 ].XMLOriginal;

Lembrando que a linha acima tem que ser executado depois do envio.

A estrutura do arquivo obtido acima tem a estrutura apresentada na página 87 do Manual versão 1.00a do MDF-e (item 12.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

  • Moderadores
Postado
4 horas atrás, gutopmc disse:

Segue os arquivos!

prot.xml

mdfe.xml

Como já disse o Ìtalo, o correto é carregar a partir de um XML válido.

Apenas por curiosidade, comparei com outro XML e troquei o seu MDFeProc por mdfeProc e o protocolo apareceu.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

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