BaseDic
Ferramenta para verificação de Dicionários x Base.
A ferramenta BaseDic tem com objetivo encontrar divergências entre os dicionários do sistema e a base de dados.
Serão verificados:
- Campos do SX3 que não existem na base
- Campos da Base que não existem no SX3
- Tamanhos de campo diferentes entre o SX3 e a Base
- Campos de chave única do SX2 que não existem no SX3
- Campos de chave única do SX2 utilizando campos virtuais
- Eventuais campos virtuais na chave única do SX2
- Tabelas da SX2 que não tem estrutura definida no SX3
- Tabelas da SX2 que não possuem índice definido no SIX
- Estruturas do SX3 que não tem definição no SX2
- Campos virtuais do SX3 que estão criados fisicamente na base
- Índices do SIX que não existem no SX2
- Campos de índices que não existem no SX3
- Tamanhos de campo diferentes entre o SX3 e SXG
- Eventuais campos virtuais ou MEMO utilizados nos índices
- Inicializadores de Browse que fazem referência a campos de memória
- Referências a grupos de campos (SXG) que não existem
- Referências a pastas de campos (SXA) que não existem
- Referências a consultas padrão (SXB) que não existem
- Registros duplicados SX2/SX3/SIX
- Relacionamentos (SX9) utilizando campos virtuais ou que não existem no SX3 (opcional)
- Verificações das colunas das consultas padrões (SXB) (opcional)
- Verificações dos campos de gatilho (SX7) (opcional)
- Referências a agrupamentos de campos (XXA) que não existem (opcional)
- Campos de retorno de funções POSICIONE() e GETADVFCAL() (opcional)
- Uso de campos para rotinas MVC (opcional)
- Verificação da tabela "00" do SX5
- Duplicidade de registros para dicionários
- Verificação de compartilhamento entre a Base eo dicionário de tabelas (SX2)
- Verificação de inconsistências da TOP_FIELD
Para utilização temos basicamente 2 passos:
- Verificação
- Eventual aplicação do update em base
Verificação
A ferramenta pode ser incluída em algum menu do sistema Protheus ou pode ser chamada diretamente da tela de splash do SmartClient, desta forma:
Tela Principal
Onde:
Seleção de Tabelas |
Marca/Desmarca manualmente quais as tabelas que serão analisadas. Ex. SA1 Obs.: Clicando no cabeçalho da primeira coluna são marcados ou desmarcados todos. |
Tabelas Marcadas |
Nesta janela são mostradas quais as tabelas que estão marcadas para análise |
Marcação usando mascaras |
Pode-se marcar/desmarcar várias tabelas de uma vez utilizando-se “máscaras’, por exemplo, se quisermos marcar todas as tabelas SA?, basta digitar SA? e teclar “Marcar” e todas as tabelas SA? serão marcadas. O mesmo vale para “Desmarcar”. A opção “Lista” permite a marcação por meio de uma lista de tabelas. |
Pesquisa tabela |
Executa a pesquisa de uma tabela na janela de seleção de tabelas. |
Tipo de Listagem | Algumas ocorrências são consideras erros e outras apenas advertências, nesta opção seleciona-se qual tipo de ocorrência se deseja verificar e listar |
Tipo de Saída | As ocorrências podem ser geradas:
|
Gerar Update |
Indica se será gerado fonte de upate caso haja divergências. Obs. Após sua geração o ideal é que se faça a revisão do fonte e pode-se alterá-lo conforme a necessidade do projeto tirando-se ou acrescentando-se itens. |
Nome Arquivo Diferenças | Nome do arquivo de LOG caso a opção "Gerar arquivo de LOG" esteja marcada. |
Verificar |
Inicia as verificações. |
Tela de Opções
Onde:
Listar aviso de campos com relação ao uso em MVC |
Nas aplicações em MVC, para um campo poder ser utilizado ele tem que ter permissão para poder entrar em uso. Esta opção define se esta verificação será executada ou não, alertando os campos que não têm esta característica e assim não podem ser usados em aplicações em MVC. |
Fazer a verificação do Dicionário de Perguntas (SX1) | Define se serão feitas ou não as verificações dos campos de Consulta Padrão (SXB) e Grupo de Campos (SXG) Apenas estes 2 campos são avaliados |
Fazer a verificação do Dicionário de Tabelados (SX5) | Define se serão feitas ou não as verificações específicas para o Dicionário de Tabelados (SX5) |
Fazer a verificação do Dicionário de Gatilhos (SX7) |
Define se serão feitas ou não as verificações específicas para o Dicionário de Gatilhos (SX7) |
Fazer a verificação do Dicionário de Relacionamentos (SX9) |
Define se serão feitas ou não as verificações específicas para o Dicionário de Relacionamentos (SX9) |
Fazer a verificação do Dicionário de Consutlas Padrão (SXB) |
Define se serão feitas ou não as verificações específicas para o Dicionário de Consultas padrão (SXB) |
Fazer verificação do dicionário de Regras de Dependência (XXA) | Define se serão feitas ou não as verificações específicas para o Dicionário de Agrupamentos de Campos (XXA) |
Fazer verificação dos retornos de POSICIONE / GETADVFVAL (SX3 / SXB / SX7) |
Define se será feita a verificação do campo de retorno em campos que podem conter a função POSICIONE() ou GETADVFVAL()
Obs.: Em função de algumas variações na forma de escrever estas funções, eventualmente podem ser apresentados alguns ERROS que, na verdade, não existem.
|
Fazer verificação dos modos de compartilhamento | Define se será feita a verificação de compartilhamento entre a Base e o dicionário de tabelas (SX2) Obs. Quando não há gestão de empresa, verifica somente o nível de filial. Quando há, verifica níveis de empresa, unidade de negócios e filial. |
Fazer verificação da TOP_FIELD | Faz a verificação se as definições da tabela de controle do sistema, TOP_FIELD, estão corretas. Esta avaliação é feita para os campos diferentes do tipo Caracter. Ele se guia pela SX2/SX3 e só avalia se a já existe fisicamente no banco de dados, porque se a tabela ainda não está criada, a TOP_FIELD será atualizada automaticamente na sua criação. Esta opção só faz a verificação para a correção use a ferramenta de avaliação e reparação FSTopRepair Ir para página de download da FSTopRepair.
|
Relatório e Update
Se estiver selecionada a opção em "Gera na tela" do "Tipo de Saída", ao final da verificação ser exibida uma tela com as ocorrências em um dos formatos abaixo:
Se a versão onde estiver sendo executado o BaseDic suportar relatórios gráficos (Verifique também o parâmetro MV_TREPORT), será exibida a tela abaixo onde podem ser alteradas algumas características do relatório.
Exemplo do relatório gerado.
Se forem encontradas divergências, em seguida aparecerá a tela abaixo onde é possível gerar um fonte de update para ajuste DOS CAMPOS (SX3) destas divergências:
Onde:
Origem do Update |
Define qual será a origem para geração do update:
|
Nome do Update |
Define o nome para o fonte de update. Ele será gerada com o nome definido na pasta StartPath do sistema (que normalmente é o system ou sigaadv) |
Aplicação do update em base
No processo anterior o BaseDic pode ter gerado o update com as divergências. O update deve ser executado diretamente da tela de splash do SmartClient
:
É apresentada uma tela inicial sobre o update.
A seguir é apresentada uma tela para a seleção de quais empresas serão aplicadas o update.
Onde:
Todos |
Marca / Desmarca todas as empresas |
Empresa Marcar / Desmarcar |
Faz a marcação ou desmarcação por máscaras conforme a seleção. |
Inverter |
Inverte marcados e desmarcados |
Após a confirmação será aplicado o update nas empresas selecionadas.
Após a execução do update é apresentado uma tela com as inclusões e alterações do update.
Importante:
- O fonte de update gerado deve ser revisado e pode ser alterado conforme a necessidade do projeto, tirando-se ou acrescentando-se itens.
- O update não faz exclusões de nenhum tipo.