5 de mar. de 2012

Como criar uma aplicação com GeneXus Evolution 2 RC e K2BTools


Olá, meu nome é Fabricio De los Santos, respiro GeneXus a mais de 17 anos.
Tenho trabalhado com a ferramenta desde as primeiras versões em DOS e posterior a isso, acredito que passei por todas elas.
Quero compartilhar com você algumas informações, dicas e também falar do futuro desta maravilhosa ferramenta e seus produtos relacionados.
Todos conhecemos as vantagens de GeneXus e as prestigiosas aplicações que podemos desenvolver com ele. A produtividade é enorme e os sistemas uniformes que obtemos são um produto de excelente qualidade.
Se existe uma forma de melhorar ainda mais sua produtividade?
Sim existe. O GeneXus permite interagir com ferramentas externas para automatizar o desenvolvimento dentro de GeneXus, e qual é a melhor?
Bem, existem várias ferramentas, mas eu não vou entrar em comparações, vamos colocar a  mão na massa e vou te mostrar o que K2BTools (a ferramenta que escolhi para desenvolver nossas aplicações) pode te oferecer.
K2BTools não é uma ferramenta de patterns, é muito mais que isso, mas... vamos deixar os mistérios e ir direto aos fatos.
Este post é o primeiro de uma serie de posts, onde vou te mostrar como vamos construindo uma de nossas aplicações estrela o “dELFAPRO”.
Este sistema é aquele de necessidade básica para toda empresa que precisa gerenciar projetos, então fica fácil saber do que estamos falando, na hora de seguir os posts como tutoriais.
Então vamos lá!

Criando a KB em GeneXus Evolution 2 RC

Sim, K2BTools já funciona com a RC de GeneXus Evolution 2.  Build 10.2.4.54154
Já estás vendo um diferencial!!

Criamos a nova Knowledge Base como o fazíamos na Evolution 1

 
Criamos nossas primeiras transações

Organization
Representa todas as organizações. Por exemplo: empresas clientes



 OrganizationArea
Representa as distintas áreas das organizações. Por exemplo: Comercial, Administrativa, etc.


OrganizationContact
Representa os contatos de cada organização. Por exemplo: João Batista, etc.


 
Aplicando K2BTools

Com as transações criadas agora podemos começar a aplicar os patterns de K2BTools

Para isto abrimos as transações (primeiro, Organization) e clicamos na aba de baixo “Patterns” e logo clicamos na aba de cima “Entity Services” e marcamos a caixa de “checkbox” como mostra a seguinte imagem.


Porque abrimos primeiro a transação Organization?

Hierarquicamente, é a tabela que contem áreas e contatos, vemos isso no diagrama de tabela que o GeneXus nos fornece.




Neste post vamos ver o “Entity Services” e “Trn Form” da transação “Organization” mas fica tranqüilo, que vamos tentar chegar a todas as pontas.



Analisando a Estrutura da árvore de Instancia de Patterns Entity Services de K2BTools

Vamos a analisar a primeira seção da árvore

Depois de nodo raiz Entity Services Patterns Instance aparece o nodo principal que origina nossa instancia de patterns que é a transação Organization.
Com a prática na ferramenta, você começara a enxergar  facilmente como vai ficar a cara de sua tela e todas as relacionadas com a transação que está aplicando o pattern.

WorkWith
Aqui o nodo está representando que as chamadas possíveis para a transação Organization dependerão das propriedades gerais configuradas nas preferences de trabalho com o Pattern Entity Services (veja imagem seguinte)




Isso para as chamadas que sejam para inserir, alterar ou apagar um registro.
Também aqui se define se existirá um ícone para mostrar a informação, exportar a Excel ou gerar um relatório em pdf.

Attributes
Indica quais serão os atributos que compõem a grid

Orders
Quais são as possíveis formas de ordenar os dados na tela.
Quando existe só uma ordem definida os patterns K2Btools desenham a tela para que os dados apareçam nessa ordem. Quando definimos a possibilidade de mais de uma ordem, o código gerado cria um combo Box para que o usuário possa escolher a ordem que quer ver os dados no momento de execução.

Meu conselho. Defina índices de usuário se é necessário para que o sistema não tenha sua performance afetada.

Filters
São os atributos pelos quais queremos que o usuário possa filtrar os dados exibidos em tela

EntityManager
Representa a informação que o sistema vai mostrar de um determinado registro.
Ele está composto por Fixed Data e Components
No nodo Fixed Data teremos os elementos que sempre vamos querer ver quando seja solicitado a visualização de um registro
O nodo components terá uma aba para mais dados e objetos do registro selecionado e outras abas com dados a transações relacionadas com a transação Organization.

Nos próximos posts, entraremos mais em detalhe destes componentes.

O que quero mostrar agora é que logo de salvar já podemos ver que K2BTools tem gerado objetos novos na Base de Conhecimento para poder trabalhar com os registros de Organization 



 
Vemos aqui o form do novo objeto WWOrganization, onde facilmente apreciamos os modos habilitados para inserção de dados, gerar reporte pdf e exportar a Excel, acima a direita. Os modos para update, delete e display no grid a esquerda e os filtros acima.
Não recomendo mudar o form gerado pelo K2BTools patterns e aconselho sempre trabalhar na instancia quando queira fazer alterações de visual ou no objeto, como condições, etc.

Agora devemos aplicar o Patterns Trn Form de K2BTools para que a ferramenta desenhe a tela para poder manipular um registro determinado da transação Organization.
Fazemos igual que fizemos para aplicar o Entity Services. Abrimos a transação clicamos abaixo na aba “Patterns” depois acima na aba “Trn Form”, e clicamos no checkbox “Apply Pattern to save” como mostra a seguinte imagem.




 
Eu apaguei o atributo OrganizationId para não aparecer na tela, porque ele é autonumber dessa forma podemos ver como o GeneXus tinha deixado a tela inicialmente e como o K2BTools me apresenta a solução.


 
Bem,  agora vamos fazer a mágica do F5 para ver as nossas primeiras telas.
Eu tenho um banco de dados MYSQL configurado para criar as tabelas desta aplicação.


O browser me abre com as seguintes opções.
Vamos trabalhar com as “Organizações”




 

K2BTools me apresenta um menu com a opção de “Organizações”  e quando queremos inserir um registro basta com clicar no ícone de inserir.

 
Finalmente o resultado

No próximo post continuamos construindo esta aplicação e começaremos a explorar mais profundamente todas as funcionalidades de K2BTools.

Até a próxima.

Fabricio De los Santos

Agente Oficial K2BTools