Você está na página 1de 62

GeneXus X: Quick Start

Julho 2008
GeneXus X: Quick Start

Copyright  ARTech Consultores S. R. L. 1988-2008.

Todos os direitos reservados. Fica totalmente proibida a reprodução deste documento, por qualquer meio, sem
autorização expressa da Artech Consultores SRL. A informação contida neste documento é exclusivamente para
uso pessoal.

Marcas Registradas

Artech e Genexus são marcas ou marcas registradas da Artech Consultores SRL. Todas as outras marcas citadas
neste trabalho pertencem a seus respectivos donos.

Página 1
GeneXus X: Quick Start

Introdução .............................................................................................................................................. 3
GeneXus Trial Version ............................................................................................................................. 3
Restrições Funcionais .............................................................................................................................. 3
Restrições de Licença .............................................................................................................................. 3
License Agreement ................................................................................................................................. 3
Suporte Técnico...................................................................................................................................... 4
Instalação e Autorização ......................................................................................................................... 4
Requerimentos de Instalação ................................................................................................................... 4
Requerimentos do Gerador .NET ............................................................................................................... 5
Autorização ............................................................................................................................................ 6
PRIMEIROS PASSOS: Tutorial passo a passo ........................................................................................... 8
Simbologia utilizada ................................................................................................................................ 8
PARTE 1: Descobrindo o GeneXus ........................................................................................................... 9
O que é o GeneXus? ................................................................................................................................ 9
PARTE 2: Sua primeira aplicação ........................................................................................................... 10
Desenho de aplicações baseado no conhecimento ..................................................................................... 10
Passo 0: Caso de estudo .................................................................................................................... 10
Passo 1: Entorno de desenvolvimento .................................................................................................. 11
Passo 2: Criação de uma Base de Conhecimento e definição do Environment ............................................ 11
Passo 3: Criação de um Objeto Transação ............................................................................................ 13
Passo 4: Descrição da Estrutura da Transação (Structure) ...................................................................... 14
Passo 5: Definição do Campos Calculados  Fórmulas ........................................................................... 18
Passo 6: Visualização do Modelo de Dados inferido pelo GeneXus ............................................................ 19
Passo 7: Visualização dos Formulários do Objeto Transação.................................................................... 21
Passo 8: Execução de sua Aplicação .................................................................................................... 23
Passo 9: Teste de sua Aplicação .......................................................................................................... 25
Passo 10: Adicionar Regras do Negócio  Regras .................................................................................. 26
Passo 11: Criação do Objeto Transação Cliente ..................................................................................... 28
Passo 12: Revisão das Mudanças efetuadas ao Modelo de Dados ............................................................. 30
Passo 13: Visualização do Reporte de Especificação ............................................................................... 32
Passo 14: Criação dos Formulários Atraentes  Temas .......................................................................... 34
PARTE 3: Manutenção ........................................................................................................................... 35
Desenvolvimento Incremental e Manutenção da Aplicação ......................................................................... 35
Passo 15: Inclusão de Novos Objetos: Transação Produto ...................................................................... 35
Passo 16: Análise e reorganização da BD ............................................................................................. 37
PARTE 4: Adicionando funcionalidade ................................................................................................... 39
Utilização de Padrões no desenvolvimento ............................................................................................... 39
Passo 17: Aplicar um pattern .............................................................................................................. 39
PARTE 5: Diálogos interativos ............................................................................................................... 41
Desenho de Consultas e Diálogos Interativos (Web Panels) ........................................................................ 41
Passo 18: Criação de um Web Panel: Nota fiscal por cliente. ................................................................... 41
Passo 19: Execução do Web Panel modificando a instância do Pattern ..................................................... 44
PARTE 6: Enriquecendo a aplicação ....................................................................................................... 46
Controles de usuários ............................................................................................................................ 46
Passo 20: Implementação de um User Control ...................................................................................... 46
PARTE 7: Procedimentos ....................................................................................................................... 49
Desenho de Processos Não Interativos (Procedimentos) ............................................................................ 49
Passo 22: Implementação de um Procedimento para impressão .............................................................. 50
Passo 23: Implementação de um Procedimento para atualização............................................................. 54
PARTE 8: Multiplataforma ..................................................................................................................... 56
Desenvolvimento Multiplataforma ........................................................................................................... 56
Resumo ................................................................................................................................................. 57
FAQ ....................................................................................................................................................... 58
Contatos e Recursos .............................................................................................................................. 61
A Comunidade GeneXus ........................................................................................................................ 61
Suporte ............................................................................................................................................... 61
Como Comprar ..................................................................................................................................... 61
Links recomendados.............................................................................................................................. 61

Página 2
GeneXus X: Quick Start

Introdução
O objetivo deste documento é ajudá-lo a descobrir o potencial da metodologia de desenvolvimento
baseada no conhecimento proposta pelo GeneXus através de suas principais funcionalidades:

• Desenho automático de modelo de dados


• Geração automática de código
• Manutenção automática de base de dados e código
• Desenvolvimento e instalação multiplataforma

GeneXus Trial Version


Restrições Funcionais
A GeneXus Trial Version é completamente funcional e o gerador disponível (.NET) é autorizado
mediante uma única Site Key (com validade até 60 dias após sua ativação). Entretanto, aplicam-se
algumas restrições a respeito do número máximo de objetos e atributos GeneXus que é possível criar
para uma Base de Conhecimento dada:

• 90 atributos
• 140 objetos.

Restrições de Licença
A GeneXus Trial Version destina-se exclusivamente para avaliação e capacitação. Sua instalação é
local e para um único usuário.

License Agreement
Condições de Uso da Licença de Propriedade Intelectual GeneXus X Trial Version

1. O presente acordo se refere à licença da propriedade intelectual de exemplares da GeneXus X Trial Version,
criação inteligente baseada em conhecimento, que desenha, gera e mantém automaticamente bases de dados e
aplicações.
2. Artech Consultores S.R.L. (doravante Artech) declara e o USUÁRIO reconhece que a criação intelectual
GeneXus, assim como os nomes e logotipos GeneXus, GXflow, GXplorer, GXportal, GXquery e Artech como
qualquer outra marca comercial (trademark) que introduzir a Artech em conexão com o GeneXus,
independentemente do fato de estarem registrados ou não, são propriedade da Artech. Este convênio não implica
direta nem indiretamente transferência alguma dessa propriedade e não habilita o USUÁRIO a transferir as
licenças objeto do presente documento.
3. O USUÁRIO compromete-se a utilizar a GeneXus X Trial Version sem divulgar nem usar em proveito próprio
nenhuma das idéias e técnicas que fazem possível GeneXus. Em particular, obriga-se a não usar procedimentos de
engenharia inversa para interpretar seu código, nem a facilitar a outrem a fazê-lo.
4. Em hipótese nenhuma o USUÁRIO poderá duplicar ou desativar os mecanismos de proteção contra uso não
autorizado do GeneXus. A Artech reserva-se o direito de mudar a qualquer momento estes mecanismos e/ou
adicionar outros novos.
5. Observando as bases gerais, a Artech licencia ao USUÁRIO a ferramenta GeneXus X Trial Version, nos
seguintes termos e condições:

Página 3
GeneXus X: Quick Start

a) Cada exemplar licenciado poderá funcionar em um microcomputador por separado. O USUÁRIO compromete-
se a não utilizar nenhum deles em mais de um microcomputador simultaneamente.
b) A licença é não exclusiva e intransferível. Os programas gerados pela GeneXus X Trial Version não poderão
ser utilizados com fins comerciais.
c) O USUÁRIO utilizará os programas e documentação do GeneXus para seu uso exclusivo, com fins de
avaliação exclusivamente e comprometendo-se a não entregar cópias de nenhum deles a terceiros.
d) Não existe responsabilidade alguma, implícita ou explícita, para a Artech, sobre eventuais prejuízos que
puderem resultar para usuários em relação, direta ou indireta, com o uso da GeneXus X Trial Version.
e) O USUÁRIO compromete-se a utilizar a licença, seguindo as instruções e especificações constantes do
material associado ao mesmo.
f) É proibido qualquer uso comercial da GeneXus X Trial Version, em forma parcial ou completa. Para
desenvolver esse tipo de aplicações, deverá contratar a versão comercializável.
g) A versão GeneXus X Trial será ativada por 60 dias. Inclui unicamente o gerador .NET e suporta SQL como
base de dados. Permite criar um máximo de 90 atributos e 140 objetos.

6. A instalação do produto de software licenciado implica a aceitação dos termos que antecedem.

Suporte Técnico
Se precisar ajuda para a instalação e autorização de sua versão trial, entre em contato com:
gxtrial@genexus.com

Se estiver nos Estados Unidos ou no Canadá poderá enviar consultas de suporte a:


gxtrial.usa@genexus.com

Para saber mais sobre os diversos serviços e recursos de suporte técnico e capacitação do GeneXus
visite: http://www.genexus.com/support e http://www.genexus.com/training

Por informação adicional, entre em contato com seu distribuidor local:


http://www.genexus.com/distributors ou escreva-nos a info@genexus.com

Instalação e Autorização
Requerimentos de Instalação
A GeneXus Trial Version inclui os seguintes produtos:

• Modelador GeneXus
É um ambiente integrado de desenvolvimento (Integrated Development Environment ou IDE) para
o desenho, desenvolvimento, e manutenção de aplicações de negócios, independentemente da
plataforma de produção utilizada.

• Geradores GeneXus
GeneXus gera código nativo para as principais plataformas do mercado. Para conhecer a lista
completa dos Geradores GeneXus visite: http://www.genexus.com/technologies. O gerador
disponível na GeneXus Trial Version é o Gerador .NET.

Página 4
GeneXus X: Quick Start

A seguir encontrará a lista do hardware e software necessário para executar GeneXus e as aplicações
geradas pelo GeneXus.

Requerimentos de Processador: mínimo 1 GHz (recomendado multi core)


Hardware
Memória: mínimo 1 GB de RAM (recomendado 2 GB)

Disco rígido: Mínimo de 300 MB de espaço em disco para a instalação.

Para criar aplicações GeneXus precisa-se espaço adicional ou um disco


compartilhado para criar as Bases de Conhecimento e o código gerado.

Requerimentos de Microsoft Windows 2000, XP SP2, ou superior.


Software
Microsoft .NET Framework 2.0 ou superior.

Microsoft Internet Explorer 6.0 SP1 ou superior.

Microsoft SQL Server 2005 ou 2008 (Express, Standard ou qualquer outra


Edição) 1
1
Microsoft SQL Server Express Edition é a versão redistribuível e gratuita.

Requerimentos do Gerador .NET


Esta seção contém os requerimentos para gerar e executar aplicações com o Gerador GeneXus
disponível na GeneXus Trial Version.

Gerador Requerimentos

.NET • Microsoft .NET Framework 2.0 ou superior.


• IIS 5.0 ou superior (disponível no Windows 2000 ou XP).
• Fornecedor do ADO .NET para o DBMS utilizado.

Para criar a base de dados de sua aplicação e executar as aplicações geradas, requererá um dos
seguintes DBMS:

• SQL Server (Em qualquer de suas edições)

Página 5
GeneXus X: Quick Start

Autorização
1. Execute o arquivo de setup da GeneXus Trial Version (genexusxtrial.exe) do menu de Início do
Windows ou selecionando a opção apropriada no CD de sua Versão Trial.

Figura: Assistente de Instalação da GeneXus X Trial Version

2. Siga os passos indicados pelo setup de instalação.


3. A primeira vez que usar a GeneXus Trial Versão deverá autorizar o produto para poder iniciá-lo.
A autorização pode ser feita Online ou By Mail. A autorização online é recomendada se tiver uma
conexão a Internet.

Figura: Dialog box para o Registro da GeneXus Trial Version

Página 6
GeneXus X: Quick Start

4. Complete os campos solicitados: Nome, email e país são obrigatórios enquanto que Companhia e
Telefone são opcionais.

5. Em caso de ter requerido a opção Online e de ter ingressado os dados corretamente, a GeneXus
X Trial Version irá se ativar em forma imediata por um período de 60 dias.

6. Se tiver escolhido a opção By Mail, GeneXus pedirá inserir Nome e país em forma obrigatória. Os
campos Telefone e Companhia são opcionais. Deverá confirmar os dados inseridos. Se os mesmos
forem corretos pressione CONTINUAR. Se desejar modificar os valores inseridos pressione
ANTERIOR. Esta ativação exige ter o Outlook configurado como email padrão. O administrador de
licenças gerará um mail com o Site Code correspondente. Você receberá seu Site Key via mail.

7. Se o Outlook não for seu email padrão, pode solicitar ativação Manual, enviando de qualquer
email os dados gerados pelo ativador de licenças. O Site Key de ativação será enviada ao mesmo
email. Copie e cole seu Site Key no campo de Site Key da janela Authorization Required e clique
em Continuar.

8. Você já está preparado para começar a usar sua GeneXus Trial Version!

9. Se precisar de ajuda para ativar a GeneXus X Trial Version escreva-nos a gxtrial@genexus.com.

Página 7
GeneXus X: Quick Start

PRIMEIROS PASSOS: Tutorial passo a passo


O objetivo deste tutorial é lhe oferecer uma primeira experiência prática com o GeneXus à medida que
for aprendendo os fundamentos da Metodologia GeneXus. Ao finalizar, você saberá como é possível
criar aplicações de negócios complexas com uma rapidez jamais imaginada.

Neste exercício passo a passo você criará uma aplicação de negócios simples para instalar em uma
das plataformas suportadas pela GeneXus Trial Version: .NET. Para conhecer a lista completa de
plataformas suportadas pelo GeneXus visite: http://www.genexus.com/technologies/

À medida que for trabalhando com este guia, usará as funcionalidades chaves do GeneXus:

• Desenho de aplicações baseado no conhecimento


• Geração inteligente de base de dados
• Geração automática de código
• Aplicações completamente funcionais
• Desenvolvimento incremental e manutenção automática da aplicação
• Desenho de Processos não interativos (Procedimentos)
• Desenvolvimento em múltiplas plataformas

Simbologia utilizada

! Este símbolo introduz um conceito chave para o desenvolvimento do tutorial.

 Este símbolo introduz um TIP. Recomendamos ler o que este dentro do quadro.

Este símbolo especifica o tempo requerido.

 Este símbolo introduz uma NOTA.

Página 8
GeneXus X: Quick Start

PARTE 1: Descobrindo o GeneXus

Tempo estimado: 5 minutos

O que é o GeneXus?
Basicamente, o GeneXus é um programa que faz programas.

É uma ferramenta que parte das visões de usuários, e a partir daí encapsula o conhecimento no que
chamaremos Base de Conhecimento. GeneXus sistematiza esse conhecimento, e daí automatiza o
desenho, construção e manutenção da BD e dos programas.

Resumindo, o GeneXus é uma ferramenta baseada no conhecimento que desenha,


! gera e mantém em forma automática os programas e a base de dados para obter o
desenvolvimento rápido de aplicações críticas em múltiplas plataformas.

Página 9
GeneXus X: Quick Start

PARTE 2: Sua primeira aplicação

Tempo estimado: 1:40

Desenho de aplicações baseado no conhecimento


Nesta seção aprenderá a criar uma Base de Conhecimento GeneXus e a desenhar uma aplicação em
base aos requerimentos dos usuários. Neste caso em particular, começaremos por desenhar uma
nota fiscal e outros componentes necessários em um Sistema de Gestão de Vendas.

Analistas de Negócios versus Desenvolvedores


Entender as necessidades do usuário final é uma das poucas tarefas que não se podem
automatizar no desenvolvimento de software. Referimo-nos aos desenvolvedores do

! GeneXus como analistas de negócios em lugar de programadores, codificadores ou


desenvolvedores.

Programar versus declarar a aplicação


A Metodologia GeneXus baseia-se na descrição das entidades do usuário final (objetos
reais, tanto tangíveis quanto intangíveis) com as que sua aplicação deve lidar. Isto se
faz descrevendo as visões dos usuários finais sobre estas entidades, com alto nível de
abstração. Por este motivo, realizaremos uma programação declarativa e os

! analistas de negócios descreverão a realidade para que o GeneXus crie o modelo de


dados em uma BD especificada e construa os programas de aplicação para cobrir as
necessidades funcionais requeridas. Quando essa realidade mudar, os analistas de
negócios simplesmente deverão descrever a nova realidade e será GeneXus quem se
encarregará de realizar as mudanças necessárias no modelo de dados e os programas
para representar a nova realidade descrita.

Passo 0: Caso de estudo


Suponhamos que uma empresa precisa uma aplicação que gerencie seu sistema de faturamento. Hoje
não conta com um e o faturamento é feito manualmente, com os grandes catálogos de códigos de
produtos. Trabalharemos com as notas fiscais, os clientes, os produtos ao tempo que iremos
introduzindo os fundamentos dos conceitos básicos da metodologia do GeneXus.

Durante este tutorial, conseguirá descrever a realidade apresentada no GeneXus para gerar um caso
tipo de sistema de faturamento em uma plataforma Web utilizando o Gerador .NET e BD SQL.

Página 10
GeneXus X: Quick Start

Passo 1: Entorno de desenvolvimento


Uma vez aberto o GeneXus, descobrirá uma interface como na imagem anexa. Esta interface recebe o
nome da IDE (Integrated Development Environment ou Ambiente integrado de Desenvolvimento). É
um IDE intuitivo, simples e parametrizável por cada desenvolvedor.

Divide-se em janelas:

Figura: Ambiente integrado de Desenvolvimento (IDE)

Janela principal: Está composta pela Start Page ou Página de Início a qual, através de um
RSS em forma dinâmica, oferece informação técnica relacionada com a ferramenta e a
comunidade de usuários. Para obter esta informação é necessário estar conectado. Se sua
equipe estiver desligada da Internet não poderá acessar as novidades publicadas no
GeneXus Community.

Janela de ferramentas

Barras de ferramentas

Passo 2: Criação de uma Base de Conhecimento e definição do Environment


O primeiro passo para criar uma aplicação com o GeneXus é criar uma Base de Conhecimento e definir
o ambiente de trabalho.

Base de Conhecimento ou Knowledge Base (KB)


! É um repositório que contém toda a informação necessária para gerar uma aplicação em
múltiplas plataformas. Em outras palavras, é um repositório de toda a descrição da
realidade.

Página 11
GeneXus X: Quick Start

Environment
Para gerar e manter uma aplicação de trabalho em uma plataforma de software
específica, devemos definir um Environment. Um Environment integra todo o
relacionado à plataforma de execução (Gerador, acesso a BD, interface de usuário e
! outras propriedades da plataforma). Para isto, especificamos um DBMS, uma linguagem
alvo e alguns parâmetros adicionais por cada Environment. GeneXus gerará e manterá o
esquema da base de dados e todos os programas na plataforma selecionada. Desta
maneira, o analista do GeneXus não precisa ter um conhecimento profundo da
plataforma alvo.

Se for a primeira vez que abre a GeneXus Trial e não executou previamente em sua equipe uma
versão comercial do produto, GeneXus lhe indicará que procederá a executar a criação de uma base
de conhecimento em forma automática. A primeira vez que abrir a versão trial automaticamente irá se
criar uma Base de Conhecimentos em um ambiente em .NET com o SQL.

Se quiser criar uma base de conhecimento e um novo environment, deverá:

1. Clicar na opção New


Knowledge Base.

2. Dar um nome à Base de


Conhecimento: Demo.

3. Selecionar um diretório onde


criar a KB.

4. Selecionar a linguagem a
gerar.

5. Clicar em CREATE para


Figura: Dialog box para a criação de uma Base de Conhecimento
continuar.

Página 12
GeneXus X: Quick Start

Passo 3: Criação de um Objeto Transação


Nosso objetivo será definir as visões de nossos usuários em objetos GeneXus.

Objeto Transação
Representa os objetos da realidade que dirige sua aplicação. Das transações definidas
! infere-se o modelo de dados da aplicação (3ª. forma normal). GeneXus também usa o
objeto transação para gerar o programa da aplicação que permitirá ao usuário final, em
forma interativa, inserir, apagar e atualizar registros na base de dados física.

O seguinte passo, uma vez criada a base de conhecimento será criar a primeira transação, que
representa uma nota fiscal. Para isso siga os seguintes passos:

1. Clique direito sobre


Objects/New/Object
ou vá ao menu
FILE/NEW OBJECT.
Também pode criar um
novo objeto utilizando o
shortcut CTRL N.

Figura: Criação de um objeto novo

2. Selecione o tipo de
objeto que deseja criar:
Transaction

3. Dê nome ao Objeto:
Invoice.

4. Clique em CREATE.

Figura: Dialog box New Object

Página 13
GeneXus X: Quick Start

Passo 4: Descrição da Estrutura da Transação (Structure)


O próximo passo será descrever o objeto nota fiscal definindo quais atributos integram a mesma e
como estão relacionados.

Estrutura do objeto Transação


A Estrutura do Objeto Transação é uma descrição dos dados requeridos para
conhecer o objeto real que este representa. Na estrutura, devemos declarar os atributos
(campos) que formam a transação (os dados com os que o usuário irá interagir) e as
relações entre eles. Baseando-se nesta estrutura, o GeneXus desenha e mantém
automaticamente a base de dados correspondente (tabelas, chaves, índices, restrições
de integridade, etc.) em 3ª. forma normal. O mesmo atributo deverá ter sempre o
mesmo nome em cada lugar que aparecer. ao tempo que dois atributos diferentes não
poderão ter o mesmo nome.
Os elementos chaves para definir a estrutura da transação são os seguintes:
• Nome, tipo e descrição: Cada atributo é definido por seu nome, tipo de dados

! •
e descrição.
Níveis: Os atributos agrupam-se em um ou mais níveis, e estes níveis podem
ser aninhados ou paralelos (pode haver múltiplos níveis aninhados). Por
exemplo: as linhas de uma nota fiscal representam um nível aninhado em nível
de raiz. O nível das linhas da nota fiscal demonstra o fato de que uma nota fiscal
pode ter muitas linhas, ou seja, define uma relação de uma a muitas entre a
nota fiscal e as linhas da nota fiscal.
• Atributos de Chave Primária (PK): Em cada nível, um ou mais atributos
devem ser definidos como a Chave Primária do nível.
o A Chave Primária é um identificador de cada instância do nível.
o Os valores da Chave Primária são únicos e uma vez inseridos não podem ser
atualizados.
o Se não existir uma Chave Primária “natural” para seu objeto, deve criar uma
“artificial”; por exemplo, CustomerID.

1. Insira o nome, tipo de dado e descrição dos atributos na aba Structure da transação Invoice, como
indicado na tabela a seguir. Use a tecla TAB para mover-se entre o nome, o tipo de dado e a
descrição do atributo. Use a tecla ENTER para adicionar um novo atributo.

ATRIBUTO TIPO DESCRIÇÃO


InvoiceID Numeric(4.0) Invoice ID

InvoiceDate Date Invoice Date

CustomerID Numeric(4.0) Customer ID

CustomerName Character(20) Customer Name

Até aqui inserimos os campos do cabeçalho da nota fiscal. Agora iremos inserir
as linhas. Para isso, pressione CTRL + Seta Direita para adicionar um Novo nível
à estrutura de dados

Página 14
GeneXus X: Quick Start

ProductID Numeric(4.0) Product ID

ProductName Character(20) Product Name

ProductPrice Numeric(8.2) Product Price

LineQuantity Numeric(4.0) Line Quantity

LineTotal Numeric(8.2) Line Total

Pressione ENTER e depois CTRL + Seta Esquerda para voltar para o nível do
cabeçalho e começar os dados do rodapé.

InvoiceSubtotal Numeric(8.2) Invoice Subtotal

InvoiceTax Numeric(8.2) Invoice Tax

InvoiceTotal Numeric(8.2) Invoice Total

Tips para aumentar sua produtividade:


Quando começar a escrever o nome de um novo atributo oprimindo a tecla
“ponto” GeneXus escreverá o nome da transação no campo de nome do atributo

Use “CamelCase” para nomear seus atributos, de forma tal que as descrições dos
mesmos se infiram automaticamente e façam sentido. Ex.: Pôr “InvoiceTotal”
 como nome de atributo, para que se infira automaticamente a descrição “Invoice
Total”.
Quando estiver posicionado no combo box de tipo de dados (Type), escreva a
letra inicial do tipo de dados apropriado para selecioná-lo. Se for um tipo de dado
variável (Character, LongVarChar, Numeric ou VarChar), insira o valor apropriado
da dimensão de variável para configurá-lo.

O primeiro atributo de cada nível é definido por defeito como chave primária desse nível, mas é
possível mudar isto clicando direito sobre o atributo e escolhendo a opção Toggle Key (Ctrl+K). Os
atributos de Chave Primária se identificam por uma pequena chave à esquerda de seus nomes
( ). Neste exemplo, InvoiceID é o identificador de primeiro nível, e o atributo ProductID é o
identificador de segundo nível. Isto significa que, para um número de notas fiscal dado
(InvoiceID), o valor do atributo ProductID não se repetirá em linhas diferentes.

2. Movendo o Mouse na área direita da tela irá se


desdobrar o menu de propriedades
(Properties).

Página 15
GeneXus X: Quick Start

Figura: Janela de Definição do Atributo

3. Expanda a opção Type Definition e configure a


propriedade Autonumber do InvoiceID no
True. Os programas gerados atribuirão
automaticamente um valor do InvoiceID a cada
nova instância da nota fiscal.

Figura: Propriedade Autonumber

4. Salve a nova estrutura da transação oprimindo o botão com


forma de diskette (Save) na barra de ferramentas
Standard. Se esta barra não estiver visível, desdobre-a
clicando direito sobre a barra de menu (Opção Edit)

Você acaba de criar a estrutura de uma transação Nota Fiscal


composta de dois níveis:

• Um nível básico (Invoice ou Nota Fiscal), no qual se


especifica toda a informação necessária para o
Cabeçalho da Nota Fiscal.
• Um nível aninhado, no qual se especifica a informação
que se irá se repetir em cada linha de nota fiscal.

Observe que não utilizamos um número de linha como chave


primária das linhas de nota fiscal. Esta é uma decisão de Figura: Estrutura da nota fiscal
desenho voluntária. Usando o ID de Produto como chave
primária das linhas da nota fiscal, estamos definindo que não
haverá duas linhas na mesma nota fiscal para o mesmo produto.

Universal Relationship Assumption (URA)


Um elemento chave da Metodologia GeneXus é a hipótese de que atributos com o

! mesmo nome são o mesmo atributo. Isto se chama Universal Relationship Assumption
(URA) e, conforme essa hipótese:
• Tudo o que for conceitualmente igual deve ter o mesmo nome.
• Os conceitos diferentes NÃO devem ter o mesmo nome.

Página 16
GeneXus X: Quick Start

Isto nos permitirá usar o mesmo atributo em outros objetos GeneXus (outras
transações, procedimentos, reportes, etc.) simplesmente fazendo referência a seu nome.
GeneXus estabelece as relações (chaves forâneas) entre as tabelas do modelo de dados
com base nos nomes dos atributos.

Nomenclatura GIK: GeneXus Incremental Knowledge


GIK é uma nomenclatura padrão definida pela Artech no intuito de dotar os atributos de
um nome que transmita seu conceito da forma mais clara possível. Nesta nomenclatura,
o nome de um atributo está formado por 4 componentes. Alguns deles são opcionais:

Objeto + Categoria [+ Qualificador] [+ Complemento]

• Objeto: É a entidade real descrita pelo atributo. Geralmente (mas nem sempre) é o
! nome da transação na qual um atributo foi definido para poder ser armazenado em
uma das tabelas associadas a essa transação (isto significa que não deveria inferir-
se nessa transação específica). Exemplos: Nota Fiscal, Cliente, Produto, Linha.
• Categoria: É a categoria semântica do atributo. Define o papel que o atributo terá
dentro do objeto e no ambiente da transação. Exemplos: Identificação, Data, Nota
Fiscal, Descrição, etc.
• O Qualificador e o Complemento são componentes opcionais. Exemplos: Início, Fim,
Mínimo, Máximo, etc.

Página 17
GeneXus X: Quick Start

Passo 5: Definição do Campos Calculados  Fórmulas

Fórmulas
São atributos que podem se inferir do valor de outros atributos. Um atributo fórmula é
definido da mesma forma que um atributo “normal”, ou seja, tem um nome, um tipo de
dados e uma descrição, além de uma fórmula que define como se calcula.

• Salvo especificação contrária, os atributos definidos como fórmulas não são

! •
armazenados na base de dados (são atributos virtuais).
As fórmulas são globais; são válidas em toda a base de conhecimento e não
apenas dentro da transação na qual foram definidas. Isto significa que a fórmula
é calculada cada vez que o atributo é invocado de uma transação ou de outros
objetos GeneXus (Reportes, Work Panels, etc.)
• Variáveis Definidas pelo Usuário. Não podem participar de uma fórmula
porque são locais em relação aos objetos nos quais foram definidas e não têm
valor fora deles.

Agora definiremos os seguintes atributos fórmula:

LineTotal=ProductPrice * LineQuantity
InvoiceSubTotal = SUM(LineTotal)
InvoiceTaxes= InvoiceSubTotal * 0.11 (ou o número que corresponder)
InvoiceTotal = InvoiceSubtotal + InvoiceTax

1. Clique duplo no campo Formula do atributo LineTotal (à direita da descrição do atributo).

2. Escreva o seguinte: “ProductPrice * LineQuantity”. Também é possível clicar no botão sobre o campo da
fórmula para abrir o Editor de Fórmula.

3. Repita os Passos 1 e 2 para o resto das fórmulas que aparecem na lista no início desta seção.

4. Clique Save para salvar as novas fórmulas.

Página 18
GeneXus X: Quick Start

Ao finalizar, deveríamos ter a descrição da nota fiscal da forma seguinte:

Figura 1 Transação nota fiscal com fórmulas

Passo 6: Visualização do Modelo de Dados inferido pelo GeneXus


Você pode ver o modelo de dados inferido pelo GeneXus e inclusive modificá-lo.

Geração de Modelo de Dados Inteligente


Toda vez que clicar no botão Salvar, GeneXus inferirá o modelo de dados ótimo (3ª.

! forma normal sem redundâncias) que suporte as entidades do usuário final


representadas pelos objetos de sua transação GeneXus. Embasado neste modelo de
dados, GeneXus gerará uma base de dados física quando você definir um DBMS objetivo
para um modelo.

Geração de Modelo de Dados Inteligente


A estrutura dos objetos transação determina as tabelas e índices a serem criados:

• Os nomes das tabelas e índices são atribuídos automaticamente pelo GeneXus


pelo nome da transação, mas podem ser modificados se for necessário.
! • GeneXus infere um modelo de dados em 3ª. forma normal, sem redundâncias.
Não obstante, podem definir-se redundâncias que serão automaticamente
gerenciadas pelo GeneXus.
• A chave primária da tabela correspondente a uma transação de nível N se obtém
concatenando identificadores dos N-1 níveis aninhados previamente com o
identificador de nível N.

Página 19
GeneXus X: Quick Start

1. No menu da esquerda, selecione Tables.

2. GeneXus mostrará a estrutura de dados inferidas a partir da transação.

Figura: Tabela de Nota fiscal

Figura: Tabela de Produtos

O Rol da Base de dados acima mostra que GeneXus inferiu automaticamente um modelo de dados
normalizado, criando duas tabelas para suportar o objeto transação Invoice, Invoice (o cabeçalho da
nota fiscal) e InvoiceProduct (as linhas da nota fiscal), com a seguinte estrutura:

Invoice InvoceProduct

InvoiceID InvoiceID

InvoiceDate ProductID

CustomerID ProductName

CustomerName ProductPrice

LineQuantity

Página 20
GeneXus X: Quick Start

Observe que:

• A chave primária da tabela InvoceProduct está formada por dois atributos: InvoiceID e
ProductID (a concatenação do identificador de primeiro nível, InvoiceID, com o identificador
do segundo nível, ProductID).
• GeneXus eliminou automaticamente das tabelas os atributos que se definiram como fórmulas
e os converteu em fórmula globais para poder acessá-las de qualquer lugar dentro da base de
conhecimento.
• Na tabela Invoice:
o Não pode haver duas notas fiscais com o mesmo InvoiceID.
o Para cada InvoiceID há um único valor do InvoiceDate, CustomerID e
CustomerName.
• Na tabela InvoceProduct:
o Não pode haver duas linhas de nota fiscal com a mesma InvoiceID e ProductID.
o Para cada par do InvoiceID e ProductID há um único valor do ProductName,
ProductPrice e LineQuantity.

Passo 7: Visualização dos Formulários do Objeto Transação


Visualize o formulário Web predeterminado que foi gerado automaticamente pelo GeneXus para seu
recém criado objeto transação (deve estar posicionado dentro do objeto Nota fiscal).

Formulário Web
Depois de salvar um novo Objeto Transação, o GeneXus cria automaticamente um
! Formulário Web predeterminado para especificar como o usuário final irá acessar os
dados na aplicação. Estes formulários podem ser personalizados pelo analista do negócio
mais tarde.

Para o formulário Web siga os passos seguintes:

1. Selecione a aba WebForm da transação Nota Fiscal.

Página 21
GeneXus X: Quick Start

Figura: Formulário (predeterminado) da Transação Nota fiscal

“Error Viewer: ctlError” é o controle predeterminado onde se desdobram mensagens de erro. Pode se
localizar em qualquer lugar do formulário e configurar-lhe propriedades. As mensagens possíveis são
as que se desdobram no Msg e regras de Erro, e os controles automáticos do GeneXus (quer dizer,
integridade referencial, erros tipo de dados, etc.).

Estes formulários habilitarão os usuários finais a entrar novas notas fiscais que irão se inserir como
novos registros nas tabelas correspondentes. Os usuários também poderão atualizar ou eliminar as
notas fiscais existentes, desde que tiverem os direitos para fazê-lo.

O analista do GeneXus não precisa programar nenhuma destas ações porque estão implícitas na lógica
da transação. GeneXus gerará automaticamente o código nativo correspondente na linguagem
selecionada.

Tenha em conta que ao definir transações GeneXus se está:

• Explicitamente: descrevendo a interface de usuário para a apresentação e captura de dados.


• Implicitamente: desenhando o modelo de dados da aplicação (tabelas, índices, etc.)

Página 22
GeneXus X: Quick Start

Passo 8: Execução de sua Aplicação

Geração da BD em 3ª. Forma Normal


• GeneXus gera os programas executáveis requeridos para criar sua base de dados no
DBMS selecionado com base no modelo de dados inferido.
• Quando você está atualizando sua estrutura de dados, GeneXus gera os
! programas executáveis requeridos para reorganizar a base de dados; ou seja, cria
um novo esquema e converte os dados do velho esquema para o novo.
• Nestes casos irá se desdobrar um Reporte de Criação de Base de dados ou um
Reporte de Análise de Impacto respectivamente, que lhe mostrará o que o
GeneXus irá fazer.

Neste passo, executaremos a aplicação em .NET usando SQL Server como nosso DBMS. Na versão
comercial você pode usar qualquer um dos DBMS suportados pelo GeneXus. Consulte a lista completa
dos DMBS suportados pelo GeneXus aqui:

http://www.genexus.com/technologies

Reporte de Criação de Base de dados: É o reporte que descreve o


esquema da base de dados que GeneXus gerará no DBMS selecionado. Contém toda a
informação sobre o modelo de dados inferido e o esquema de base de dados proposto
para ser gerado. A informação sobre cada tabela está dividida em cinco seções:

• Cabeçalho: Contém a nome da tabela, as ações a realizar nele, advertências e


erros, Se o modelo de dados contém erros, o botão de Reorganização estará
desabilitado.
! • Estrutura da Tabela: Mostra os atributos da tabela, suas relações e as ações a
realizar sobre eles.
• Índices: Descreve os índices da tabela que GeneXus usa para manter a
integridade referencial de sua base de dados e para acessar as tabelas
eficientemente.
• Restrições da Chave Forânea: Descreve as restrições de integridade da
tabela.
• Statements: Descreve as sentenças que irão se executar.

Página 23
GeneXus X: Quick Start

1. Pressione F5 ou vá através do menu opção BUIL /RUN DEVELOPER MENU.

2. O Ajudante vai guiá-lo na


configuração da BD. Configure o
seguinte:
• Database name: Demo
• Server name: localhost
• Use trusted connection: Yes

Clique no botão Finish para


continuar.

Figura: Detalhe da Barra de Ferramentas do Modelo

3. GeneXus mostrará o reporte de


criação da BD.

Figura: Dialog box para a Criação da Base de dados

4. Clique em CREATE. GeneXus


escreverá o código para a criação
das tabelas e os programas
necessários na linguagem
selecionada para acessar a BD.

Figura: Output

Página 24
GeneXus X: Quick Start

Passo 9: Teste de sua Aplicação

1. O Menu do
Desenvolvedor é um
arquivo XML que inclui
todos seus objetos
executáveis. É um
menu auxiliar para
testar sua aplicação.
Clique na opção
Invoice.

Figura: Menu do Desenvolvedor

2. Insira algumas
instâncias de nota fiscal.
Graças à tecnologia
AJAX, as fórmulas se
calculam
automaticamente, sem
necessidade de
recarregar a página
inteira.

3. Quando tiver finalizado,


clique no botão Fechar.

Figura: Instância da Transação Invoice

Página 25
GeneXus X: Quick Start

Passo 10: Adicionar Regras do Negócio  Regras


Adicionemos um pouco de lógica básica de negócios a sua aplicação.

Regras GeneXus
As Regras GeneXus são o meio para definir a lógica do negócio associada a cada objeto.
São escritas em forma declarativa e GeneXus decide de maneira inteligente qual regra
aplicar e quando aplicá-la.

As regras desempenham um papel muito importante nos objetos transação porque


permitem programar seu comportamento (por exemplo: atribuindo valores
predeterminados, definindo controles de dados, etc.).
! • Podem envolver atributos definidos na estrutura da transação, bem como
variáveis e funções.
• As Regras são programadas em forma declarativa, isto é, a ordem na qual se
escrevem não é necessariamente a ordem na qual vão ser executadas. A ordem
de execução adequada é automaticamente determinada pelo GeneXus.

São válidas unicamente na transação em que foram definidas. Por isso falamos que são
locais.

Agora iremos adicionar uma regra simples que configura por defeito a Data da Nota fiscal como a data
do dia de hoje:

1. Selecione a aba Regras da transação Invoice.


2. Utilizaremos a regra Default que atribui um valor predeterminado a um atributo ou variável.
3. Complete a fórmula do modo seguinte: Default(InvoiceDate, &today);o que indica que o
valor predeterminado da Data da nota fiscal será a data do dia de hoje1.
4. Clique no botão de salvar.

1
Tenha em conta que você poderá também usar as opções Inserir / Atributo e Inserir / Fórmula do menu Inserir
para completar a regra.

Página 26
GeneXus X: Quick Start

Figura: Regra da Transação

Eis outra regra simples que estabelece uma mensagem de erro se a quantidade de produtos inserida
for nula:

5. Adicione a seguinte regra: Error("The product cannot be empty") if


LineQuantity.IsEmpty();
6. Clique no botão de salvar.

Figura: Declaração de regras

7. Teste as regras inseridas, executando a aplicação (F5).

Figura: Execução da aplicação

Página 27
GeneXus X: Quick Start

Passo 11: Criação do Objeto Transação Cliente


Os clientes são conceitos que correspondem a entidades independentes da nota fiscal, portanto
corresponde que seja definidos como um transação em si mesma.

1. Crie o objeto Transação Cliente seguindo o Passo 2: Criação de um Objeto Transação e o Passo 3:
Descrever a Estrutura da Transação.

2. Adicione os seguintes atributos à Estrutura Cliente:

ATRIBUTO TIPO DESCRIÇÃO

CustomerID --------- --------------------

CustomerName --------- --------------------

CustomerAddress Character(50) Customer Address

CustomerEmail Character(50) Customer Email

Observe que quando começa a escrever os atributos CustomerID e CustomerName, GeneXus lhe
indica o nome completo do atributo e seu tipo e descrição. Isto acontece porque estes atributos já
estão definidos em sua base de dados.

3. Pressione o botão direito do mouse sobre o


atributo CustomerID e selecione
Propriedades.
4. Dentro do Type Definition configure a
propriedade Autonumber do CustomerID
como True. Desta forma, os programas
gerados atribuirão automaticamente um valor
CustomerID a cada nova instância de Cliente.
5. Ative o suggest para o código do cliente,
posicionando-se sobre as propriedades do
Customer ID, dentro da opção InputType,
definir Description e adicionar como
ItemDescription: CustomerName.

Assim, em vez de inserir o ID de um cliente


para identificá-lo, poderemos inserir seu
nome e a aplicação automaticamente inferirá
seu ID. A propriedade suggest lhe sugerirá Figura: Janela de propriedades
todos os nomes de clientes que concordem
com o nome inserido pelo usuário. Estas

Página 28
GeneXus X: Quick Start

propriedades são parte da implementação do


AJAX que o GeneXus faz automaticamente.

O Formulário Web da transação Cliente será visto como exibe a seguinte figura.

Figura: Estrutura da transação Cliente

Figura: Formulário Web da transação Cliente

Observe (a seguir) que o Formulário Web da Nota fiscal também mudou, refletindo as mudanças nas
propriedades do atributo CustomerID: o atributo CustomerName é agora o da descrição do atributo
CustomerID. Isto melhorará notavelmente a Usabilidade da aplicação como veremos rapidamente!

Figura: Formulário Web da transação Nota fiscal

Página 29
GeneXus X: Quick Start

Passo 12: Revisão das Mudanças efetuadas ao Modelo de Dados

Pressione a tecla F5. Isto gerará um Reporte de Análise de Impacto.

Análise de Impacto
! Descreve as mudanças físicas que deverão se realizar para atualizar o novo modelo de
dados inferido pelo GeneXus.

Comprovará que GeneXus normalizou automaticamente seu modelo de dados depois de ter incluído a
nova transação.

Mostra-nos que a tabela Invoice será afetada, eliminando o atributo CustomerName da tabela Invoice
já que o mesmo pode ser inferido através do CustomerID.

Aparece uma nova tabela, Customer:


NOTE

Em warning de especificação refere–se a que pode haver valores duplicados de clientes na tabela

 Invoice que ao serem normalizados, pode afetar. Também se mostra outro warning indicando que os
registros que irão se criar têm valor nulo nas tabelas.

Página 30
GeneXus X: Quick Start

Figura: Lista da Base de dados (Modelo de Dados)

Observe que:

• GeneXus adicionou uma nova tabela: a tabela Customer (associada à transação Customer).
• O atributo CustomerName eliminou-se da tabela Invoice (este atributo está armazenado
unicamente na tabela Cliente), deixando a base de dados normalizada.
• Na tabela Customer:
o Não pode haver dois clientes com o mesmo CustomerID.
o Por cada CustomerID há um único valor do CustomerName, CustomerAddress e
CustomerEmail.
• Na tabela Invoice:
o Não pode haver duas notas fiscais com o mesmo InvoiceID.
o O atributo CustomerID na tabela Invoice é uma chave forânea tirada da tabela Cliente.
portanto, existe uma relação de um a muitos entre Clientes e notas fiscais:
 Por cada InvoiceID existe unicamente um CustomerID.
 Cada CustomerID pode ter muitas notas fiscais (InvoiceID).

Página 31
GeneXus X: Quick Start

Passo 13: Visualização do Reporte de Especificação


Já está preparado para proceder com a reorganização da BD. Selecione a opção REORGANIZE. Os
programas de reorganização criam um novo esquema de base de dados na base de dados física do
modelo objetivo e transportam os dados do esquema velho para o novo.

Executada a reorganização, o GeneXus desdobra um Reporte de Especificação composto por uma


série de Reportes de Navegação, um para cada programa que irá gerar.

Reporte de Especificação
! Descreve como se executará o programa, quais tabelas acessará (e como) e quais
operações realizará.

Figura: Reporte de Navegação de Transação do Customer

“Referential Integrity controls on delete” (Controles de integridade referencial ao excluir) significa


que quando você exclui um cliente da transação Cliente, o programa verificará que não existam
notas fiscais para esse cliente. Para realizar esta busca com eficiência, usa-se o índice de fora
CustomerID da tabela Nota fiscal.

Página 32
GeneXus X: Quick Start

Figura: Reporte de Navegação da transação Invoice

Integridade Referencial na transação Nota fiscal: A chave forânea CustomerID no nível INVOICE significa
que quando você insere ou atualiza uma nota fiscal usando a Transação INVOICE automaticamente se
controlará se o valor inserido na chave forânea CustomerID já existe como chave primária de um registro na
tabela Cliente. Para realizar esta busca com eficiência, usa-se o índice primário CustomerID da tabela
Cliente.

O controle de integridade referencial valida que um atributo inserido (por exemplo, CustomerID em uma
Nota fiscal) é válido, mas não proporciona informação sobre quais são os valores válidos. Para facilitar a
busca dos valores válidos, GeneXus cria objetos Lista de Seleção (prompts) que mostram o grupo completo
de valores válidos para escolher os que correspondam.

Página 33
GeneXus X: Quick Start

Passo 14: Criação dos Formulários Atraentes  Temas


Nesta seção criará um novo Tema baseado em um modelo predefinido e o configurará como o Tema
de sua aplicação.

Objeto Tema
O objeto GeneXus Tema melhora o desenvolvimento e manutenção das aplicações Web
separando as tarefas do analista do negócio das do desenhador Web.
! • Criam-se Formulários Web baseados num Objeto Tema predeterminado.
• Você pode criar novos Temas e associá-los à totalidade de sua Base de
Conhecimento ou a objetos específicos dentro dela.

1. No menu da esquerda, dentro do menu


Customization selecione a opção
Themes (clicando duplo).

2. Abra a formulário GeneXusX

3. Mude a cor de fundo dos Forms


selecionando Form e depois editando
as propriedades à direita. Para mudar a
cor de fundo deve selecionar a opção
BACKGROUNDCOLOR

4. Salve as mudanças realizadas Figura: GeneXus Theme Editor


pressionando o botão de gravar ( )

5. Se voltar a abrir o objeto INVOICE na


aba da Web Form verá refletidos as
mudanças realizadas.

Nota: para ver a mudanças, caso não o


consiga, deverá fechar e abrir a
transação se ela estava previamente
aberta.

Figura: Formulário Web da transação Invoice com o novo Tema

Página 34
GeneXus X: Quick Start

PARTE 3: Manutenção

Tempo estimado: 15 minutos

Desenvolvimento Incremental e Manutenção da Aplicação


Até o momento criamos uma aplicação de trabalho baseada em alguns objetos transação e regras do
negócio. Agora veremos como manter uma aplicação GeneXus simplesmente editando os objetos
GeneXus existentes e/ou adicionando novos e depois atualizando sua base de dados e regenerando os
programas da aplicação em forma automática.

Desenvolvimento Incremental com o GeneXus

À medida que a realidade muda, os requerimentos do sistema evoluem e isto se traduz


em mudanças nos objetos GeneXus e/ou novos objetos. Com base nos novos objetos,
GeneXus atualizará sua base de dados automaticamente (criando um novo esquema de
! base de dados e migrando os dados do velho esquema para o novo) e regenerará os
programas da aplicação que devam ser modificados.
Falamos que a Metodologia GeneXus é incremental porque se baseia no pressuposto de
que o desenvolvimento do sistema é um processo iterativo que acontece em sucessivas
aproximações. O desenvolvimento incremental é possível porque GeneXus pode manter
o esquema de sua base de dados e os programas de sua aplicação automaticamente.

Passo 15: Inclusão de Novos Objetos: Transação Produto


Ao provar a aplicação, certamente terá notado que deve inserir a Identificação, Descrição e Preço de
Produto em cada linha da nota fiscal. Isto não é o que esperaria de um sistema de gestão de vendas.
E nem sequer de um sistema simples como esta aplicação de exemplo!

Devemos contar com a possibilidade de adicionar, atualizar e eliminar produtos de nosso sistema.
Para fazê-lo, adicionaremos o transação Produto em nossa Base de Conhecimento:

Página 35
GeneXus X: Quick Start

1. Crie a transação Produto seguindo o Passo 3: e o Passo 4: . Insira os seguintes atributos na


Estrutura da transação Produto:

ATRIBUTO TIPO DESCRIÇÃO

ProductID --------- --------------------

ProductName --------- --------------------

ProductPrice --------- --------------------

Notará que assim que começar a escrever estes nomes de atributo, o GeneXus lhe indicará o
nome completo. Isto acontece porque estes atributos já estão definidos em sua Base de
Conhecimento.

A estrutura (Structure) da transação Product e seu Formulário Web irão se ver da seguinte forma.

Figura: Estrutura da transação Product

Figura: Formulário Web da transação Produto

Página 36
GeneXus X: Quick Start

Passo 16: Análise e reorganização da BD


Quando você salvar seu objeto Transação Product, GeneXus normalizará o modelo de dados
novamente. A revisão do modelo de dados revela que GeneXus normalizou automaticamente o
modelo de dados movendo os atributos ProductName e ProductPrice da tabela InvoiceProduct (Detalhe
de Nota fiscal) para a nova tabela Produto.

Figura: Lista de Base de dados (Modelo de Dados) para o InvoiceProduct e tabelas Produto

1. Selecione Reorganize.

2. GeneXus realizará a reorganização da


BD e especificará as mudanças
necessárias sobre os programas de
aplicação

Figura: Dialog box para a Execução da Reorganização e


Especificação

Página 37
GeneXus X: Quick Start

3. Chegou a hora de executar sua


aplicação!

Figura: Execução de sua aplicação

Página 38
GeneXus X: Quick Start

PARTE 4: Adicionando funcionalidade

Tempo estimado: 10 minutos.

Utilização de Padrões no desenvolvimento


Tivemos a possibilidade de testar nossa aplicação e comprovar como inserir dados através das
transações. Seria conveniente ter uma visão mais general da informação, não apenas de inserir,
apagar e modificar Clientes, notas fiscais ou Produtos, mas também filtrá-los por algum critério em
particular, ordená-los, etc. Para implementar esta funcionalidade em forma rápida e simples, utilizam-
se os Patterns.

Patterns ou Padrões
! São ações similares aplicadas a diferentes elementos. Os padrões permitem criar
automaticamente todos os objetos necessários para cumprir a funcionalidade
especificada, evitando ter que fazê-lo manualmente.

Passo 17: Aplicar um pattern


Aplicaremos o padrão “Work With” sobre as transações criadas.

1. Através do menu View, selecione a


opção Work with Objetcs.

2. Selecionar as transações Customer,


Invoice e Products.

Figura 2 Diálogo para a Seleção de Transações

Página 39
GeneXus X: Quick Start

3. Sobre as transações selecionados


clique direito, opção Apply Pattern,
Work With.

4. Grave as mudanças.

5. Pressione F5 para executar a


aplicação. Observamos que já não
temos acesso às transações. O que
temos é um acesso a nosso “Trabalhar
com” Customer, Invoice e Product.

Figura: Seleção do TRN

6. Execute a aplicação

O pattern adicionou a seguinte


funcionalidade:
• Filtro por data, sem necessidade
de refrescar a aplicação.
• Pode-se ordenar pelas colunas
clicando no cabeçalho das
mesmas.
• Pode-se paginar a grade.
• Clicando em um link vamos ao
view de um objeto, onde se
mostram os dados relacionados.
• Guarda o histórico com os links
visitados.

Figura: Execução da aplicação

Página 40
GeneXus X: Quick Start

PARTE 5: Diálogos interativos

Tempo estimado: 15 minutos

Desenho de Consultas e Diálogos Interativos (Web Panels)

Web Panels
Os Web Panels são usados para fazer diálogos e consultas interativos à base de dados
! em ambientes Web. Permitem implementar diferentes tipos de consultas e visualizar os
dados de formas bem diversas.

Os Web Panels são programados usando uma linguagem simples dirigida por eventos.

Passo 18: Criação de um Web Panel: Nota fiscal por cliente.

Vamos criar um Web Panel que nos permita ver para cada cliente as Notas fiscais que tem associadas.
Para isso siga os passos seguintes:

1. No menu Objeto, clique em


Novo Objeto.
2. Selecione o Tipo de Objeto
que deseja criar: Web
Panel.
3. Dê ao Objeto o nome:
“InvoicesPerCustomer”
4. Clique em OK.

Figura: Dialog box para Definir Objeto

Página 41
GeneXus X: Quick Start

5. Aparecerá o Formulário
vazio do Web Panel. No
menu View, selecione
Other Tool Windows,
opção Toolbox. Arrastar
um controle Free Style
Grid.

6. Expanda a grade.

Figura: Janela do Seletor do Free Style Grid


7. Localizados dentro da
grade, selecione a opção
Insert, Attribute.

8. Selecione o atributo
CustomerName e clique
em OK.

Figura: Web Panel

Página 42
GeneXus X: Quick Start

9. Queremos adicionar as
notas fiscais
correspondentes por cliente.
Para isso, insira uma grade,
e selecione os atributos
InvoiceIO, InvoiceDate,
InvoiceTotal. O GeneXus
encontra a relação entre as
tabelas de maneira tal de
arrolar as notas fiscais por
cada Cliente.

10. Na janela Arrange Columns Figura: Janela Insert Grid


(Arrumar Colunas) clique
em OK.

11. Gravar as mudanças


oprimindo o diskette.

12. Executar pressionando F5. Figura: Janela Web Panel com Grid

Figura: Execução da Aplicação

Página 43
GeneXus X: Quick Start

Passo 19: Execução do Web Panel modificando a instância do Pattern


Vamos modificar a instância Pattern “Trabalhar com Clientes” na transação Customer de forma tal a
poder acessar o Web Panel “InvoicesPerCustomer”.

1. Abrir a Transação
Customer e vamos
ao Pattern
pressionando o botão
Work With.

Figura: Transação Customer

2. Vamos adicionar uma


ação a esta instância
do Pattern e vamos
associá-la a um botão
fora da grade
convocando o Web
Panel “Nota fiscal por
Cliente”.
3. Posicionar o botão
direito sobre a opção
Selection (Work With
Customers) e escolher
a opção ADD,
Actions.

Figura: Trabalhar com Clientes

4. Adicionar uma nova


ação (botão direito
sobre a opção Action,
Add, Action)

Página 44
GeneXus X: Quick Start

5. Editamos suas
propriedades
pressionando F4.

6. Como Name
colocamos
ViewInvoicesPer Figura: Modificação da instância do Pattern
Customer, como
Caption também e no
GXObject
selecionamos o Web
Panel
InvoicesPerCustomer.
7. Salvamos as
mudanças

8. Executamos a
aplicação
pressionando F5.

Figura: Seleção de Objetos

9. Em execução,
selecionar a opção
Work with Customers
para ver o botão que
invoca o Web panel
criado.

Figura: Execução da Aplicação

Página 45
GeneXus X: Quick Start

PARTE 6: Enriquecendo a aplicação

Tempo estimado: 15 minutos

Controles de usuários

User Controls
São controles Web que podem ser inseridos no form de qualquer objeto Web do
! GeneXus e que vão aumentar notoriamente a funcionalidade e aparência de nossa
aplicação. além dos user controls padrões providos (Chart, Image Galery, Map,
Treeview), GeneXus nos provê de um Editor do User Controls através do qual poderemos
modificar os user controls já existentes e criar nossos próprios user controls e incorporá-
los ao GeneXus.

Nosso objetivo será representar em forma gráfica as vendas por produto. Para cumprir este
requerimento vamos usar o User Control Chart.

Passo 20: Implementação de um User Control

1. Criar um novo objeto do tipo Web Panel


que chamaremos SalesxProd.

Figura: Web Panel VentasxPrd

Página 46
GeneXus X: Quick Start

2. Ative o Menu Toolbox, através do Menu


View, Other Tool Windows,Toolbox

3. Arraste o user control Chart para a Web


Panel

Figura: Chart

4. Na aba Events, apague o código gerado e


transcreva o seguinte:

Figura: Eventos

Página 47
GeneXus X: Quick Start

5. Grave o Web Panel

6. Execute a aplicação pressionando F5.

Figura: Execução da Aplicação

PARABÉNS!
Você criou com sucesso primeira aplicação com o GeneXus.

Nosso próximo passo é oferecer-lhe maior informação sobre as coisas que podem ser feitas com o
GeneXus.

Página 48
GeneXus X: Quick Start

PARTE 7: Procedimentos

Tempo estimado: 15 minutos

Desenho de Processos Não Interativos (Procedimentos)

Procedimentos
Até o momento trabalhamos com os Objetos Transação que são objetos GeneXus que
requerem a intervenção do usuário para inserir, atualizar e eliminar registros na base de
dados. Não obstante, muitas vezes precisamos realizar tarefas sem a intervenção do
usuário. Para isso, usamos outro tipo de Objetos GeneXus:

! • Procedimentos: Definem processos não interativos para consultar e atualizar a


base de dados. Os procedimentos são usados para definir funções e sub-rotinas.

Uma funcionalidade chave dos Procedimentos GeneXus é que com eles usamos a mesma
metodologia baseada no conhecimento que usamos para definir os Objetos Transação.
Isto significa que a definição destes objetos baseia-se em nomes de atributos e não nas
tabelas da base de dados onde os atributos são armazenados. Portanto, a definição de
seus Procedimentos permanece válida desde que os atributos declarados dentro dos
mesmos estejam presentes na Base de Conhecimento.

Em nosso exemplo criaremos um Reporte simples (que mostre todos os dados de uma nota fiscal).

Características dos Procedimentos

• Processo de alto nível: Os Procedimentos especificam-se em um processo de


muito alto nível. A seqüência de execução é determinada pelo analista usando uma
linguagem de processo simples que inclui controle, impressão, acesso a dados e
outros comandos.
! • Baseados em Conhecimento: O código fonte dos Procedimentos refere-se a
nomes de atributos na Base de Conhecimento, não a sua localização na base de
dados física (do Modelo de Protótipo ou Produção). Portanto:
o O GeneXus sabe onde encontrar os atributos na base de dados física.
o O GeneXus conhece as relações entre as tabelas na base de dados física.
o Os Atributos Fórmula são inferidos automaticamente pelo GeneXus.

As mudanças na base de dados física não afetam o comportamento dos Procedimentos

Página 49
GeneXus X: Quick Start

Nosso objetivo será criar um procedimento que arrole todos nossos clientes junto a seu total e outro
que permita modificar em 10% os preços vigentes.

Passo 22: Implementação de um Procedimento para impressão

1. Criar um novo objeto do tipo


Procedimento chamado CustomerReport

Figura: Procedimento CustomerReport


2. Dentro da aba Source insira o seguinte
código:

For each
&Total=SUM(InvoiceTotal)
Print printBlock1
Endfor

Figura: Source do Procedimento CustomerReport


3. Ir à aba de Layout. Inserir o atributo
Customer Name (para isso vá à opção
Insert/Attribute).

Página 50
GeneXus X: Quick Start

Figura: Layout do procedimento


4. Insira uma variável chamada Total, do
tipo numérica de 6 dígitos.

Figura: Inserção de variáveis


5. Utilizando o Toolbox você pode botar
desenho em seu reporte (inserir Labels,
Linhas, etc.). Por exemplo, com o botão direito
sobre o PrintBlock1 insira outro PrintBlock e
adicione os títulos correspondentes (CLIENTE e
TOTAL) utilizando a opção Label do Toolbox.
Depois, mova o PrintBlock2 para cima,
utilizando a opção que se desdobrar ao
pressionar o botão direito do mouse.

Deverá adicionar no Source o seguinte código:

Figura: Layout do Procedimento

6. Grave o procedimento.

Página 51
GeneXus X: Quick Start

7. Nas propriedades do procedimento que se


desdobram a sua direita, defina a propriedade
Main Program como TRUE e Call Protocol no
HTTP.

Figura: Propriedades do procedimento


8. Na aba de Regras insira a seguinte
sentença para definir o nome e tipo de
arquivo:

Output_file('Customers.PDF','PDF');

Figura: Regras do Procedimento


9. Para chamar este procedimento que
imprime os totais por cliente deveremos inserir
um botão na transação de notas fiscais. Para
isso, abra o objeto INVOICE. Dentro da aba
Web, abra o Tollbox e arraste um botão dentro
da transação.

Figura: Transação de notas fiscais

Página 52
GeneXus X: Quick Start

10. Edite as propriedades clicando direito


sobre o botão inserido. No Caption insira
Imprimir, no On clic Event define New, defina
Imprimir.

Figura: Propriedades da transação


11. Na aba de Eventos adicione o seguinte
código:

Event 'Imprimir'
CustomerReport.Call
EndEvent

Figura: Eventos da transação


12. Salve e execute pressionando F5. Insira
uma nova nota fiscal para testar a nova
funcionalidade inserida.

Figura: Execução da Aplicação

Página 53
GeneXus X: Quick Start

Passo 23: Implementação de um Procedimento para atualização


Agora realizaremos um procedimento que permita modificar em 10%.os preços vigentes

1. Criar um novo objeto do tipo Procedimento


chamado Discount_of_prices.

Figura: Procedimento Atualização de preços


2. Na aba de Source adicione o seguinte
código:

For each
ProductPrice =
ProductPrice+ProductPrice*0.10

Endfor

Figura: Source do Procedimento


3. Grave o procedimento criado.

4. Para chamar este procedimento, criaremos


um Web Panel. O Web Panel será nomeado
Control_Panel.

Página 54
GeneXus X: Quick Start

Figura: Web Panel Control_Panel


5. Na aba da Web Form insira um Button (do
menu Toolbox)

Figura: Web Form


6. Edite as propriedades do botão clicando
direito sobre o botão inserido. No caption
insira “Modificar preços”.

7. Posicionado sobre o botão, clique direito para


Editar o Evento (opção Go to Event). No
evento deverá realizar a chamada ao
procedimento:

Event Enter
Discount_of_prices.call()
EndEvent

Figura: Evento
8. Grave o Web Panel e execute pressionando
F5.

Figura: Execução da aplicação

Página 55
GeneXus X: Quick Start

PARTE 8: Multiplataforma

Tempo estimado: 5 minutos

Desenvolvimento Multiplataforma
GeneXus é uma ferramenta que permite gerar aplicações de missão crítica em múltiplas plataformas.
Uma vez que gerou e executou uma aplicação em um desses ambientes, gerar e executar a mesma
aplicação em outro ambiente é tão simples quanto definir um novo ambiente.

A GeneXus Trial Version oferece unicamente o gerador GeneXus .NET. No entanto, a versão completa
do GeneXus suporta as plataformas líderes do mercado. Visite http://www.genexus.com/technologies
para obter uma lista completa das tecnologias suportadas pelo GeneXus.

Página 56
GeneXus X: Quick Start

Resumo
Esperamos que este tutorial lhe tenha permitido experimentar as funcionalidades e benefícios chaves
do GeneXus:

Desenho de Aplicações baseado em Conhecimento

Começamos por criar uma Base de Conhecimento e descrever os requerimentos de dados de nossa
aplicação como uma série de componentes do negócio chamados Objetos Transação no Modelo de
Desenho da Base de Conhecimento. GeneXus usou esta informação para inferir o modelo de dados
ótimo (3ª. forma normal) requerido para suportar todas suas Transações. Também adicionamos
algumas regras do negócio nas que GeneXus se baseou para gerar o código da lógica do negócio da
aplicação.

Geração Automática da Base de dados

Escolhemos uma plataforma de execução específica (Web, linguagem de programação, DBMS, etc.) e
criamos um Modelo no qual GeneXus gerou automaticamente uma base de dados física com o modelo
de dados do Modelo de Desenho.

Geração Automática de Código e Protótipo Completamente Funcional

Geramos o código fonte para os programas de nossa aplicação e testamos a aplicação no ambiente de
protótipo.

Manutenção da Aplicação

Vimos como é simples manter/expandir uma aplicação, simplesmente editando os objetos GeneXus
existentes e/ou adicionando novos, e depois GeneXus atualiza a base de dados e regenera os
programas da aplicação em forma automática.

Desenho de Processos Não Interativo

Proporcionamos uma visão geral sobre o que são os procedimentos independentemente da estrutura
da base de dados da aplicação.

Desenvolvimento Multiplataforma

Finalmente, descrevemos como migrar facilmente sua aplicação GeneXus de um ambiente para outro.

Página 57
GeneXus X: Quick Start

FAQ

Question GeneXus gera 100% do código?

Sim, GeneXus desenha, gera e mantém a base de dados e o código da aplicação.

Question O código gerado usa runtimes?

Não. GeneXus gera código nativo na plataforma selecionada e não requer runtimes.

Question É possível utilizar estruturas de dados já existentes?

Sim, no GeneXus existe uma ferramenta (DBRET: Data Base Reverse Engineering) que permite
acessar BD existentes em distintas tecnologias.

Question É possível tocar o código gerado?

Sim, embora não é recomendável visto que se perdem os benefícios de manutenção automática e
independência da tecnologia. Em caso de querer utilizar código já existente, é possível fazer chamadas
dentro do GeneXus sem necessidade de modificar o código gerado.

Question Posso integrar controles (flash/Silverlight/JavaScript) em uma aplicação?

Sim, GeneXus permite integrar diferentes tipos de controles. Veja mais em


http://gallery.genexus.com/catalog.aspx?3 e em
http://wiki.gxtechnical.com/commwiki/servlet/hwiki?category%3AUser+Controls,

Página 58
GeneXus X: Quick Start

Question Qual é o conceito de Tabela Estendida?

Dada uma tabela base, sua tabela estendida é o grupo de atributos que são direta ou
indiretamente determinados pela chave da tabela base:

• Atributos que pertencem à tabela base.


• Atributos que pertencem a todas as tabelas que estão direta ou indiretamente relacionadas em
uma relação N a 1 com a tabela base.
Usos:

• O conceito de tabela estendida permite que os reportes e procedimentos GeneXus


permaneçam válidos quando a estrutura da base de dados muda.
• A tabela estendida também é também usada pelos objetos transação que podem inserir,
atualizar e eliminar atributos que pertencem às tabelas estendidas das tabelas base
referenciadas na estrutura da transação.

Para encontrar a tabela estendida de uma tabela dada é possível usar o Diagrama de Bachmann do
modelo de dados da base de conhecimento:

1. Sobre a opção Objects, crie um novo objeto do tipo Diagrams


2. Selecione as tabelas que deseja desdobrar e arraste-as.

Figura 3 Diagrama de Bachmann do Modelo de Dados

Neste exemplo, podemos identificar a tabela estendida de cada uma das tabelas de nosso projeto:

Tabela Base Tabela Estendida


Customer Customer
Invoice Invoice, Customer
InvoiceProduct InvoiceProduct, Invoice, Customer

Página 59
GeneXus X: Quick Start

Question Qual é o conceito de Tabela Estendida?

O comando “For Each” é o coração da linguagem de procedimentos usado pelo GeneXus para definir
reportes e procedimentos. Recupera e atualiza informação (mediante procedimentos online) a partir
de sua base de dados.

Com o comando For Each você pode definir a informação que deseja acessar e nomear os atributos
que deseja usar. GeneXus inferirá automaticamente as tabelas apropriadas em tempo de geração.
Quando a estrutura da base de dados mudar, as definições do For Each permanecerão válidas.

A sintaxe básica do For Each é a seguinte:


for each
print <something>
endfor

Cada comando For Each tem uma tabela de modelo de dados associada que será navegada. Está
composto da tabela base do For Each e sua tabela estendida (as tabelas de que GeneXus
necessita para procurar os atributos mencionados no comando).

• As tabelas que serão acessadas são determinadas pelos atributos contidos no comando For
Each.
• Para este grupo de atributos, GeneXus inferirá a mínima tabela estendida.
A tabela base deste grupo de atributos será a tabela base do For Each

Página 60
GeneXus X: Quick Start

Contatos e Recursos
A Comunidade GeneXus
A Comunidade GeneXus lhe oferece diversas formas de obter respostas a suas perguntas e soluções a
seus problemas, bem como também oportunidades para compartilhar suas próprias experiências.
Encontrará uma lista completa dos recursos disponíveis da Comunidade em
http://www.genexus.com/community/

Suporte
A Artech oferece uma ampla variedade de serviços e recursos de suporte:

• Suporte Auto-Serviço Online


Estes recursos estão disponíveis para todos online. No entanto, a informação que cada um possa
acessar depende de seu Nível de Acesso ao GXtechnical (Usuário Registrado ou Cliente).

• Serviços de Suporte Interativo


Interatue com outros membros da Comunidade ou com a Equipe de Suporte.

Visite http://www.genexus.com/support/

Se você mora nos Estados Unidos ou Canadá pode nos enviar suas perguntas a
gxtrial.usa@genexus.com

Como Comprar
As Tecnologias GeneXus são vendidas através da rede de distribuidores no mundo todo.

Encontre seu distribuidor mais próximo aqui http://www.genexus.com/distributors

Ou entre em contato com sales@genexus.com

Links recomendados
Web site: http://www.genexus.com
GeneXus X Basic Course: http://www.gxtechnical.com/basiccourse/
Laboratório prático do GeneXus X e Livro online: www.genexusx.com/aprenda
Comunidade GeneXus: http://www.genexus.com/community

Página 61

Você também pode gostar