Jump to content

Delphi chamada_delphi.png acbr.png

C6 chamada_c6.png botao.png

Salvando e Lendo os retornos S-5001, S-5002, S-5003, S-5011, S-5012 e S-5013


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

Recommended Posts

Bom dia!
Gostaria de saber se alguém pode ajudar-me, ou apontar uma direção, para solucionar a seguinte necessidade:
Quando envio os eventos S-1200, S-1295, S-2299 ou S-2399, são gerados os retornos dos eventos da série 5000 (S-5001, S-5002, S-5003, S-5011, S-5012 e s-5013).
1º Como faço para salvar o XML do retorno?
2º Depois de salvo esse XML do retorno, é possível associá-lo novamente ao componente ACBreSocial (com um LoadFromFile, ou algo similar), para que eu possa instanciar um objeto do tipo TS5001, TS5002 ou TS5003?
 

Link to comment
Share on other sites

Seria mais ou menos assim:

   if ACBreSocial1.WebServices.ConsultaLote.RetConsultaLote.Status.cdResposta in ([201, 202]) then  // Autorizado com Sucesso ou advertência
   begin
      for i:=0 to ACBreSocial1.WebServices.ConsultaLote.RetConsultaLote.retEventos.Count-1 do  // Lista de eventos enviados (S-1200, S-1210, S-2299, S-1295, S-1299)
      begin
         for j := 0 to ACBreSocial1.WebServices.ConsultaLote.RetConsultaLote.retEventos.Items[i].tot.Count-1 do begin  // eventos da série 5000 associados
            // identifica o tipo, e realiza as leituras das propriedades
            case retEvento.tot[j].Evento.TipoEvento of
               teS5001: TS5001(retEvento.tot[j].Evento.GetEvento).EvtBasesTrab.IdeEvento.nrRecArqBase;
               teS5002: TS5002(retEvento.tot[j].Evento.GetEvento).EvtirrfBenef.IdeEvento.nrRecArqBase;
               teS5003: TS5003(retEvento.tot[j].Evento.GetEvento).EvtBasesFGTS.IdeEvento.nrRecArqBase;
               teS5011: TS5011(retEvento.tot[j].Evento.GetEvento).EvtCS.InfoCS.nrRecArqBase;
               teS5012: TS5012(retEvento.tot[j].Evento.GetEvento).EvtIrrf.infoIRRF.nrRecArqBase;
               teS5013: TS5013(retEvento.tot[j].Evento.GetEvento).EvtFGTS.infoFGTS.nrRecArqBase;
            end;
         end;
      end;
   end;

 

Edited by arce
complementar texto
  • Like 1
Link to comment
Share on other sites

20 minutos atrás, Ivan Neves disse:

@arce a minha dificuldade está em: 

1º depois do envio do S-1200 com sucesso, salvar o retorno do XML do S-5001.

2º depois, ler o XML do S-5001 salvo, carregando ele no componente ACBreSocial1, para gerar um relatório de suas informações. 

1º Para salvar o XML dos eventos 50XX:

              ACBreSocial1.WebServices.ConsultaLote.RetConsultaLote.retEventos.Items.tot.Items[j].XML

2º Carregar no ACbr:

               oEvento := TS5003.Create;
               oEvento.XML := qrMinhaquery.FieldByName('XML_S5003').AsString;

Link to comment
Share on other sites

1 hora atrás, Joceandro Perin disse:

O retorno desses eventos o componente já faz a leitura.. se vc pegar o exemplo do arce, vc vai ter todas as informações desses XML de retorno.. Não precisa vc salvar e carregar depois novamente no componente..

@Joceandro Perin Eu entendi a primeira resposta do @arce, a qual tem uma implementação parecida nos fonte de Exemplos, entretanto, optei por salvar esses XMLs para uma posterior leitura e geração de um relatório, por uma questão de performance.

1 hora atrás, arce disse:

1º Para salvar o XML dos eventos 50XX:

              ACBreSocial1.WebServices.ConsultaLote.RetConsultaLote.retEventos.Items.tot.Items[j].XML

2º Carregar no ACbr:

               oEvento := TS5003.Create;
               oEvento.XML := qrMinhaquery.FieldByName('XML_S5003').AsString;

 @arce, obrigado pela atenção! O seu segundo exemplo atendeu as minhas necessidade! Valeu! 

Por mim o post já pode ser encerrado!

Link to comment
Share on other sites

28 minutos atrás, Ivan Neves disse:

@Joceandro Perin Eu entendi a primeira resposta do @arce, a qual tem uma implementação parecida nos fonte de Exemplos, entretanto, optei por salvar esses XMLs para uma posterior leitura e geração de um relatório, por uma questão de performance.

 @arce, obrigado pela atenção! O seu segundo exemplo atendeu as minhas necessidade! Valeu! 

Por mim o post já pode ser encerrado!

Entendi, eu salvo essas informações em banco no momento da consulta, aí posteriormente, utilizamos para relatórios..

  • Like 2
Link to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.