Hoje vou mostrar em qual tabela no SQL fica as informações temporárias de criação de campos no Configurador (famoso cfglog).
Se você já precisou criar campos no configurador, antes da efetivação deles, eles ficavam salvos na pasta cfglog, com as informações que foram colocadas pelo usuário (como nome do campo, tamanho, máscara, etc).
Porém se você usa o dicionário no banco de dados, onde que fica armazenado essa informação? Ela fica diretamente em uma tabela no SQL, o nome da tabela é composto da seguinte forma SX3X31 + [Código da Empresa].
No meu caso, que utilizo uma base de testes com empresa 99, a tabela então ficou com o nome SX3X3199.
Então, se você quiser simular aí na sua base, entre no Configurador, abra Base de Dados, e inclua um campo em alguma tabela, mas não efetive a gravação.
Após isso, teste executando uma query nessa tabela. Notem o resultado abaixo:
Dessa forma pessoal, se por acaso você precisar cancelar os campos, você consegue fazer um backup antes para criar novamente depois.
Essa dica foi enviada por Hidosov no nosso fórum do Discord.
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Bom dia Daniel,
Caso eu precise criar os mesmos campos/tabelas em várias empresas, o que sugere?
Bom dia jovem, tudo bem?
Depende da sua base, se o dicionário ainda estiver em ctree, ai da para fazer:
+ Um fonte que cria (como esse exemplo: https://terminaldeinformacao.com/2015/10/05/criando-tabelas-campos-e-indices-a-quente-no-protheus/)
+ Ou fazer direto via APSDU (criando os registros com muito cuidado e atenção)
Agora se já estiver com dicionário no banco, ou você quiser usar as ferramentas mais novas, a TOTVS lançou faz um tempo, um gerador de UPDDISTR, segue o link: https://terminaldeinformacao.com/2021/08/31/qual-e-a-melhor-forma-de-replicar-os-campos-de-uma-base-de-testes-para-producao/