Outubro 2011
Copyright ARTech Consultores S. R. L. 1988-2011. Todos os direitos reservados. Fica totalmente proibida a reproduo deste documento, por qualquer meio, sem autorizao expressa da Artech Consultores SRL. A informao contida neste documento exclusivamente para uso pessoal.
Marcas Registradas Artech e Genexus so marcas ou marcas registradas da Artech Consultores SRL. Todas as outras marcas citadas neste trabalho pertencem a seus respectivos donos.
Pgina 1
Introduo .............................................................................................................................................. 3 GeneXus Trial Version ............................................................................................................................. 3 Restries Funcionais .............................................................................................................................. 3 Restries de Licena .............................................................................................................................. 3 License Agreement ................................................................................................................................. 3 Suporte Tcnico...................................................................................................................................... 4 Instalao e Autorizao ......................................................................................................................... 4 Requerimentos de Instalao ................................................................................................................... 4 Requerimentos do Gerador .NET ............................................................................................................... 5 Autorizao ............................................................................................................................................ 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 aplicao ........................................................................................................... 10 Desenho de aplicaes baseado no conhecimento ..................................................................................... 10 Passo 0: Caso de estudo .................................................................................................................... 10 Passo 1: Entorno de desenvolvimento .................................................................................................. 11 Passo 2: Criao de uma Base de Conhecimento e definio do Environment ............................................ 11 Passo 3: Criao de um Objeto Transao ............................................................................................ 13 Passo 4: Descrio da Estrutura da Transao (Structure) ...................................................................... 14 Passo 5: Definio do Campos Calculados Frmulas ........................................................................... 18 Passo 6: Visualizao do Modelo de Dados inferido pelo GeneXus ............................................................ 19 Passo 7: Visualizao dos Formulrios do Objeto Transao.................................................................... 21 Passo 8: Execuo de sua Aplicao .................................................................................................... 23 Passo 9: Teste de sua Aplicao .......................................................................................................... 25 Passo 10: Adicionar Regras do Negcio Regras .................................................................................. 26 Passo 11: Criao do Objeto Transao Cliente ..................................................................................... 28 Passo 12: Reviso das Mudanas efetuadas ao Modelo de Dados ............................................................. 30 Passo 13: Visualizao do Reporte de Especificao ............................................................................... 32 Passo 14: Criao dos Formulrios Atraentes Temas .......................................................................... 34 PARTE 3: Manuteno ........................................................................................................................... 35 Desenvolvimento Incremental e Manuteno da Aplicao ......................................................................... 35 Passo 15: Incluso de Novos Objetos: Transao Produto ...................................................................... 35 Passo 16: Anlise e reorganizao da BD ............................................................................................. 37 PARTE 4: Adicionando funcionalidade ................................................................................................... 39 Utilizao de Padres no desenvolvimento ............................................................................................... 39 Passo 17: Aplicar um pattern .............................................................................................................. 39 PARTE 5: Dilogos interativos ............................................................................................................... 41 Desenho de Consultas e Dilogos Interativos (Web Panels) ........................................................................ 41 Passo 18: Criao de um Web Panel: Nota fiscal por cliente. ................................................................... 41 Passo 19: Execuo do Web Panel modificando a instncia do Pattern ..................................................... 44 PARTE 6: Enriquecendo a aplicao ....................................................................................................... 47 Controles de usurios ............................................................................................................................ 47 Passo 20: Implementao de um User Control ...................................................................................... 47 PARTE 7: Procedimentos ....................................................................................................................... 50 Desenho de Processos No Interativos (Procedimentos) ............................................................................ 50 Passo 21: Implementao de um Procedimento para impresso .............................................................. 51 Passo 22: Implementao de um Procedimento para atualizao............................................................. 55 PARTE 8: Multiplataforma ..................................................................................................................... 57 Desenvolvimento Multiplataforma ........................................................................................................... 57 Resumo ................................................................................................................................................. 58 FAQ ....................................................................................................................................................... 59 Contatos e Recursos .............................................................................................................................. 62 A Comunidade GeneXus ........................................................................................................................ 62 Suporte ............................................................................................................................................... 62 Como Comprar ..................................................................................................................................... 62 Links recomendados.............................................................................................................................. 62
Pgina 2
Introduo
O objetivo deste documento ajud-lo a descobrir o potencial da metodologia de desenvolvimento baseada no conhecimento proposta pelo GeneXus atravs de suas principais funcionalidades:
Desenho automtico de modelo de dados Gerao automtica de cdigo Manuteno automtica de base de dados e cdigo Desenvolvimento e instalao multiplataforma
Restries de Licena
A GeneXus Trial Version destina-se exclusivamente para avaliao e capacitao. Sua instalao local e para um nico usurio.
License Agreement
Condies de Uso da Licena de Propriedade Intelectual GeneXus X Trial Version
1. O presente acordo se refere licena da propriedade intelectual de exemplares da GeneXus X Trial Version, criao inteligente baseada em conhecimento, que desenha, gera e mantm automaticamente bases de dados e aplicaes. 2. Artech Consultores S.R.L. (doravante Artech) declara e o USURIO reconhece que a criao 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 conexo com o GeneXus, independentemente do fato de estarem registrados ou no, so propriedade da Artech. Este convnio no implica direta nem indiretamente transferncia alguma dessa propriedade e no habilita o USURIO a transferir as licenas objeto do presente documento. 3. O USURIO compromete-se a utilizar a GeneXus X Trial Version sem divulgar nem usar em proveito prprio nenhuma das idias e tcnicas que fazem possvel GeneXus. Em particular, obriga-se a no usar procedimentos de engenharia inversa para interpretar seu cdigo, nem a facilitar a outrem a faz-lo. 4. Em hiptese nenhuma o USURIO poder duplicar ou desativar os mecanismos de proteo contra uso no 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 USURIO a ferramenta GeneXus X Trial Version, nos seguintes termos e condies:
Pgina 3
a) Cada exemplar licenciado poder funcionar em um microcomputador por separado. O USURIO comprometese a no utilizar nenhum deles em mais de um microcomputador simultaneamente. b) A licena no exclusiva e intransfervel. Os programas gerados pela GeneXus X Trial Version no podero ser utilizados com fins comerciais. c) O USURIO utilizar os programas e documentao do GeneXus para seu uso exclusivo, com fins de avaliao exclusivamente e comprometendo-se a no entregar cpias de nenhum deles a terceiros. d) No existe responsabilidade alguma, implcita ou explcita, para a Artech, sobre eventuais prejuzos que puderem resultar para usurios em relao, direta ou indireta, com o uso da GeneXus X Trial Version. e) O USURIO compromete-se a utilizar a licena, seguindo as instrues e especificaes 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 aplicaes, dever contratar a verso comercializvel. g) A verso GeneXus X Trial ser ativada por 60 dias. Inclui unicamente o gerador .NET e suporta SQL como base de dados. Permite criar um mximo de 90 atributos e 140 objetos. 6. A instalao do produto de software licenciado implica a aceitao dos termos que antecedem.
Suporte Tcnico
Se precisar ajuda para a instalao e autorizao de sua verso trial, entre em contato com: gxtrial@genexus.com Se estiver nos Estados gxtrial.usa@genexus.com Unidos ou no Canad poder enviar consultas de suporte a:
Para saber mais sobre os diversos servios e recursos de suporte tcnico e capacitao do GeneXus visite: http://www.genexus.com/support e http://www.genexus.com/training Por informao adicional, entre em contato com seu http://www.genexus.com/distributors ou escreva-nos a info@genexus.com distribuidor local:
Instalao e Autorizao
Requerimentos de Instalao
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 manuteno de aplicaes de negcios, independentemente da plataforma de produo utilizada.
Geradores GeneXus
GeneXus gera cdigo nativo para as principais plataformas do mercado. Para conhecer a lista completa dos Geradores GeneXus visite: http://www.genexus.com/technologies. O gerador disponvel na GeneXus Trial Version o Gerador .NET.
Pgina 4
A seguir encontrar a lista do hardware e software necessrio para executar GeneXus e as aplicaes geradas pelo GeneXus.
Requerimentos de Hardware
Processador: mnimo 1 GHz (recomendado multi core) Memria: mnimo 1 GB de RAM (recomendado 2 GB) Disco rgido: Mnimo de 300 MB de espao em disco para a instalao. Para criar aplicaes GeneXus precisa-se espao adicional ou um disco compartilhado para criar as Bases de Conhecimento e o cdigo gerado.
Requerimentos de Software
Microsoft Windows 2000, XP SP2, ou superior Microsoft .NET Framework 3.5 SP1 ou superior Microsoft Internet Explorer 6.0 SP1 ou superior Microsoft SQL Server 2005 ou 2008 (Express, Standard ou qualquer outra Edio) 1
Gerador
.NET
Requerimentos
Microsoft .NET Framework 2.0 ou superior IIS 5.0 ou superior (disponvel no Windows 2000 ou XP) Fornecedor do ADO .NET para o DBMS utilizado
Para criar a base de dados de sua aplicao e executar as aplicaes geradas, requerer um dos seguintes DBMS:
SQL Server (Em qualquer de suas edies). Sim a primeira vez que instala SQL, creara-
Pgina 5
Autorizao
1. Execute o arquivo de setup da GeneXus Trial Version (genexusxtrial.exe) do menu de Incio do Windows ou selecionando a opo apropriada no CD de sua Verso Trial.
2. Siga os passos indicados pelo setup de instalao. 3. A primeira vez que usar a GeneXus Trial Verso dever autorizar o produto para poder inici-lo. A autorizao pode ser feita Online ou By Mail. A autorizao online recomendada se tiver uma conexo a Internet.
Pgina 6
4. Complete os campos solicitados: Nome, email e pas so obrigatrios enquanto que Companhia e Telefone so opcionais. 5. Em caso de ter requerido a opo Online e de ter ingressado os dados corretamente, a GeneXus X Trial Version ir se ativar em forma imediata por um perodo de 60 dias. 6. Se tiver escolhido a opo By Mail, GeneXus pedir inserir Nome e pas em forma obrigatria. Os campos Telefone e Companhia so opcionais. Dever confirmar os dados inseridos. Se os mesmos forem corretos pressione CONTINUAR. Se desejar modificar os valores inseridos pressione ANTERIOR. Esta ativao exige ter o Outlook configurado como email padro. O administrador de licenas gerar um mail com o Site Code correspondente. Voc receber seu Site Key via mail. 7. Se o Outlook no for seu email padro, pode solicitar ativao Manual, enviando de qualquer email os dados gerados pelo ativador de licenas. O Site Key de ativao 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 comear a usar sua GeneXus Trial Version! 9. Se precisar de ajuda para ativar a GeneXus X Trial Version escreva-nos a gxtrial@genexus.com.
Pgina 7
Neste exerccio passo a passo voc criar uma aplicao de negcios 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 aplicaes baseado no conhecimento Gerao inteligente de base de dados Gerao automtica de cdigo Aplicaes completamente funcionais Desenvolvimento incremental e manuteno automtica da aplicao Desenho de Processos no interativos (Procedimentos) Desenvolvimento em mltiplas plataformas
Simbologia utilizada
Este smbolo introduz um TIP. Recomendamos ler o que este dentro do quadro.
Pgina 8
O que o GeneXus?
Basicamente, o GeneXus um programa que faz programas.
uma ferramenta que parte das vises de usurios, e a partir da encapsula o conhecimento no que chamaremos Base de Conhecimento. GeneXus sistematiza esse conhecimento, e da automatiza o desenho, construo e manuteno da BD e dos programas.
Resumindo, o GeneXus uma ferramenta baseada no conhecimento que desenha, gera e mantm em forma automtica os programas e a base de dados para obter o desenvolvimento rpido de aplicaes crticas em mltiplas plataformas.
Pgina 9
Pgina 10
Janela principal: Est composta pela Start Page ou Pgina de Incio a qual, atravs de um RSS em forma dinmica, oferece informao tcnica relacionada com a ferramenta e a comunidade de usurios. Para obter esta informao necessrio estar conectado. Se sua equipe estiver desligada da Internet no poder acessar as novidades publicadas no GeneXus Community. Janela de ferramentas
Barras de ferramentas
Pgina 11
Environment
Para gerar e manter uma aplicao de trabalho em uma plataforma de software especfica, devemos definir um Environment. Um Environment integra todo o relacionado plataforma de execuo (Gerador, acesso a BD, interface de usurio e outras propriedades da plataforma). Para isto, especificamos um DBMS, uma linguagem alvo e alguns parmetros 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 no precisa ter um conhecimento profundo da plataforma alvo.
Se for a primeira vez que abre a GeneXus Trial e no executou previamente em sua equipe uma verso comercial do produto, GeneXus lhe indicar que proceder a executar a criao de uma base de conhecimento em forma automtica. A primeira vez que abrir a verso 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 opo New Knowledge Base. 2. Dar um nome Base de Conhecimento: Demo. 3. Selecionar um diretrio onde criar a KB. 4. Selecionar a linguagem a gerar. 5. Clicar em CREATE para continuar.
Figura: Dialog box para a criao de uma Base de Conhecimento
Pgina 12
Objeto Transao
Representa os objetos da realidade que dirige sua aplicao. Das transaes definidas infere-se o modelo de dados da aplicao (3. forma normal). GeneXus tambm usa o objeto transao para gerar o programa da aplicao que permitir ao usurio final, em forma interativa, inserir, apagar e atualizar registros na base de dados fsica.
O seguinte passo, uma vez criada a base de conhecimento ser criar a primeira transao, 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. Tambm 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.
5.
Pgina 13
1. Insira o nome, tipo de dado e descrio dos atributos na aba Structure da transao Invoice, como indicado na tabela a seguir. Use a tecla TAB para mover-se entre o nome, o tipo de dado e a descrio do atributo. Use a tecla ENTER para adicionar um novo atributo.
ATRIBUTO
InvoiceID InvoiceDate CustomerID CustomerName
TIPO
Numeric(4.0) Date Numeric(4.0) Character(20)
DESCRIO
Invoice ID Invoice Date Customer ID Customer Name
At aqui inserimos os campos do cabealho da nota fiscal. Agora iremos inserir as linhas. Para isso, pressione CTRL + Seta Direita para adicionar um Novo nvel estrutura de dados
Pgina 14
Pressione ENTER e depois CTRL + Seta Esquerda para voltar para o nvel do cabealho e comear os dados do rodap. InvoiceSubtotal InvoiceTax InvoiceTotal Numeric(8.2) Numeric(8.2) Numeric(8.2) Invoice Subtotal Invoice Tax Invoice Total
O primeiro atributo de cada nvel definido por defeito como chave primria desse nvel, mas possvel mudar isto clicando direito sobre o atributo e escolhendo a opo Toggle Key (Ctrl+K). Os atributos de Chave Primria se identificam por uma pequena chave esquerda de seus nomes ( ). Neste exemplo, InvoiceID o identificador de primeiro nvel, e o atributo ProductID o identificador de segundo nvel. Isto significa que, para um nmero de notas fiscal dado (InvoiceID), o valor do atributo ProductID no se repetir em linhas diferentes.
Pgina 15
3. Expanda a opo Type Definition e configure a propriedade Autonumber do InvoiceID no True. Os programas gerados atribuiro automaticamente um valor do InvoiceID a cada nova instncia da nota fiscal.
4. Salve a nova estrutura da transao oprimindo o boto com forma de diskette (Save) na barra de ferramentas Standard. Se esta barra no estiver visvel, desdobre-a clicando direito sobre a barra de menu (Opo Edit) Voc acaba de criar a estrutura de uma transao Nota Fiscal composta de dois nveis:
Um nvel bsico (Invoice ou Nota Fiscal), no qual se especifica toda a informao necessria para o Cabealho da Nota Fiscal. Um nvel aninhado, no qual se especifica a informao que se ir se repetir em cada linha de nota fiscal.
Observe que no utilizamos um nmero de linha como chave primria das linhas de nota fiscal. Esta uma deciso de desenho voluntria. Usando o ID de Produto como chave primria das linhas da nota fiscal, estamos definindo que no haver duas linhas na mesma nota fiscal para o mesmo produto.
Um elemento chave da Metodologia GeneXus a hiptese de que atributos com o mesmo nome so o mesmo atributo. Isto se chama Universal Relationship Assumption (URA) e, conforme essa hiptese:
Tudo o que for conceitualmente igual deve ter o mesmo nome. Os conceitos diferentes NO devem ter o mesmo nome.
Pgina 16
Isto nos permitir usar o mesmo atributo em outros objetos GeneXus (outras transaes, procedimentos, reportes, etc.) simplesmente fazendo referncia a seu nome. GeneXus estabelece as relaes (chaves forneas) entre as tabelas do modelo de dados com base nos nomes dos atributos.
Objeto: a entidade real descrita pelo atributo. Geralmente (mas nem sempre) o nome da transao na qual um atributo foi definido para poder ser armazenado em uma das tabelas associadas a essa transao (isto significa que no deveria inferirse nessa transao especfica). Exemplos: Nota Fiscal, Cliente, Produto, Linha. Categoria: a categoria semntica do atributo. Define o papel que o atributo ter dentro do objeto e no ambiente da transao. Exemplos: Identificao, Data, Nota Fiscal, Descrio, etc. O Qualificador e o Complemento so componentes opcionais. Exemplos: Incio, Fim, Mnimo, Mximo, etc.
Pgina 17
Salvo especificao contrria, os atributos definidos como frmulas no so armazenados na base de dados (so atributos virtuais). As frmulas so globais; so vlidas em toda a base de conhecimento e no apenas dentro da transao na qual foram definidas. Isto significa que a frmula calculada cada vez que o atributo invocado de uma transao ou de outros objetos GeneXus (Reportes, Work Panels, etc.) Variveis Definidas pelo Usurio. No podem participar de uma frmula porque so locais em relao aos objetos nos quais foram definidas e no tm valor fora deles.
InvoiceSubTotal = SUM(LineTotal) InvoiceTaxes= InvoiceSubTotal * 0.11 (ou o nmero que corresponder) InvoiceTotal = InvoiceSubtotal + InvoiceTax
1. Clique duplo no campo Formula do atributo LineTotal ( direita da descrio do atributo). 2. Escreva o seguinte: ProductPrice * LineQuantity. Tambm possvel clicar no boto sobre o campo da frmula para abrir o Editor de Frmula. 3. Repita os Passos 1 e 2 para o resto das frmulas que aparecem na lista no incio desta seo. 4. Clique Save para salvar as novas frmulas.
Pgina 18
Toda vez que clicar no boto Salvar, GeneXus inferir o modelo de dados timo (3. forma normal sem redundncias) que suporte as entidades do usurio final representadas pelos objetos de sua transao GeneXus. Embasado neste modelo de dados, GeneXus gerar uma base de dados fsica quando voc definir um DBMS objetivo para um modelo.
Os nomes das tabelas e ndices so atribudos automaticamente pelo GeneXus pelo nome da transao, mas podem ser modificados se for necessrio. GeneXus infere um modelo de dados em 3. forma normal, sem redundncias. No obstante, podem definir-se redundncias que sero automaticamente gerenciadas pelo GeneXus. A chave primria da tabela correspondente a uma transao de nvel N se obtm concatenando identificadores dos N-1 nveis aninhados previamente com o identificador de nvel N.
Pgina 19
1. No menu da esquerda, selecione Tables. 2. GeneXus mostrar a estrutura de dados inferidas a partir da transao.
O Rol da Base de dados acima mostra que GeneXus inferiu automaticamente um modelo de dados normalizado, criando duas tabelas para suportar o objeto transao Invoice, Invoice (o cabealho da nota fiscal) e InvoiceProduct (as linhas da nota fiscal), com a seguinte estrutura:
Pgina 20
Observe que:
A chave primria da tabela InvoceProduct est formada por dois atributos: InvoiceID e ProductID (a concatenao do identificador de primeiro nvel, InvoiceID, com o identificador do segundo nvel, ProductID). GeneXus eliminou automaticamente das tabelas os atributos que se definiram como frmulas e os converteu em frmula globais para poder acess-las de qualquer lugar dentro da base de conhecimento. Na tabela Invoice: o No 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 No 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.
Formulrio Web
Depois de salvar um novo Objeto Transao, o GeneXus cria automaticamente um Formulrio Web predeterminado para especificar como o usurio final ir acessar os dados na aplicao. Estes formulrios podem ser personalizados pelo analista do negcio mais tarde.
Pgina 21
Error Viewer: ctlError o controle predeterminado onde se desdobram mensagens de erro. Pode se localizar em qualquer lugar do formulrio e configurar-lhe propriedades. As mensagens possveis so as que se desdobram no Msg e regras de Erro, e os controles automticos do GeneXus (quer dizer, integridade referencial, erros tipo de dados, etc.). Estes formulrios habilitaro os usurios finais a entrar novas notas fiscais que iro se inserir como novos registros nas tabelas correspondentes. Os usurios tambm podero atualizar ou eliminar as notas fiscais existentes, desde que tiverem os direitos para faz-lo.
O analista do GeneXus no precisa programar nenhuma destas aes porque esto implcitas na lgica da transao. GeneXus gerar automaticamente o cdigo nativo correspondente na linguagem selecionada.
Tenha em conta que ao definir transaes GeneXus se est: Explicitamente: descrevendo a interface de usurio para a apresentao e captura de dados. Implicitamente: desenhando o modelo de dados da aplicao (tabelas, ndices, etc.)
Pgina 22
Neste passo, executaremos a aplicao em .NET usando SQL Server como nosso DBMS. Na verso 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
Pgina 23
2. O Ajudante vai gui-lo na configurao da BD. Configure o seguinte: Database name: Demo Server name: localhost Use trusted connection: Yes Clique no boto Finish para continuar.
4. Clique em CREATE. GeneXus escrever o cdigo para a criao das tabelas e os programas necessrios na linguagem selecionada para acessar a BD.
Figura: Output
Pgina 24
1. O Menu do Desenvolvedor um arquivo XML que inclui todos seus objetos executveis. um menu auxiliar para testar sua aplicao. Clique na opo Invoice.
Figura: Menu do Desenvolvedor
2. Insira algumas instncias de nota fiscal. Graas tecnologia AJAX, as frmulas se calculam automaticamente, sem necessidade de recarregar a pgina inteira.
Pgina 25
Regras GeneXus
As Regras GeneXus so o meio para definir a lgica do negcio associada a cada objeto. So 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 transao porque permitem programar seu comportamento (por exemplo: atribuindo valores predeterminados, definindo controles de dados, etc.).
Podem envolver atributos definidos na estrutura da transao, bem como variveis e funes. As Regras so programadas em forma declarativa, isto , a ordem na qual se escrevem no necessariamente a ordem na qual vo ser executadas. A ordem de execuo adequada automaticamente determinada pelo GeneXus.
So vlidas unicamente na transao em que foram definidas. Por isso falamos que so 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 transao Invoice. 2. Utilizaremos a regra Default que atribui um valor predeterminado a um atributo ou varivel. 3. Complete a frmula 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 boto de salvar.
Tenha em conta que voc poder tambm usar as opes Inserir / Atributo e Inserir / Frmula do menu Inserir para completar a regra.
Pgina 26
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") LineQuantity.IsEmpty(); 6. Clique no boto de salvar. if
Pgina 27
Observe que quando comea a escrever os atributos CustomerID e CustomerName, GeneXus lhe indica o nome completo do atributo e seu tipo e descrio. Isto acontece porque estes atributos j esto definidos em sua base de dados.
3. Pressione o boto 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 atribuiro automaticamente um valor CustomerID a cada nova instncia de Cliente. 5. Ative o suggest para o cdigo do cliente, posicionando-se sobre as propriedades do Customer ID, dentro da opo 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 aplicao automaticamente inferir seu ID. A propriedade suggest lhe sugerir todos os nomes de clientes que concordem com o nome inserido pelo usurio. Estas
Pgina 28
propriedades so parte da implementao do AJAX que o GeneXus faz automaticamente. O Formulrio Web da transao Cliente ser visto como exibe a seguinte figura.
Observe (a seguir) que o Formulrio Web da Nota fiscal tambm mudou, refletindo as mudanas nas propriedades do atributo CustomerID: o atributo CustomerName agora o da descrio do atributo CustomerID. Isto melhorar notavelmente a Usabilidade da aplicao como veremos rapidamente!
Pgina 29
Anlise de Impacto
Descreve as mudanas fsicas que devero se realizar para atualizar o novo modelo de dados inferido pelo GeneXus.
Comprovar que GeneXus normalizou automaticamente seu modelo de dados depois de ter includo a nova transao. Mostra-nos que a tabela Invoice ser afetada, eliminando o atributo CustomerName da tabela Invoice j que o mesmo pode ser inferido atravs do CustomerID.
NOTE
Em warning de especificao referese a que pode haver valores duplicados de clientes na tabela Invoice que ao serem normalizados, pode afetar. Tambm se mostra outro warning indicando que os registros que iro se criar tm valor nulo nas tabelas.
Pgina 30
Observe que: GeneXus adicionou uma nova tabela: a tabela Customer (associada transao 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 No 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 No pode haver duas notas fiscais com o mesmo InvoiceID. o O atributo CustomerID na tabela Invoice uma chave fornea tirada da tabela Cliente. portanto, existe uma relao de um a muitos entre Clientes e notas fiscais: Por cada InvoiceID existe unicamente um CustomerID. Cada CustomerID pode ter muitas notas fiscais (InvoiceID).
Pgina 31
Reporte de Especificao
Descreve como se executar o programa, quais tabelas acessar (e como) e quais operaes realizar.
Referential Integrity controls on delete (Controles de integridade referencial ao excluir) significa que quando voc exclui um cliente da transao Cliente, o programa verificar que no existam notas fiscais para esse cliente. Para realizar esta busca com eficincia, usa-se o ndice de fora CustomerID da tabela Nota fiscal.
Pgina 32
Integridade Referencial na transao Nota fiscal: A chave fornea CustomerID no nvel INVOICE significa que quando voc insere ou atualiza uma nota fiscal usando a Transao INVOICE automaticamente se controlar se o valor inserido na chave fornea CustomerID j existe como chave primria de um registro na tabela Cliente. Para realizar esta busca com eficincia, usa-se o ndice primrio CustomerID da tabela Cliente. O controle de integridade referencial valida que um atributo inserido (por exemplo, CustomerID em uma Nota fiscal) vlido, mas no proporciona informao sobre quais so os valores vlidos. Para facilitar a busca dos valores vlidos, GeneXus cria objetos Lista de Seleo (prompts) que mostram o grupo completo de valores vlidos para escolher os que correspondam.
Pgina 33
Objeto Tema
O objeto GeneXus Tema melhora o desenvolvimento e manuteno das aplicaes Web separando as tarefas do analista do negcio das do desenhador Web.
Criam-se Formulrios Web baseados num Objeto Tema predeterminado. Voc pode criar novos Temas e associ-los totalidade de sua Base de Conhecimento ou a objetos especficos dentro dela.
1. No menu da esquerda, dentro do menu Customization selecione a opo Themes (clicando duplo). 2. Abra a formulrio 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 opo BACKGROUNDCOLOR 4. Salve as mudanas realizadas pressionando o boto de gravar ( )
Figura: GeneXus Theme Editor
5. Se voltar a abrir o objeto INVOICE na aba da Web Form ver refletidos as mudanas realizadas. Nota: para ver a mudanas, caso no o consiga, dever fechar e abrir a transao se ela estava previamente aberta.
Pgina 34
PARTE 3: Manuteno
Tempo estimado: 15 minutos
Pgina 35
1. Crie a transao Produto seguindo o Passo 3: Estrutura da transao Produto: ATRIBUTO ProductID ProductName ProductPrice TIPO -------------------------
e o
DESCRIO ----------------------------------------------------------
Notar que assim que comear a escrever estes nomes de atributo, o GeneXus lhe indicar o nome completo. Isto acontece porque estes atributos j esto definidos em sua Base de Conhecimento.
A estrutura (Structure) da transao Product e seu Formulrio Web iro se ver da seguinte forma.
Pgina 36
Figura: Lista de Base de dados (Modelo de Dados) para o InvoiceProduct e tabelas Produto
1. Selecione Reorganize.
Pgina 37
Pgina 38
Patterns ou Padres
So aes similares aplicadas a diferentes elementos. Os padres permitem criar automaticamente todos os objetos necessrios para cumprir a funcionalidade especificada, evitando ter que faz-lo manualmente.
Pgina 39
3. Sobre as transaes selecionados clique direito, opo Apply Pattern, Work With. 4. Grave as mudanas. 5. Pressione F5 para executar a aplicao. Observamos que j no temos acesso s transaes. O que temos um acesso a nosso Trabalhar com Customer, Invoice e Product. 6. Execute a aplicao O pattern adicionou a seguinte funcionalidade: Filtro por data, sem necessidade de refrescar a aplicao. Pode-se ordenar pelas colunas clicando no cabealho 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 histrico com os links visitados.
Pgina 40
Web Panels
Os Web Panels so usados para fazer dilogos 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 so programados usando uma linguagem simples dirigida por eventos.
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.
Pgina 41
5. Aparecer o Formulrio vazio do Web Panel. No menu View, selecione Other Tool Windows, opo Toolbox. Arrastar um controle Free Style Grid. 6. Expanda a grade.
7. Localizados dentro da grade, selecione a opo Insert, Attribute. 8. Selecione o atributo CustomerName e clique em OK.
Pgina 42
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 relao entre as tabelas de maneira tal de arrolar as notas fiscais por cada Cliente.
Pgina 43
2. Vamos adicionar uma ao a esta instncia do Pattern e vamos associla a um boto fora da grade convocando o Web Panel Nota fiscal por Cliente. 3. Posicionar o boto direito sobre a opo Selection (Work With Customers) e escolher a opo ADD, Actions.
Pgina 44
Action)
6. Como Name colocamos ViewInvoicesPer Customer, como Caption tambm e no GXObject selecionamos o Web Panel InvoicesPerCustomer. 7. Salvamos as mudanas
9. Em execuo, selecionar a opo Work with Customers para ver o boto que invoca o Web panel criado.
Pgina 45
Pgina 46
Controles de usurios
User Controls
So controles Web que podem ser inseridos no form de qualquer objeto Web do GeneXus e que vo aumentar notoriamente a funcionalidade e aparncia de nossa aplicao. alm dos user controls padres providos (Chart, Image Galery, Map, Treeview), GeneXus nos prov de um Editor do User Controls atravs do qual poderemos modificar os user controls j existentes e criar nossos prprios user controls e incorporlos ao GeneXus.
Nosso objetivo ser representar em forma grfica as vendas por produto. Para cumprir este requerimento vamos usar o User Control Chart.
Pgina 47
Figura: Chart
Figura: Eventos
Pgina 48
PARABNS!
Voc criou com sucesso primeira aplicao com o GeneXus. Nosso prximo passo oferecer-lhe maior informao sobre as coisas que podem ser feitas com o GeneXus.
Pgina 49
PARTE 7: Procedimentos
Tempo estimado: 15 minutos
Procedimentos
At o momento trabalhamos com os Objetos Transao que so objetos GeneXus que requerem a interveno do usurio para inserir, atualizar e eliminar registros na base de dados. No obstante, muitas vezes precisamos realizar tarefas sem a interveno do usurio. Para isso, usamos outro tipo de Objetos GeneXus:
Procedimentos: Definem processos no interativos para consultar e atualizar a base de dados. Os procedimentos so usados para definir funes 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 Transao. Isto significa que a definio destes objetos baseia-se em nomes de atributos e no nas tabelas da base de dados onde os atributos so armazenados. Portanto, a definio de seus Procedimentos permanece vlida 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).
Processo de alto nvel: Os Procedimentos especificam-se em um processo de muito alto nvel. A seqncia de execuo determinada pelo analista usando uma linguagem de processo simples que inclui controle, impresso, acesso a dados e outros comandos. Baseados em Conhecimento: O cdigo fonte dos Procedimentos refere-se a nomes de atributos na Base de Conhecimento, no a sua localizao na base de dados fsica (do Modelo de Prottipo ou Produo). Portanto: o O GeneXus sabe onde encontrar os atributos na base de dados fsica. o O GeneXus conhece as relaes entre as tabelas na base de dados fsica. o Os Atributos Frmula so inferidos automaticamente pelo GeneXus.
Pgina 50
Nosso objetivo ser criar um procedimento que arrole todos nossos clientes junto a seu total e outro que permita modificar em 10% os preos vigentes.
3. Ir aba de Layout. Inserir o atributo Customer Name (para isso v opo Insert/Attribute).
Pgina 51
5. Utilizando o Toolbox voc pode botar desenho em seu reporte (inserir Labels, Linhas, etc.). Por exemplo, com o boto direito sobre o PrintBlock1 insira outro PrintBlock e adicione os ttulos correspondentes (CLIENTE e TOTAL) utilizando a opo Label do Toolbox. Depois, mova o PrintBlock2 para cima, utilizando a opo que se desdobrar ao pressionar o boto direito do mouse. Dever adicionar no Source o seguinte cdigo:
6. Grave o procedimento.
Pgina 52
7. Nas propriedades do procedimento que se desdobram a sua direita, defina a propriedade Main Program como TRUE e Call Protocol no HTTP.
8. Na aba de Regras insira a seguinte sentena para definir o nome e tipo de arquivo:
Output_file('Customers.PDF','PDF');
9. Para chamar este procedimento que imprime os totais por cliente deveremos inserir um boto na transao de notas fiscais. Para isso, abra o objeto INVOICE. Dentro da aba Web, abra o Tollbox e arraste um boto dentro da transao.
Pgina 53
10. Edite as propriedades clicando direito sobre o boto inserido. No Caption insira Imprimir, no On clic Event define New, defina Imprimir.
12. Salve e execute pressionando F5. Insira uma nova nota fiscal para testar a nova funcionalidade inserida.
Pgina 54
3. Grave o procedimento criado. 4. Para chamar este procedimento, criaremos um Web Panel. O Web Panel ser nomeado Control_Panel.
Pgina 55
6. Edite as propriedades do boto clicando direito sobre o boto inserido. No caption insira Modificar preos.
7. Posicionado sobre o boto, clique direito para Editar o Evento (opo Go to Event). No evento dever realizar a chamada ao procedimento:
Figura: Evento
Pgina 56
PARTE 8: Multiplataforma
Tempo estimado: 5 minutos
Desenvolvimento Multiplataforma
GeneXus uma ferramenta que permite gerar aplicaes de misso crtica em mltiplas plataformas. Uma vez que gerou e executou uma aplicao em um desses ambientes, gerar e executar a mesma aplicao em outro ambiente to simples quanto definir um novo ambiente. A GeneXus Trial Version oferece unicamente o gerador GeneXus .NET. No entanto, a verso completa do GeneXus suporta as plataformas lderes do mercado. Visite http://www.genexus.com/technologies para obter uma lista completa das tecnologias suportadas pelo GeneXus.
Pgina 57
Resumo
Esperamos que este tutorial lhe tenha permitido experimentar as funcionalidades e benefcios chaves do GeneXus:
Desenho de Aplicaes baseado em Conhecimento Comeamos por criar uma Base de Conhecimento e descrever os requerimentos de dados de nossa aplicao como uma srie de componentes do negcio chamados Objetos Transao no Modelo de Desenho da Base de Conhecimento. GeneXus usou esta informao para inferir o modelo de dados timo (3. forma normal) requerido para suportar todas suas Transaes. Tambm adicionamos algumas regras do negcio nas que GeneXus se baseou para gerar o cdigo da lgica do negcio da aplicao.
Gerao Automtica da Base de dados Escolhemos uma plataforma de execuo especfica (Web, linguagem de programao, DBMS, etc.) e criamos um Modelo no qual GeneXus gerou automaticamente uma base de dados fsica com o modelo de dados do Modelo de Desenho.
Gerao Automtica de Cdigo e Prottipo Completamente Funcional Geramos o cdigo fonte para os programas de nossa aplicao e testamos a aplicao no ambiente de prottipo.
Manuteno da Aplicao Vimos como simples manter/expandir uma aplicao, simplesmente editando os objetos GeneXus existentes e/ou adicionando novos, e depois GeneXus atualiza a base de dados e regenera os programas da aplicao em forma automtica.
Desenho de Processos No Interativo Proporcionamos uma viso geral sobre o que so os procedimentos independentemente da estrutura da base de dados da aplicao.
Desenvolvimento Multiplataforma Finalmente, descrevemos como migrar facilmente sua aplicao GeneXus de um ambiente para outro.
Pgina 58
FAQ
Question GeneXus gera 100% do cdigo?
Question
Question
Sim, no GeneXus existe uma ferramenta (DBRET: Data Base Reverse Engineering) que permite acessar BD existentes em distintas tecnologias.
Question
Sim, embora no recomendvel visto que se perdem os benefcios de manuteno automtica e independncia da tecnologia. Em caso de querer utilizar cdigo j existente, possvel fazer chamadas dentro do GeneXus sem necessidade de modificar o cdigo gerado.
Question
Veja
mais
em em
Pgina 59
Question
Dada uma tabela base, sua tabela estendida o grupo de atributos que so direta ou indiretamente determinados pela chave da tabela base:
Usos:
Atributos que pertencem tabela base. Atributos que pertencem a todas as tabelas que esto direta ou indiretamente relacionadas em uma relao N a 1 com a tabela base. O conceito de tabela estendida permite que os reportes e procedimentos GeneXus permaneam vlidos quando a estrutura da base de dados muda. A tabela estendida tambm tambm usada pelos objetos transao que podem inserir, atualizar e eliminar atributos que pertencem s tabelas estendidas das tabelas base referenciadas na estrutura da transao.
Para encontrar a tabela estendida de uma tabela dada possvel usar o Diagrama de Bachmann do modelo de dados da base de conhecimento: 1. Sobre a opo Objects, crie um novo objeto do tipo Diagrams 2. Selecione as tabelas que deseja desdobrar e arraste-as.
Neste exemplo, podemos identificar a tabela estendida de cada uma das tabelas de nosso projeto: Tabela Base Customer Invoice InvoiceProduct Tabela Estendida Customer Invoice, Customer InvoiceProduct, Invoice, Customer
Pgina 60
Question
O comando For Each o corao da linguagem de procedimentos usado pelo GeneXus para definir reportes e procedimentos. Recupera e atualiza informao (mediante procedimentos online) a partir de sua base de dados. Com o comando For Each voc pode definir a informao que deseja acessar e nomear os atributos que deseja usar. GeneXus inferir automaticamente as tabelas apropriadas em tempo de gerao. Quando a estrutura da base de dados mudar, as definies do For Each permanecero vlidas. A sintaxe bsica 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 sero acessadas so determinadas pelos atributos contidos no comando For Each. Para este grupo de atributos, GeneXus inferir a mnima tabela estendida. A tabela base deste grupo de atributos ser a tabela base do For Each
Pgina 61
Contatos e Recursos
A Comunidade GeneXus
A Comunidade GeneXus lhe oferece diversas formas de obter respostas a suas perguntas e solues a seus problemas, bem como tambm oportunidades para compartilhar suas prprias experincias. Encontrar uma lista completa dos recursos disponveis da Comunidade em http://www.genexus.com/community/
Suporte
A Artech oferece uma ampla variedade de servios e recursos de suporte: Suporte Auto-Servio Online Estes recursos esto disponveis para todos online. No entanto, a informao que cada um possa acessar depende de seu Nvel de Acesso ao GXtechnical (Usurio Registrado ou Cliente). Servios 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 so vendidas atravs da rede de distribuidores no mundo todo. Encontre seu distribuidor mais prximo aqui http://www.genexus.com/distributors Ou entre em contato com sales@genexus.com
Links recomendados
Web site: http://www.genexus.com GeneXus X rea de capacitao: http://training.genexus.com Comunidade GeneXus: http://www.genexus.com/community
Pgina 62