Sunteți pe pagina 1din 55

GeneXus 15: Taller

Desarrollo de Aplicaciones
Multiplataforma con
GeneXus
2017
Copyright 1988-2017 |GeneXus S.A.

Todos los derechos reservados. Este documento no puede ser reproducido en cualquier medio sin el
consentimiento explícito de GeneXus S.A. La información contenida en este documento es para uso personal
únicamente.

Marcas Registradas

GeneXus es una marca registrada (*) en múltiples países y regiones, incluyendo entre otros, América Latina,
EEUU, Japón, la UE y Uruguay. Todas las demás marcas mencionadas en este documento son propiedad de
sus respectivos dueños.

Página | 1
Introducción …………………………………………………………………………………………3
PRIMEROS PASOS: Tutorial paso a paso ......................................................... 3
Simbología utilizada ........................................................................................ 3
PARTE 1: Descubriendo GeneXus .................................................................... 4
¿Qué es GeneXus? .......................................................................................... 4
PARTE 2: Su primera aplicación ...................................................................... 5
Diseño de aplicaciones basado en el conocimiento .............................................. 5
Paso 0: Caso de estudio ................................................................................. 5
Paso 1: Entorno de desarrollo ......................................................................... 5
Paso 2: Creación de una Base de Conocimiento y definición del Enviroment ......... 6
Paso 3: Creación de un Objeto Transacción ...................................................... 8
Paso 4: Descripción de la Estructura de la Transacción (Structure) ...................... 9
Paso 5: Definición de Campos Calculados  Fórmulas...................................... 13
Paso 6: Visualizando del Modelo de Datos inferido por GeneXus ........................ 14
Paso 7: Visualización de los Formularios del Objeto Transacción ....................... 16
Paso 8: Ejecución de su Aplicación ................................................................ 18
Paso 9: Prueba de su Aplicación .................................................................... 20
Paso 10: Agregar Reglas del Negocio  Reglas ............................................... 20
Paso 11: Creación del Objeto Transacción Cliente ........................................... 22
Paso 12: Revisión de los Cambios efectuados al Modelo de Datos ...................... 25
Paso 13: Visualización del Reporte de Especificación........................................ 27
PARTE 3: Mantenimiento .............................................................................. 29
Desarrollo Incremental y Mantenimiento de la Aplicación .................................... 29
Paso 14: Inclusión de Nuevos Objetos: Transacción Producto ........................... 29
Paso 15: Análisis y reorganización de la BD .................................................... 31
PARTE 4: Agregando funcionalidad ............................................................... 33
Utilización de Patrones en el desarrollo ............................................................. 33
Paso 16: Aplicar un pattern .......................................................................... 33
PARTE 5: Multiplataforma–Smart Devices .................................................... 35
Desarrollo Multiplataforma .............................................................................. 35
PARTE 6: Live Editing ................................................................................... 43
Resumen ...................................................................................................... 50
FAQ............................................................................................................... 51
Contactos y Recursos ................................................................................... 54
La Comunidad GeneXus .................................................................................. 54
Soporte ........................................................................................................ 54
Como Comprar .............................................................................................. 54
Links recomendados ..................................................................................... 54

Página | 2
Introducción
El objetivo de este documento es ayudarlo a descubrir el potencial de la metodología de
desarrollo basada en el conocimiento propuesta por GeneXus a través de sus principales
funcionalidades:

 Diseño automático de modelo de datos


 Generación automática de código
 Mantenimiento automático de base de datos y código
 Desarrollo e instalación multi-plataforma

PRIMEROS PASOS: Tutorial paso a


paso
El objetivo de este tutorial es brindarle una primera experiencia práctica con GeneXus a medida
que aprende los fundamentos de la Metodología GeneXus. Al finalizar, usted conocerá como
crear aplicaciones de negocios complejas con mayor rapidez de lo que nunca haya imaginado.

En este ejercicio paso a paso usted creará una aplicación de negocios simple generando los
programas en la plataforma .NET.

Para conocer la lista completa de plataformas soportadas por GeneXus visite:


http://www.genexus.com/technologies/

A medida que vaya trabajando con esta guía, usará las funcionalidades claves de GeneXus:

 Diseño de aplicaciones basado en el conocimiento


 Generación inteligente de base de datos
 Generación automática de código
 Aplicaciones completamente funcionales
 Desarrollo incremental y mantenimiento automático de la aplicación
 Desarrollo en múltiples plataformas

Simbología utilizada

! Este símbolo introduce un concepto clave para el desarrollo del tutorial.

 Este símbolo introduce un TIP. Recomendamos leer lo que este dentro del
recuadro.

Página | 3
Este símbolo especifica el tiempo requerido.

 Este símbolo introduce una NOTA.

PARTE 1: Descubriendo GeneXus

Tiempo estimado: 5 minutos

¿Qué es GeneXus?
Básicamente, 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 diseño, construcción y mantenimiento de la Base de
Datos (BD) y los programas.

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


! diseña, genera y mantiene en forma automática los programas y la base de
datos para lograr el desarrollo rápido de aplicaciones críticas en múltiples
plataformas.

Página | 4
PARTE 2: Su primera aplicación

Tiempo estimado: 1:40

Diseño de aplicaciones basado en el conocimiento


En esta sección aprenderá a crear una Base de Conocimiento GeneXus y diseñar una aplicación
con base a los requerimientos de los usuarios. En este caso en particular, comenzaremos por
diseñar una factura y otros componentes que se requieren en un Sistema de Gestión de Ventas.

Analistas de Negocios versus Desarrolladores


Entender las necesidades del usuario final es una de las pocas tareas que no se
pueden automatizar en el desarrollo de software. Nos referimos a los

! desarrolladores de GeneXus como analistas de negocios en lugar de


programadores, codificadores o desarrolladores.

Programar versus declarar la aplicación


La Metodología GeneXus se basa en la descripción de las entidades del usuario
final (objetos reales tanto tangibles como intangibles) con las que debe manejarse
su aplicación. Esto se hace describiendo las visiones de los usuarios finales sobre
estas entidades, con un alto nivel de abstracción. Por este motivo, realizaremos una

! programación declarativa y los analistas de negocios describirán la realidad


para que GeneXus cree el modelo de datos en una BD especificada y construya los
programas de aplicación para cubrir las necesidades funcionales requeridas. Cuando
esa realidad cambie, los analistas de negocios simplemente deberán describir la
nueva realidad y será GeneXus quien se encargará de realizar los cambios
necesarios en el modelo de datos y los programas para representar la nueva
realidad descripta.

Paso 0: Caso de estudio


Supongamos que una empresa requiere una aplicación que administre su sistema de facturación.
Hoy no cuenta con uno y la facturación se hace de manera manual, con los grandes catálogos de
códigos de productos. Trabajaremos con las facturas, los clientes, los productos a la vez que
iremos introduciendo los fundamentos de los conceptos básicos de la metodología de GeneXus.

Durante este tutorial, logrará describir la realidad presentada en GeneXus para generar un caso
tipo de sistema de facturación en una plataforma Web utilizando el Generador .NET y BD SQL
Server.

Paso 1: Entorno de desarrollo


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

Figura: Entorno de Desarrollo (IDE)

Ventana principal: Está compuesta por la Start Page o Página de Inicio la cual a través de
un Really Simple Syndication (RSS) en forma dinámica brinda información técnica
relacionada con la herramienta y la comunidad de usuarios. Para obtener esta
información 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 Navegación

Barras de herramientas

Paso 2: Creación de una Base de Conocimiento y definición del


Enviroment
El primer paso para crear una aplicación con GeneXus es crear una Base de Conocimiento y
definir el ambiente de trabajo.

Base de Conocimiento o Knowledge Base (KB)


! Es un repositorio que contiene toda la información necesaria para generar una
aplicación en múltiples plataformas. En otras palabras, es un repositorio de toda la
descripción de la realidad.

Enviroment
Página | 6
Para generar y mantener una aplicación de trabajo en una plataforma de software
! específica, debemos definir un Enviroment. Un Enviroment integra todo lo
relacionado a la plataforma de ejecución (Generador, acceso a la BD, interfaz de
usuario y otras propiedades de dicha plataforma). Para esto, especificamos un
DBMS, un lenguaje meta y algunos parámetros 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
versión comercial del producto, GeneXus le indicará que procederá a ejecutar la creación de una
base de conocimiento en forma automática. La primera vez que abra la versión trial se creará
automáticamente 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 clic en la
opción New
Knowledge Base.

2. Ponga un nombre a
la Base de
Conocimiento:
TallerTelmexHub

3. Seleccione un
directorio donde
crear la KB.

4. Seleccione el
lenguaje a generar.
Figura: Dialogo box para la creación de una Base de Conocimiento
5. Haga clic en
CREATE para
continuar.

Página | 7
Paso 3: Creación de un Objeto Transacción
Nuestro objetivo será definir las visiones de nuestros usuarios en objetos GeneXus.

Objeto Transacción
Representa a los objetos de la realidad que maneja su aplicación. De las
transacciones definidas se infiere el modelo de datos de la aplicación (3era forma
! normal). GeneXus también usa el objeto transacción para generar el programa de
la aplicación que permitirá al usuario final, en forma interactiva, insertar, borrar y
actualizar registros en la base de datos física.

El siguiente paso, una vez creada la base de conocimiento será crear la primera transacción, que
representa una factura. Para ellos siga los siguientes pasos:

1. Haga clic derecho sobre


RootModule/New/Ob
ject o vaya al menú
FILE/NEW OBJECT.
También puede crear
un nuevo objeto
utilizando el shortcut
CTRL N.

Figura: Creación de un objeto nuevo

2. Seleccione el tipo de
objeto que quiere
crear: Transaction

3. Ponga nombre al
Objeto:FACTURA.

4. Haga clic en CREATE.

Figura: Dialog box New Object

Página | 8
Paso 4: Descripción de la Estructura de la Transacción (Structure)
El próximo paso será describir el objeto factura definiendo qué atributos integran la misma y
cómo están relacionados.

Estructura del objeto Transacción


La Estructura del Objeto Transacción es una descripción de los datos requeridos
para conocer el objeto real que este representa. En la estructura, debemos declarar
los atributos (campos) que forman la transacción (los datos con los que el usuario
interactuará) y las relaciones entre ellos. Con base a esta estructura, GeneXus
diseña y mantiene automáticamente 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 podrán tener el mismo nombre.
Los elementos claves para definir la estructura de la transacción son los siguientes:
 Nombre, tipo y descripción: Cada atributo es definido por su nombre,

! 
tipo de datos y descripción.
Niveles: Los atributos se agrupan en uno o más niveles, y estos niveles
pueden ser anidados o paralelos (pueden haber múltiples niveles anidados).
Por ejemplo: las líneas de una factura representan un nivel anidado al nivel
raíz. El nivel de las líneas de la factura demuestra el hecho de que una
factura puede tener muchas líneas, es decir, define una relación de una a
muchas entre la factura y las líneas de la factura.
 Atributos de Clave Primaria (PK): En cada nivel, uno o más 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, ClienteID.

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


transacción Factura, como se indica en la tabla que figura a continuación. Use la tecla TAB
para moverse entre el nombre, el tipo de dato y la descripción del atributo. Use la tecla
ENTER para agregar un nuevo atributo.

ATRIBUTO TIPO DESCRIPCIÓN


FacturaID Numeric(4.0) Factura ID

FacturaFecha Date Factura Fecha

ClienteID Numeric(4.0) Cliente ID

ClienteNombre Character(20) Cliente Nombre

Hasta aquí hemos ingresado los campos del cabezal de la factura. Ahora
ingresaremos las líneas. Para eso, presione CTRL + Flecha Derecha para
agregar un Nuevo nivel a la estructura de datos

ProductoID Numeric(4.0) Producto ID

Página | 9
ProductoNombre Character(20) Producto Nombre

ProductoPrecio Numeric(8.2) Producto Precio

LineaCantidad Numeric(4.0) Linea Cantidad

LineaTotal Numeric(8.2) Linea Total

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

FacturaSubtotal Numeric(8.2) Factura Subtotal

FacturaImpuesto Numeric(8.2) Factura Impuesto

FacturaTotal Numeric(8.2) Factura Total

Tips para aumentar su productividad:


Cuando comience a escribir el nombre de un nuevo atributo oprimiendo la tecla
“punto” GeneXus escribirá el nombre de la transacción en el campo de nombre
del atributo
Use “CamelCase” para nombrar a sus atributos, de manera que las descripciones
de los mismos se infieran automáticamente y tengan sentido. Ej.: Poner
 “FacturaTotal” como nombre de atributo, para que se infiera automáticamente la
descripción “Factura 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 dimensión de variable para configurarlo.

El primer atributo de cada nivel es definido por defecto como clave primaria de ese nivel,
pero esto se puede cambiar hacienda clic derecho sobre el atributo y eligiendo la opción
Toggle Key (Ctrl+K). Los atributos de Clave Primaria se identifican por una pequeña llave a
la izquierda de sus nombres ( ). En este ejemplo, FacturaID es el identificador de primer
nivel, y el atributo ProductoID es el identificador de segundo nivel. Esto significa que, para
un número de factura dado (FacturaID), el valor del atributo ProductoID no se repetirá en
líneas diferentes.

Página | 10
2. Moviendo el Mouse sobre la derecha de la
pantalla se desplegará el menú de propiedades
(Properties).

Figura: Ventana de Definición del Atributo

3. Expanda la opción Type Definition y configure


la propiedad Autonumber de FacturaID en
True. Los programas generados asignarán
automáticamente un valor de FacturaID a cada
nueva instancia de la factura.

Figura: Propiedad Autonumber

4. Salve la nueva estructura de la transacción oprimiendo el


botón con forma de diskette (Save) en la barra de
herramientas Standard. Si no ve esta barra, despliéguela
haciendo clic derecho sobre la barra de menú (Opción Edit)

Usted acaba de crear la estructura de una transacción Factura


compuesta de dos niveles:

 Un nivel básico (Factura o Factura), donde se especifica


toda la información necesaria para el Cabezal de la
Factura.
 Un nivel anidado, donde se especifica la información que
se repetirá en cada línea de factura.

Nótese que no hemos utilizado un número de línea como clave


primaria de las líneas de factura. Esta es una decisión de diseño
voluntaria. Usando el ID de Producto como clave primaria de las
líneas de la factura, estamos definiendo que no habrán dos
líneas en la misma factura para el mismo producto.
Figura: Estructura de la Factura

Universal Relationship Assumption (URA)


! Un elemento clave de la Metodología GeneXus es la hipótesis de que los atributos
con el mismo nombre son el mismo atributo. Esto se llama Universal Relationship

Página | 11
Assumption (URA), y según dicha hipótesis:
 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 foráneas) entre las tablas del
modelo de datos con base a los nombres de los atributos.

Nomenclatura GIK: GeneXus Incremental Knowledge


GIK es una nomenclatura estándar definida por GeneXus con el fin de dotar a los
atributos de un nombre que trasmita su concepto de la forma más clara posible. En
esta nomenclatura, el nombre de un atributo está formado por 4 componentes.
Algunos de ellos son opcionales:

Objeto + Categoría [+ Calificador] [+ Complemento]

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


! siempre) es el nombre de la transacción en la cual un atributo ha sido definido
para que pueda ser almacenado en una de las tablas asociadas a esa
transacción (esto significa que no debería inferirse en esa transacción
específica). Ejemplos: Factura, Cliente, Producto, Línea.
 Categoría: Es la categoría semántica del atributo. Define el rol que el atributo
tendrá dentro del objeto y en el ambiente de la transacción. Ejemplos:
Identificación, Fecha, Factura, Descripción, etc.
 El Calificador y el Complemento son componentes opcionales. Ejemplos: Inicio,
Fin, Mínimo, Máximo, etc.

Página | 12
Paso 5: Definición de Campos Calculados  Fórmulas

Fórmulas
Son atributos que pueden inferirse del valor de otros atributos. Un atributo fórmula
es definido de la misma manera que un atributo “normal”, es decir, tiene un
nombre, un tipo de datos y una descripción, además de una fórmula que define
como se calcula.

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


fórmulas no son almacenados en la base de datos (son atributos
! 
virtuales).
Las fórmulas son globales; son válidas en toda la base de conocimiento y
no solamente dentro de la transacción en la cual fueran definidas. Esto
significa que la fórmula es calculada cada vez que el atributo es invocado
desde una transacción 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 fórmula:

LineaTotal=ProductoPrecio * LineaCantidad
FacturaSubTotal = SUM(LineaTotal)
FacturaImpuesto= FacturaSubTotal * 0.16 ( o el número que corresponda)
FacturaTotal = FacturaSubtotal + FacturaImpuesto

1. Haga doble clic en el campo Formula del atributo LineaTotal (a la derecha de la descripción del atributo).

2. Escriba lo siguiente: “ProductoPrecio * LineaCantidad”. También se puede hacer clic sobre el botón sobre
el campo de la fórmula para abrir el Editor de Fórmula.

3. Repita los Pasos 1 y 2 para el resto de las fórmulas que aparecen en la lista al principio de esta sección.

4. Haga clic en Save para salvar las nuevas fórmulas.

Página | 13
Al finalizar, deberíamos tener la descripción de la factura de la siguiente manera:

Figura 1 Transacción Factura con fórmulas

Paso 6: Visualizando del Modelo de Datos inferido por GeneXus


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

Generación de Modelo de Datos Inteligente


Siempre que se haga clic en el botón 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 transacción GeneXus. Con base a
este modelo de datos, GeneXus generará una base de datos física cuando usted
defina un DBMS objetivo para un modelo.

Generación de Modelo de Datos Inteligente


La estructura de los objetos transacción determina las tablas e índices a ser
creados:

 Los nombres de las tablas e índices son asignados automáticamente por


GeneXus por el nombre de la transacción, 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 serán
automáticamente administradas por GeneXus.
 La clave primaria de la tabla correspondiente a una transacción de nivel N
se obtiene concatenando identificadores de los N-1 niveles anidados previos
con el identificador de nivel N.

Página | 14
1. En el menú de la izquierda, seleccione Tables, en caso de no encontrar la opción dirigirse a
View/Tables

2. GeneXus mostrará la estructura de datos inferidas a partir de la transacción.

Figura: Tabla de Factura

Figura: Tabla de FacturaProductos

En el Listado de la Base de Datos anterior se muestra que GeneXus infirió automáticamente un


modelo de datos normalizado, creando dos tablas para soportar el objeto transacción Factura,
Factura (el cabezal de la factura) y FacturaProducto (las líneas de la factura), con la siguiente
estructura:

Factura FacturaProducto

FacturaID FacturaID

FacturaFecha ProductoID

ClienteID ProductoNombre

ClienteNombre ProductoPrecio

LineaCantidad

Página | 15
Nótese que:

 La clave primaria de la tabla FacturaProducto está formada por dos atributos: FacturaID
y ProductoID (la concatenación del identificador de primer nivel, FacturaID, con el
identificador del segundo nivel, ProductoID).
 GeneXus eliminó automáticamente de las tablas los atributos que se habían definido
como fórmulas y los convirtió en fórmula globales para que se pueda acceder a ellas
desde cualquier lugar dentro de la base de conocimiento).
 En la tabla Factura:
o No puede haber dos facturas con el mismo FacturaID.
o Para cada FacturaID hay un único valor de FacturaFecha, ClienteID y
ClienteNombre.
 En la tabla FacturaProducto:
o No pueden haber dos líneas de factura con la misma FacturaID y ProductoID.
o Para cada par de FacturaID y ProductoID hay un único valor de
ProductoNombre, ProductoPrecio y LineaCantidad.

Paso 7: Visualización de los Formularios del Objeto Transacción


Visualice el formulario Web predeterminado que han sido generado automáticamente por
GeneXus para su recién creado objeto transacción (debe estar posicionado dentro del objeto
Factura).

Formulario Web
Después de salvar un nuevo Objeto Transacción, GeneXus crea automáticamente
! un Formulario Web predeterminado para especificar como accederá el usuario final
a los datos en la aplicación. Estos formularios pueden ser personalizados por el
analista del negocio más adelante.

Para el formulario Web siga los pasos siguientes:

1. Seleccione la solapa WebForm de la transacción Factura.

Figura: Solapa Web Form

Página | 16
Figura: Formulario (predeterminado) de la Transacción Factura

“Error Viewer: ctlError” es el control predeterminado donde se despliegan mensajes de error.


Puede ponerse en cualquier lugar del formulario y configurársele propiedades. Los mensajes
posibles son los que se despliegan en Msg y reglas de Error, y los controles automáticos de
GeneXus (es decir, integridad referencial, errores tipo de datos, etc.).

Estos formularios habilitarán a los usuarios finales a ingresar nuevas facturas que se insertarán
como nuevos registros en las tablas correspondientes. Los usuarios también podrán 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 están implícitas
en la lógica de la transacción. GeneXus generará automáticamente el código nativo
correspondiente en el lenguaje seleccionado.

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

 Explícitamente: describiendo la interfase de usuario para la presentación y captura de


datos.
 Implícitamente: diseñando el modelo de datos de la aplicación (tablas, índices, etc.)
Página | 17
Paso 8: Ejecución de su Aplicación

Generación de la BD en 3era Forma Normal


 GeneXus genera los programas ejecutables requeridos para crear su base de
datos en el DBMS seleccionado con 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 Creación de Base de Datos o
un Reporte de Análisis de Impacto respectivamente, que le mostrarán lo
que hará GeneXus.

En este paso, ejecutaremos la aplicación en .NET usando SQL Server como nuestro DBMS. En la
versión 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 Creación 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 información sobre el modelo de datos inferido y el esquema de
base de datos propuesto para ser generado. La información 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 botón de
Reorganización 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 Foránea: Describe las restricciones de
integridad de la tabla.
 Statements: Describe las sentencias que se ejecutarán.

1. Diríjase a las Preferences


(View/Other Tool
Windows/Preferences) de la KB y
navegue hasta llegar al nivel de
Generador C# y en sus propiedades
buscar Deploy to Cloud y coloque
en Yes la opción.

Página | 18
2. Presione F5 o vaya a través del
menú opción BUIL /RUN
DEVELOPER MENU y al aparecer
esta pantalla escriba su usuario
GeneXus y contraseña.

Figura: Datos GeneXus para acceder a la nube

3. GeneXus mostrara el reporte de


creación de la BD.

Figura: Dialog box para la Creación de la Base de Datos

4. Haga clic en CREATE. GeneXus


escribirá el código para la creación
de las tablas y los programas
necesarios en el lenguaje
seleccionado para acceder a dicha
BD. Recuerde que la BD que hemos
creado está en la nube y por ende
no hemos especificado datos de
conexión.

Figura: Output
Página | 19
Paso 9: Prueba de su Aplicación

1. El Menú del
Desarrollador es un
archivo HTML que
incluye a todos sus
objetos ejecutables. Es
un menú auxiliar para
probar su aplicación.
Haga clic en la opción
Factura.

Figura: Menú del Desarrollador

2. Ingrese algunas
instancias de factura.
Gracias a la tecnología
AJAX, las fórmulas se
calculan
automáticamente, sin
necesidad de recargar
toda la página.

3. Cuando haya finalizado


haga clic en el botón
Cerrar.

Figura: Instancia de la Transacción Factura

Paso 10: Agregar Reglas del Negocio  Reglas


Agreguemos algo de lógica básica de negocios a su aplicación.

Reglas GeneXus
Las Reglas GeneXus son el medio para definir la lógica 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 transacción porque
permiten programar su comportamiento (por ejemplo: asignando valores

Página | 20
predeterminados, definiendo controles de datos, etc.).

 Pueden involucrar atributos definidos en la estructura de la transacción 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 ejecución adecuado es automáticamente determinado
por GeneXus.

Sólo son válidas en la transacción 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 día actual:

1. Seleccione la solapa Reglas de la transacción Factura.


2. Utilizaremos la regla Default que asigna un valor predeterminado a un atributo o variable.
3. Complete la fórmula del modo siguiente: Default(FacturaFecha, &today);lo que
indica que el valor predeterminado de la Fecha de la factura será la fecha actual. 1
4. Haga clic en el botón de salvar.

Figura: Regla de la Transacción

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

5. Agregue la siguiente regla: Error("El producto no puede estar vacío") if


LineaCantidad.IsEmpty();
6. Haga clic en el botón de salvar.

Figura: Declaración de reglas

1
Tenga en cuenta que usted también puede usar las opciones Insertar / Atributo e Insertar / Fórmula del
menú Insertar para completar la regla.

Página | 21
7. Pruebe las reglas ingresadas, ejecutando la aplicación (F5).

Figura: Ejecución de la aplicación

Paso 11: Creación del Objeto Transacción Cliente


Los clientes son conceptos que corresponden a entidades independientes de la factura. Por lo
tanto corresponden que sea definido como una transacción en sí misma.

1. Cree el objeto Transacción Cliente siguiendo el Paso 2: Creación de un Objeto Transacción y


el Paso 3: Describir la Estructura de la Transacción.

2. Agregue los siguientes atributos a la Estructura Cliente:

ATRIBUTO TIPO DESCRIPCIÓN

ClienteID --------- --------------------

ClienteNombre --------- --------------------

ClienteDireccion Address Cliente Direccion

ClienteEmail Email Cliente Email

ClienteFoto Image Cliente Foto

Página | 22
Nótese que cuando comienza a escribir los atributos ClienteID y ClienteNombre, GeneXus le
indica el nombre completo del atributo y su tipo y descripción. Esto sucede porque estos
atributos ya están definidos en su base de datos.

3. Presione el botón derecho del mouse


sobre el atributo ClienteID y seleccione
Propiedades.
4. Dentro de Type Definition configure la
propiedad Autonumber de ClienteID
como True. De esta forma, los
programas generados asignarán
automáticamente un valor ClienteID a
cada nueva instancia de Cliente.
5. Activar el suggest para el código del
cliente, posicionándonos sobre las
propiedades de Cliente ID, dentro de la
opción InputType, definir Description y
agregar como ItemDescription:
ClienteNombre.

Así, en vez de ingresar el ID de un


cliente para identificarlo, podremos
ingresar su nombre y la aplicación
automáticamente inferirá su ID. La
propiedad suggest le sugerirá todos los
nombres de clientes que concuerden con
Figura: Ventana de propiedades
el nombre ingresado por el usuario.
Estas propiedades son parte de la
implementación de AJAX que hace
GeneXus automáticamente.

El Formulario Web de la Transacción Cliente se verá cómo se muestra en la siguiente figura.

Figura: Estructura de la Transacción Cliente

Página | 23
Figura: Formulario Web de la Transacción Cliente

Nótese (abajo) que el Formulario Web de la Factura también ha cambiado, reflejando los
cambios en las propiedades del atributo ClienteID: el atributo ClienteNombre es ahora la
descripción del atributo ClienteID. ¡Esto mejorara notablemente la usabilidad de la aplicación
como veremos rápidamente!

Figura: Formulario Web de la Transacción Factura

Página | 24
Paso 12: Revisión de los Cambios efectuados al Modelo de Datos

Presione la tecla F5. Esto generará un Reporte de Análisis de Impacto.

Análisis de Impacto
! Describe los cambios físicos que se deberán realizar para actualizar al nuevo
modelo de datos inferido por GeneXus.

Comprobará que GeneXus ha normalizado automáticamente su modelo de datos después de


haber incluido la nueva transacción.

Nos muestra que la tabla Factura será afectada, eliminando el atributo ClienteNombre de la tabla
Factura ya que el mismo puede ser inferido a través del ClienteID.

Aparece una nueva tabla, Cliente:


NOTE

En warning de especificación se refiere a que puede haber valores duplicados de clientes en la tabla

 Factura y que al normalizar estos pude afectar. También se muestra otro warning indicando que los
registros que se van a crear tienen valor nulo en las tablas.

Página | 25
Figura: Listado de la Base de Datos (Modelo de Datos)

Nótese que:

 GeneXus agregó una nueva tabla: la tabla Cliente (asociada a la transacción Cliente).
 El atributo ClienteNombre se ha eliminado de la tabla Factura (este atributo está
almacenado únicamente en la tabla Cliente), dejando la base de datos normalizada.
 En la tabla Cliente:
o No pueden haber dos clientes con el mismo ClienteID.
o Por cada ClienteID hay un único valor de ClienteNombre, ClienteDireccion y
ClienteEmail.
 En la tabla Factura:
o No pueden haber dos facturas con el mismo FacturaID.
o El atributo ClienteID en la tabla Factura una clave foránea tomada de la tabla
Cliente. Por lo tanto, existe una relación de uno a muchos entre Clientes y
Facturas:
 Por cada FacturaID existe únicamente un ClienteID.
 Cada ClienteID puede tener muchas Facturas (FacturaID).

Página | 26
Paso 13: Visualización del Reporte de Especificación
Ya está listo para proceder con la reorganización de la BD. Seleccione la opción REORGANIZE.
Los programas de reorganización crean un nuevo esquema de base de datos en la base de datos
física del modelo objetivo y transportan los datos desde el esquema viejo al nuevo.

Ejecutada la reorganización, GeneXus despliega un Reporte de Especificación compuesto por


una serie de Reportes de Navegación, uno para cada programa que vaya a generar.

Reporte de Especificación
! Describe como se ejecutará el programa, a que tablas accederá (y como) y que
operaciones realizará.

Figura: Reporte de Navegación de Transacción del Cliente

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


que cuando usted elimina un cliente de la Transacción Cliente, el programa verificará que no
1
existan facturas para ese cliente. Para realizar esta búsqueda con eficiencia, se usa el índice
foráneo ClienteID de la tabla Factura.

Página | 27
Figura: Reporte de Navegación de la Transacción Factura

Integridad Referencial en la Transacción Factura: La clave foránea ClienteID en el nivel FACTURA significa
que cuando usted inserta o actualiza una factura usando la Transacción FACTURA se controlará
automáticamente si el valor ingresado en la clave foránea ClienteID ya existe como clave primaria de un
registro en la tabla Cliente. Para realizar esta búsqueda con eficiencia, se usa el índice primario ClienteID de
la tabla Cliente.

El control de integridad referencial valida que un atributo ingresado (por ejemplo, ClienteID en una Factura)
es válido, pero no proporciona información sobre cuáles son los valores válidos. Para facilitar la búsqueda de
los valores válidos, GeneXus crea objetos Lista de Selección (prompts) que muestran el grupo completo de
valores válidos para elegir los que correspondan.

Página | 28
PARTE 3: Mantenimiento
Tiempo estimado: 15 minutos

Desarrollo Incremental y Mantenimiento de la Aplicación


Hasta el momento hemos creado una aplicación de trabajo con base a algunos objetos
transacción y reglas del negocio. Ahora veremos cómo mantener una aplicación GeneXus
simplemente editando los objetos GeneXus existentes y/o agregando nuevos y luego
actualizando su base de datos y regenerando los programas de la aplicación en forma
automática.

Desarrollo Incremental con GeneXus

A medida que la realidad cambia, los requerimientos del sistema evolucionan y esto
se traduce en cambios en los objetos GeneXus y/o nuevos objetos. Con base a los
nuevos objetos, GeneXus actualizará su base de datos automáticamente (creando

! un nuevo esquema de base de datos y migrando los datos del viejo esquema al
nuevo) y regenerará los programas de la aplicación que deban ser modificados.
Decimos que la Metodología GeneXus es incremental porque se basa en la
presunción 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 aplicación
automáticamente.

Paso 14: Inclusión de Nuevos Objetos: Transacción Producto


Al probar la aplicación, seguramente habrá notado que debe ingresar la Identificación,
Descripción y Precio de Producto en cada línea de factura. Esto no es lo que esperaría de un
sistema de gestión de ventas. ¡Y ni siquiera de un sistema simple como esta aplicación de
ejemplo!

Debemos contar con la posibilidad de agregar, actualizar y eliminar productos de nuestro


sistema. Para hacerlo, agregaremos la transacción Producto en nuestra Base de Conocimiento:

Página | 29
1. Cree la transacción Producto siguiendo el Paso 3: Creación de un Objeto Transacción y el
Paso 4: Descripción de la Estructura de la Transacción . Inserte los siguientes atributos en
la Estructura de la Transacción Producto:

ATRIBUTO TIPO DESCRIPCIÓN

ProductoID --------- --------------------

ProductoNombre --------- --------------------

ProductoPrecio --------- --------------------

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

La estructura (Structure) de la transacción Producto y su Formulario Web se verán como sigue.

Figura: Estructura de la Transacción Producto

Figura: Formulario Web de la Transacción Producto

Página | 30
Paso 15: Análisis y reorganización de la BD
Cuando usted salve su objeto Transacción Product, GeneXus normalizará el modelo de datos
nuevamente. La revisión del modelo de datos revela que GeneXus ha normalizado
automáticamente el modelo de datos moviendo los atributos ProductoNombre y ProductoPrecio
desde la tabla FacturaProducto (Detalle de Factura) a la nueva tabla Producto.

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

1. Seleccione Reorganize.

2. GeneXus realizará la reorganización


de la BD y especificará los cambios
necesarios sobre los programas de
aplicación

Figura: Dialog box para la Ejecución de la Reorganización y


Especificación

Página | 31
3. ¡Ahora es tiempo de ejecutar su
aplicación!

Figura: Ejecución de su aplicación

Página | 32
PARTE 4: Agregando funcionalidad

Tiempo estimado: 10 minutos.

Utilización de Patrones en el desarrollo


Hemos podido probar nuestra aplicación y comprobar cómo es el ingreso de datos a través de
las transacciones. Sería conveniente tener una visión más general de la información, de manera
de no solamente ingresar, borrar y modificar Clientes, Facturas o Productos, sino también
filtrarlos por algún criterio en particular, ordenarlos, etc. Para implementar esta funcionalidad de
forma rápida y sencilla se utilizan los patterns.

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

Paso 16: Aplicar un pattern


Aplicaremos el patrón “Work With” sobre las transacciones creadas.

1. A través del menú View, selecciones


la opción Work with Objetcs.

2. Seleccionar las transacciones Cliente,


Factura y Producto.

Figura 2 Diálogo para la Selección de Transacciones

3. Sobre las transacciones seleccionadas


haga click derecho, opción Apply
Pattern, Work With.

4. Grabe los cambios.

5. Presione F5 para ejecutar la aplicación.


Observamos que ya no tenemos
acceso a las transacciones. Lo que sí
tenemos es un acceso a nuestro “Work
With” Cliente, Factura y Producto.

Figura: Selección de TRN

Página | 33
6. Ejecute la aplicación

El pattern agregó la siguiente


funcionalidad:
 Filtro por fecha, sin necesidad de
refrescar la aplicación.
 Se puede ordenar por las
columnas haciendo clic en el
cabezal de las mismas.
 Se puede paginar la grilla.
 Haciendo clic en un link vamos al
view de un objeto, donde se
muestran los datos relacionados.
 Guarda el histórico con los links
visitados. Figura: Ejecución de la aplicación

FELICITACIONES!
Usted ha creado con éxito su primera aplicación con GeneXus.

Nuestro próximo paso es brindarle mayor información sobre las cosas que pueden realizarse con
GeneXus.

Página | 34
PARTE 5: Multiplataforma–Smart
Devices

Tiempo estimado: 20 minutos

Desarrollo Multiplataforma
GeneXus es una herramienta que permite generar aplicaciones de misión crítica en
múltiples plataformas. Una vez que ha generado y ejecutado una aplicación en uno de
esos ambientes, generar y ejecutar la misma aplicación en el otro ambiente es tan
simple como definir un nuevo ambiente.

Visite http://www.genexus.com/technologies para obtener una lista completa de las


tecnologías soportadas por GeneXus.

El objetivo es mostrar la creación de un nuevo ambiente, esta vez usando el nuevo


generador para Smart Devices de GeneXus 15.

Una ventaja del nuevo generador es que GeneXus se encarga de generar la aplicación
para las diferentes plataformas: Android o iOS.

A modo de ejemplo, mostraremos como generar la aplicación anterior para ser


utilizada en alguno de estos dispositivos.

El siguiente punto es mostrar la facilidad para generar aplicaciones, en este caso un


módulo de nuestro proyecto directamente para Android.
1.- Seleccione la Transacción “Cliente” y agregue un atributo adicional a los existentes:

 ClientePhone

Observe que los tipos asociados a cada atributo, serán inferidos a partir de Dominios pre-
existentes dentro de GeneXus(Email,Image,Phone).

Página | 35
2.- Regresemos nuevamente a la sección de Patterns en la parte inferior de la transacción.

3.- Una vez situados en esta sección, buscamos el tab que denominamos “Work With for
Smart Devices”. Y marcamos el check box de la parte superior izquierda. Guardamos el objeto.

4.- Nuestro siguiente objeto a crear, definirá el punto de entrada de la aplicación móvil, en otras
palabras estaremos armando el menú de la aplicación para el dispositivo. Para ello, definiremos
un nuevo objeto denominado Dashboarad y lo llamaremos “Menu”.

5.- Ahora definiremos los elementos con que contara este menú, para ello agregamos un nuevo
ítem a el dashboard Menu.

Página | 36
6.- En la ventana emergente que se despliega, seleccionamos el objeto hacia el cual queremos
enlazar, en nuestro caso “WorkWithDevicesCliente”.

7.- Al final se mostrara de la siguiente manera:

Página | 37
8.- Configure este objeto Dashboard como Startup Object, para ello seleccione la pestaña Menú
 Click derecho  “set as Startup Object”.

9.- Dentro del Knowledge Base Navigator  Preferences, seleccionamos el nuevo generador
(SmartDevices) que se ha creado y vamos a sus propiedades.

Página | 38
En la sección denominada Android SDK Directory debemos especificar el Path completo hacia
la ruta de instalación del SDK de Google. NOTA: si trabaja en la nube no es necesario
especificarlo.

10.- Activar el tema Simple Android dentro del KB Explorer nodo Customization -> Themes -
> Simple Android.

11.- Ahora podemos ejecutar la aplicación presionando F5, podemos ver en la ventana de
output como se empieza a generar el código correspondiente a la aplicación para Android.

Página | 39
12.- Al término de la compilación, se lanzara el emulador de Android y se desplegara la
aplicación dentro de él.

12.- Podemos acceder a la sección de cliente y verificar que los clientes que dimos de
alta se encuentren listados.

Página | 40
13.- Desde este punto podemos manipular la información directamente desde el
dispositivo,

ALTA
Menu  Insert/Agrega

El dispositivo interpreta nativamente los campos semanticos definidos en la


transacción, brindandonos una Experiencia de Usuario real al dispositivo. Aunado a
esto se mantienen las lógica de negocio implementada en las transacciones.

Página | 41
En un dispositivo móvil, el término Tap es equivalente al click del mouse en
! una PC, el cual nos permite seleccionar opciones e interactuar con la
aplicación.

Consulta/Modificación

Eliminación
Menu Delete/Eliminar

Página | 42
PARTE 6: Live Editing
Live Editing es la forma revolucionaria de diseñar aplicaciones con GeneXus: cambia la forma de
trabajar con las aplicaciones y permite establecer una conexión bidirectional entre el dispositivo
en el cual se está ejecutando la aplicación y GeneXus, permitiendo realizar cambios ejecutables
en el dispositivo, por el ejemplo cambios de User interface (UI) y User experience (UX).

1. Cambie el tipo de compilación a Live Editing.

2. Aparecerá del lado izquierdo del IDE una ventana Live Editing. Dar clic derecho sobre el
Dashboard -> Run with this only para activar el Live Inspector.

Página | 43
3. Observe cómo se ven las distintas capas 3D al navegar por la aplicación.

4. A continuación realice los siguientes cambios, es importante que note cómo cada cambio
realizado en GeneXus se replica en el emulador. TIP: Colocar el IDE de GeneXus y el emulador a
manera que ambos se puedan observar en pantalla.

 Diríjase a la instancia del pattern WorkWithDevicesCliente y seleccione el nodo List.


Agregue una fila superior dando clic derecho en la Tabla y seleccionando Insert Row
Before. Luego, seleccionando la tabla, en la propiedad Rows Style colocar 10dip para la
primera fila para darle una separación a la barra superior.

Página | 44
 Agregue una fila inferior de 10dip para dar una separación entre las personas listadas.

 Haga clic en el emulador en el registro de una persona para avanzar. Note en el Live
Inspector como se actualiza la pantalla para reflejar ahora la ventana correspondiente.

Página | 45
 Regrese a la instancia del pattern WorkWithDevicesCliente y diríjase al nodo Sección
General. Agregue una columna a la izquierda de 5% (Insert Column before) y otra a la
derecha de 5% (Insert Column after), para esto modifique la propiedad Column Style.

 Ahora cambiaremos los colores por defecto a la aplicación, para ello usaremos el tema
Carmine.

 Diríjase al Live Inspector dentro del detalle del cliente. Seleccione la capa Main Table y
entre a la Clase TableSection. Cambie la propiedad Background color por el valor
#CDCDCD.

Página | 46
 Ahora seleccione la capa donde están desplegados los datos del cliente y modifique la
clase Texblock en su propiedad ForeColor con el valor #222325.

Página | 47
 Seleccionando la misma capa, ahora damos clic en la clase Attribute para modificar el
valor de la propiedad Forecolor a #818181.

 Seleccione la capa intermedia llamada Sections y de clic en la clase Tab, cambie la


propiedad Tab Strip Background Color por el valor #B80545.

 Para finalizar dentro de las mismas propiedades del Tab colocar el valor #D85F98 para
la propiedad Tab Stirp Indicator Color.

Página | 48
 Observe el resultado final de los cambios que se han realizado sin guardar ni especificar
nada.

Página | 49
Resumen
Esperamos que este tutorial le haya permitido experimentar las funcionalidades y beneficios
claves de GeneXus:

Diseño de Aplicaciones Basado en Conocimiento

Comenzamos por crear una Base de Conocimiento y describir los requerimientos de datos de
nuestra aplicación como una serie de componentes del negocio llamados Objetos Transacción en
el Modelo de Diseño de la Base de Conocimiento. GeneXus usó esta información para inferir el
modelo de datos óptimo (3era forma normal) requerido para soportar todas sus Transacciones.
También agregamos algunas reglas del negocio en las que GeneXus se basó para generar el
código de la lógica del negocio de la aplicación.

Generación Automática de la Base de Datos

Elegimos una plataforma de ejecución específica (Web, lenguaje de programación, DBMS, etc.) y
creamos un Modelo donde GeneXus generó automáticamente una base de datos física con el
modelo de datos del Modelo de Diseño.

Generación Automática de Código y Prototipo Completamente Funcional

Generamos el código fuente para los programas de nuestra aplicación y probamos la aplicación
en el ambiente de prototipo.

Mantenimiento de la Aplicación

Hemos visto lo sencillo que es mantener/expandir una aplicación, simplemente editando los
objetos GeneXus existentes y/o agregando nuevos, y luego GeneXus actualiza la base de datos y
regenera los programas de la aplicación en forma automática.

Diseño de Procesos No Interactivo

Hemos proporcionado una visión general sobre qué son los procedimientos independientemente
de la estructura de la base de datos de la aplicación.

Desarrollo Multi-plataforma

Finalmente hemos descripto como migrar fácilmente su aplicación GeneXus de un ambiente a


otro.

Página | 50
FAQ

Question ¿GeneXus genera 100% del código?

Si, GeneXus diseña, genera y mantiene la base de datos y el código de la aplicación.

Question ¿El código generado usa runtimes?

No. GeneXus genera código nativo en la plataforma seleccionada y no requiere runtimes.

Question ¿Es posible utilizar estructuras de datos ya existentes?

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

Question ¿Es posible tocar el código generado?

Si, aunque no es recomendable ya que se pierden los beneficios de mantenimiento automático e


independencia de la tecnología. En caso de querer utilizar código ya existente, se pueden hacer
llamadas dentro de GeneXus sin necesidad de modificar el código generado.

¿Puedo integrar controles (flash/Silverlight/JavaScript) en una


Question
aplicación?

Si, GeneXus permite integrar diferentes tipos de controles. Ver más en


http://gallery.genexus.com/catalog.aspx?3 y en
http://wiki.gxtechnical.com/commwiki/servlet/hwiki?category%3AUser+Controls,

Question ¿Cuál es el concepto de Tabla Extendida?

Página | 51
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:

1. Atributos que pertenecen a la tabla base.


2. Atributos que pertenecen a todas las tablas que están directa o indirectamente
relacionadas en una relación N a 1 con la tabla base.
Usos:

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


permanezcan válidos cuando la estructura de la base de datos cambia.
 La tabla extendida también es también usada por los objetos transacción que pueden
insertar, actualizar y eliminar atributos que pertenecen a las tablas extendidas de las
tablas base referenciadas en la estructura de la transacción.

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 opción Objects, cree un nuevo objeto del tipo Diagrams


2. Seleccione las tablas que desea desplegar y arrástrelas.

Figura 3 Diagrama de Bachmann del Modelo de Datos

En este ejemplo, podemos identificar la tabla extendida de cada una de las tablas de nuestro
proyecto:

Tabla Base Tabla Extendida


Cliente Cliente
Factura Factura, Cliente
FacturaProducto FacturaProducto, Factura, Cliente

Question ¿Cuál es el concepto de For Each?

El comando “For Each” es el corazón del lenguaje de procedimientos usado por GeneXus para
definir reportes y procedimientos. Recupera y actualiza información (mediante procedimientos
online) desde su base de datos.

Con el comando For Each usted puede definir la información a la que desea acceder y nombrar
los atributos que desea usar. GeneXus inferirá automáticamente las tablas apropiadas en tiempo

Página | 52
de generación. Cuando la estructura de la base de datos cambie, las definiciones del For Each
permanecerán válidas.

La sintaxis básica 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 serán accedidas son determinadas por los atributos contenidos en el
comando For Each.
 Para este grupo de atributos, GeneXus inferirá la mínima tabla extendida.
La tabla base de este grupo de atributos será la tabla base del For Each.

Página | 53
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 también oportunidades para compartir sus propias
experiencias. Encontrará una lista completa de los recursos disponibles de la Comunidad en
http://www.genexus.com/community/

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

 Soporte Auto-Servicio Online


Estos recursos están disponibles para todos online. No obstante, la información a la que cada
uno pueda acceder depende de su Nivel de Acceso a su usuario GeneXus (Usuario Registrado
o Cliente).

 Servicios de Soporte Interactivo


Interactúe 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 Tecnologías GeneXus se venden a través de la red de distribuidores en todo el mundo.

Encuentre su distribuidor más cercano aquí http://www.genexus.com/distributors

O póngase en contacto con contactomx@genexus.com

Links recomendados
Web site: http://www.genexus.com/mx
Tutoriales: training.genexus.com
Laboratorio práctico de GeneXus 15: http://training.genexus.com/genexus/curso-
genexus-15
Comunidad GeneXus: http://www.genexus.com/community

Página | 54

S-ar putea să vă placă și