Ir para conteúdo
  • Cadastre-se

dev botao

NO retorno do Evento


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

Recommended Posts

Bom dia!

Como faço para buscar o nome do evento enviado (ACBreSocial1.WebServices.EnvioLote.RetEnvioLote)  no caso do arquivo aceito, quando tenho varios eventos enviados no mesmo lote?

Minha pergunta disso e pq quero gravar um log de eventos com os seus respectivos lotes,recibos e protocolos.

Obrigado Att.

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia oprata,

Sugiro que você estude o programa exemplo, mais precisamente a rotina do botão [Enviar].

O nome do XML do evento é salvo usando o seu ID.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Boa tarde, por que não existe relação (ligação) entre a a instancia dos eventos selecionados para geração e o atributo Gerados que é uma nova array (TCollection)? assim não é possivel pegar com segurança o nome do XML salvo, ou o ID, ou protocolo e gravar no FDB sem fazer muitas POGs. Estou tentando criar um atributo paralelo Gerado, em S1000 e cada vez estou improvisando mais.


  TS1000CollectionItem = class(TCollectionItem)
  private
    FTipoEvento: TTipoEvento;
    FevtInfoEmpregador: TevtInfoEmpregador;
  //Luiz:
    FGerado: TGeradosCollectionItem;
...

 

Gostaria de saber, se existe jeito mais facil de associar o nome do XML gerado ou o ID, ao evento S1000, quando crio e seleciono os eventos no programa exemplo, mais precisamente a rotina do botão [Gerar e Enviar] para monitorar o status da transmissao e repassar para o banco de dados o log do acompanhamento.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia,

Veja este fragmento de código extraído do programa exemplo (procedure: btnCarregarXMLClick):

  for i := 0 to ACBreSocial1.Eventos.Gerados.Count -1 do
  begin
    MemoResp.Lines.Add('Tipo Evento.: ' + TipoEventoToStr(ACBreSocial1.Eventos.Gerados.Items[ i ].TipoEvento));
    MemoResp.Lines.Add('Evento Salvo: ' + ACBreSocial1.Eventos.Gerados.Items[ i ].PathNome);
  end;

 

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Obrigado por responder Italo, mas, como faço pra associar o Gerados.Items com a instancia dos eventos selecionados que foram preparados em ACBreSocial1.Eventos.Tabelas.S1010  das rubricas por exemplo, que tem varios registros?

Eu gostaria de poder guardar em um FDB de monitoramento da transmissao o nome do XML gerado, um ID e registrar o recibo ou protocolo devolvido. Já foi prevista uma forma de eu poder pegar estes dados ou devo desenvolver e alterar os fontes da ACBr? Assisti videos de empresas desenvolvedoras e elas tem modulos muito bons de transmissao e acompanhamento do processo e eu gostaria de contribuir com a ACBr trazendo estas ideias, mas não quero reinventar a roda se o ACBr com o Monitor Plus já oferecerem algo semelhante, mas me parece que ela está apenas transmitindo sem muito acompanhamento do status e facilidade para gravacao no banco de dados que originou os dados, de forma diferente da versão da ACBr para NFe, onde ao transmitir ela ja foi gravada no BD e precisa apenas saber se foi aceita pelo site do Governo ou não.

Link para o comentário
Compartilhar em outros sites

TGeradosCollectionItem = class(TCollectionItem)
  private
    FTipoEvento: TTipoEvento;
    FPathNome: String;
    FXML: String;

 

TGeradosCollectionItem guarda apenas o TipoEvento, nenhuma referencia a instancia que originou o item, para que eu possa repassar o no nome do XML ou um ID.

Link para o comentário
Compartilhar em outros sites

Consegui fazer a ligação. Estou verificando se há mais alguma necessidade de configuracao. A propriedade só deverá ser usada após a rotina de salvar os XMLs para fazer sentido, pois será possivel repassar o S1000, 1005... que geraram o XML. Estou fazendo testes.

Msg_Erro('Teste:4.3.2.4-'+TevtInfoEmpregador(Eventos.Gerados.Items.EventoQueOriginou).infoEmpregador.infoCadastro.NmRazao);

 

 

ACBreSocialEventos.pas

pcesIniciais.pas

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia,

Não estou conseguindo entender o motivo dessas alteração.

Sendo que os dados usados para gerar o XML é o seu sistema que passa.

Depois que o XML do evento é gerado, assinado e validado é possível obter do mesmo o ID.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Boa dia Ítalo, meu objetivo é criar um modulo de acompanhamento dos XML gerados, gravar o status que foi iniciado o processo para o usuario saber que nao precisa mais gerar esta informação, salvar o XML e gravar o status que foi gerado e está aguardando a transmissao, fazer a transmissao, pegar o protocolo de envio e atualizar o status que foi transmitido e está aguardando resposta, a cada 10 minutos ir atualizando para pegar o retorno, quando receber Ok, ou erro, atualizar o status, isto tudo no modulo Monitor de Transmissao e no modulo de Folha de Pagamento, pretendo usar uma tabela para monitoramento e repassar o resultado para o banco do Folha de Pagamento, em cada rubrica, funcionario, verbas, etc.

 

            mCadMsgeSocialAux.eSocialIDXML := ExtractFileName(Eventos.Iniciais.S1000.Items.NomeXML+'.xml');
            mCadMsgeSocialAux.eSocialDataStatus := Now;
            mCadMsgeSocialAux.eSocialStatus := eSocGeradoXML;
            mCadMsgeSocialAux.Codigo := mClasseCadEmpresa.Codigo;
            mCadMsgeSocialAux.InsereRegistro;
            mCadMsgeSocialAux.GravaRegistro;

 

Eu estou tentando usar o nome do XML como referencia para acompanhamento, pois ACBreSocial1.Eventos.Iniciais.S1000.Items.evtInfoEmpregador.Id estava retornando vazio.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Luiz,

Tente desta outra forma:

xID :=  ACBreSocial1.Eventos.Iniciais.S1000.Items[ x ].ID;
 

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Obrigado Ítalo, fiz o teste, havia um erro de minha parte, pois chamava uma rotina que lia o S1000 do banco de dados de geração que além de outros dados retornava o ID e como antes de gerar o XML o  ID ainda estava vazio, atrapalhava a sequencia. Já consigo usar o ID, agora estou tentando associar o protocolo retornado no botão Envia a instância do evento correto,

          Add('dadosRecepcaoLote');
          Add(' - dhRecepcao..............: ' + DateTimeToStr(dadosRecLote.dhRecepcao));
          Add(' - versaoAplicativoRecepcao: ' + dadosRecLote.versaoAplicRecepcao);
          Add(' - protocoloEnvio..........: ' + dadosRecLote.Protocolo);

Tem como pegar algo tipo assim?


mCadMsgeSocialAux.eSocialProtocolo := ACBreSocial1.Eventos.Iniciais.S1000.evtInfoEmpregador[?] Protocolo

 

Editado por Luiz Neto
Link para o comentário
Compartilhar em outros sites

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