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