Ir para conteúdo
  • Cadastre-se

dev botao

Obter o XML de Retorno dos eventos Periódicos


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

Recommended Posts

  • Membros Pro

Bom dia Pessoal,

Sei que a lib pode salvar os arquivos enviados/recebidos, mas no caso dos eventos periódicos (S1200,S1210,S2299 e S1299) fica bem confuso ficar procurando nesses arquivos qual corresponde ao evento que estou consultando, principalmente, quando estamos num ambiente onde há vários usuários interagindo com o eSocial. Por isso gostaria de saber o seguinte:

1) Seria possível devolver esse XML de retorno na própria função eSocial_ConsultareSocial() ?

2) Caso não seja possível, os arquivos poderiam ser salvos utilizando-se o ID do evento ao invés da data/hora ?

Link para o comentário
Compartilhar em outros sites

  • Consultores
11 minutos atrás, VFADev disse:

Bom dia Pessoal,

Sei que a lib pode salvar os arquivos enviados/recebidos, mas no caso dos eventos periódicos (S1200,S1210,S2299 e S1299) fica bem confuso ficar procurando nesses arquivos qual corresponde ao evento que estou consultando, principalmente, quando estamos num ambiente onde há vários usuários interagindo com o eSocial. Por isso gostaria de saber o seguinte:

1) Seria possível devolver esse XML de retorno na própria função eSocial_ConsultareSocial() ?

2) Caso não seja possível, os arquivos poderiam ser salvos utilizando-se o ID do evento ao invés da data/hora ?

Bom dia!
Foi criada a #TK-3603 para análise da questão e parecer por parte do consultor responsável.

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
53 minutos atrás, VFADev disse:

Bom dia,
Algum progresso ?

Bom dia!
Está em nosso backlog, vai entrar e ser discutido no sprint da próxima semana(20 a 24/03).

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

  • 4 semanas depois ...
  • Consultores
  • Solution

Bom dia!

Citar

2) Caso não seja possível, os arquivos poderiam ser salvos utilizando-se o ID do evento ao invés da data/hora ?

Quando você usa o método Consultar, recebe na resposta um arquivo que tem uma como uma de suas tags raiz <ConsultarLoteEventosResult>, dentro dela, tem tags <evento> com 3 principais grupos

  • <retornoEvento> que tem as informações do recibo e outras informações de processamento do evento.
  • <tot> está tem a informação do totalizador podendo conter os S-5XXX.

Conferindo nos fontes do componente ACBreSocial que é usado para a Lib, ele tem esta função:

function TConsultaLote.TratarResposta: Boolean;
var
  I, J: Integer;
  AXML, NomeArq: String;
begin
  FPRetWS := SeparaDados(FPRetornoWS, 'ConsultarLoteEventosResult');

  FRetConsultaLote.Leitor.Arquivo := ParseText(FPRetWS);
  FRetConsultaLote.LerXml;

  for I := 0 to FRetConsultaLote.RetEventos.Count - 1 do
  begin
    for J := 0 to FRetConsultaLote.RetEventos.Items[I].tot.Count -1 do
    begin
      AXML := FRetConsultaLote.RetEventos.Items[I].tot.Items[J].XML;

      if AXML <> '' then
      begin
        NomeArq := FRetConsultaLote.RetEventos.Items[I].Id + '-' +
                   FRetConsultaLote.RetEventos.Items[I].tot.Items[J].tipo + '.xml';

        if (FPConfiguracoeseSocial.Arquivos.Salvar) and NaoEstaVazio(NomeArq) then
          FPDFeOwner.Gravar(NomeArq, AXML);
      end;
    end;
  end;

  Result := True;
end;

Em suma, esse trecho salva os XMLs dos eventos no caminho que foi definido em PathSalvar se a opção SalvarArq estiver definida como Sim nas configurações.
Eu isolei essa função e fiz um teste com um arquivo de retorno que tinha e a mesma gerou no caminho que defini em PathSalvar XMLs com a seguinte nomenclatura.
"ID do atributo ID que vem na retornoEvento" + "-" + "S5001.xml" com o conteúdo do S-5001 e "ID do atributo ID que vem na retornoEvento" + "-" + "S5003.xml" com o conteúdo do S-5003. Ambos vieram no retorno.

A sua necessidade foi porque ele estava salvando com data e hora.
Por favor, pode conferir se definiu um PathSalvar, definiu SalvarArq como 1 - Sim e fazer um novo teste?
Se ele gerar os arquivos corretamente, peço que confirme se atende a sua necessidade.
Se ainda assim estiver dando problema, peço que encaminhe o arquivo de retorno da consulta(o que tem -sit no nome) , o log e o arquivo de configuração da lib para análise.
Como tem informações sensíveis, pode seguir as instruções deste tópico:

 

  • 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

  • Membros Pro
Em 15/03/2023 at 12:33, Diego Foliene disse:

Bom dia!

Quando você usa o método Consultar, recebe na resposta um arquivo que tem uma como uma de suas tags raiz <ConsultarLoteEventosResult>, dentro dela, tem tags <evento> com 3 principais grupos

  • <retornoEvento> que tem as informações do recibo e outras informações de processamento do evento.
  • <tot> está tem a informação do totalizador podendo conter os S-5XXX.

Conferindo nos fontes do componente ACBreSocial que é usado para a Lib, ele tem esta função:

function TConsultaLote.TratarResposta: Boolean;
var
  I, J: Integer;
  AXML, NomeArq: String;
begin
  FPRetWS := SeparaDados(FPRetornoWS, 'ConsultarLoteEventosResult');

  FRetConsultaLote.Leitor.Arquivo := ParseText(FPRetWS);
  FRetConsultaLote.LerXml;

  for I := 0 to FRetConsultaLote.RetEventos.Count - 1 do
  begin
    for J := 0 to FRetConsultaLote.RetEventos.Items[I].tot.Count -1 do
    begin
      AXML := FRetConsultaLote.RetEventos.Items[I].tot.Items[J].XML;

      if AXML <> '' then
      begin
        NomeArq := FRetConsultaLote.RetEventos.Items[I].Id + '-' +
                   FRetConsultaLote.RetEventos.Items[I].tot.Items[J].tipo + '.xml';

        if (FPConfiguracoeseSocial.Arquivos.Salvar) and NaoEstaVazio(NomeArq) then
          FPDFeOwner.Gravar(NomeArq, AXML);
      end;
    end;
  end;

  Result := True;
end;

Em suma, esse trecho salva os XMLs dos eventos no caminho que foi definido em PathSalvar se a opção SalvarArq estiver definida como Sim nas configurações.
Eu isolei essa função e fiz um teste com um arquivo de retorno que tinha e a mesma gerou no caminho que defini em PathSalvar XMLs com a seguinte nomenclatura.
"ID do atributo ID que vem na retornoEvento" + "-" + "S5001.xml" com o conteúdo do S-5001 e "ID do atributo ID que vem na retornoEvento" + "-" + "S5003.xml" com o conteúdo do S-5003. Ambos vieram no retorno.

A sua necessidade foi porque ele estava salvando com data e hora.
Por favor, pode conferir se definiu um PathSalvar, definiu SalvarArq como 1 - Sim e fazer um novo teste?
Se ele gerar os arquivos corretamente, peço que confirme se atende a sua necessidade.
Se ainda assim estiver dando problema, peço que encaminhe o arquivo de retorno da consulta(o que tem -sit no nome) , o log e o arquivo de configuração da lib para análise.
Como tem informações sensíveis, pode seguir as instruções deste tópico:

 

Boa Tarde Diego,
Não entendi muito bem qual teste vc quer que eu faça. Foi liberada uma versão nova da Lib ? O que devo definir em PathSalvar e SalvarArq ?

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
  • Consultores

Bom dia!

Sim, por favor, faça um novo teste.

No PathSalvar defina um local para serem salvos estes XMLs(de preferência um diretório que você vai ter certeza que não pode ocorrer problema de permissão). Para SalvarArq, defina como 1 que equivale a Sim.

  • 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

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