Ir para conteúdo
  • Cadastre-se

dev botao

MDFe - Envio Modo Síncrono como pegar o campos de retorno


Ver Solução Respondido por Diego Foliene,
  • Este tópico foi criado há 144 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Estou realizando o envio do MDFe através do modo Síncrono:

ACBrMDFe.Enviar(vNumLote, True, True);

Gostaria de saber qual a forma correta de obter os retornos: cStat, dhRecto, protocolo, xMotivo.

Já olhei o exemplo do Acbr, e observei dessa forma:

with MemoDados do
  begin
    Lines.Add('');
    Lines.Add('Envio MDFe');
    Lines.Add('tpAmb: '     + TpAmbToStr(ACBrMDFe1.WebServices.Enviar.tpAmb));
    Lines.Add('verAplic: '  + ACBrMDFe1.WebServices.Enviar.verAplic);
    Lines.Add('cStat: '     + IntToStr(ACBrMDFe1.WebServices.Enviar.cStat));
    Lines.Add('xMotivo: '   + ACBrMDFe1.WebServices.Enviar.xMotivo);
    Lines.Add('cUF: '       + IntToStr(ACBrMDFe1.WebServices.Enviar.cUF));
    Lines.Add('xMsg: '      + ACBrMDFe1.WebServices.Enviar.Msg);
    Lines.Add('Recibo: '    + ACBrMDFe1.WebServices.Enviar.Recibo);
//    Lines.Add('Protocolo: ' + ACBrMDFe1.WebServices.Enviar.Protocolo);
  end;

Porém não tem o retorno dhRecbto, como posso pegar esse valor?

Alguém poderia me orientar?

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • Consultores
1 hora atrás, SisComp - Proc. de Dados disse:

Estou realizando o envio do MDFe através do modo Síncrono:

ACBrMDFe.Enviar(vNumLote, True, True);

Gostaria de saber qual a forma correta de obter os retornos: cStat, dhRecto, protocolo, xMotivo.

Já olhei o exemplo do Acbr, e observei dessa forma:

with MemoDados do
  begin
    Lines.Add('');
    Lines.Add('Envio MDFe');
    Lines.Add('tpAmb: '     + TpAmbToStr(ACBrMDFe1.WebServices.Enviar.tpAmb));
    Lines.Add('verAplic: '  + ACBrMDFe1.WebServices.Enviar.verAplic);
    Lines.Add('cStat: '     + IntToStr(ACBrMDFe1.WebServices.Enviar.cStat));
    Lines.Add('xMotivo: '   + ACBrMDFe1.WebServices.Enviar.xMotivo);
    Lines.Add('cUF: '       + IntToStr(ACBrMDFe1.WebServices.Enviar.cUF));
    Lines.Add('xMsg: '      + ACBrMDFe1.WebServices.Enviar.Msg);
    Lines.Add('Recibo: '    + ACBrMDFe1.WebServices.Enviar.Recibo);
//    Lines.Add('Protocolo: ' + ACBrMDFe1.WebServices.Enviar.Protocolo);
  end;

Porém não tem o retorno dhRecbto, como posso pegar esse valor?

Alguém poderia me orientar?

Obrigado.

Boa tarde!

A informação do dhRecbto apenas não é utilizada no exemplo, mas a mesma está presenta na classe, veja:

  TMDFeRecepcao = class(TMDFeWebService)
  //...
  public
	//...
    property Recibo: String read GetRecibo;
    property versao: String read Fversao;
    property TpAmb: TpcnTipoAmbiente read FTpAmb;
    property verAplic: String read FverAplic;
    property cStat: Integer read FcStat;
    property cUF: Integer read FcUF;
    property xMotivo: String read FxMotivo;
    property dhRecbto: TDateTime read FdhRecbto; //<==Aqui
    property TMed: Integer read FTMed;
    property Protocolo: string read FProtocolo;
  end;

Portanto, você pode ler:  ACBrMDFe.WebServices.Enviar.dhRecbto;

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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 !!

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
1 hora atrás, Diego Foliene disse:

Boa tarde!

A informação do dhRecbto apenas não é utilizada no exemplo, mas a mesma está presenta na classe, veja:

  TMDFeRecepcao = class(TMDFeWebService)
  //...
  public
	//...
    property Recibo: String read GetRecibo;
    property versao: String read Fversao;
    property TpAmb: TpcnTipoAmbiente read FTpAmb;
    property verAplic: String read FverAplic;
    property cStat: Integer read FcStat;
    property cUF: Integer read FcUF;
    property xMotivo: String read FxMotivo;
    property dhRecbto: TDateTime read FdhRecbto; //<==Aqui
    property TMed: Integer read FTMed;
    property Protocolo: string read FProtocolo;
  end;

Portanto, você pode ler:  ACBrMDFe.WebServices.Enviar.dhRecbto;

Boa tarde @Diego Foliene, obrigado pela atenção. Estou tentando pegar a informação do dhRecbto como você orientou, os outros campos são retornados com valor, porém este esta vindo nulo no retorno, conforme imagem abaixo:

Erro MDFE.png

Link para o comentário
Compartilhar em outros sites

  • Consultores
41 minutos atrás, SisComp - Proc. de Dados disse:

Boa tarde @Diego Foliene, obrigado pela atenção. Estou tentando pegar a informação do dhRecbto como você orientou, os outros campos são retornados com valor, porém este esta vindo nulo no retorno, conforme imagem abaixo:

Erro MDFE.png

Boa tarde!

A informação consta no arquivo XML do retorno?

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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 !!

Link para o comentário
Compartilhar em outros sites

  • Consultores

Verificando.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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 !!

Link para o comentário
Compartilhar em outros sites

  • Consultores

Constatada possível irregularidade.

Criada a #TK-4795 para tratativa do caso e parecer do consultor responsável.

  • Curtir 1
Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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 !!

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Bom dia!

Foi enviado no SVN na Rev-31463, alteração para que preencha a propriedade da classe web service.

No entanto, vale explicar que na verdade não era um erro. O que acontece é que a informação é preenchida em outra propriedade.

Por isso, agora, com a alteração recente, você pode escolher entre:

ACBrMDFe.WebServices.Enviar.dhRecbto;

Ou a propriedade que já recebia a informação antes:

ACBrMDFe.Manifestos[Indice].MDFe.procMDFe.dhRecbto;

Lembrando que para alteração surtir efeito, você precisa atualizar seus fontes e reinstalar o ACBr.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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 !!

Link para o comentário
Compartilhar em outros sites

×
×
  • 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.