genexus x quick start es

Upload: filipe-leira

Post on 10-Jul-2015

140 views

Category:

Documents


0 download

TRANSCRIPT

GeneXus X: Quick StartMayo 2010

GeneXus X: Quick Start

Copyright Artech Consultores S. R. L. 1988-2010. 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

NDICEIntroduccin ................................................................................................................................................................................................................... 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 ........................................................................................................................................................................................................................... 5 PRIMEROS PASOS: Tutorial paso a paso .......................................................................................................................................................................... 7 Simbologa utilizada ............................................................................................................................................................................................................... 7 PARTE 1: Descubriendo GeneXus .................................................................................................................................................................................... 8 Qu es GeneXus?.................................................................................................................................................................................................................. 8 PARTE 2: Su primera aplicacin ....................................................................................................................................................................................... 8 Diseo de aplicaciones basado en el conocimiento ............................................................................................................................................................... 8 Paso 0: Caso de estudio ..................................................................................................................................................................................................... 9 Paso 1: Entorno de desarrollo ........................................................................................................................................................................................... 9 Paso 2: Creacin de una Base de Conocimiento y definicin del Environment ............................................................................................................... 10 Paso 3: Creacin de un Objeto Transaccin .................................................................................................................................................................... 11 Paso 4: Descripcin de la Estructura de la Transaccin (Structure) ................................................................................................................................. 12 Paso 5: Definicin de Campos Calculados Frmulas ................................................................................................................................................... 15 Paso 6: Visualizando del Modelo de Datos inferido por GeneXus ................................................................................................................................... 15 Paso 7: Visualizacin de los Formularios del Objeto Transaccin .................................................................................................................................... 18 Paso 8: Ejecucin de su Aplicacin .................................................................................................................................................................................. 19 Paso 9: Prueba de su Aplicacin ...................................................................................................................................................................................... 21 Paso 10: Agregar Reglas del Negocio Reglas ............................................................................................................................................................... 22 Paso 11: Creacin del Objeto Transaccin Cliente .......................................................................................................................................................... 24 Paso 12: Revisin de los Cambios efectuados al Modelo de Datos ................................................................................................................................. 26 Paso 13: Visualizacin del Reporte de Especificacin ...................................................................................................................................................... 28 Paso 14: Creacin de los Formularios Atrayentes Temas ............................................................................................................................................ 29 PARTE 3: Mantenimiento .............................................................................................................................................................................................. 30 Desarrollo Incremental y Mantenimiento de la Aplicacin .................................................................................................................................................. 30 Paso 15: Inclusin de Nuevos Objetos: Transaccin Producto ........................................................................................................................................ 30 Paso 16: Anlisis y reorganizacin de la BD ..................................................................................................................................................................... 31 PARTE 4: Agregando funcionalidad ............................................................................................................................................................................... 33 Utilizacin de Patrones en el desarrollo ............................................................................................................................................................................... 33 Paso 17: Aplicar un pattern ............................................................................................................................................................................................. 33 PARTE 5: Dilogos interactivos ...................................................................................................................................................................................... 35 Diseo de Consultas y Dilogos Interactivos (Web Panels) .................................................................................................................................................. 35 Paso 18: Creacin de un Web Panel: Facturas por cliente............................................................................................................................................... 35 Paso 19: Ejecucin del Web Panel modificando la instancia del Pattern ......................................................................................................................... 37 PARTE 6: Enriqueciendo la aplicacin ............................................................................................................................................................................ 39 Controles de usuarios ........................................................................................................................................................................................................... 39 Paso 20: Implementacin de un User Control ................................................................................................................................................................. 39 PARTE 7: Procedimientos .............................................................................................................................................................................................. 41 Diseo de Procesos No Interactivos (Procedimientos) ......................................................................................................................................................... 41 Paso 21: Implementacin de un Procedimiento para impresin ..................................................................................................................................... 42 Paso 22: Implementacin de un Procedimiento para actualizacin ................................................................................................................................ 46 PARTE 8: Multiplataforma............................................................................................................................................................................................. 48 Desarrollo Multiplataforma .................................................................................................................................................................................................. 48 Resumen ...................................................................................................................................................................................................................... 49 FAQ .............................................................................................................................................................................................................................. 50 Contactos y Recursos .................................................................................................................................................................................................... 52 La Comunidad GeneXus ....................................................................................................................................................................................................... 52 Soporte................................................................................................................................................................................................................................. 52 Como Comprar ..................................................................................................................................................................................................................... 52 Links recomendados ..................................................................................................................................................................................................... 52

Pgina 2

GeneXus X: Quick Start

INTRODUCCINEl 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 VERSIONRESTRICCIONES FUNCIONALESLa 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 LICENCIALa GeneXus Trial Version puede ser utilizada exclusivamente para evaluacin y capacitacin. Su instalacin es local y para un solo usuario.

LICENSE AGREEMENTCondiciones de Uso de la Licencia de Propiedad Intelectual GeneXus X Trial Version1. 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: 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.

Pgina 3

GeneXus X: Quick Start

SOPORTE TCNICOSi necesita ayuda para la instalacin y autorizacin de su versin trial, contctese con: [email protected] Si se encuentra en los Estados Unidos o en Canad puede enviar consultas de soporte a: [email protected] Para saber ms sobre los distintos servicios y recursos de http://www.genexus.com/support y http://www.genexus.com/training soporte tcnico y capacitacin de GeneXus visite:

Por informacin adicional, contctese con su distribuidor local: http://www.genexus.com/distributors o escrbanos a [email protected]

INSTALACIN Y AUTORIZACINREQUERIMIENTOS DE INSTALACINLa GeneXus Trial Version incluye los siguientes productos:

Modelador GeneXusEs 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 GeneXusGeneXus 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.

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

Requerimientos de Hardware Procesador: mnimo 1 GHz (recomendado multi core)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 o superior. Microsoft SQL Server 2005 o 2008 (Express, Standard o cualquier otra Edicin)1

1

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

Pgina 4

GeneXus X: Quick Start

REQUERIMIENTOS DEL GENERADOR .NETEsta seccin contiene los requerimientos para generar y ejecutar aplicaciones con el Generador GeneXus disponible en la GeneXus Trial Version.

Generador.NET

Requerimientos 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.

AUTORIZACIN1. 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. 3.

Siga los pasos indicados por el setup de instalacin. 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.

Pgina 5

GeneXus X: Quick Start

Figura: Cuadro de dilogo para el registro de la GeneXus Trial Version

4. 5. 6.

Complete los campos solicitados: Nombre, email y pas son obligatorios mientras que Compaa y Telfono son opcionales. 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. 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. 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. Usted ya est listo para comenzar a usar su GeneXus Trial Version! Si requiere ayuda para activar GeneXus X Trial Version escrbanos a [email protected].

7.

8. 9.

Pgina 6

GeneXus X: Quick Start

PRIMEROS PASOS: TUTORIAL PASO A PASOEl 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 cmo 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 7

GeneXus X: Quick Start

PARTE 1: DESCUBRIENDO GENEXUSTiempo 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.

PARTE 2: SU PRIMERA APLICACINTiempo estimado: 1:40

DISEO DE APLICACIONES BASADO EN EL CONOCIMIENTOEn 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.

A NALISTAS DE N EGOCIOS VERSUS D ESARROLLADORES

!

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.

P ROGRAMAR VERSUS DECLARAR LA APLICACINLa 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.

!

Pgina 8

GeneXus X: Quick Start

PASO 0: CASO DE ESTUDIOSupongamos 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.

PASO 1: ENTORNO DE DESARROLLOUna vez abierto GeneXus, descubrir una interface como en la imagen adjunta. Esta interface recibe el nombre de IDE (Integrated Development Environment 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

Pgina 9

GeneXus X: Quick Start

PASO 2: C REACIN DE UNA BASE DE CONOCIMIENTO Y DEFINICIN DEL ENVIRONMENTEl primer paso para crear una aplicacin con GeneXus es crear una Base de Conocimiento y definir el ambiente de trabajo.

B ASE DE C ONOCIMIENTO O K NOWLEDGE B ASE (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.

E NVIRONMENT

!

Para generar y mantener una aplicacin de trabajo en una plataforma de software especfica, debemos definir un Environment. Un Environment 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 Environment. 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 Environment nuevo, deber: 1. Haga click en la Knowledge Base. opcin New

2.

Ponga un nombre a la Base de Conocimiento: Demo. Seleccione un directorio donde crear la KB. Seleccione el lenguaje a generar. Haga clic en CREATE para continuar.

3.

4. 5.

Figura: Cuadro de dilogo para la creacin de una base de conocimiento

Pgina 10

GeneXus X: Quick Start

PASO 3: C REACIN DE UN O BJETO T RANSACCINNuestro objetivo ser definir las visiones de nuestros usuarios en objetos GeneXus.

O BJETO T RANSACCIN

!

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.

2. 3. 4.

Seleccione el tipo de objeto que quiere crear: TransactionFigura: creacin de un objeto nuevo

Ponga nombre al Objeto:Invoice.

Haga clic en CREATE.

Figura: Dialog box New Object

Pgina 11

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.

E STRUCTURA DEL OBJETO T RANSACCINLa 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 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

Pgina 12

GeneXus X: Quick Start 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 haciendo 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.

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: propiedad autonumber

Pgina 13

GeneXus X: Quick Start

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

U NIVERSAL R ELATIONSHIP A SSUMPTION (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 mismo atributo en otros objetos GeneXus (otras transacciones, procedimientos, reportes, etc.) simplemente haciendo referencia a su nombre. GeneXus establece las relaciones (claves forneas) entre las tablas del modelo de datos en base a los nombres de los atributos.

N OMENCLATURA GIK: G ENE X US I NCREMENTAL K NOWLEDGEGIK 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 14

GeneXus X: Quick Start

PASO 5: DEFINICIN DE CAMPOS CALCULADOS FRMULASF RMULASSon 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. 2. 3. 4.

Haga doble clic en el campo Formula del atributo LineTotal (a la derecha de la descripcin del atributo). 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. Repita los Pasos 1 y 2 para el resto de las frmulas que aparecen en la lista al principio de esta seccin. Haga clic en Save para salvar las nuevas frmulas.

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

Figura: transaccin factura con frmulas

PASO 6: VISUALIZANDO DEL MODELO DE DATOS INFERIDO POR GENEXUS

Pgina 15

GeneXus X: Quick StartUsted puede ver el modelo de datos inferido por GeneXus e incluso modificarlo.

G ENERACIN DE M ODELO DE D ATOS I NTELIGENTE

!

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.

G ENERACIN DE M ODELO DE D ATOS I NTELIGENTELa 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.

1. 2.

En el men de la izquierda, seleccione Tables. GeneXus mostrar la estructura de datos inferidas a partir de la transaccin.

Figura: tabla de factura

Figura: tabla de productos

Pgina 16

GeneXus X: Quick StartEn 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 InvoiceID InvoiceDate CustomerID CustomerName Ntese que: InvoceProduct InvoiceID ProductID ProductName ProductPrice LineQuantity

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.

Pgina 17

GeneXus X: Quick Start

PASO 7: VISUALIZACIN DE LOS FORMULARIOS DEL OBJETO TRANSACCINVisualice el formulario Web predeterminado que han sido generado automticamente por GeneXus para su recin creado objeto transaccin (debe esta posicionado dentro del objeto Factura).

!1.

F ORMULARIO W EBDespus 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: Seleccione la solapa WebForm de la transaccin Factura.

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 18

GeneXus X: Quick Start

PASO 8: EJECUCIN DE SU APLICACING ENERACIN DE LA BD EN 3 ERA F ORMA N ORMAL

!

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

R EPORTE DE C REACIN DE B ASE DE D ATOS :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.

1. 2.

Presione F5 o vaya a travs del men opcin BUIL /RUN DEVELOPER MENU. 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

Pgina 19

GeneXus X: Quick Start

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 20

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 21

GeneXus X: Quick Start

PASO 10: AGREGAR REGLAS DEL NEGOCIO REGLASAgreguemos algo de lgica bsica de negocios a su aplicacin.

R EGLAS G ENE X USLas 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. 2. 3. 4.

Seleccione la solapa Reglas de la transaccin Invoice. Utilizaremos la regla Default que asigna un valor predeterminado a un atributo o variable. Complete la frmula del modo siguiente: Default(InvoiceDate, &today);lo que indica que el valor predeterminado 1 de la Fecha de la factura ser la fecha actual. Haga clic en el botn de salvar.

Figura: regla de la transaccin

Ahora otra regla simple que establece un mensaje de error si la cantidad de productos ingresada es nula:

5. 6.

Agregue la siguiente regla: Error("The product cannot be empty") Haga clic en el botn de salvar.

if LineQuantity.IsEmpty();

1

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

regla.

Pgina 22

GeneXus X: Quick Start

Figura: declaracin de reglas

7.

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

Figura: ejecucin de la aplicacin

Pgina 23

GeneXus X: Quick Start

PASO 11: CREACIN DEL O BJETO T RANSACCIN C LIENTELos 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. 2.

Cree el objeto Transaccin Cliente siguiendo el Paso 2: Creacin de un Objeto Transaccin y el Paso 3: Describir la Estructura de la Transaccin. Agregue los siguientes atributos a la Estructura Cliente: ATRIBUTO CustomerID CustomerName CustomerAddress CustomerEmail TIPO ----------------Character(50) Character(50) DESCRIPCIN --------------------------------------Customer Address 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. 4.

Presione el botn derecho del mouse sobre el atributo CustomerID y seleccione Propiedades. 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. 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 concuerden con el nombre ingresado por el usuario. Estas propiedades son parte de la implementacin de AJAX que hace GeneXus automticamente.

5.

FIGURA: VENTANA DE PROPIEDADES

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

Figura: estructura de la transaccin cliente

Pgina 24

GeneXus X: Quick Start

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 25

GeneXus X: Quick Start

PASO 12: REVISIN DE LOS CAMBIOS EFECTUADOS AL MODELO DE DATOSPresione la tecla F5. Esto generar un Reporte de Anlisis de Impacto.

!

A NLISIS DE I MPACTODescribe 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.

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.

NOTE

Pgina 26

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 27

GeneXus X: Quick Start

PASO 13: VISUALIZACIN DEL REPORTE DE ESPECIFICACINYa 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.

!

R EPORTE DE E SPECIFICACINDescribe como se ejecutar el programa, a que tablas acceder (y como) y que operaciones realizar.

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.

FIGURA: REPORTE DE NAVEGACIN DE TRANSACCIN DEL CUSTOMER

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.

FIGURA: REPORTE DE NAVEGACIN DE LA TRANSACCIN INVOICE

Pgina 28

GeneXus X: Quick Start

PASO 14: CREACIN DE LOS FORMULARIOS ATRAYENTES TEMASEn esta seccin crear un nuevo Tema basado en una plantilla predefinida y lo configurar como el Tema de su aplicacin.

O BJETO T EMA

!

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). Abra la planilla GeneXusX 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 Salve los cambios realizados presionando el botn de grabar ( )Figura: GeneXus Theme Editor

2. 3.

4. 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 29

GeneXus X: Quick Start

PARTE 3: MANTENIMIENTOTiempo estimado: 15 minutos

DESARROLLO INCREMENTAL Y MANTENIMIENTO DE LA APLICACINHasta 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.

D ESARROLLO I NCREMENTAL CON G ENE X US

!

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 PRODUCTOAl 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:

1.

Cree la transaccin Producto siguiendo el

Pgina 30

GeneXus X: Quick Start

2.

Paso 3: Creacin de un Objeto Transaccin y el

Pgina 31

GeneXus X: Quick Start

3.

Paso 4: Descripcin de la Estructura de la Transaccin . Inserte los siguientes atributos en la Estructura de la Transaccin Producto: ATRIBUTO ProductID ProductName ProductPrice TIPO ------------------------DESCRIPCIN ----------------------------------------------------------

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

PASO 16: ANLISIS Y REORGANIZACIN DE LA BDCuando 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.

Pgina 32

GeneXus X: Quick Start

Figura: listado de base de datos (modelo de datos) para invoiceproduct y tablas producto

Pgina 33

GeneXus X: Quick Start

1. 2.

Seleccione Reorganize. 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

3.

Ahora es tiempo de ejecutar su aplicacin!

Figura: ejecucin de su aplicacin

Pgina 34

GeneXus X: Quick Start

PARTE 4: AGREGANDO FUNCIONALIDADTiempo estimado: 10 minutos.

UTILIZACIN DE PATRONES EN EL DESARROLLOHemos 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.

!

P ATTERNS O P ATRONESSon 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 PATTERNAplicaremos 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: dilogo para la seleccin de transacciones

3. 4. 5.

Sobre las transacciones seleccionadas haga click derecho, opcin Apply Pattern, Work With. Grabe los cambios. 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

Pgina 35

GeneXus X: Quick Start

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 36

GeneXus X: Quick Start

PARTE 5: DILOGOS INTERACTIVOSTiempo estimado: 15 minutos

DISEO DE CONSULTAS Y DILOGOS INTERACTIVOS (WEB PANELS)W EB P ANELS

!

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. 2. 3. 4.

En el men Objeto haga clic en Nuevo Objeto. Seleccione el Tipo de Objeto que desea crear: Web Panel. Nombre al Objeto: InvoicesPerCustomer Haga clic en OK.

Figura: Dialog Box Para Definir Objeto

5.

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

6.

Figura: ventana del selector de free style grid

7. 8.

Ubicados dentro de la grilla, seleccione la opcin Insert, Atributte. Seleccione el atributo CustomerName y haga clic en OK.

Figura: web panel

Pgina 37

GeneXus X: Quick Start

9.

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

Figura: Ventana Insert Grid

10. En

la ventana Arrange Columns (Arreglar Columnas) haga clic en OK.

11. Grabar los cambios oprimiendo el diskette.

Figura: Ventana Web Panel con Grid

12. Ejecutar presionando F5.

FIGURA: EJECUCIN DE LA APLICACIN

Pgina 38

GeneXus X: Quick Start

PASO 19: EJECUCIN DEL WEB PANEL MODIFICANDO LA INSTANCIA DEL PATTERNVamos 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. Posicionarse botn derecho sobre la opcin Selection (Work With Customers) y elegir la opcin ADD, Actions.

3.

Figura: Trabajar con Clientes

4.

Agregar una nueva accin (botn derecho sobre la opcin Action, Add, Action) Editamos sus presionando F4. propiedades

5.

Figura: Modificacin de la instancia del Pattern

Pgina 39

GeneXus X: Quick Start

6.

Como Name ponemos ViewInvoicesPer Customer, como Caption tambin y en GXObject seleccionamos el Web Panel InvoicesPerCustomer. Salvamos los cambios

7.

Figura: Seleccin de Objetos

8.

Ejecutamos la presionando F5.

aplicacin

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 40

GeneXus X: Quick Start

PARTE 6: ENRIQUECIENDO LA APLICACINTiempo estimado: 15 minutos

CONTROLES DE USUARIOSU SER C ONTROLS

!

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 C ONTROL 1.

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

Figura: Web Panel VentasxPrd

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

Pgina 41

GeneXus X: Quick Start

4.

En la solapa Events, borre el cdigo generado y transcriba el siguiente:

Figura: eventos

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 42

GeneXus X: Quick Start

PARTE 7: PROCEDIMIENTOSTiempo estimado: 15 minutos

DISEO DE PROCESOS NO INTERACTIVOS (PROCEDIMIENTOS)P ROCEDIMIENTOSHasta 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).

C ARACTERSTICAS DE LOS P ROCEDIMIENTOS 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

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%.

Pgina 43

GeneXus X: Quick Start

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).

Figura: Layout del procedimiento

Pgina 44

GeneXus X: Quick Start

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. 7.

Grabe el procedimiento.

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

Pgina 45

GeneXus X: Quick Start

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

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

Pgina 46

GeneXus X: Quick Start

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 47

GeneXus X: Quick Start

PASO 22: IMPLEMENTACIN DE UN PROCEDIMIENTO PARA ACTUALIZACINAhora 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. 4.

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

Figura: Web Panel Control_Panel

Pgina 48

GeneXus X: Quick Start

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 49

GeneXus X: Quick Start

PARTE 8: MULTIPLATAFORMATiempo estimado: 5 minutos

DESARROLLO MULTIPLATAFORMAGeneXus 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 50

GeneXus X: Quick Start

RESUMENEsperamos 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 51

GeneXus X: Quick Start

FAQGeneXus genera 100% del cdigo?Si, GeneXus disea, genera y mantiene la base de datos y el cdigo de la aplicacin.

El cdigo generado usar runtimes?No. GeneXus genera cdigo nativo en la plataforma seleccionada y no requiere runtimes.

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.

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.

Puedo integrar controles (flash/Silverlight/JavaScript) en una aplicacin?Si, GeneXus permite integrar diferentes tipos de controles. Ver ms en http://gallery.genexus.com/catalog.aspx?3 y en http://wiki.gxtechnical.com/commwiki/servlet/hwiki?category%3AUser+Controls,

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:

Usos:

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.

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. 2. Sobre la opcin Objects, cree un nuevo objeto del tipo Diagrams Seleccione las tablas que desea desplegar y arrstrelas.

Figura: Diagrama de Bachmann del Modelo de Datos

Pgina 52

GeneXus X: Quick StartEn 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

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 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 53

GeneXus X: Quick Start

CONTACTOS Y RECURSOSLA COMUNIDAD GENEXUSLa 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/

SOPORTEArtech 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 [email protected]

COMO COMPRARLas 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 [email protected]

LINKS RECOMENDADOSWeb 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 54