INSTITUCIONAL
COMUNIDADE
BLOG
AJUDA
MINHA CONTA
EN PT ES

blog 3 287

Modificando o WorkWith na XEv1

Post de Miguel Figueroa no Blog da Comunidade GeneXus no Chile, a respeito da potência da ferramenta Patterns.
Modificando el WorkWith en la XEv1 *

Antes de mais nada, para que não perder o costume e embora pareça tarde, um Feliz e Próspero 2009 aos genuxianos do Chile.

Pareceria que durante 2008 todos estivemos bastante ocupados, o que se traduziu em que não organizamos atividade alguma e nem sequer escrevemos no blog.
A falta de participação e de entusiasmo certamente tenha a ver também com a utilidade que o GUGXChile ofereça aos genuxianos em seu trabalho diário e que até agora não foi tal. Ou seja, falta que isto seja uma instância de colaboração mais efetiva.
Pode haver outras coisas, mas agora quero ir ao motivo do post.
Desde o GeneXus 9 contamos com a possibilidade de trabalhar com Patterns, que para dizer de uma maneira simples se trata de "moldes" ou "modelos" inteligentes com as quais fazemos automaticamente um monte de trabalho que normalmente faríamos "à mão".

Provavelmente o pattern mais utilizado é o WorkWith que vem com o GeneXus, pelo qual assumo que muitos terão experimentado um pouco criando algumas transactions e vendo como, em segundos, obtém-se uma aplicação completa com as telas de "trabalhar com" e os tabs com vistas segundo as relações dadas pelos atributos nas transactions.
Apesar de toda a maravilha, é provável que muitos (foi meu caso) tenham sentido falta de alguma forma de controle de acesso e permissões e possivelmente outras coisas mais.
Por que a Artech não o fez mais completo? Será que depois vem outra versão melhorada?
Não. A idéia é que cada um faça seu próprios patterns e o WorkWith é só um bom exemplo da potência desta ferramenta.


ww2
Quis me embarcar neste tema, não criando um pattern desde zero, mas modificando o WorkWith da Artech (GXXEv1 Beta1). A partir desse trabalho preparei uma versão que denominei ww2 e que está disponível em GXOpen.

Esta versão considera:

- Criação de transações de Usuários, Módulos e Permissões.
- Procedimento de inicialização do usuário admin.
- Procedimentos de validação de acessos e permissões.
- Login no webpanel Home.
- Adição de rotinas de segurança nos webpanels gerados.



Vista do Login em webpanel Home


A funcionalidade esperada é algo assim:
- o usuário só terá disponíveis, no menu, aqueles módulos para os que está registrado
- na tela de "trabalhar com" só terá disponíveis as opções segundo permissões (Insert, Update, etc.)
- o usuário poderá ter acessos e permissões individualmente ou por fazer parte de um grupo de usuários


Vista do Menu em webpanel Home

Modificar o WorkWith
Não pretendo detalhar em extenso as mudanças, pois seria muito longo e a idéia é que descubram coisas por si mesmos, com um pouco de guia, olhando os arquivos XML e DKT do ww2.

Modificar o projeto CSharp

No caso do WorkWith, os fontes vêm com o Platform SDK.
Isto é um pouco avançado e orientado a programadores CSharp, mais que a usuários GeneXus.
No caso do pattern ww2, foi necessário tocar o código csharp para mudar o nome do WorkWith para ww2.

Modificar o arquivo de recursos
O arquivo de recursos é um xml com a definição dos objetos que se consolidam na KB na primeira vez que se aplica o pattern.
Para adicionar objetos ao arquivo de recursos basta fazer uma exportação, abrir o xpz e copiar o elemento Object que nos interessa.
Desta forma adicionei as transactions e procedures ao arquivo de resources do ww2.

Modificar os templates DKT
Os templates DKT são arquivos de texto com uma programação CSharp embebida que GeneXus interpreta ao momento de aplicar o pattern. A execução de cada template retorna as partes (Events, Variables, etc.) dos novos objetos.
Poderíamos dizer que se trata de uma consolidação (importação) especial, não de um xpz, mas da interpretação dos templates.
Nestes templates é possível apreciar com facilidade, por exemplo, as partes do código GeneXus que são fixas e aquelas que se constroem dinamicamente com a interpretação do csharp.
Um bom exemplo é o código da rotina Permissions no arquivo GridEvents.dkt do pattern ww2.

Isso por enquanto.


*Publicado por Miguel Figueroa no blog GUGX - Chile.




 
Relacionado
GeneXus X Evolution 1 Beta 1 no blog de Enrique Almeida
Uma nova extensão para a GeneXus X Evolution 11
PATTERN WW: quando menos é mais!
Especial #GeneXusOMelhorDe2014 :: Cloud Computing, Internet das Coisas, GeneXus X Evolution 3, Casos de Sucesso, Smart Devices e... Muitos mais!
Apps móveis: a chave para o crescimento de uma PME
Beacons: um olhar para o futuro do marketing tecnológico
#GX25 #Call4Speakers Nada mais, nada menos que 25 Encontros GeneXus
Avianca, a companhia aérea oficial do #G25 oferece descontos especiais para voos internacionais
A Comunidade GeneXus #Brasil organiza uma excursão partindo de Porte Alegre para assistir ao #GX25
GeneXus lança no SAP Forum Brasil GeneXus Early Adopter Program for SAP HANA Cloud Platform
GeneXus X Evolution 3 Upgrade 7
Novos parceiros acadêmicos no Brasil!