Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

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.

 

Postado

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.

  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

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.

Postado

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.

Postado

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

  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

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.

Postado (editado)

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