ExporDic
Ferramenta para exportar, documentar e gerar updates de atualização de dicionários.
A ferramenta ExporDic tem com objetivo agilizar o processo de documentação das customizações de dicionários e atualização das mesmas em dicionários e bases de nossos clientes.
Basicamente o ExporDic lê os dicionários de um ambiente procurando pelas opções selecionadas, separa esses registros de dicionários em novas tabelas (CTREE ou DBF), pode gerar um documento do MS-Word sobre eles e também um fonte de update em AdvPL para a atualização dos dicionários e base.
Para utilização temos basicamente 2 passos:
- Geração das atualizações
- Aplicação do update em base
A T E N Ç Ã O!
Com a possibilidade dos dicionários estarem no Banco de Dados, os updates gerados pela ferramenta seguem a seguinte regra:
- Um fonte gerado a partir de um ambiente onde os dicionários estão fora do Banco de Dados só pode atualizar outro ambiente que também esteja com os dicionários fora do Banco de dados. (ISAM para ISAM)
- Um fonte gerado a partir de um ambiente onde os dicionários estão dentro do Banco de Dados só pode atualizar outro ambiente que também esteja com os dicionários dentro do Banco de dados. (Banco para Banco)
- Não será possível a atualizações de ambientes onde a origem e o destino têm os dicionários de forma diferente entre si.
Geração das atualizações
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 para geração das customizações do dicionário. 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 analise. |
Seleção da Pasta de Destino |
É o diretório onde serão gravados os dicionários customizados gerados e/ou o programa fonte de update, D.E.R. e outros. |
Sufixo |
É o sufixo que será colocado nos dicionários gerados. Por exemplo, se o sufixo dor “FST” os dicionários gerados serão: sixfst.dbf, sx2fst.dbf, sx3fst.dbf, etc. |
Seleção de Dicionários |
Define quais os dicionários que serão ou não gerados e/ou documentados. Obs.: Clicando no cabeçalho da primeira coluna são marcados ou desmarcados todos. Clicando no cabeçalho da coluna Dicionários, são marcados SX2, SX3, SIX, SX7, SXA, SXB, SX9 e se houver XXA. |
Marcar/ Desmascar usando máscaras |
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 através de uma lista de tabelas. |
Pesquisa Tabela |
Executa a pesquisa de uma tabela na janela de seleção de tabelas. |
Gerar Dicionários |
Seleciona se serão gerados ou não arquivos com os dicionários da tabelas selecionadas. |
Gerar D.ER. |
Seleciona se será gerado ou não o diagrama de entidade relacionamento com as customizações dos dicionários das tabelas selecionada |
Gerar Documentação | Seleciona se será gerada ou não a documentação dos dicionários das tabelas selecionadas. |
Gerar Update |
Seleciona se será gerado ou não o fonte de update com as customizações dos dicionários das tabelas selecionadas. 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. |
Help's de Campos |
Seleciona se será ou não adicionado ao fonte de update gerado, os helps dos campos. É preciso que a opção Gerar Update esteja selecionada. |
Gerar SDF | Gera um arquivo diferencial (SDF) com as informações selecionadas. Este SDF pode ser usado no Gerenciador de Ambientes que foi lançado a partir da versão 12 release 27. O Gerenciador de Ambientes do Protheus trata apenas os dicionários: SIX / SX1 / SX2/ SX3 / SX5 / SX6 / SX7 / SXA / SXB / SXG / SXQ / SXR / XXA |
Gerar MZP | Gera um arquivo compactado (MZP) com as informações selecionadas. Este MZP pode ser usado no Gerenciador de Ambientes que foi lançado a partir da versão 12 release 27. O Gerenciador de Ambientes do Protheus trata apenas os dicionários: SIX / SX1 / SX2/ SX3 / SX5 / SX6 / SX7 / SXA / SXB / SXG / SXQ / SXR / XXA |
Fonte Update |
Nome com o qual será gerado o fonte de update |
Visualizar |
Pode-se visualizar o fonte de update gerado através deste botão, ele acionará o programa associado no sistema operacional para editar arquivos (se houver). Como é feita uma cópia do fonte para a maquina local para se efetuar a visualização, as alterações feitas não terão efeito. |
|
Pode-se enviar o fonte de update gerado através deste do Outlook, como um anexo. Ao acionar o botão será aberta a tela de envio de e-mail do Outlook já com o fonte como anexo, essa funcionalidade só funciona com o Outlook, não funciona com o Outlook Express. |
Driver de Geração |
Seleciona se os dicionários gerados serão em DBF ou CTREE |
Gerar |
Gera as opções selecionadas |
Sair | Saída da aplicação. |
Seleção de Campos
Onde:
Seleção de campos |
Lista dos campos selecionados Selecione os campos das tabelas a serem considerados. Terá efeito para SX3 e SX7. Digite 1 campo por linha ou separados por ESPAÇO ou por PONTO-E-VÍRGULA |
Considerar apenas os campos da seleção |
Se a opção CONSIDERAR APENAS OS CAMPOS DA SELEÇÃO estiver marcada, apenas os campos da lista serão gerados e as para tabelas selecionadas que não tenham campos na lista não será gerado nenhum campo. Se a opção não estiver marcada, para as tabelas sem campos na lista serão gerados todos os campos e para as que tenham campos na lista, apenas os campos informados serão gerados. |
Tabelas para importar campos |
Digite a tabela(s) para importar a lista de campos. Pode-se selecionar uma ou mais tabelas. Ex. SA1 ou SA1;SA2;SA3 |
1ª Tela de opções
Onde:
Para tabelas do Padrão |
Normalmente é gerado somente o que foi customizado de cada dicionário. Desmarcando estas opções serão geradas todas as informações dos dicionários, por exemplo, suponhamos que a tabela marcada é a ‘SA1’, da forma normal no SX3 gerado só constará os campos customizados, se desmarcamos a opção correspondente ao SX3 nesta janela, todos os campos do ‘SA1’ serão exportados, inclusive para o update. Isso pode ser útil se quisermos gerar uma atualização de estrutura de uma tabela. Obs.: Clicando no cabeçalho da primeira coluna são marcados ou desmarcados todos. |
Tabelas do SX5 para geração |
Informe quais as tabelas genéricas (SX5) que serão utilizadas para a geração e/ou documentação |
Parâmetros para geração |
Informe quais os parâmetros do sistema (SX6) que serão utilizadas para a geração e/ou documentação |
Grupo de perguntas SX1 para exportação |
Informe quais os grupos de perguntas (SX1) que serão utilizadas para a geração e/ou documentação |
2ª Tela de opções
Onde:
Diagrama de Entidade e Relacionamento |
|
Nome |
Nome para o arquivo de D.E.R. gerado. |
Visualizar |
Visualiza o arquivo de D.E.R. gerado. |
Seleção do layout do D.E.R. |
Seleciona o layout: Diagrama: Lista na forma de um diagrama visual Documento Word: Lista em um documento do MS-Word |
Qtd.Colunas |
Se o layout for Diagrama, define quantas colunas ele terá. |
Todos os campos |
Se marcado lista todos os campos da tabela, se não serão listados as apenas os campos de relacionamento. |
Listar o contradomínio |
Se o layout for Documento Word, lista ou não contradomínio. |
Opções gerais de geração |
|
Campos com ValidUser |
Se esta opção for selecionada os campos, mesmo que do padrão, com um validuser preenchido também serão gerados. |
Campos reservados |
Se esta opção for selecionada, os campos reservados como xxx_USERLGA, xxx_USERLGI, xxx_MSEXP, etc. também serão gerados. |
SX5 relacionados as Perguntas | Se selecionada esta opção, serão exportados também as Tabelas Genéricas (SX5) relacioanadas as consultas padrões que constam das perguntas exportadas (F3). |
SX5 relacionados aos Campos | Se selecionada esta opção, serão exportados também as Tabelas Genéricas (SX5) relacioanadas as consultas padrões que constam dOs campos exportados (F3). |
SXB relacionados as Perguntas | Se selecionada esta opção, serão exportados também as Consultas Padrão (SXB) relacioanadas as consultas padrões que constam das perguntas exportadas (F3). |
SXB relacionados aos Campos |
Se selecionada esta opção, serão exportados também as Consultas Padrão (SXB) relacioanadas as consultas padrões que constam dos campos exportadas (F3). |
Opções para geração do update |
|
Update para TMS |
Gera o fonte de update apenas com os arrays de dados, esta é uma opção utilizada geralmente pelo módulo TMS. |
Update sem comentários |
Gera ou não os comentários no fonte de update. |
Update com perguntas de sobrescrever |
No update gerada será feita uma pergunta quando o dado já existir no dicionário. Apenas para SX3, SX6, SXB. |
Update SX2 apenas para novos registros | No update não fará atualização de tabelas que já existam, apenas criará os tabelas novas. |
Update SX3 apenas para novos registros |
No update não fará atualização de campos que já existam, apenas criará os campos novos. |
Update SX6 apenas para novos registros |
No update não fará atualização de parâmetros que já existam, apenas criará os parâmetros novos. |
Update SX7 apenas para novos regsitros |
No update não fará atualização de gatilhos que já existam, apenas criará os gatilhos novos. |
Update com .CH |
Gera ou não o update com um include de tradução CH. |
Default para update SX3 com .T. |
O update para o dicionário de campos SX3, tem um tratamento para quando o campo existe no dicionário destino e para quando não existe. Quando não existe são preenchidos todos os dados do SX3, quando existe apenas os dados que estão com .T. no update são atulizados. Este parâmetro é para definir se o default a ser gerado no update é .T. ou .F. |
Update SX3 com o campo X3_VLDUSER | Define se gera ou não a atualização do dado X3_VLDUSER quando o campo já existe no dicionário destino. |
Update SX3 com o campo X3_OBRIGAT | Define se gera ou não a atualização do dado X3_OBRIGAT quando o campo já existe no dicionário destino. |
Update SX3 com o campo X3_WHEN | Define se gera ou não a atualização do dado X3_WHEN quando o campo já existe no dicionário destino. |
Atualizar X3_WHEN apenas quando vazio | Define que o X3_WHEN só será atualizado se no campo destino ele estiver vazio. É necessário que a opção Gerar update com X3_WHEN esteja selecionada. |
Atualizar X3_RELACAO apenas quando vazio | Define que o X3_RELACAO (inicializador padrão) só será atualizado se no campo destino ele estiver vazio. |
Gerar SX9 somente quando tabela é domínio | Define se só será gerado o SX9 se a tabela for o domíno da relação. Marcado gerará somente quando for domínio e desmarcada quando for domínio ou contra-domínio. |
Gerar helps em Espanhol e em Inglês | Define se serão gerados os helps de campo em Espanhol e Inglês no programa de update. Pode ser util para diminuir o tamanho do fonte gerado. |
Gerar update com validação de Admin para execução | Define se no update a ser gerado, terá ou não validação para que somente usuários que são ADMIN possam executá-lo. |
Gerar update com Grupos de LGPD Vinculados aos campos | Define se para os campos de LGPD exportados (XAM) também serão exportados ou não os grupo de campos de LGPD (XAL) relacionados a estes campos. |
Documentação |
|
Seleção do modelo Word de Dodumentação |
Diretório onde se encontra o arquivo de modelo do MS-Word para documentação. |
Seleção do layout de documentação |
A documentação será gerada pelo modelo do MS-Word, no modelo do uso dos processos CMMi, SAS70 ou do Boletim Técnico, esta opção serve para escolher qual layout utilizar. |
Exemplo de documentação gerada
Exemplo de D.E.R. gerado
Aplicação do update em base
No processo anterior o ExporDic gerou os arquivos com as customizações e/ou novas tabelas criadas e alteradas que podem, conforme o caso serem “appendadas” diretamente nos dicionários do cliente, e gerou também um fonte em AdvPL para update.
A atualização da base com este update pode ser feita de duas formas: compilando-se o fonte no ambiente que se deseja ou compilando-se o fonte numa base local gerando-se apenas o patch deste fonte para aplicação em outro ambiente.
Em ambos os casos as telas da aplicação serão as apresentadas a seguir, 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 um tela com as inclusões e alterações do update.
Tratamento diferenciado para o update do Dicionário de Campos (SX3)
A partir da versão 4.19.8k do ExporDic, na atualização do Dicionário de Campos (SX3) o vetor que contém os dados à serem atualizados, será um vetor bi-dimensional, onde:
- O primeiro elemento é o dado a ser atualizado propriamente dito
- O segundo elemento é um booleno (.T. / .F.) que determina se aquele dado será atualizado quando existir o campo ou não.
No momento da atualização do Dicionário de Campos (SX3), o update verifica se aquele campo já existe, não existindo o campo, ele é criado e todos os dados são gravados, existindo o campo, apenas os dados que estão com o segundo elemento do vetor com .T. serão atualizados.
Com isso pode-se gerar um update mais preciso e seguro onde apenas dados pontuais serão atualizados quando o campo já existir.
Se a opção "Update SX3 apenas para novos registros" estiver selecionada, o update é gerado na forma normal com o vetor de apenas uma dimensão, pois sempre serão gravados todos os dados, já que o campo não existe.
A opção "Default para update SX3 como .T." define se, por default, o conteúdo do segundo elemeto será .T. ou .F., para que depois se faça os ajustes manuais para cada dado, se necessário.
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 para o dicionário de campos SX3, tem um tratamento para quando o campo existe no dicionário destino e para quando não existe. Quando não existe são preenchidos todos os dados do SX3, quando existe apenas os dados que estão com .T. no update são atulizados.
-
O update não faz exclusões de nenhum tipo.