Está en la página 1de 62

GeneXus X: Quick Start

Julio 2008

GeneXus X: Quick Start

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


Todos los derechos reservados. Este documento no puede ser reproducido en cualquier medio sin el consentimiento
explcito de ARTech Consultores S.R.L. La informacin contenida en este documento es para uso personal
nicamente.

Marcas Registradas
ARTech y GeneXus son marcas o marcas registradas de ARTech Consultores S.R.L. Todas las dems marcas
mencionadas en este documento son propiedad de sus respectivos dueos.

Pgina 1

GeneXus X: Quick Start

Introduccin ........................................................................................................................................... 3
GeneXus Trial Version ............................................................................................................................. 3
Restricciones Funcionales......................................................................................................................... 3
Restricciones de Licencia ......................................................................................................................... 3
License Agreement ................................................................................................................................. 3
Soporte Tcnico ...................................................................................................................................... 4
Instalacin y Autorizacin ....................................................................................................................... 4
Requerimientos de Instalacin .................................................................................................................. 4
Requerimientos del Generador .NET .......................................................................................................... 5
Autorizacin ........................................................................................................................................... 6
PRIMEROS PASOS: Tutorial paso a paso .................................................................................................. 8
Simbologa utilizada ................................................................................................................................ 8
PARTE 1: Descubriendo GeneXus ............................................................................................................ 9
Qu es GeneXus? .................................................................................................................................. 9
PARTE 2: Su primera aplicacin............................................................................................................. 10
Diseo de aplicaciones basado en el conocimiento .................................................................................... 10
Paso 0: Caso de estudio ..................................................................................................................... 10
Paso 1: Entorno de desarrollo ............................................................................................................. 11
Paso 2: Creacin de una Base de Conocimiento y definicin del Enviroment.............................................. 11
Paso 3: Creacin de un Objeto Transaccin .......................................................................................... 13
Paso 4: Descripcin de la Estructura de la Transaccin (Structure) .......................................................... 14
Paso 5: Definicin de Campos Calculados  Frmulas ............................................................................ 18
Paso 6: Visualizando del Modelo de Datos inferido por GeneXus .............................................................. 19
Paso 7: Visualizacin de los Formularios del Objeto Transaccin .............................................................. 21
Paso 8: Ejecucin de su Aplicacin ...................................................................................................... 23
Paso 9: Prueba de su Aplicacin .......................................................................................................... 25
Paso 10: Agregar Reglas del Negocio  Reglas ..................................................................................... 26
Paso 11: Creacin del Objeto Transaccin Cliente .................................................................................. 28
Paso 12: Revisin de los Cambios efectuados al Modelo de Datos ............................................................ 30
Paso 13: Visualizacin del Reporte de Especificacin .............................................................................. 32
Paso 14: Creacin de los Formularios Atrayentes  Temas ..................................................................... 34
PARTE 3: Mantenimiento ....................................................................................................................... 35
Desarrollo Incremental y Mantenimiento de la Aplicacin ........................................................................... 35
Paso 15: Inclusin de Nuevos Objetos: Transaccin Producto ................................................................. 35
Paso 16: Anlisis y reorganizacin de la BD .......................................................................................... 37
PARTE 4: Agregando funcionalidad ....................................................................................................... 39
Utilizacin de Patrones en el desarrollo .................................................................................................... 39
Paso 17: Aplicar un pattern ................................................................................................................ 39
PARTE 5: Dilogos interactivos ............................................................................................................. 41
Diseo de Consultas y Dilogos Interactivos (Web Panels) ......................................................................... 41
Paso 18: Creacin de un Web Panel: Facturas por cliente. ...................................................................... 41
Paso 19: Ejecucin del Web Panel modificando la instancia del Pattern..................................................... 44
PARTE 6: Enriqueciendo la aplicacin .................................................................................................... 46
Controles de usuarios ............................................................................................................................ 46
Paso 20: Implementacin de un User Control........................................................................................ 46
PARTE 7: Procedimientos ...................................................................................................................... 49
Diseo de Procesos No Interactivos (Procedimientos) ................................................................................ 49
Paso 21: Implementacin de un Procedimiento para impresin ............................................................... 50
Paso 22: Implementacin de un Procedimiento para actualizacin ........................................................... 54
PARTE 8: Multiplataforma ..................................................................................................................... 56
Desarrollo Multiplataforma ..................................................................................................................... 56
Resumen ............................................................................................................................................... 57
FAQ ....................................................................................................................................................... 58
Contactos y Recursos ............................................................................................................................ 61
La Comunidad GeneXus ......................................................................................................................... 61
Soporte ............................................................................................................................................... 61
Como Comprar ..................................................................................................................................... 61
Links recomendados.............................................................................................................................. 61

Pgina 2

GeneXus X: Quick Start

Introduccin
El objetivo de este documento es ayudarlo a descubrir el potencial de la metodologa de desarrollo
basada en el conocimiento propuesta por GeneXus a travs de sus principales funcionalidades:

Diseo automtico de modelo de datos


Generacin automtica de cdigo
Mantenimiento automtico de base de datos y cdigo
Desarrollo e instalacin multi-plataforma

GeneXus Trial Version


Restricciones Funcionales
La GeneXus Trial Version es completamente funcional y el generador disponible (.NET) es autorizado
mediante una nica Site Key (con expiracin a los 60 das de su activacin). No obstante, se aplican
algunas restricciones respecto al nmero mximo de objetos y atributos GeneXus que se pueden crear
para una Base de Conocimiento dada:

90 atributos
140 objetos.

Restricciones de Licencia
La GeneXus Trial Version puede ser utilizada exclusivamente para evaluacin y capacitacin. Su
instalacin es local y para un solo usuario.

License Agreement
Condiciones de Uso de la Licencia de Propiedad Intelectual GeneXus X Trial Version
1. El presente acuerdo se refiere a licencia de la propiedad intelectual de ejemplares de GeneXus X Trial Version,
creacin inteligente basada en conocimiento, que disea, genera y mantiene automticamente, bases de datos y
aplicaciones.
2. Artech Consultores S.R.L. (en adelante Artech) declara y el USUARIO reconoce que la creacin intelectual
GeneXus, as como los nombres y logotipos GeneXus, GXflow, GXplorer , GXportal, GXquery y Artech como
cualquier otra marca comercial (trademark) que introduzca Artech en conexin con GeneXus, con independencia
del hecho de que estn registrados o no, son propiedad de Artech. Este convenio no implica directa ni
indirectamente transferencia alguna de esa propiedad y no habilita al USUARIO a transferir las licencias objeto del
presente documento.
3. El USUARIO se compromete a utilizar GeneXus X Trial Version sin divulgar ni usar en provecho propio
cualquiera de las ideas y tcnicas que hacen posible GeneXus. En particular, se obliga a no usar procedimientos de
ingeniera inversa para interpretar su cdigo, ni facilitar a otros que lo hagan.
4. En ningn caso el USUARIO podr duplicar o desactivar los mecanismos de proteccin contra uso no autorizado
de GeneXus. Artech se reserva el derecho de cambiar en cualquier momento estos mecanismos y/o adicionar
otros nuevos.
5. Observando las bases generales, Artech licencia al USUARIO la herramienta GeneXus X Trial Version, bajo
las siguientes condiciones:

Pgina 3

GeneXus X: Quick Start

a) Cada ejemplar licenciado podr funcionar en un microcomputador separado. El USUARIO se compromete a


no utilizar ninguno de ellos en ms de un microcomputador simultneamente.
b) La licencia es no exclusiva e intransferible. Los programas generados por GeneXus X Trial Version no
podrn ser utilizados con fines comerciales.
c) El USUARIO utilizar los programas y documentacin de GeneXus para su uso exclusivo, con fines de
evaluacin exclusivamente y comprometindose a no entregar copias de cualquiera de ellos a terceros.
d) No existe responsabilidad alguna, implcita o explcita, para Artech, sobre eventuales perjuicios que puedan
resultar para usuarios en relacin, directa o indirecta, con el uso de GeneXus X Trial Version.
e) El USUARIO se compromete a utilizar la licencia, siguiendo las instrucciones y especificaciones que constan
en el material asociado al mismo.
f) Cualquier uso comercial de GeneXus X Trial Version, en forma parcial o completa, no es autorizada. Para
desarrollar ese tipo de aplicaciones, deber contratar la versin comercializable.
g) La versin GeneXus X Trial se activar por 60 das. Incluye nicamente el generador .NET y soporta SQL
como base de datos. Permite crear un mximo de 90 atributos y 140 objetos.
6. La instalacin del producto de software licenciado implica la aceptacin de los trminos que anteceden.

Soporte Tcnico
Si necesita ayuda para la instalacin y autorizacin de su versin trial, contctese con:
gxtrial@genexus.com
Si se encuentra en los Estados Unidos o en Canad puede enviar consultas de soporte a:
gxtrial.usa@genexus.com
Para saber ms sobre los distintos servicios y recursos de soporte tcnico y capacitacin de GeneXus
visite: http://www.genexus.com/support y http://www.genexus.com/training
Por informacin adicional, contctese con su distribuidor local: http://www.genexus.com/distributors o
escrbanos a info@genexus.com

Instalacin y Autorizacin
Requerimientos de Instalacin
La GeneXus Trial Version incluye los siguientes productos:

Modelador GeneXus
Es un ambiente de desarrollo integrado (Integrated Development Environment o IDE) para el
diseo, desarrollo, y mantenimiento de aplicaciones de negocios, independientemente de la
plataforma de produccin utilizada.

Generadores GeneXus
GeneXus genera cdigo nativo para las principales plataformas del mercado. Para conocer la lista
completa de los Generadores GeneXus visite: http://www.genexus.com/technologies. El
generador disponible en la GeneXus Trial Version es el Generador .NET.

Pgina 4

GeneXus X: Quick Start

A continuacin encontrar la lista del hardware y software necesario para ejecutar GeneXus y las
aplicaciones generadas por GeneXus.

Procesador: mnimo 1 GHz (recomendado multi core)

Requerimientos de
Hardware

Memoria: mnimo 1 GB de RAM (recomendado 2 GB)


Disco Duro: Mnimo de 300 MB de espacio en disco para la instalacin.
Para crear aplicaciones GeneXus se necesita espacio adicional o un disco
compartido para crear las Bases de Conocimiento y el cdigo generado.

Requerimientos de
Software

Microsoft Windows 2000, XP SP2, o superior.


Microsoft .NET Framework 2.0 o superior.
Microsoft Internet Explorer 6.0 SP1 or superior.
Microsoft SQL Server 2005 o 2008 (Express, Standard o cualquier otra Edicin)
1

Microsoft SQL Server Express Edition es la versin redistribuible y sin costo.

Requerimientos del Generador .NET


Esta seccin contiene los requerimientos para generar y ejecutar aplicaciones con el Generador
GeneXus disponible en la GeneXus Trial Version.

Generador

Requerimientos

.NET

Microsoft .NET Framework 2.0 o superior.


IIS 5.0 o superior (disponible en Windows 2000 o XP).
Proveedor de ADO .NET para el DBMS utilizado.

Para crear la base de datos de su aplicacin y ejecutar las aplicaciones generadas, requerir uno de
los siguientes DBMS:

SQL Server (En cualquiera de sus ediciones). Si es la primera vez que instala SQL, se crear
por default un Base de datos con el usuario sa y el password genexustrial.

Pgina 5

GeneXus X: Quick Start

Autorizacin
1. Ejecute el archivo de setup de la GeneXus Trial Version (genexusxtrial.exe) desde el men de
Inicio de Windows o seleccionando la opcin apropiada en el CD de su Versin Trial.

Figura: Asistente de Instalacin de GeneXus X Trial Version

2. Siga los pasos indicados por el setup de instalacin.


3. La primera vez que use GeneXus Trial Versin deber autorizar el producto para poner iniciarlo.
La autorizacin puede realizarse Online o By Mail. La autorizacin online es recomendada si tiene
una conexin a Internet.

Figura: Dialog box para el Registro de la GeneXus Trial Version

Pgina 6

GeneXus X: Quick Start

4. Complete los campos solicitados: Nombre, email y pas son obligatorios mientras que Compaa y
Telfono son opcionales.
5. En caso de haber requerido la opcin Online y de haber ingresado los datos correctamente, se
activar en forma inmediata GeneXus X Trial Version por un perodo de 60 das.
6. Si ha elegido la opcin By Mail, GeneXus le requerir ingresar Nombre y pas en forma
obligatoria. Los campos Telfono y Compaa son opcionales. Deber confirmar los datos
ingresados. Si los mismos son correctos presione CONTINUAR. Si desea modificar los valores
ingresados presione ANTERIOR. Esta activacin requiere tener configurado el Outlook como casilla
de correo principal. El administrador de licencias generar un mail con el Site Code
correspondiente. Usted recibir su Site Key va mail.
7. Si el Outlook no es su casilla principal de correo, puede solicitar activacin Manual, enviando
desde cualquier casilla de mail los datos generados por el activador de licencias. El Site Key de
activacin ser enviado a la misma casilla de correo. Copie y pegue su Site Key en el campo de
Site Key de la ventana Authorization Required y haga clic en Continuar.
8. Usted ya est listo para comenzar a usar su GeneXus Trial Version!
9. Si requiere ayuda para activar GeneXus X Trial Version escrbanos a gxtrial@genexus.com.

Pgina 7

GeneXus X: Quick Start

PRIMEROS PASOS: Tutorial paso a paso


El objetivo de este tutorial es brindarle una primera experiencia prctica con GeneXus a medida que
aprende los fundamentos de la Metodologa GeneXus. Al finalizar, usted sabr como es posible crear
aplicaciones de negocios complejas con mayor rapidez de lo que nunca haya imaginado.

En este ejercicio paso a paso usted crear una aplicacin de negocios simple y la instalar en una de
las plataformas soportadas por la GeneXus Trial Version: .NET. Para conocer la lista completa de
plataformas soportadas por GeneXus visite: http://www.genexus.com/technologies/

A medida que vaya trabajando con esta gua, usar las funcionalidades claves de GeneXus:
Diseo de aplicaciones basado en el conocimiento
Generacin inteligente de base de datos
Generacin automtica de cdigo
Aplicaciones completamente funcionales
Desarrollo incremental y mantenimiento automtico de la aplicacin
Diseo de Procesos no interactivos (Procedimientos)
Desarrollo en mltiples plataformas

Simbologa utilizada

!


Este smbolo introduce un concepto clave para el desarrollo del tutorial.

Este smbolo introduce un TIP. Recomendamos leer lo que este dentro del
recuadro.

Este smbolo especifica el tiempo requerido.

Este smbolo introduce una NOTA.

Pgina 8

GeneXus X: Quick Start

PARTE 1: Descubriendo GeneXus


Tiempo estimado: 5 minutos

Qu es GeneXus?
Bsicamente, GeneXus es un programa que hace programas.

Es una herramienta que parte de las visiones de usuarios, y a partir de ah encapsula el conocimiento
en lo que llamaremos Base de Conocimiento. GeneXus sistematiza ese conocimiento, y desde all
automatiza el diseo, construccin y mantenimiento de la BD y los programas.

En resumen, GeneXus es una herramienta basada en el conocimiento que disea,


genera y mantiene en forma automtica los programas y la base de datos para lograr
el desarrollo rpido de aplicaciones crticas en mltiples plataformas.

Pgina 9

GeneXus X: Quick Start

PARTE 2: Su primera aplicacin


Tiempo estimado: 1:40

Diseo de aplicaciones basado en el conocimiento


En esta seccin aprender a crear una Base de Conocimiento GeneXus y disear una aplicacin en
base a los requerimientos de los usuarios. En este caso en particular, comenzaremos por disear una
factura y otros componentes que se requieren en un Sistema de Gestin de Ventas.

Analistas de Negocios versus Desarrolladores

Entender las necesidades del usuario final es una de las pocas tareas que no se pueden
automatizar en el desarrollo de software. Nos referimos a los desarrolladores de
GeneXus como analistas de negocios en lugar de programadores, codificadores o
desarrolladores.

Programar versus declarar la aplicacin

La Metodologa GeneXus se basa en la descripcin de las entidades del usuario final


(objetos reales tanto tangibles como intangibles) con las que debe manejarse su
aplicacin. Esto se hace describiendo las visiones de los usuarios finales sobre estas
entidades, con un alto nivel de abstraccin. Por este motivo, realizaremos una
programacin declarativa y los analistas de negocios describirn la realidad para
que GeneXus cree el modelo de datos en una BD especificada y construya los programas
de aplicacin para cubrir las necesidades funcionales requeridas. Cuando esa realidad
cambie, los analistas de negocios simplemente debern describir la nueva realidad y
ser GeneXus quien se encargar de realizar los cambios necesarios en el modelo de
datos y los programas para representar la nueva realidad descripta.

Paso 0: Caso de estudio


Supongamos que una empresa requiere una aplicacin que administre su sistema de facturacin. Hoy
no cuenta con uno y la facturacin se hace de manera manual, con los grandes catlogos de cdigos
de productos. Trabajaremos con las facturas, los clientes, los productos a la vez que iremos
introduciendo los fundamentos de los conceptos bsicos de la metodologa de GeneXus.
Durante este tutorial, lograr describir la realidad presentada en GeneXus para generar un caso tipo
de sistema de facturacin en una plataforma Web utilizando el Generador .NET y BD SQL.

Pgina 10

GeneXus X: Quick Start

Paso 1: Entorno de desarrollo


Una vez abierto GeneXus, descubrir una interfase como en la imagen adjunta. Esta interfase recibe
el nombre de IDE (Integrated Development Enviroment o Entorno de Desarrollo Integrado). Es un IDE
intuitivo, simple y parametrizable por cada desarrollador.
Se divide en ventanas:

Figura: Entorno de Desarrollo (IDE)

Ventana principal: Esta compuesta por la Start Page o Pgina de Inicio la cual a travs de
un RSS en forma dinmica brinda informacin tcnica relacionada con la herramienta y la
comunidad de usuarios. Para obtener esta informacin es necesario estar conectado. Si
su equipo se encuentra desconectado a Internet no podr acceder a las novedades
publicadas en el GeneXus Community.
Ventana de herramientas

Barras de herramientas

Paso 2: Creacin de una Base de Conocimiento y definicin del Enviroment


El primer paso para crear una aplicacin con GeneXus es crear una Base de Conocimiento y definir el
ambiente de trabajo.

Base de Conocimiento o Knowledge Base (KB)


Es un repositorio que contiene toda la informacin necesaria para generar una aplicacin
en mltiples plataformas. En otras palabras, es un repositorio de toda la descripcin
de la realidad.

Pgina 11

GeneXus X: Quick Start

Enviroment

Para generar y mantener una aplicacin de trabajo en una plataforma de software


especfica, debemos definir un Enviroment. Un Enviroment integra todo lo relacionado a
la plataforma de ejecucin (Generador, acceso a la BD, interfaz de usuario y otras
propiedades de dicha plataforma). Para esto, especificamos un DBMS, un lenguaje meta
y algunos parmetros adicionales por cada Enviroment. GeneXus generar y mantendr
el esquema de la base de datos y todos los programas en la plataforma seleccionada. De
esta manera, el analista de GeneXus no necesita tener un conocimiento profundo de la
plataforma objetivo.

Si es la primera vez que abre GeneXus Trial y no ha ejecutado previamente en su equipo una versin
comercial del producto, GeneXus le indicar que proceder a ejecutar la creacin de una base de
conocimiento en forma automtica. La primera vez que abra la versin trial se crear
automticamente una Base de Conocimientos en un ambiente en .NET con SQL.

Si desea crear una base de conocimiento y un enviroment nuevo, deber:


1. Haga click en la opcin New
Knowledge Base.
2. Ponga un nombre a la Base de
Conocimiento: Demo.
3. Seleccione un directorio donde
crear la KB.
4. Seleccione el lenguaje a
generar.
5. Haga clic en CREATE para
continuar.

Figura: Dialog box para la creacin de una Base de Conocimiento

Pgina 12

GeneXus X: Quick Start

Paso 3: Creacin de un Objeto Transaccin


Nuestro objetivo ser definir las visiones de nuestros usuarios en objetos GeneXus.

Objeto Transaccin

Representa a los objetos de la realidad que maneja su aplicacin. De las transacciones


definidas se infiere el modelo de datos de la aplicacin (3era forma normal). GeneXus
tambin usa el objeto transaccin para generar el programa de la aplicacin que
permitir al usuario final, en forma interactiva, insertar, borrar y actualizar registros en
la base de datos fsica.

El siguiente paso, una vez creada la base de conocimiento ser crear la primera transaccin, que
representa una factura. Para ellos siga los siguientes pasos:
1. Haga clic derecho sobre
Objects/New/Object
o vaya al men
FILE/NEW OBJECT.
Tambin puede crear un
nuevo objeto utilizando
el shortcut CTRL N.

Figura: Creacin de un objeto nuevo

2. Seleccione el tipo de
objeto que quiere crear:
Transaction
3. Ponga nombre al
Objeto:Invoice.
4. Haga clic en CREATE.

Figura: Dialog box New Object

Pgina 13

GeneXus X: Quick Start

Paso 4: Descripcin de la Estructura de la Transaccin (Structure)


El prximo paso ser describir el objeto factura definiendo qu atributos integran la misma y cmo
estn relacionados.

Estructura del objeto Transaccin

La Estructura del Objeto Transaccin es una descripcin de los datos requeridos para
conocer el objeto real que este representa. En la estructura, debemos declarar los
atributos (campos) que forman la transaccin (los datos con los que el usuario
interactuar) y las relaciones entre ellos. En base a esta estructura, GeneXus disea y
mantiene automticamente la base de datos correspondiente (tablas, claves, ndices,
restricciones de integridad, etc.) en 3era forma normal. El mismo atributo deber tener
siempre el mismo nombre en cada lugar donde aparezca y a la vez que dos atributos
diferentes no podrn tener el mismo nombre.
Los elementos claves para definir la estructura de la transaccin son los siguientes:

Nombre, tipo y descripcin: Cada atributo es definido por su nombre, tipo de


datos y descripcin.

Niveles: Los atributos se agrupan en uno o ms niveles, y estos niveles pueden


ser anidados o paralelos (pueden haber mltiples niveles anidados). Por
ejemplo: las lneas de una factura representan un nivel anidado al nivel raz. El
nivel de las lneas de la factura demuestra el hecho de que una factura puede
tener muchas lneas, es decir, define una relacin de una a muchas entre la
factura y las lneas de la factura.

Atributos de Clave Primaria (PK): En cada nivel, uno o ms atributos deben


ser definidos como la Clave Primaria del nivel.
o La Clave Primaria es un identificador de cada instancia del nivel.
o Los valores de la Clave Primaria son nicos y una vez que se ingresan no
pueden ser actualizados.
o Si no existe una Clave Primaria natural para su objeto, debe crearse una
artificial; por ejemplo, CustomerID.

1. Ingrese el nombre, tipo de dato y descripcin de los atributos en la solapa Structure de la


transaccin Invoice, como se indica en la tabla que figura a continuacin. Use la tecla TAB para
moverse entre el nombre, el tipo de dato y la descripcin del atributo. Use la tecla ENTER para
agregar un nuevo atributo.

ATRIBUTO

TIPO

DESCRIPCIN

InvoiceID

Numeric(4.0)

Invoice ID

InvoiceDate

Date

Invoice Date

CustomerID

Numeric(4.0)

Customer ID

CustomerName

Character(20)

Customer Name

Hasta aqu hemos ingresado los campos del cabezal de la factura. Ahora
ingresaremos las lneas. Para eso, presione CTRL + Flecha Derecha para agregar

Pgina 14

GeneXus X: Quick Start

un Nuevo nivel a la estructura de datos


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

Presione ENTER y luego CTRL + Flecha Izquierda para volver al nivel del cabezal
y comenzar los datos del pie.
InvoiceSubtotal

Numeric(8.2)

Invoice Subtotal

InvoiceTax

Numeric(8.2)

Invoice Tax

InvoiceTotal

Numeric(8.2)

Invoice Total

Tips para aumentar su productividad:

Cuando comience a escribir el nombre de un nuevo atributo oprimiendo la tecla


punto GeneXus escribir el nombre de la transaccin en el campo de nombre
del atributo
Use CamelCase para nombrar a sus atributos, de manera que las descripciones
de los mismos se infieran automticamente y tengan sentido. Ej.: Poner
InvoiceTotal como nombre de atributo, para que se infiera automticamente la
descripcin Invoice Total.
Cuando est posicionado en el combo box de tipo de datos (Type), escriba la
letra inicial del tipo de datos apropiado para seleccionarlo. Si es un tipo de dato
variable (Character, LongVarChar, Numeric o VarChar), ingrese el valor apropiado
de la dimensin de variable para configurarlo.

El primer atributo de cada nivel es definido por defecto como clave primaria de ese nivel, pero
esto se puede cambiar hacienda clic derecho sobre el atributo y eligiendo la opcin Toggle Key
(Ctrl+K). Los atributos de Clave Primaria se identifican por una pequea llave a la izquierda de sus
nombres ( ). En este ejemplo, InvoiceID es el identificador de primer nivel, y el atributo
ProductID es el identificador de segundo nivel. Esto significa que, para un nmero de factura dado
(InvoiceID), el valor del atributo ProductID no se repetir en lneas diferentes.

Pgina 15

GeneXus X: Quick Start

2. Moviendo el Mouse sobre la derecha de la


pantalla se desplegar el men de propiedades
(Properties).

Figura: Ventana de Definicin del Atributo

3. Expanda la opcin Type Definition y configure


la propiedad Autonumber de InvoiceID en
True. Los programas generados asignarn
automticamente un valor de InvoiceID a cada
nueva instancia de la factura.

Figura: Propieda Autonumber

4. Salve la nueva estructura de la transaccin oprimiendo el


botn con forma de diskette
(Save) en la barra de
herramientas Standard. Si no ve esta barra, despliguela
haciendo clic derecho sobre la barra de men (Opcin Edit)
Usted acaba de crear la estructura de una transaccin Factura
compuesta de dos niveles:

Un nivel bsico (Invoice o Factura), donde se especifica


toda la informacin necesaria para el Cabezal de la
Factura.
Un nivel anidado, donde se especifica la informacin que
se repetir en cada lnea de factura.

Ntese que no hemos utilizado un nmero de lnea como clave


primaria de las lneas de factura. Esta es una decisin de diseo
voluntaria. Usando el ID de Producto como clave primaria de las
lneas de la factura, estamos definiendo que no habrn dos
lneas en la misma factura para el mismo producto.

Figura: Estructura de la Factura

Pgina 16

GeneXus X: Quick Start

Universal Relationship Assumption (URA)


Un elemento clave de la Metodologa GeneXus es la hiptesis de que los atributos con el
mismo nombre son el mismo atributo. Esto se llama Universal Relationship Assumption
(URA), y segn dicha hiptesis:

Todo lo que es conceptualmente igual debe tener el mismo nombre.


Los conceptos diferentes NO deben tener el mismo nombre.

Esto nos permitir usar el


transacciones, procedimientos,
nombre. GeneXus establece las
de datos en base a los nombres

mismo atributo en otros objetos GeneXus (otras


reportes, etc.) simplemente haciendo referencia a su
relaciones (claves forneas) entre las tablas del modelo
de los atributos.

Nomenclatura GIK: GeneXus Incremental Knowledge


GIK es una nomenclatura estndar definida por Artech con el fin de dotar a los atributos
de un nombre que trasmita su concepto de la forma ms clara posible. En esta
nomenclatura, el nombre de un atributo est formado por 4 componentes. Algunos de
ellos son opcionales:
Objeto + Categora [+ Calificador] [+ Complemento]

Objeto: Es la entidad real descripta por el atributo. Generalmente (pero no siempre)


es el nombre de la transaccin en la cual un atributo ha sido definido para que pueda
ser almacenado en una de las tablas asociadas a esa transaccin (esto significa que
no debera inferirse en esa transaccin especfica). Ejemplos: Factura, Cliente,
Producto, Lnea.
Categora: Es la categora semntica del atributo. Define el rol que el atributo tendr
dentro del objeto y en el ambiente de la transaccin. Ejemplos: Identificacin,
Fecha, Factura, Descripcin, etc.
El Calificador y el Complemento son componentes opcionales. Ejemplos: Inicio, Fin,
Mnimo, Mximo, etc.

Pgina 17

GeneXus X: Quick Start

Paso 5: Definicin de Campos Calculados  Frmulas


Frmulas
Son atributos que pueden inferirse del valor de otros atributos. Un atributo frmula es
definido de la misma manera que un atributo normal, es decir, tiene un nombre, un
tipo de datos y una descripcin, adems de una frmula que define como se calcula.

A menos que se especifique lo contrario, los atributos definidos como frmulas


no son almacenados en la base de datos (son atributos virtuales).
Las frmulas son globales; son vlidas en toda la base de conocimiento y no
solamente dentro de la transaccin en la cual fueran definidas. Esto significa que
la frmula es calculada cada vez que el atributo es invocado desde una
transaccin o desde otros objetos GeneXus (Reportes, Work Panels, etc.)
Variables Definidas por el Usuario. No pueden participar en una formula
porque son locales respecto a los objetos en donde han sido definidas y no
tienen valor fuera de ellos.

Ahora definiremos los siguientes atributos frmula:


LineTotal=ProductPrice * LineQuantity

InvoiceSubTotal = SUM(LineTotal)
InvoiceTaxes= InvoiceSubTotal * 0.11 ( o el nmero que corresponda)
InvoiceTotal = InvoiceSubtotal + InvoiceTax
1. Haga doble clic en el campo Formula del atributo LineTotal (a la derecha de la descripcin del atributo).
2. Escriba lo siguiente: ProductPrice * LineQuantity. Tambin se puede hacer clic sobre el botn sobre el
campo de la frmula para abrir el Editor de Frmula.
3. Repita los Pasos 1 y 2 para el resto de las frmulas que aparecen en la lista al principio de esta seccin.
4. Haga clic en Save para salvar las nuevas frmulas.

Pgina 18

GeneXus X: Quick Start

Al finalizar, deberamos tener la descripcin de la factura de la siguiente manera:

Figura 1 Transaccin Factura con frmulas

Paso 6: Visualizando del Modelo de Datos inferido por GeneXus


Usted puede ver el modelo de datos inferido por GeneXus e incluso modificarlo.

Generacin de Modelo de Datos Inteligente

Siempre que se haga clic en el botn Salvar, GeneXus inferir el modelo de datos ptimo
(3era forma normal sin redundancias) que soporte a las entidades del usuario final
representadas por los objetos de su transaccin GeneXus. En base a este modelo de
datos, GeneXus generar una base de datos fsica cuando usted defina un DBMS objetivo
para un modelo.

Generacin de Modelo de Datos Inteligente


La estructura de los objetos transaccin determina las tablas e ndices a ser creados:

Los nombres de las tablas e ndices son asignados automticamente por


GeneXus por el nombre de la transaccin, pero pueden ser modificados si es
necesario.
GeneXus infiere un modelo de datos en 3era forma normal, sin redundancias. No
obstante, pueden definirse redundancias que sern automticamente
administradas por GeneXus.
La clave primaria de la tabla correspondiente a una transaccin de nivel N se
obtiene concatenando identificadores de los N-1 niveles anidados previos con el
identificador de nivel N.

Pgina 19

GeneXus X: Quick Start

1. En el men de la izquierda, seleccione Tables.


2. GeneXus mostrar la estructura de datos inferidas a partir de la transaccin.

Figura: Tabla de Factura

Figura: Tabla de Productos

En el Listado de la Base de Datos anterior se muestra que GeneXus infiri automticamente un


modelo de datos normalizado, creando dos tablas para soportar el objeto transaccin Invoice, Invoice
(el cabezal de la factura) e InvoiceProduct (las lneas de la factura), con la siguiente estructura:

Invoice

InvoceProduct

InvoiceID

InvoiceID

InvoiceDate

ProductID

CustomerID

ProductName

CustomerName

ProductPrice
LineQuantity

Pgina 20

GeneXus X: Quick Start

Ntese que:

La clave primaria de la tabla InvoceProduct est formada por dos atributos: InvoiceID y
ProductID (la concatenacin del identificador de primer nivel, InvoiceID, con el identificador
del segundo nivel, ProductID).
GeneXus elimin automticamente de las tablas los atributos que se haban definido como
frmulas y los convirti en frmula globales para que se pueda acceder a ellas desde cualquier
lugar dentro de la base de conocimiento).
En la tabla Invoice:
o No pueden haber dos facturas con el mismo InvoiceID.
o Para cada InvoiceID hay un nico valor de InvoiceDate, CustomerID y
CustomerName.
En la tabla InvoceProduct:
o No pueden haber dos lneas de factura con la misma InvoiceID y ProductID.
o Para cada par de InvoiceID y ProductID hay un nico valor de ProductName,
ProductPrice y LineQuantity.

Paso 7: Visualizacin de los Formularios del Objeto Transaccin


Visualice el formulario Web predeterminado que han sido generado automticamente por GeneXus
para su recin creado objeto transaccin (debe esta posicionado dentro del objeto Factura).

Formulario Web

Despus de salvar un nuevo Objeto Transaccin, GeneXus crea automticamente un


Formulario Web predeterminado para especificar como acceder el usuario final a los
datos en la aplicacin. Estos formularios pueden ser personalizados por el analista del
negocio ms adelante.

Para el formulario Web siga los pasos siguientes:

1. Seleccione la solapa WebForm de la transaccin Factura.

Pgina 21

GeneXus X: Quick Start

Figura: Formulario (predeterminado) de la Transaccin Factura

Error Viewer: ctlError es el control predeterminado donde se despliegan mensajes de error. Puede
ponerse en cualquier lugar del formulario y configurrsele propiedades. Los mensajes posibles son los
que se despliegan en Msg y reglas de Error, y los controles automticos de GeneXus (es decir,
integridad referencial, errores tipo de datos, etc.).
Estos formularios habilitarn a los usuarios finales a ingresar nuevas facturas que se insertarn como
nuevos registros en las tablas correspondientes. Los usuarios tambin podrn actualizar o eliminar las
facturas existentes, siempre que tengan los derechos para hacerlo.

El analista de GeneXus no necesita programar ninguna de estas acciones porque estn implcitas en la
lgica de la transaccin. GeneXus generar automticamente el cdigo nativo correspondiente en el
lenguaje seleccionado.

Tener en cuenta que cuando se definen transacciones GeneXus se est:

Explcitamente: describiendo la interfase de usuario para la presentacin y captura de datos.


Implcitamente: diseando el modelo de datos de la aplicacin (tablas, ndices, etc.)

Pgina 22

GeneXus X: Quick Start

Paso 8: Ejecucin de su Aplicacin

Generacin de la BD en 3era Forma Normal

GeneXus genera los programas ejecutables requeridos para crear su base de datos
en el DBMS seleccionado en base al modelo de datos inferido.
Cuando usted est actualizando su estructura de datos, GeneXus genera los
programas ejecutables requeridos para reorganizar la base de datos; es decir, crea
un nuevo esquema y convierte los datos del viejo esquema al nuevo.
En estos casos se desplegar un Reporte de Creacin de Base de Datos o un
Reporte de Anlisis de Impacto respectivamente, que le mostrarn lo que har
GeneXus.

En este paso, ejecutaremos la aplicacin en .NET usando SQL Server como nuestro DBMS. En la
versin comercial usted puede usar cualquiera de los DBMS soportados por GeneXus. Consulte la lista
completa de los DMBS soportados por GeneXus aqu:
http://www.genexus.com/technologies

Reporte de Creacin de Base de Datos: Es el reporte que describe el


esquema de la base de datos que GeneXus generar en al DBMS seleccionado. Contiene
toda la informacin sobre el modelo de datos inferido y el esquema de base de datos
propuesto para ser generado. La informacin sobre cada tabla est dividida en cinco
secciones:

Cabezal: Contiene la nombre de la tabla, las acciones a realizar en l,


advertencias y errores, Si el modelo de datos contiene errores, el botn de
Reorganizacin estar deshabilitado.
Estructura de la Tabla: Muestra los atributos de la tabla, sus relaciones y las
acciones a realizar sobre ellos.
ndices: Describe los ndices de la tabla que GeneXus usa para mantener la
integridad referencial de su base de datos y para acceder a las tablas
eficientemente.
Restricciones de la Clave Fornea: Describe las restricciones de integridad
de la tabla.
Statements: Describe las sentencias que se ejecutarn.

Pgina 23

GeneXus X: Quick Start

1. Presione F5 o vaya a travs del men opcin BUIL /RUN DEVELOPER MENU.

2. El Ayudante lo guiar en la
configuracin de la BD. Configure lo
siguiente:
Database name: Demo
Server name: localhost
Use trusted connection: Yes

Haga click en el botn Finish para


continuar.

Figura:Detalle de la Barra de Herramientas del Modelo

3. GeneXus mostrara el reporte de


creacin de la BD.

Figura: Dialog box para la Creacin de la Base de Datos

4. Haga clic en CREATE. GeneXus


escribir el cdigo para la creacin
de las tablas y los programas
necesarios en el lenguaje
seleccionado para acceder a dicha
BD.

Figura: Output

Pgina 24

GeneXus X: Quick Start

Paso 9: Prueba de su Aplicacin

1. El Men del
Desarrollador es un
archivo XML que incluye
a todos sus objetos
ejecutables. Es un men
auxiliar para probar su
aplicacin. Haga clic en
la opcin Invoice.

Figura: Men del Desarrollador

2. Ingrese algunas
instancias de factura.
Gracias a la tecnologa
AJAX, las frmulas se
calculan
automticamente, sin
necesidad de recargar
toda la pgina.

3. Cuando haya finalizado


haga clic en el botn
Cerrar.

Figura: Instancia de la Transaccin Invoice

Pgina 25

GeneXus X: Quick Start

Paso 10: Agregar Reglas del Negocio  Reglas


Agreguemos algo de lgica bsica de negocios a su aplicacin.

Reglas GeneXus
Las Reglas GeneXus son el medio para definir la lgica del negocio asociada a cada
objeto. Son escritas en forma declarativa y GeneXus decide de manera inteligente que
regla aplicar y cuando aplicarla.

Las reglas juegan un rol muy importante en los objetos transaccin porque permiten
programar su comportamiento (por ejemplo: asignando valores predeterminados,
definiendo controles de datos, etc.).

Pueden involucrar atributos definidos en la estructura de la transaccin as como


variables y funciones.
Las Reglas son programadas de manera declarativa, es decir, el orden en el
cual se escriben no es necesariamente el orden en el cual se van a ejecutar. El
orden de ejecucin adecuado es automticamente determinado por GeneXus.

Slo son vlidas en la transaccin en la que han sido definidas. Por eso decimos que son
locales.

Ahora agregaremos una regla simple que configura por defecto la Fecha de la Factura como la fecha
del da actual:
1. Seleccione la solapa Reglas de la transaccin Invoice.
2. Utilizaremos la regla Default que asigna un valor predeterminado a un atributo o variable.
3. Complete la frmula del modo siguiente: Default(InvoiceDate, &today);lo que indica que
el valor predeterminado de la Fecha de la factura ser la fecha actual. 1
4. Haga clic en el botn de salvar.

Tenga en cuenta que usted tambin puede usar las opciones Insertar / Atributo e Insertar / Frmula del men
Insertar para completar la regla.

Pgina 26

GeneXus X: Quick Start

Figura: Regla de la Transaccin

Ahora otra regla simple que establece un mensaje de error si la cantidad de productos ingresada es
nula:
5. Agregue la siguiente regla: Error("The product cannot be empty")
LineQuantity.IsEmpty();
6. Haga clic en el botn de salvar.

if

Figura: Declaracin de reglas

7. Pruebe las reglas ingresadas, ejecutando la aplicacin (F5).

Figura: Ejecucin de la aplicacin

Pgina 27

GeneXus X: Quick Start

Paso 11: Creacin del Objeto Transaccin Cliente


Los clientes son conceptos que corresponden a entidades independientes de la factura. Por lo tanto
corresponden que sea definido como una transaccin en s misma.
1. Cree el objeto Transaccin Cliente siguiendo el Paso 2: Creacin de un Objeto Transaccin y el
Paso 3: Describir la Estructura de la Transaccin.
2. Agregue los siguientes atributos a la Estructura Cliente:

ATRIBUTO

TIPO

DESCRIPCIN

CustomerID

---------

--------------------

CustomerName

---------

--------------------

CustomerAddress

Character(50)

Customer Address

CustomerEmail

Character(50)

Customer Email

Ntese que cuando comienza a escribir los atributos CustomerID y CustomerName, GeneXus le
indica el nombre completo del atributo y su tipo y descripcin. Esto sucede porque estos atributos
ya estn definidos en su base de datos.

3. Presione el botn derecho del mouse sobre el


atributo CustomerID y seleccione
Propiedades.
4. Dentro de Type Definition configure la
propiedad Autonumber de CustomerID como
True. De esta forma, los programas
generados asignarn automticamente un
valor CustomerID a cada nueva instancia de
Cliente.
5. Activar el suggest para el cdigo del cliente,
posicionndonos sobre las propiedades de
Customer ID, dentro de la opcin InputType,
definir Description y agregar como
ItemDescription: CustomerName.
As, en vez de ingresar el ID de un cliente
para identificarlo, podremos ingresar su
nombre y la aplicacin automticamente
inferir su ID. La propiedad suggest le
sugerir todos los nombres de clientes que

Figura: Ventana de propiedades

Pgina 28

GeneXus X: Quick Start

concuerden con el nombre ingresado por el


usuario. Estas propiedades son parte de la
implementacin de AJAX que hace GeneXus
automticamente.

El Formulario Web de la Transaccin Cliente se ver cmo se muestra en la siguiente figura.

Figura: Estructura de la Transaccin Cliente

Figura: Formulario Web de la Transaccin Cliente

Ntese (abajo) que el Formulario Web de la Factura tambin ha cambiado, reflejando los cambios en
las propiedades del atributo CustomerID: el atributo CustomerName es ahora el la descripcin del
atributo CustomerID. Esto mejorara notablemente la usabilidad de la aplicacin como veremos
rpidamente!

Figura: Formulario Web de la Transaccin Factura

Pgina 29

GeneXus X: Quick Start

Paso 12: Revisin de los Cambios efectuados al Modelo de Datos


Presione la tecla F5. Esto generar un Reporte de Anlisis de Impacto.

Anlisis de Impacto

Describe los cambios fsicos que se debern realizar para actualizar al nuevo modelo de
datos inferido por GeneXus.

Comprobar que GeneXus ha normalizado automticamente su modelo de datos despus de haber


incluido la nueva transaccin.
Nos muestra que la tabla Invoice ser afectada, eliminando el atributo CustomerName de la tabla
Invoice ya que el mismo puede ser inferido a travs del CustomerID.

NOTE

Aparece una nueva tabla, Customer:

En warning de especificacin se refiere a que puede haber valores duplicados de clientes en la tabla
Invoice y que al normalizar estos pude afectar. Tambin se muestra otro warning indicando que los
registros que se van a crear tienen valor nulo en las tablas.

Pgina 30

GeneXus X: Quick Start

Figura: Listado de la Base de Datos (Modelo de Datos)

Ntese que:

GeneXus agreg una nueva tabla: la tabla Customer (asociada a la transaccin Customer).
El atributo CustomerName se ha eliminado de la tabla Invoice (este atributo est almacenado
nicamente en la tabla Cliente), dejando la base de datos normalizada.
En la tabla Customer:
o No pueden haber dos clientes con el mismo CustomerID.
o Por cada CustomerID hay un nico valor de CustomerName, CustomerAddress y
CustomerEmail.
En la tabla Invoice:
o No pueden haber dos facturas con el mismo InvoiceID.
o El atributo CustomerID en la tabla Invoice es una clave fornea tomada de la tabla
Cliente. Por lo tanto, existe una relacin de uno a muchos entre Clientes y Facturas:

Por cada InvoiceID existe nicamente un CustomerID.

Cada CustomerID puede tener muchas Facturas (InvoiceID).

Pgina 31

GeneXus X: Quick Start

Paso 13: Visualizacin del Reporte de Especificacin


Ya est listo para proceder con la reorganizacin de la BD. Seleccione la opcin REORGANIZE. Los
programas de reorganizacin crean un nuevo esquema de base de datos en la base de datos fsica del
modelo objetivo y transportan los datos desde el esquema viejo al nuevo.
Ejecutada la reorganizacin, GeneXus despliega un Reporte de Especificacin compuesto por una
serie de Reportes de Navegacin, uno para cada programa que vaya a generar.

Reporte de Especificacin

Describe como se ejecutar el programa, a que tablas acceder (y como) y que


operaciones realizar.

Figura: Reporte de Navegacin de Transaccin del Customer

Referential Integrity controls on delete (Controles de integridad referencial al eliminar) significa


que cuando usted elimina un cliente de la Transaccin Cliente, el programa verificar que no
existan facturas para ese cliente. Para realizar esta bsqueda con eficiencia, se usa el ndice
forneo CustomerID de la tabla Factura.

Pgina 32

GeneXus X: Quick Start

Figura: Reporte de Navegacin de la Transaccin Invoice

Integridad Referencial en la Transaccin Factura: La clave fornea CustomerID en el nivel INVOICE


significa que cuando usted inserta o actualiza una factura usando la Transaccin INVOICE se controlar
automticamente si el valor ingresado en la clave fornea CustomerID ya existe como clave primaria de un
registro en la tabla Cliente. Para realizar esta bsqueda con eficiencia, se usa el ndice primario CustomerID
de la tabla Cliente.
El control de integridad referencial valida que un atributo ingresado (por ejemplo, CustomerID en una
Factura) es vlido, pero no proporciona informacin sobre cules son los valores vlidos. Para facilitar la
bsqueda de los valores vlidos, GeneXus crea objetos Lista de Seleccin (prompts) que muestran el grupo
completo de valores vlidos para elegir los que correspondan.

Pgina 33

GeneXus X: Quick Start

Paso 14: Creacin de los Formularios Atrayentes  Temas


En esta seccin crear un nuevo Tema basado en una plantilla predefinida y lo configurar como el
Tema de su aplicacin.

Objeto Tema

El objeto GeneXus Tema mejora el desarrollo y mantenimiento de las aplicaciones Web


separando las tareas del analista del negocio de las del diseador Web.

Se crean Formularios Web en base a un Objeto Tema predeterminado.


Usted puede crear nuevos Temas y asociarlos a la totalidad de su Base de
Conocimiento o a objetos especficos dentro de ella.

1. En el men de la izquierda, dentro del


men Customization seleccione la
opcin Themes (haciendo doble clic).
2. Abra la planilla GeneXusX
3. Cambie el color de fondo de los Forms
seleccionando Form y luego editando
las propiedades a la derecha. Para
cambiar el color de fondo debe
seleccionar la opcin
BACKGROUNDCOLOR
Figura: GeneXus Theme Editor

4. Salve los cambios realizados


presionando el botn de grabar (

5. Si vuelve a abrir el objeto INVOICE en


la solapa de Web Form ver reflejados
los cambios realizados.
Nota: si no logra ver los cambios, debe
cerrar y abrir la transaccin para ver
los cambios si esta estaba abierta de
antemano.

Figura: Formulario Web de la Transaccin Invoice con el nuevo


Tema

Pgina 34

GeneXus X: Quick Start

PARTE 3: Mantenimiento
Tiempo estimado: 15 minutos

Desarrollo Incremental y Mantenimiento de la Aplicacin


Hasta el momento hemos creado una aplicacin de trabajo en base a algunos objetos transaccin y
reglas del negocio. Ahora veremos cmo mantener una aplicacin GeneXus simplemente editando los
objetos GeneXus existentes y/o agregando nuevos y luego actualizando su base de datos y
regenerando los programas de la aplicacin en forma automtica.

Desarrollo Incremental con GeneXus

A medida que la realidad cambia, los requerimientos del sistema evolucionan y esto se
traduce en cambios en los objetos GeneXus y/o nuevos objetos. En base a los nuevos
objetos, GeneXus actualizar su base de datos automticamente (creando un nuevo
esquema de base de datos y migrando los datos del viejo esquema al nuevo) y
regenerar los programas de la aplicacin que deban ser modificados.
Decimos que la Metodologa GeneXus es incremental porque se basa en la presuncin de
que el desarrollo del sistema es un proceso iterativo que pasa por sucesivas
aproximaciones. El desarrollo incremental es posible porque GeneXus pude mantener el
esquema de su base de datos y los programas de su aplicacin automticamente.

Paso 15: Inclusin de Nuevos Objetos: Transaccin Producto


Al probar la aplicacin, seguramente habr notado que debe ingresar la Identificacin, Descripcin y
Precio de Producto en cada lnea de factura. Esto no es lo que esperara de un sistema de gestin de
ventas. Y ni siquiera de un sistema simple como esta aplicacin de ejemplo!
Debemos contar con la posibilidad de agregar, actualizar y eliminar productos de nuestro sistema.
Para hacerlo, agregaremos la transaccin Producto en nuestra Base de Conocimiento:

Pgina 35

GeneXus X: Quick Start

1. Cree la transaccin Producto siguiendo el Paso 3: Creacin de un Objeto Transaccin y el Paso


4: Descripcin de la Estructura de la Transaccin . Inserte los siguientes atributos en la Estructura
de la Transaccin Producto:
ATRIBUTO

TIPO

DESCRIPCIN

ProductID

---------

--------------------

ProductName

---------

--------------------

ProductPrice

---------

--------------------

Notar que tan pronto como empiece a escribir estos nombres de atributo, GeneXus le indicar el
nombre completo. Esto sucede porque estos atributos ya estn definidos en su Base de
Conocimiento.

La estructura (Structure) de la transaccin Product y su Formulario Web se vern como sigue.

Figura: Estructura de la Transaccin Product

Figura: Formulario Web de la Transaccin Producto

Pgina 36

GeneXus X: Quick Start

Paso 16: Anlisis y reorganizacin de la BD


Cuando usted salve su objeto Transaccin Product, GeneXus normalizar el modelo de datos
nuevamente. La revisin del modelo de datos revela que GeneXus ha normalizado automticamente
el modelo de datos moviendo los atributos ProductName y ProductPrice desde la tabla InvoiceProduct
(Detalle de Factura) a la nueva tabla Producto.

Figura: Listado de Base de Datos (Modelo de Datos) para InvoiceProduct y tablas Producto

1. Seleccione Reorganize.

2. GeneXus realizar la reorganizacin


de la BD y especificar los cambios
necesarios sobre los programas de
aplicacin

Figura: Dialog box para la Ejecucin de la Reorganizacin y


Especificacin

Pgina 37

GeneXus X: Quick Start

3. Ahora es tiempo de ejecutar su


aplicacin!

Figura: Ejecucin de su aplicacin

Pgina 38

GeneXus X: Quick Start

PARTE 4: Agregando funcionalidad


Tiempo estimado: 10 minutos.

Utilizacin de Patrones en el desarrollo


Hemos podido probar nuestra aplicacin y comprobar cmo es el ingreso de datos a travs de las
transacciones. Sera conveniente tener una visin ms general de la informacin, de manera de no
solamente ingresar, borrar y modificar Clientes, Facturas o Productos, sino tambin filtrarlos por algn
criterio en particular, ordenarlos, etc. Para implementar esta funcionalidad de forma rpida y sencilla
se utilizan los patterns.

Patterns o Patrones
Son acciones similares aplicadas a distintos elementos. Los patrones permiten crear
automticamente todos los objetos necesarios para cumplir la funcionalidad especificada,
evitando que deba realizarse en forma manual.

Paso 17: Aplicar un pattern


Aplicaremos el patrn Work With sobre las transacciones creadas.
1. A travs del men View, selecciones
la opcin Work with Objetcs.

2. Seleccionar las transacciones


Customer, Invoice y Products.

Figura 2 Dilogo para la Seleccin de Transacciones

Pgina 39

GeneXus X: Quick Start

3. Sobre las transacciones seleccionadas


haga click derecho, opcin Apply
Pattern, Work With.
4. Grabe los cambios.
5. Presione F5 para ejecutar la aplicacin.
Observamos que ya no tenemos
acceso a las transacciones. Lo que s
tenemos es un acceso a nuestro
Trabajar con Customer, Invoice y
Product.

Figura: Seleccin de TRN

6. Ejecute la aplicacin
El pattern agreg la siguiente
funcionalidad:
Filtro por fecha, sin necesidad de
refrescar la aplicacin.
Se puede ordenar por las
columnas haciendo click en el
cabezal de las mismas.
Se puede paginar la grilla.
Haciendo click en un link vamos al
view de un objeto, donde se
muestran los datos relacionados.
Guarda el histrico con los links
visitados.

Figura: Ejecucin de la aplicacin

Pgina 40

GeneXus X: Quick Start

PARTE 5: Dilogos interactivos


Tiempo estimado: 15 minutos

Diseo de Consultas y Dilogos Interactivos (Web Panels)

Web Panels

Los Web Panels son usados para hacer dilogos y consultas interactivos a la base de
datos en ambientes Web. Permiten implementar diferentes tipos de consultas y
visualizar los datos de muy diversas maneras.
Los Web Panels son programados usando un lenguaje simple dirigido por eventos.

Paso 18: Creacin de un Web Panel: Facturas por cliente.


Vamos a crear un web Panel que nos permita ver por cada cliente las Facturas que tiene asociadas.
Para eso siga los pasos siguientes:

1. En el men Objeto haga


clic en Nuevo Objeto.
2. Seleccione el Tipo de Objeto
que desea crear: Web
Panel.
3. Nombre al Objeto:
InvoicesPerCustomer
4. Haga clic en OK.

Figura: Dialog box para Definir Objeto

Pgina 41

GeneXus X: Quick Start

5. Aparecer el Formulario
vaco del Web Panel. En el
men View, seleccione
Other Tool Windows,
opcin Toolbox. Arrastrar
un control Free Style Grid.
6. Expanda la grilla.

7. Ubicados dentro de la grilla,


seleccione la opcin Insert,
Atributte.

Figura: Ventana del Selector de Free Style Grid

8. Seleccione el atributo
CustomerName y haga clic
en OK.

Figura: Web Panel

Pgina 42

GeneXus X: Quick Start

9. Queremos agregar las


facturas correspondientes
por cliente. Para eso,
inserte una grilla, y
seleccione los atributos
InvoiceIO, InvoiceDate,
InvoiceTotal. GeneXus
encuentra la relacin entre
las tablas de manera de
listar por cada Cliente sus
Facturas.

10. En la ventana Arrange


Columns (Arreglar
Columnas) haga clic en OK.

Figura: Ventana Insert Grid

11. Grabar los cambios


oprimiendo el diskette.

12. Ejecutar presionando F5.

Figura: Ventana Web Panel con Grid

Figura: Ejecucin de la Aplicacin

Pgina 43

GeneXus X: Quick Start

Paso 19: Ejecucin del Web Panel modificando la instancia del Pattern
Vamos a modificar la instancia el Pattern Trabajar con Clientes en la transaccin Customer de
manera de poder acceder al Web Panel InvoicesPerCustomer.

1. Abrir la Transaccin
Customer y vamos al
Patter presionando el
botn Work With.

Figura: Transaccin Customer

2. Vamos a agregarle
una accin a esta
instancia del Pattern y
esta accin la vamos a
asociar a un botn
fuera de la grilla
convocando al web
Panel Facturas por
Cliente.
3. Posicionarse botn
derecho sobre la
opcin Selection
(Work With
Customers) y elegir la
opcin ADD, Actions.

Figura: Trabajar con Clientes

4. Agregar una nueva


accin (botn derecho
sobre la opcin Action,
Add, Action)

Pgina 44

GeneXus X: Quick Start

5. Editamos sus
propiedades
presionando F4.

6. Como Name ponemos


ViewInvoicesPer
Customer, como
Caption tambin y en
GXObject
seleccionamos el Web
Panel
InvoicesPerCustomer.

Figura: Modificacin de la instancia del Pattern

7. Salvamos los cambios

8. Ejecutamos la
aplicacin presionando
F5.

Figura: Seleccin de Objetos

9. En ejecucin,
seleccionar la opcin
Work with Customers
para ver el botn que
invoca al web panel
creado.

Figura: Ejecucin de la Aplicacin

Pgina 45

GeneXus X: Quick Start

PARTE 6: Enriqueciendo la aplicacin


Tiempo estimado: 15 minutos

Controles de usuarios

User Controls

Son controles web que pueden ser insertados en el form de cualquier objeto web de
GeneXus y que van a aumentar notoriamente la funcionalidad y apariencia de nuestra
aplicacin. Adems de los user controls estndares provistos (Chart, Image Galery, Map,
Treeview), GeneXus nos provee de un Editor de User Controls a travs del cual
podremos modificar los user controls ya existentes y crear nuestros propios user controls
e incorporarlos a GeneXus.

Nuestro objetivo ser representar en forma grfica las ventas por producto. Para cumplir este
requerimiento vamos a usar el User Control Chart.

Paso 20: Implementacin de un User Control


1. Crear un nuevo objeto del tipo Web
Panel al cual llamaremos SalesxProd.

Figura: Web Panel VentasxPrd

Pgina 46

GeneXus X: Quick Start

2. Active el Menu Toolbox, a travs del


Menu View, Other Tool
Windows,Toolbox

3. Arrastre el user control Chart al web


panel
Figura: Chart

4. En la solapa Events, borre el cdigo


generado y transcriba el siguiente:

Figura: Eventos

Pgina 47

GeneXus X: Quick Start

5. Grabe el Web Panel

6. Ejecute la aplicacin presionando F5.

Figura: Ejecucin de la Aplicacin

FELICITACIONES!
Usted ha creado con xito su primera aplicacin con GeneXus.
Nuestro prximo paso es brindarle mayor informacin sobre las cosas que pueden realizarse con
GeneXus.

Pgina 48

GeneXus X: Quick Start

PARTE 7: Procedimientos
Tiempo estimado: 15 minutos

Diseo de Procesos No Interactivos (Procedimientos)

Procedimientos
Hasta el momento hemos trabajado con los Objetos Transaccin que son objetos
GeneXus que requieren la intervencin del usuario para insertar, actualizar y eliminar
registros en la base de datos. No obstante, muchas veces necesitamos realizar tareas sin
la intervencin del usuario. Para ello, usamos otro tipo de Objetos GeneXus:

Procedimientos: Definen procesos no interactivos para consultar y actualizar la


base de datos. Los procedimientos se usan para definir funciones y subrutinas.

Una funcionalidad clave de los Procedimientos GeneXus es que con ellos usamos la
misma metodologa basada en el conocimiento que usamos para definir los Objetos
Transaccin. Esto significa que la definicin de estos objetos se basa en nombres de
atributos y no en las tablas de la base de datos donde dichos atributos son almacenados.
Por lo tanto, la definicin de sus Procedimientos permanece vlida siempre que los
atributos declarados dentro de los mismos estn presentes en la Base de Conocimiento.

En nuestro ejemplo crearemos un Reporte simple (uno que muestre todos los datos de una factura).

Caractersticas de los Procedimientos

Proceso de alto nivel: Los Procedimientos se especifican en un proceso de muy


alto nivel. La secuencia de ejecucin es determinada por el analista usando un
lenguaje de proceso simple que incluye control, impresin, acceso a datos y otros
comandos.
Basados en Conocimiento: El cdigo fuente de los Procedimientos se refiere a
nombres de atributos en la Base de Conocimiento, no a su ubicacin en la base de
datos fsica (del Modelo de Prototipo o Produccin). Por lo tanto:
o GeneXus sabe dnde encontrar los atributos en la base de datos fsica.
o GeneXus conoce las relaciones entre las tablas en la base de datos fsica.
o Los Atributos Frmula son inferidos automticamente por GeneXus.

Los cambios en la base de datos fsica no afectan el comportamiento de los


Procedimientos

Pgina 49

GeneXus X: Quick Start

Nuestro objetivo ser crear un procedimiento que liste todos nuestros clientes junto a su total y otro
que permita modificar los precios vigentes en un 10%.

Paso 21: Implementacin de un Procedimiento para impresin


1. Crear un nuevo objeto del tipo
Procedimiento llamado CustomerReport

Figura: Procedimiento CustomerReport

2. Dentro de la solapa Source ingrese el


siguiente cdigo:

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

Figura: Source delProcedimiento CustomerReport

3. Ir a la solapa de Layout. Insertar el


atributo Customer Name (para ello vaya a la
opcin Insert/Attribute).

Pgina 50

GeneXus X: Quick Start

Figura: Layout del procedimiento

4. Inserte una variable llamada Total, de


tipo numrica de 6 dgitos.

Figura: Insercin de variables

5. Utilizando el Toolbox puede poner diseo


a su reporte (insertar Labels, Lneas, etc). Por
ejemplo, con el botn derecho sobre el
PrintBlock1 inserte otro PrintBlock y agregue
los ttulos correspondiente (CLIENTE y TOTAL)
utiliando la opcin Label del Toolbok. Luego,
mueva el PrintBlock2 hacia arriba, utilizando la
opcin que se desplegar al presionar el botn
derecho del mouse.
Deber agregar en el Sourse el siguiente
cdigo:

Figura: Layout del Procedimiento

6. Grabe el procedimiento.

Pgina 51

GeneXus X: Quick Start

7. En las propiedades del procedimiento que


se despliegan a su derecha, defina la
propiedad Main Program como TRUE y Call
Protocol en HTTP.

Figura: Propiedades del procedimiento

8. En la solapa de Reglas ingrese la siguiente


sentencia para definir el nombre y tipo de
archivo:

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

Figura: Reglas del Procedimiento

9. Para llamar a este procedimiento que


imprime los totales por cliente ingresaremos
un botn en la Transaccin de Facturas. Para
ellos abra el objeto INVOICE. Dentro de la
solapa Web, abra el Tollbox y arrastre un
botn dentro de la transaccin.

Figura: Transaccin de Facturas

Pgina 52

GeneXus X: Quick Start

10. Edite las propiedades dando el click


derecho sobre el botn insertado. En Caption
ingrese Imprimir, en On clic Event defina New
defina Imprimir.

Figura: Propiedades de la Transaccin

11. En la solapa de Eventos agregue el


siguiente cdigo:

Event 'Imprimir'
CustomerReport.Call
EndEvent

Figura: Eventos de la Transaccin

12. Salve y ejecute presionando F5. Ingrese


una nueva factura para probar la nueva
funcionalidad ingresada.

Figura: Ejecucin de la Aplicacin

Pgina 53

GeneXus X: Quick Start

Paso 22: Implementacin de un Procedimiento para actualizacin


Ahora realizaremos un procedimiento que permita modificar los precios vigentes en un 10%.
1. Crear un nuevo objeto del tipo Procedimiento
llamado Discount_of_prices.

Figura: Procedimiento Actualizacin de precios

2. En la solapa de Source agregue el siguiente


cdigo:

For each
ProductPrice =
ProductPrice+ProductPrice*0.10
Endfor

Figura: Source del Procedimiento

3. Grabe el procedimiento creado.


4. Para llamar este procedimiento, crearemos
un web panel que llame a este
procedimiento. El Web panel lo
denominamos Control_Panel.

Pgina 54

GeneXus X: Quick Start

Figura: Web Panel Control_Panel

5. En la solapa de Web Form ingrese un Button


(del men Toolbox)

Figura: Web Form

6. Edite las propiedades del botn haciendo


click derecho sobre el botn insertado. En el
caption ingrese Modificar precios.

7. Posicionado sobre el botn, click derecho


para Editar el Evento (opcin Go to Event).
En el evento deber realizar la llamada al
procedimiento:

Event Enter
Discount_of_prices.call()
EndEvent

Figura: Evento

8. Grabe el web panel y ejecute presionando


F5.

Figura: Ejecucin de la aplicacin

Pgina 55

GeneXus X: Quick Start

PARTE 8: Multiplataforma
Tiempo estimado: 5 minutos

Desarrollo Multiplataforma
GeneXus es una herramienta que permite generar aplicaciones de misin crtica en mltiples
plataformas. Una vez que ha generado y ejecutado una aplicacin en uno de esos ambientes, generar
y ejecutar la misma aplicacin en el otro ambiente es tan simple como definir un nuevo ambiente.
La GeneXus Trial Version ofrece nicamente el generador GeneXus .NET. No obstante, la versin
completa de GeneXus suporta las plataformas lderes del mercado. De este modo la misma aplicacin
generada para .NET con SQL puede ser generada para diferentes plataformas manteniendo las
mismas funcionalidades.
Visite http://www.genexus.com/technologies para obtener una lista
completa de las tecnologas soportadas por GeneXus.

Pgina 56

GeneXus X: Quick Start

Resumen
Esperamos que este tutorial le haya permitido experimentar las funcionalidades y beneficios claves de
GeneXus:

Diseo de Aplicaciones Basado en Conocimiento


Comenzamos por crear una Base de Conocimiento y describir los requerimientos de datos de nuestra
aplicacin como una serie de componentes del negocio llamados Objetos Transaccin en el Modelo de
Diseo de la Base de Conocimiento. GeneXus us esta informacin para inferir el modelo de datos
ptimo (3era forma normal) requerido para soportar todas sus Transacciones. Tambin agregamos
algunas reglas del negocio en las que GeneXus se bas para generar el cdigo de la lgica del negocio
de la aplicacin.

Generacin Automtica de la Base de Datos


Elegimos una plataforma de ejecucin especfica (Web, lenguaje de programacin, DBMS, etc.) y
creamos un Modelo donde GeneXus gener automticamente una base de datos fsica con el modelo
de datos del Modelo de Diseo.

Generacin Automtica de Cdigo y Prototipo Completamente Funcional


Generamos el cdigo fuente para los programas de nuestra aplicacin y probamos la aplicacin en el
ambiente de prototipo.

Mantenimiento de la Aplicacin
Hemos visto lo sencillo que es mantener/expandir una aplicacin, simplemente editando los objetos
GeneXus existentes y/o agregando nuevos, y luego GeneXus actualiza la base de datos y regenera los
programas de la aplicacin en forma automtica.

Diseo de Procesos No Interactivo


Hemos proporcionado una visin general sobre qu son los procedimientos independientemente de la
estructura de la base de datos de la aplicacin.

Desarrollo Multi-plataforma
Finalmente hemos descripto como migrar fcilmente su aplicacin GeneXus de un ambiente a otro.

Pgina 57

GeneXus X: Quick Start

FAQ
Question

GeneXus genera 100% del cdigo?

Si, GeneXus disea, genera y mantiene la base de datos y el cdigo de la aplicacin.

Question

El cdigo generado usar runtimes?

No. GeneXus genera cdigo nativo en la plataforma seleccionada y no requiere runtimes.

Question

Es posible utilizar estructuras de datos ya existentes?

Si, en GeneXus existe una herramienta (DBRET: Data Base Reverse Engineering) que permite realizar
el acceso a BD existentes en distintas tecnologas.

Question

Es posible tocar el cdigo generado?

Si, aunque no es recomendable ya que se pierden los beneficios de mantenimiento automtico e


independencia de la tecnologa. En caso de querer utilizar cdigo ya existente, se pueden hacer
llamadas dentro de GeneXus sin necesidad de modificar el cdigo generado.

Question

Puedo integrar controles (flash/Silverlight/JavaScript) en una aplicacin?

Si,
GeneXus
permite
integrar
diferentes
tipos
de
controles.
http://gallery.genexus.com/catalog.aspx?3
y
http://wiki.gxtechnical.com/commwiki/servlet/hwiki?category%3AUser+Controls,

Ver

ms

en
en

Pgina 58

GeneXus X: Quick Start

Question

Cul es el concepto de Tabla Extendida?

Dada una tabla base, su tabla extendida es el grupo de atributos que son directa o indirectamente
determinados por la clave de la tabla base:

Atributos que pertenecen a la tabla base.


Atributos que pertenecen a todas las tablas que estn directa o indirectamente relacionadas
en una relacin N a 1 con la tabla base.

Usos:

El concepto de tabla extendida permite que los reportes y procedimientos GeneXus


permanezcan vlidos cuando la estructura de la base de datos cambia.
La tabla extendida tambin es tambin usada por los objetos transaccin que pueden insertar,
actualizar y eliminar atributos que pertenecen a las tablas extendidas de las tablas base
referenciadas en la estructura de la transaccin.

Para encontrar la tabla extendida de una tabla dada se puede usar el Diagrama de Bachmann del
modelo de datos de la base de conocimiento:
1. Sobre la opcin Objects, cree un nuevo objeto del tipo Diagrams
2. Seleccione las tablas que desea desplegar y arrstrelas.

Figura 3 Diagrama de Bachmann del Modelo de Datos

En este ejemplo, podemos identificar la tabla extendida de cada una de las tablas de nuestro
proyecto:
Tabla Base
Customer
Invoice
InvoiceProduct

Tabla Extendida
Customer
Invoice, Customer
InvoiceProduct, Invoice, Customer

Pgina 59

GeneXus X: Quick Start

Question

Cul es el concepto de For Each?

El comando For Each es el corazn del lenguaje de procedimientos usado por GeneXus para definir
reportes y procedimientos. Recupera y actualiza informacin (mediante procedimientos online) desde
su base de datos.
Con el comando For Each usted puede definir la informacin a la que desea acceder y nombrar los
atributos que desea usar. GeneXus inferir automticamente las tablas apropiadas en tiempo de
generacin. Cuando la estructura de la base de datos cambie, las definiciones del For Each
permanecern vlidas.
La sintaxis bsica del For Each es la siguiente:
for each
print <something>
endfor
Cada comando For Each tiene una tabla de modelo de datos asociada que ser navegada. Est
compuesto de la tabla base del For Each y su tabla extendida (las tablas que GeneXus necesita
para buscar los atributos mencionados en el comando).
Las tablas que sern accedidas son determinadas por los atributos contenidos en el comando
For Each.
Para este grupo de atributos, GeneXus inferir la mnima tabla extendida.
La tabla base de este grupo de atributos ser la tabla base del For Each

Pgina 60

GeneXus X: Quick Start

Contactos y Recursos
La Comunidad GeneXus
La Comunidad GeneXus le brinda diversas formas de obtener respuestas a sus preguntas y soluciones
a sus problemas, as como tambin oportunidades para compartir sus propias experiencias. Encontrar
una lista completa de los recursos disponibles de la Comunidad en
http://www.genexus.com/community/

Soporte
ARTech ofrece una amplia variedad de servicios y recursos de soporte:

Soporte Auto-Servicio Online


Estos recursos estn disponibles para todos online. No obstante, la informacin a la que cada uno
pueda acceder depende de su Nivel de Acceso a GXtechnical (Usuario Registrado o Cliente).

Servicios de Soporte Interactivo


Interacte con otros miembros de la Comunidad o con el Equipo de Soporte.

Visite http://www.genexus.com/support/
Si usted vive en Estados Unidos o Canad puede enviarnos sus preguntas a gxtrial.usa@genexus.com

Como Comprar
Las Tecnologas GeneXus se venden a travs de la red de distribuidores en todo el mundo.
Encuentre su distribuidor ms cercano aqu http://www.genexus.com/distributors
O pngase en contacto con sales@genexus.com

Links recomendados
Web site: http://www.genexus.com
GeneXus X Basic Course: http://www.gxtechnical.com/basiccourse/
Laboratorio prctico de GeneXus X y Libro online: www.genexusx.com/aprenda
Comunidad GeneXus: http://www.genexus.com/community

Pgina 61

También podría gustarte