GeneXus X: Quick Start - gxtechnical.com · GeneXus, assim como os nomes e logotipos GeneXus,...
Transcript of GeneXus X: Quick Start - gxtechnical.com · GeneXus, assim como os nomes e logotipos GeneXus,...
GeneXus X: Quick Start
Página 1
Copyright ARTech Consultores S. R. L. 1988-2010.
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.
GeneXus X: Quick Start
Página 2
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 21: Implementação de um Procedimento para impressão .............................................................. 50 Passo 22: 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
GeneXus X: Quick Start
Página 3
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:
GeneXus X: Quick Start
Página 4
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:
Se estiver nos Estados Unidos ou no Canadá poderá enviar consultas de suporte a:
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 [email protected]
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.
GeneXus X: Quick Start
Página 5
A seguir encontrará a lista do hardware e software necessário para executar GeneXus e as aplicações
geradas pelo GeneXus.
Requerimentos de
Hardware
Processador: mínimo 1 GHz (recomendado multi core)
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
Software
Microsoft Windows 2000, XP SP2, ou superior.
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). Sim é a primeira vez que instala SQL, creara-
se automaticamente uma Base de dados com o usuario “sa” e a clave “genexustrial”
GeneXus X: Quick Start
Página 6
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
GeneXus X: Quick Start
Página 7
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 [email protected].
GeneXus X: Quick Start
Página 8
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.
GeneXus X: Quick Start
Página 9
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.
GeneXus X: Quick Start
Página 10
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.
GeneXus X: Quick Start
Página 11
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.
GeneXus X: Quick Start
Página 12
!
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
continuar.
Figura: Dialog box para a criação de uma Base de Conhecimento
GeneXus X: Quick Start
Página 13
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.
2. Selecione o tipo de
objeto que deseja criar: Transaction
3. Dê nome ao Objeto: Invoice.
4. Clique em CREATE.
Figura: Criação de um objeto novo
Figura: Dialog box New Object
GeneXus X: Quick Start
Página 14
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
GeneXus X: Quick Start
Página 15
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).
GeneXus X: Quick Start
Página 16
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
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.
Figura: Estrutura da nota fiscal
!
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.
GeneXus X: Quick Start
Página 17
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.
GeneXus X: Quick Start
Página 18
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.
GeneXus X: Quick Start
Página 19
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.
GeneXus X: Quick Start
Página 20
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
InvoiceID
InvoiceDate
CustomerID
CustomerName
InvoceProduct
InvoiceID
ProductID
ProductName
ProductPrice
LineQuantity
GeneXus X: Quick Start
Página 21
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.
GeneXus X: Quick Start
Página 22
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.)
GeneXus X: Quick Start
Página 23
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.
GeneXus X: Quick Start
Página 24
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
GeneXus X: Quick Start
Página 25
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
GeneXus X: Quick Start
Página 26
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.
GeneXus X: Quick Start
Página 27
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
GeneXus X: Quick Start
Página 28
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á
todos os nomes de clientes que concordem
com o nome inserido pelo usuário. Estas
Figura: Janela de propriedades
GeneXus X: Quick Start
Página 29
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
GeneXus X: Quick Start
Página 30
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:
NO
TE
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.
GeneXus X: Quick Start
Página 31
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).
GeneXus X: Quick Start
Página 32
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.
GeneXus X: Quick Start
Página 33
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.
GeneXus X: Quick Start
Página 34
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
pressionando o botão de gravar ( )
Figura: GeneXus Theme Editor
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
GeneXus X: Quick Start
Página 35
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:
GeneXus X: Quick Start
Página 36
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
GeneXus X: Quick Start
Página 37
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
GeneXus X: Quick Start
Página 38
3. Chegou a hora de executar sua
aplicação!
Figura: Execução de sua aplicação
GeneXus X: Quick Start
Página 39
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
GeneXus X: Quick Start
Página 40
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
GeneXus X: Quick Start
Página 41
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
GeneXus X: Quick Start
Página 42
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.
7. Localizados dentro da grade, selecione a opção Insert, Attribute.
8. Selecione o atributo CustomerName e clique em OK.
Figura: Janela do Seletor do Free Style Grid
Figura: Web Panel
GeneXus X: Quick Start
Página 43
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 (Arrumar Colunas) clique em OK.
11. Gravar as mudanças oprimindo o diskette.
12. Executar pressionando F5.
Figura: Janela Insert Grid
Figura: Janela Web Panel com Grid
Figura: Execução da Aplicação
GeneXus X: Quick Start
Página 44
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)
GeneXus X: Quick Start
Página 45
5. Editamos suas
propriedades pressionando F4.
6. Como Name
colocamos ViewInvoicesPer 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.
9. Em execução,
selecionar a opção Work with Customers para ver o botão que invoca o Web panel
criado.
Figura: Modificação da instância do Pattern
Figura: Seleção de Objetos
Figura: Execução da Aplicação
GeneXus X: Quick Start
Página 46
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
GeneXus X: Quick Start
Página 47
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
GeneXus X: Quick Start
Página 48
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.
GeneXus X: Quick Start
Página 49
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
GeneXus X: Quick Start
Página 50
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 21: 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).
GeneXus X: Quick Start
Página 51
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:
6. Grave o procedimento.
Figura: Layout do Procedimento
GeneXus X: Quick Start
Página 52
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
GeneXus X: Quick Start
Página 53
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
GeneXus X: Quick Start
Página 54
Passo 22: 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.
GeneXus X: Quick Start
Página 55
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
GeneXus X: Quick Start
Página 56
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.
GeneXus X: Quick Start
Página 57
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.
GeneXus X: Quick Start
Página 58
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,
GeneXus X: Quick Start
Página 59
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
GeneXus X: Quick Start
Página 60
Question
Qual é o conceito de For Each?
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
GeneXus X: Quick Start
Página 61
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
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 [email protected]
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