Jump to content

dev botao

NO retorno do Evento


oprata
  • Este tópico foi criado há 2204 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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

 

Edited by Luiz Neto
Link to comment
Share on other sites

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