Académique Documents
Professionnel Documents
Culture Documents
Julio 2008
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
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
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
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
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
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 or superior. Microsoft SQL Server 2005 o 2008 (Express, Standard o cualquier otra Edicin)
1
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.
Pgina 5
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.
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.
Pgina 6
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
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 TIP. Recomendamos leer lo que este dentro del recuadro.
Pgina 8
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
Pgina 10
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 11
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
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.
2. Seleccione el tipo de objeto que quiere crear: Transaction 3. Ponga nombre al Objeto:Invoice. 4. Haga clic en CREATE.
Pgina 13
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
InvoiceID InvoiceDate CustomerID CustomerName
TIPO
Numeric(4.0) Date Numeric(4.0) Character(20)
DESCRIPCIN
Invoice ID Invoice Date Customer ID 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
un Nuevo nivel a la estructura de datos ProductID ProductName ProductPrice LineQuantity LineTotal Numeric(4.0) Character(20) Numeric(8.2) Numeric(4.0) Numeric(8.2) Product ID Product Name Product Price Line Quantity Line Total
Presione ENTER y luego CTRL + Flecha Izquierda para volver al nivel del cabezal y comenzar los datos del pie. InvoiceSubtotal InvoiceTax InvoiceTotal Numeric(8.2) Numeric(8.2) Numeric(8.2) Invoice Subtotal Invoice Tax Invoice Total
Pgina 15
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.
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.
Pgina 16
Todo lo que es conceptualmente igual debe tener el mismo nombre. Los conceptos diferentes NO deben tener el mismo nombre. 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.
Esto nos permitir usar el transacciones, procedimientos, nombre. GeneXus establece las de datos en base a los nombres
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
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.
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
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.
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
1. En el men de la izquierda, seleccione Tables. 2. GeneXus mostrar la estructura de datos inferidas a partir de la transaccin.
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:
Pgina 20
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.
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.
Pgina 21
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
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
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
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
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.
2. Ingrese algunas instancias de factura. Gracias a la tecnologa AJAX, las frmulas se calculan automticamente, sin necesidad de recargar toda la pgina.
Pgina 25
Reglas
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
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
Pgina 27
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
Pgina 28
concuerden con el nombre ingresado por el usuario. Estas propiedades son parte de la implementacin de AJAX que hace GeneXus automticamente.
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!
Pgina 29
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
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
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
Reporte de Especificacin
Describe 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.
Pgina 32
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
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 4. Salve los cambios realizados presionando el botn de grabar ( )
Figura: GeneXus Theme Editor
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.
Pgina 34
PARTE 3: Mantenimiento
Tiempo estimado: 15 minutos
Pgina 35
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 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.
Pgina 36
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
Pgina 37
Pgina 38
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.
Pgina 39
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.
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.
Pgina 40
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.
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.
Pgina 41
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. 8. Seleccione el atributo CustomerName y haga clic en OK.
Pgina 42
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.
Pgina 43
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.
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.
4. Agregar una nueva accin (botn derecho sobre la opcin Action, Add, Action)
Pgina 44
6. Como Name ponemos ViewInvoicesPer Customer, como Caption tambin y en GXObject seleccionamos el Web Panel InvoicesPerCustomer. 7. Salvamos los cambios
9. En ejecucin, seleccionar la opcin Work with Customers para ver el botn que invoca al web panel creado.
Pgina 45
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.
Pgina 46
2. Active el Menu Toolbox, a travs del Menu View, Other Tool Windows,Toolbox
Figura: Eventos
Pgina 47
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
PARTE 7: Procedimientos
Tiempo estimado: 15 minutos
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).
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.
Pgina 49
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%.
3. Ir a la solapa de Layout. Insertar el atributo Customer Name (para ello vaya a la opcin Insert/Attribute).
Pgina 50
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:
6. Grabe el procedimiento.
Pgina 51
7. En las propiedades del procedimiento que se despliegan a su derecha, defina la propiedad Main Program como TRUE y Call Protocol en HTTP.
8. En la solapa de Reglas ingrese la siguiente sentencia para definir el nombre y tipo de archivo:
Output_file('Customers.PDF','PDF');
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.
Pgina 52
10. Edite las propiedades dando el click derecho sobre el botn insertado. En Caption ingrese Imprimir, en On clic Event defina New defina Imprimir.
12. Salve y ejecute presionando F5. Ingrese una nueva factura para probar la nueva funcionalidad ingresada.
Pgina 53
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
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:
Figura: Evento
Pgina 55
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
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
FAQ
Question GeneXus genera 100% del cdigo?
Question
Question
Si, en GeneXus existe una herramienta (DBRET: Data Base Reverse Engineering) que permite realizar el acceso a BD existentes en distintas tecnologas.
Question
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
Ver
ms
en en
Pgina 58
Question
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. Sobre la opcin Objects, cree un nuevo objeto del tipo Diagrams 2. Seleccione las tablas que desea desplegar y arrstrelas.
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
Question
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
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