Jump to content

dev botao

E-Social - Criando Gerenciador de Dados e-social


colmanetti
Go to solution Solved by colmanetti,
  • Este tópico foi criado há 271 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Estou Fazendo um gerenciador dos dados para envio e-social.

por exemplo alterei um evento, os dados no formato para envio, guardo em BD para depois entrar e transmitir, receber resposta e gerenciar o que está pendente.

Se for criar uma estrutura de BD para cada Registro do E-social, vou ter que criar muitas tabelas e campos:

Pensei em algo mais simples sem ter os nomes dos campos no BD, exemplo Registro,Campo1,campo2 ... etc. assim fica a estrutura na sequencia de campos que eu definir.

Campo1:=  eSprocEmiToStr(ACBreSocial1.Eventos.Iniciais.S1000.Items[0].evtInfoEmpregador.ideEvento.ProcEmi);

e depois quando for enviar pelo gerenciador:

ACBreSocial1.Eventos.Iniciais.S1000.Items[0].evtInfoEmpregador.ideEvento.ProcEmi:=eSStrToprocEmi(campo1);

 Pergunta:

Tem alguma forma de enumerar as variáveis para usar um loop para fazer atribuição no banco de dados?

ou pegar por nome 'ProcEmi'  neste exemplo?

 

Obrigado,

 

Link to comment
Share on other sites

  • Consultores

Bom dia!

18 horas atrás, colmanetti disse:

Se for criar uma estrutura de BD para cada Registro do E-social, vou ter que criar muitas tabelas e campos:

Acho que não entendi bem a sua lógica.

Realmente, pode ser que dê vários campos se você for colocar nome por nome.

Mas se observar os Leiautes do e-Social, da para ver que alguns campos se repetem nele em múltiplos registros.

Além disso, sem ter uma melhor ideia do contexto, apenas lendo isso aqui:

18 horas atrás, colmanetti disse:

Pensei em algo mais simples sem ter os nomes dos campos no BD, exemplo Registro,Campo1,campo2 ... etc. assim fica a estrutura na sequencia de campos que eu definir.

Campo1:=  eSprocEmiToStr(ACBreSocial1.Eventos.Iniciais.S1000.Items[0].evtInfoEmpregador.ideEvento.ProcEmi);

e depois quando for enviar pelo gerenciador:

ACBreSocial1.Eventos.Iniciais.S1000.Items[0].evtInfoEmpregador.ideEvento.ProcEmi:=eSStrToprocEmi(campo1);

A princípio, pode parecer algo mais simples, mas me passa a impressão de que futuramente seja penoso para dar manutenção, pois pode acabar se encaixando na famosa expressão:

"Quando eu fiz esse código lá atrás, só eu e Deus sabiam o que ele fazia, agora só Deus sabe".

18 horas atrás, colmanetti disse:

Pergunta:

Tem alguma forma de enumerar as variáveis para usar um loop para fazer atribuição no banco de dados?

ou pegar por nome 'ProcEmi'  neste exemplo?

Do que eu entendi para sua atual necessidade, acredito que seria o caso de usar Rtti.

Alguns links com explicação e demonstração:

  • Like 2
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 to comment
Share on other sites

  • Membros Pro
  • Solution

Obrigado por sua resposta.

Criei uma tabela com o dicionário de dados, assim gravo e leio o valor pelo Registro e pelo nome campo no E-social:

E o Dicionário vai servir para vincular cada campo na base da Folha para validar alterações necessárias para reenvio do registro.

image.thumb.png.665a50bb4383dc2df2a1f31e5a350adf.png

  • Like 1
Link to comment
Share on other sites

  • Consultores

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

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 to comment
Share on other sites

  • Este tópico foi criado há 271 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • 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.