Notícias

Usando a GeneXus Database Reverse Engineering Tool

Descubra como é fácil usar a nova e poderosa ferramenta de reverse engineering de GeneXus

A versão 9.0 de GeneXus inclui entre seus utilitários o Database Reverse Engineering Tool (DBRET). O DBRET  é uma ferramenta que permite realizar um processo de engenharia inversa de uma base de dados existente. Ou seja, partindo da definição de uma base de dados (estrutura de tabelas e suas relações) cria um modelo de dados GeneXus que o suporte.

Talvez muitos conheçam o seu antecessor, o Data View Generator. Se bem o conceito é o mesmo, esta versão inclui novas funcionalidades que facilitam ainda mais este processo e notáveis melhoras na criação do modelo de dados que representa essa base de dados.

Os objetivos de uso desta ferramenta podem ser muito diversificados, desde simplesmente acessar uma tabela de outro sistema para com GeneXus gerar programas para ler, atualizar, ou simplesmente publicar essa informação, até realizar toda uma reingenharia de um sistema legado.

Como usar o DBRET Wizard?

Trabalhar com esta ferramenta é muito simples, só se requer executar uma série de passos guiados por um assistente. Vejamos um exemplo.

Tomaremos a base de dados que vem com SQL Server 2005, chamada Adventure Works, que simula a base de dados operativa de um sistema de venda de acessórios esportivos.

O DBRET pode ser executado desde GeneXus  (Tools / Database Reverse Engineering Tool) ou do menu de Programas, por baixo do grupo GeneXus executamos a opção Database Reverse Engineering Tool 1.0.1. Como é a primeira vez que nos vamos a conectar a essa base de dados, selecionamos a opção New Connection Information e depois Next.


Na segunda tela devemos configurar as opções de conexão -> base de dados (DBMS, nome da base de dados, usuário, etc.).

Esta versão inclui vários métodos de acesso ao DBMS, como ODBC, ADO.NET ou JDBC. Alguns requerem a instalação de drivers adicionais. Consulte aqui a seção Requerimentos por mais informações.





1. DBRET - Connection Information

Como resultado deste passo (em seguida de pressionar Next), cria-se o que chamamos a metadata do DBRET. É um arquivo sml com toda a informação das tabelas, índices e relações existentes na base de dados.

A vantagem deste arquivo é que nos permitirá acrescentar conhecimento em nossa KB de forma incremental, sem a necessidade de voltar a se conectar -> base de dados.

O segundo passo é selecionar as tabelas que desejo incorporar a minha Base de Conhecimento.





2. DBRET - Table Selection

Uma vez selecionadas todas as tabelas que desejo incorporar no meu modelo, passa-se ao relatório final.

É aqui onde se realiza o processo de engenharia inversa e são criados os objetos GeneXus necessários para representar esse modelo de dados. Isto implica criar as tabelas e atributos seguindo a convenção URA que se utiliza em GeneXus para dar nome aos mesmos (e relacionar as tabelas).

A maioria das bases de dados não seguem esta convenção de nomes para estabelecer as relações entre suas tabelas, senão que são definidas regras de integridade referencial. O DBRET se baseia nessas regras para definir os nomes dos atributos nas diferentes tabelas.

TIP: Se a base de dados selecionada não tem integridade referencial entre suas tabelas, mas utiliza esta mesma convenção de nomes para relacioná-las, troque a propriedade

Namming Rule a same name - same thing. 

Se desejar saber mais sobre este ponto consulte o documento Reverse Engineering Process Overview.

Na última tela do assistente podemos ver um relatório com os objetos GeneXus a serem consolidados. Se o DBRET foi chamado desde o GeneXus, esta informação será consolidada automaticamente na KB uma vez pressionado o botão Finish. Caso contrário será criado um xpz (distribution file) que poderia depois consolidar em GeneXus mediante o Knowledge Manager.




3.  DBRET Final Report                                                                     

TIP: Se desejar acrescentar novas tabelas a uma Base de Conhecimento, onde previamente foram acrescentadas tabelas dessa mesma base de dados externa, recomendamos chamar o DBRET desde GeneXus, já que neste caso o processo de engenharia inversa levará em conta as tabelas e Data Views já definidos na KB para estabelecer ou evitar relações (dependendo da informação na metadata) com as novas tabelas (vistas) a consolidar.

Agora já pode gerar as Transações e manipular os dados das tabelas externas desde uma aplicação GeneXus. Também pode criar novos objetos ou utilizar GeneXus Patterns para criar todo um sistema web sobre essa base de dados sem programar um linha de código. Comprove!




4. Patterns over Transactions imported by DBRET

Por mais  informação sobre o DBRET ver:

http://www.gxtechnical.com/dbret

Se desejar conhecer mais sobre o processo de engenharia inversa realizado ver:  http://wiki.gxtechnical.com/wiki/tiki-index.php?page=ReverseEngineeringProcess