Ivan Neves Posted January 31, 2019 Share Posted January 31, 2019 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 More sharing options...
arce Posted January 31, 2019 Share Posted January 31, 2019 (edited) 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 January 31, 2019 by arce complementar texto 1 Link to comment Share on other sites More sharing options...
Ivan Neves Posted January 31, 2019 Author Share Posted January 31, 2019 @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. Link to comment Share on other sites More sharing options...
arce Posted January 31, 2019 Share Posted January 31, 2019 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 More sharing options...
Joceandro Perin Posted January 31, 2019 Share Posted January 31, 2019 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.. 1 Link to comment Share on other sites More sharing options...
Ivan Neves Posted January 31, 2019 Author Share Posted January 31, 2019 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 More sharing options...
Joceandro Perin Posted January 31, 2019 Share Posted January 31, 2019 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.. 2 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now