Software Factories para construir Sistemas de Información con GeneXus



Documentos relacionados
2_trabajar con calc I

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

Capítulo 9. Archivos de sintaxis

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

Microsoft Access proporciona dos métodos para crear una Base de datos.

Operación Microsoft Access 97

Seven ERP Guía De Referencia - Imágenes

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN

Operación de Microsoft Word

Guía N 1: Fundamentos básicos(i)

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

Conciliación bancaria en CheqPAQ Cargado de estado de cuenta

SIIGO Pyme. Templates. Cartilla I

MANUAL DE USUARIO APLICACIÓN SYSACTIVOS

Guía Práctica para el Uso del Servicio de Software Zoho CRM

ÍTEMS DEL MENÚ CREACIÓN Y GESTIÓN (Última revisión: lunes, 9 de marzo de 2009)

Introducción a la Firma Electrónica en MIDAS

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN

QUERCUS PRESUPUESTOS MANUAL DEL USO

A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla.

MANUAL DE USUARIO. Webservice simple para la exportación rápida de información proveniente de una base de datos. Versión 0,1,1

SERVICE QUALITY INSTITUTE. BAD Software. Manual de Usuario. Fisis Consultores 6/20/2013

PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

MANUAL DE USUARIO DE CUENTAS DE CORREO

Seven ERP Manual De Referencia Generales - Seguridad y Control de Acceso

MANUAL APLICACIÓN. SOFTWARE GESTIÓN DE CLÍNICAS DENTALES

Acronis License Server. Guía del usuario

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online

Contenido. cursos.cl / Teléfono:

Manual de usuario del Centro de Control

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

Capítulo 1 Documentos HTML5

Entidad Formadora: Plan Local De Formación Convocatoria 2010

MÓDULO 2: TRATAMIENTO DE DATOS CON HOJA DE CÁLCULO. Tema 1: Gestión de listas de datos y tablas dinámicas. Leire Aldaz, Begoña Eguía y Leire Urcola

Activación de un Escritorio Remoto

Para crear una lista como la anterior, primero escribe la información, y después selecciona el texto y aplícale el formato de viñetas.

Manejo de datos. Manejo de datos Diapositiva 1

Operación Microsoft Windows XP

Kepler 8.0 USO DEL ERP

ÍNDICE: Página. 1. Ingreso al Sistema Ingreso para personal del SAT Ingreso para usuarios Recuperación de Contraseña

Administración de la producción. Sesión 10: Gestor de Base de Datos (Access)

CONSTRUCCIÓN DEL PROCESO ADMINISTRADOR DE PROYECTOS SEIS SIGMA Bizagi Process Modeler

1.- MENU DE CONTROL O MENU VENTANA: permite cerrar la ventana cambiarla de tamaño y pasar a otra ventana

Administrar El Usuario Mediante Windows NT

LiLa Portal Guía para profesores

Manual de uso. Manual de uso - citanet 1

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

Guía rápida de uso de Openbravo

Principales rutinas de mantenimiento en una base de datos Firebird

vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc

A- CREAR COPIA FÍSICA Y HEREDAR REGISTRO DE CONFIGURACIÓN

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de:

Manual De Instalación Solin

MANUAL DE USUARIO INTRANET CONSULTA DE INVENTARIOS ( I C I )

ESTÁNDAR DESEMPEÑO BÁSICO Recopila información, la organiza y la procesa de forma adecuada, utilizando herramientas tecnológicas.

Edición de Ofertas Excel Manual de Usuario

Creación de contenidos en WebBuilder. Herramienta Web Builder en Word de Microsoft Office

Manual de uso de la Consola de Administración para usuarios Administradores.

Creando un Sitio Web personal.

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

MANUAL DE LA APLICACIÓN HELP DESK

MANUAL DE USUARIO PANEL DE CONTROL Sistema para Administración del Portal Web.

MANUAL DE LA APLICACIÓN DE ENVÍO DE SMS

MANUAL DE USUARIO CMS- PLONE

SMS Gestión. manual de uso

TEMA 20 EXP. WINDOWS PROC. DE TEXTOS (1ª PARTE)

Aspel-COI 6.0 Nuevas Funciones y Características

Delphos Portal GUÍA PARA LA CONSULTA DE LA INFORMACIÓN SOBRE PÉRDIDAS OCASIONADAS POR EVENTOS NATURALES MÓDULO DE PÉRDIDAS

Operación de Microsoft Excel

Introducción a los sitios de SharePoint en Office 365

GUIA PARA LA DISTRIBUCION DE APLICACIONES DE VISUAL BASIC 6.0

PowerPoint 2010 Modificar el diseño de las diapositivas

Formularios. Formularios Diapositiva 1

Guía de Usuario Envío del Formulario de Registro de Proveedores Potenciales.

COMPARTIR RECURSOS. Pag. 1 de 7

CONVERSOR LIBROS DE REGISTRO (IVA IGIC) Agencia Tributaria DEPARTAMENTO DE INFORMÁTICA TRIBUTARIA

Manual de Pagos y Transferencias

Carta Técnica D D Conceptos D y otros D Corte de Caja... 15

UNIVERSIDAD DE MEDELLÍN NUEVO PORTAL WEB MANUAL DE USUARIO GESTOR DE CONTENIDOS

Guí a Ra pida Dropbox.

3_formato I. NOTA: al pegar unas celdas sobre otras no vacías, se borrará el contenido de estas últimas.

Instalación del Admin CFDI

Operación Microsoft PowerPoint 97

Oficina Online. Manual del administrador

DOCENTES FORMADORES UGEL 03 PRIMARIA

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

MACROS. Automatizar tareas a través del uso de las macros.

Workflows? Sí, cuántos quiere?

MANUAL DE USUARIO SISTEMA DE ALMACEN DIF SONORA

Sincronización del Servidor.

Kaldeera Advanced Forms 2009 Guía del usuario

Figura No. IV-111. Página No. 125

Manual del usuario Corporativo

MANUAL DE USUARIO. SISTEMA DE INVENTARIO DE OPERACIONES ESTADÍSTICAS.

BASES DE DATOS - Microsoft ACCESS 2007-

WINDOWS. Iniciando Windows. El mouse

Transcripción:

Instituto de Computación Facultad de Ingeniería Universidad de la República Software Factories para construir Sistemas de Información con GeneXus - - 27 de agosto de 2007 Autor: Nicolás Castagnet Tutor: Jorge Triñanes

Software Factories para construir Sistemas de Información con GeneXus Nicolás Castagnet ncastagnet@gmail.com

Índice... 3 1. Instalación... 3 1.1. Registrar el Paquete KBDesigner... 3 1.2. Archivos Importantes del Paquete... 3 1.3. Configurar una Base de Conocimiento... 4 1.4. Objetos de KBDesigner... 4 2. Proceso de Desarrollo... 4 2.1. Modelo de Datos... 5 2.2. Procedimientos... 5 2.3. Navegaciones... 6 2.4. Especificación de Formularios... 8 2.5. WebPanels y Transacciones... 8 2.6. Menús... 9 2.7. Procesos... 9 2.8. Ejecutable... 9 Apéndice A Diagramas de Navegación... 10 A.1. Estructura... 10 A.2. Elemento y Atributos... 10 A.2.1. Root... 10 A.2.2. Context... 11 A.2.3. Route (Main)... 11 A.2.4. Form... 11 A.2.5. Action... 12 A.2.6. Expression... 12 A.2.7. InitCall... 12 A.2.8. Route... 12 Apéndice B Formularios... 13 B.1. Estructura... 13 B.2. Elemento y Atributos... 15 B.2.1. Form... 15 B.2.2. Parameters... 15 B.2.3. Parameter... 15 B.2.4. Layout... 15 B.2.5. Record... 15 B.2.6. Field... 15 B.2.7. Grid... 16 B.2.8. Filters... 16 B.2.9. Filter... 16 B.2.10. Columns... 16 B.2.11. Column... 16 B.2.12. Where... 16 B.2.13. Condition... 16 B.2.14. Order... 17 B.2.15. Columns... 17 B.2.16. TextArea... 17 B.2.17. Actions... 17 B.2.18. Action... 17 B.2.19. Routes... 17 B.2.20. Route... 17 B.2.21. Variables... 18 B.2.22. Variable... 18 Página 1 de 19

Apéndice C Menús... 19 C.1. Estructura... 19 C.2. Elemento y Atributos... 19 C.2.1. Menú... 19 C.2.2. Options... 19 C.2.3. Option... 19 Página 2 de 19

Este documento presenta una guía de cómo utilizar la Software Factory. La misma se implementó como un paquete de extensión de GeneXus que define nuevos tipos de objeto. A este paquete se le denominó KBDesigner. Dentro de esta guía se describe cómo instalarlo y cómo utilizarlo para construir Sistemas de Información con él. 1. Instalación A continuación se describe el proceso de instalación. 1.1. Registrar el Paquete KBDesigner Para configurar GeneXus Rocha para utilizar la Software Factory se deben seguir los siguientes pasos: 1. Copiar los archivos de la carpeta KBDesignerPackage desde la ruta donde se encuentran los archivos de la Software Factory a <Ruta de Instalación de GeneXus>\Packages 2. Ejecutar: genexus.exe /setup De esta forma se registrara el paquete de la Software Factory en Genexus y se declaran nuevos tipos de objetos. A partir de este momento al crear un nuevo objeto aparece una nueva categoría llamada KBDesigner con los tipos de objeto del paquete, estos son: Form, Menu y Navigation. El paquete KBDesigner junto con sus componentes fue probado con el Night Build 7097 (correspondiente al 19 de agosto del 2007). 1.2. Archivos Importantes del Paquete Al copiar los archivos del paquete en GeneXus se crea una carpeta llamada KBDesigner dentro de la carpeta Packages. En ella se pueden encontrar los archivos de los generadores junto con archivos de configuración que al modificarlos permiten personalizar la Software Factory: KbdFormEvents.dkt: Plantilla para generar el código de los eventos en el WebPanel asociado a un formulario. KbdFormRules.dkt: Plantilla para generar el código de las reglas en el WebPanel asociado a un formulario. KbdFormVariables.dkt: Plantilla para generar las variables en el WebPanel asociado a un formulario. KbdFormWebForm.dkt: Plantilla para generar el código HTML en el WebPanel asociado a un formulario. KbdFormExtension.xml: Archivo XML que permite extender la definición de los formularios con nuevos elementos y atributos. KbdFormStructure.xml: Archivo XML que describe la estructura base de los formularios. KbdMenuRules.dkt: Plantilla para generar el código de las reglas en el procedimiento asociado a un menú. KbdMenuSource.dkt: Plantilla para generar el código fuente del procedimiento asociado a un menú. KbdMenuVariables.dkt: Plantilla para generar las variables del procedimiento asociado a un menú. KbdMenuExtension.xml: Archivo XML que permite extender la definición de los menús con nuevos elementos y atributos. KbdMenuStructure.xml: Archivo XML que describe la estructura base de los menús. KbdNavigationExtension.xml: Archivo XML que permite extender la definición de las navegaciones con nuevos atributos. KbdNavigationStructure.xml: Archivo XML que describe la estructura base de las navegaciones. KbdSchemaExtension.xsd: Esquema de los XMLs de extensión (en formato XSD). KbdFormScript.cs: Código C# utilizado desde las plantillas de generación. Página 3 de 19

Dentro de los archivos de extensión se incluyeron comentarios que indican cómo definir nuevos elementos y atributos con ellos. 1.3. Configurar una Base de Conocimiento Luego que está instalado el paquete antes de utilizar los nuevos tipos de objeto dentro una Base de Conocimiento hay que importar el archivo KBDesignerObjects.xpz (ubicado en la carpeta KBDesignerObjects). Dentro de este archivo se encuentran objetos que son referenciados por el código generado (Nota: En el Night Build 7097 alguno de los objetos generados que incluye la distribución dan errores al importarlos, es necesario importar el archivo dos veces y luego ejecutar la opción Generate All Forms ubicada en el menú Tools). Los objetos utilizados dentro de procesos de GXFlow referencian a objetos que no son incluidos de forma estándar (al menos hasta el Night Build 7097). Para compilarlos es necesario definir el valor /r:bin\apgxflowcore.dll en la propiedad Compiler flags del modelo. Adicionalmente, se deben copiar los archivos de KBDesignerFiles.zip (ubicado en la carpeta KBDesignerFiles) a la carpeta de ejecución asociada al modelo. Estos archivos deben quedar dentro de la carpeta kbdfiles en la ruta base. Allí se define un archivo css y las imágenes que se muestran en tiempo de ejecución. En la carpeta KBExample se incluye una Base de Conocimiento completa configurada. Junto con los objetos de la extensión KBDesigner se incluye un ejemplo que implementa un Sistema de Gestión de Proyectos. Para ejecutar la aplicación se debe invocar al objeto WPLogin. Cuando se inicia la aplicación, si no hay usuarios registrados se crea el usuario admin con contraseña admin. Utilizar este usuario para ingresar, una vez dentro de la aplicación se pueden definir otros usuarios. 1.4. Objetos de KBDesigner Al importar los objetos del archivo xpz se crea la carpeta Libraries\LKbDesigner. Estos objetos son llamados por el código escrito por los generados por lo tanto no es necesario utilizarlos directamente. La función de cada uno de ellos se encuentra documentada en la sección de reglas. Si fuera necesario también se pueden modificar para personalizar la Software Factory. Los objetos de la carpeta Design se utilizan para copiar el diseño gráfico. Por lo tanto, si se quiere alterar el aspecto de las aplicaciones generadas se pueden modificar estos objetos (junto con los archivos de la carpeta kbdfiles de la aplicación Web). 2. Proceso de Desarrollo En esta sección se dará una guía de cómo utilizar la Software Factory para construir un Sistema de Información con ella. Esta guía define un proceso de desarrollo compuesto por artefactos y restricciones. Cada artefacto representa una clase de elemento que se debe producir durante el proceso (por ejemplo, diagramas de navegación) y las restricciones indican qué otros artefactos previos se necesitan para construirlo (por ejemplo, se necesita el Modelo de Datos para las Navegaciones). Esta organización en base a restricciones brinda flexibilidad, ya que no impone una secuencia fija de actividades. Las actividades de creación de cada uno de estos artefactos se pueden adaptar utilizando el flujo que mejor refleje las necesidades del proyecto, siempre y cuando se respeten las restricciones. La Software Factory apunta a las fases diseño e implementación, por lo tanto, otras fases que se incluirían en un proceso completo, como relevamiento o verificación, no serán consideradas ya que están fuera de su alcance. En la Figura 1 se muestra un grafo que indica los artefactos que se deben producir y el camino para llegar a partir de ellos hasta una aplicación ejecutable. Las flechas indican las restricciones, por ejemplo, para definir las Navegaciones se necesita el Modelo de Datos y los Procedimientos. Sin embargo, estas restricciones pueden ser parciales. Por ejemplo, si se van a construir las Navegaciones para un modulo de administración Página 4 de 19

de usuarios sólo se necesita el Modelo de Datos con las tablas que definen los usuarios, y no es necesario el modelo completo. Procesos Modelo de Datos Menús Navegaciones Especificaciones de Formularios WebPanels y Transacciones Ejecutable Procedimientos Figura 1. Artefactos y restricciones Varios de los artefactos de la figura son generados automáticamente por la Software Factory de forma total o parcial. En las siguientes secciones se describe cómo se construye cada uno de ellos. 2.1. Modelo de Datos El Modelo de Datos define las tablas, atributos y relaciones de la aplicación. Para construirlo se deben crear Transacciones GeneXus. En ellas también se pueden incluir reglas de negocio (como por ejemplo, que el nombre de una persona no puede estar vacía). Dentro de las transacciones se encapsulan las reglas de negocio, luego la Software Factory traslada estas reglas a todas las interfaces que interactúen con la tabla y se encarga de mantenerlas sincronizadas. Se recomienda definir los nombres de las tablas en plural. El editor de navegaciones utiliza estos nombres para sugerir los títulos de las páginas, y si están en plural sus sugerencias serán más acertadas. Adicionalmente, se utilizan las descripciones de los atributos para sugerir las etiquetas que se muestran a la izquierda de cada campo y los títulos de las grillas. Para organizar los componentes de la Base de Conocimiento se recomienda definir el Modelo de Datos dentro de subcarpetas de la carpeta Data. 2.2. Procedimientos Representan a los objetos GeneXus en donde se implementan transformaciones y se realizan cálculos sobre los datos. Los procedimientos se implementan de la misma forma que se haría sin la Software Factory, aunque se sugiere definirlos dentro de la carpeta Operations o en una subcarpeta de esta. Esto último simplifica la construcción de navegaciones, ya que al definir las acciones que se puede realizar desde una página, el editor por defecto muestra los procedimientos de la carpeta Operations para seleccionar el procedimiento asociado a cada acción. Página 5 de 19

2.3. Navegaciones Definen las páginas que componen la aplicación, las rutas que establecen cómo se puede llegar de una a otra, los datos que se muestran o escriben y las acciones que se pueden realizar en cada una de ellas (en la Figura 2 se muestra un ejemplo de una navegación). Las navegaciones son el objeto más importante de la Software Factory. Figura 2. Ejemplo de Navegación Se debe crear una navegación por punto de menú que se quiera incluir en la aplicación. Si se va incluir tecnología de Workflow también se debe definir una navegación por tarea de los procesos de negocio. Las navegaciones son objetos de tipo Navigation (el cual está definido en la categoría KBDesigner en el dialogo para crear objetos). Se recomienda crearlas dentro de la carpeta Navigations, o en una subcarpeta de esta. Adicionalmente, para evitar conflictos por nombre duplicado se siguiere nombrarlas con el prefijo Nav (o NavWF si se utilizan dentro de procesos de Workflow). Las navegaciones parten de un recuadro gris que define el contexto en que se aplican. Si la navegación se invoca desde el menú la propiedad Type debe tener el valor Menu y dentro de dicho recuadro se escribe el titulo del punto de menú desde donde se ejecuta. En cambio, si la navegación se invoca desde una tarea de un proceso de Workflow se debe asignar el valor Workflow a la propiedad Type. En este último caso dentro del recuadro de contexto se indican los datos que se leen/escriben en la instancia del proceso. Estos datos se definen como una secuencia de nombre : tipo separados por coma. Para declarar allí variables se utiliza el formato estándar de GeneXus, también se pueden declarar símbolos que representan una instancia de una tabla. Por ejemplo, el valor &Texto : Numeric(18, 2), p : Proyectos declara la variable Texto de tipo numérico con largo 18 y dos decimales, y también el símbolo p en el cual se almacena el valor de una clave de la tabla Proyectos. Para las navegaciones que se invoca desde el menú, se pueden definir también los perfiles de usuarios que están habilitados a ejecutarlas. Esta tarea se realiza en un cuadro de texto que se encuentra debajo de la flecha que va desde el cuadro de contexto a la primera página. Allí se indica la lista de los perfiles habilitados separados por coma (si este campo está vacío se asume que están todos habilitados). En el momento de Página 6 de 19

ejecutar la aplicación sólo se mostrará la opción en el menú de los usuarios que tengan un perfil que los habilite a ejecutarla. Luego de definir el contexto se deben indicar las páginas que componen la navegación y las rutas que permiten ir de una a otra. Para hacerlo, con las flechas del teclado se puede seleccionar un punto de inserción (o hacer clic en él) y luego escribir un carácter alfanumérico. De esta forma se crea un recuadro en la posición seleccionada que representa a una página de la navegación. Dentro del recuadro se definen las expresiones que determinan los datos que se van a mostrar y/o escribir (se puede indicar más de una separada por coma). Cada expresión se define con el formato: [instancia : ] fuente. La sección entre paréntesis rectos es opcional. A continuación se presentan algunos ejemplos de expresiones para describir los casos posibles: Expresión Proyectos p : Proyectos P r : Requerimientos[p] #NombreWebPanel Significado En este caso se indicó el nombre de una tabla. Se muestra una grilla con los registros de la tabla. Es similar al caso anterior, salvo que se permite seleccionar un registro y se carga en el símbolo p. Este símbolo se puede utilizar en otras páginas para mostrar los datos del registro seleccionado. Se indicó el nombre de un símbolo. Muestra una serie de campos con los datos del registro que determina el símbolo p. En este caso se incluye una condición. Se muestran únicamente los registros de la tabla Requerimientos que están asociados al proyecto p. Es posible asignar más de una condición de este tipo agregando varios símbolos separados ; (punto y coma). El requerimiento seleccionado se almacena en el símbolo r. Define una fuente especial que se utiliza para indicar que una página de la navegación es un WebPanel que ya está definido. Permite incluir WebPanels que no están creados con la Software Factory, también se puede utilizar para representar ciclos en las navegaciones. Tabla 1. Ejemplos de expresiones Después de indicar los datos asociados a una página hay que indicar su titulo. El editor sugiere uno en función de la expresión que se utilice, por ejemplo si se escribe el nombre de una tabla asigna este mismo nombre como título, y si se indica un símbolo pone como titulo el nombre de la tabla del símbolo (pero quitando la terminación en plural). De cualquier forma, si se desea modificar el titulo se puede hacer editando el campo que se encuentra sobre el recuadro de la página. Para cada página en el editor de propiedades también se pueden definir acciones (que se representan como botones), filtros, condiciones adicionales y el orden en que se muestran los registros de una tabla. Al crear nuevas páginas al mismo tiempo se definen las rutas que marcan el camino para ir de una a otra. Al ejecutar la aplicación las rutas se pueden representar de varias formas: como hipervínculos dentro de las filas de una grilla, como una opción independiente o como una pestaña en la página. Si por ejemplo se define una página con la expresión p : Proyecto y la siguiente con la expresión p, la ruta a esta se define automáticamente como hipervínculos en la lista de proyectos (ver propiedad GridLink en la ruta). Para definir las rutas como pestañas se debe utilizar la propiedad Tab, o escribir el texto <TAB> sobre la ruta. Página 7 de 19

A cada ruta opcionalmente se le puede asociar un titulo, el cual se define con un campo de texto que se encuentra sobre la línea de la ruta. Si no se especifica un nombre se utiliza el titulo de la página destino para nombrar a la ruta en la interfaz de la aplicación. Dentro del campo que define el nombre también se permiten valores especiales como <TAB> y <IUD>. El valor <TAB> ya se explicó previamente, el valor <IUD> permite definir operaciones de Altas, Modificaciones y Bajas. En el texto IUR el valor I significa Insert (insertar), U significa Update (modificar) y D significa Delete (quitar). Se deben incluir únicamente las letras de las operaciones que se deseen habilitar. En caso que se habilite alguna de ellas la página destino se generará sobre una Transacción para poder realizarlas. En el Apéndice A se brinda documentación detallada de todos los elementos y atributos que se utilizan para definir las navegaciones. 2.4. Especificación de Formularios En los formularios se definen de forma detallada la estructura de las páginas que componente los diagramas de navegación. Para cada página el editor de navegaciones genera automáticamente un formulario. Estos formularios se representan con un objeto de tipo Form, que se crea como hijo de la navegación. Dentro de los formularios se indican los atributos se van a mostrar, los títulos, las etiquetas, entre otros datos. El editor genera el formulario de forma completa intentando inferir los datos que le faltan, por ejemplo, determina los atributos que se muestran en una grilla leyendo la estructura de la tabla que tiene asociada, e infiere los títulos de las columnas a partir de las descripciones de sus atributos. Se espera que en la mayoría de los casos genere algo razonable. Sin embargo, si se quiere hacer algún cambio se pueden abrir los formularios y editarlos manualmente. Tanto el editor de formularios como el de navegaciones se encargaran de sincronizar los cambios. El formulario contiene las siguientes secciones: Parameters: Define los parámetros del formulario. Initialization: Permite asociar objetos GeneXus para que se llamen al mostrar el formulario. Layout: Contiene los controles que se muestran, estos pueden ser grillas, registros o áreas de texto. Actions: Define las acciones que puede realizar el usuario. Las acciones se componen de una etiqueta, un objeto a ejecutar para realizar la acción y un conjunto de parámetros. Routes: Contiene las rutas que hay definidas en la página. Las rutas determinan las páginas a las que se puede llegar desde la página que define el formulario. Variables: Permite definir variables dentro de la página. Estas variables se pueden utilizar en los parámetros de los objetos que se asocian y en los campos que se muestran al usuario. Los formularios se editan a través de una estructura de árbol. Para agregar nuevos elementos se debe presionar el botón derecho del ratón sobre el elemento padre y seleccionar el tipo de elemento que se quiere crear. Los elementos se editan seleccionándolos y modificando sus atributos desde el editor de propiedades. En el Apéndice B se brinda documentación detallada de todos los elementos y atributos que se utilizan para definir los formularios. 2.5. WebPanels y Transacciones Los formularios definen la especificación de la interfaz de usuario de la aplicación. Para implementarla, se utilizan WebPanels o Transacciones. Los WebPanels se emplean cuando se define una consulta, y las Transacciones cuando se debe implementar una interfaz capaz de hacer altas o modificaciones sobre los registros de una tabla. Estos dos tipos de objetos se generan completamente a partir de los formularios utilizando plantillas dkt. Los objetos generados con este mecanismo no se pueden modificar manualmente, ya que al volver a grabar el Página 8 de 19

formulario que los define se generarán nuevamente, y se perderán los cambios. Si se quiere hacer un cambio en ellos se debe hacer desde el formulario. En caso que se quiera hacer un cambio en los objetos generados y no haya ninguna propiedad en los formularios que permita lograr el resultado deseado, se deberán modificar las plantillas dkt y los archivos de extensión para incluir una nueva abstracción que permita lograrlo (ver sección 1.2 Archivos Importantes del Paquete). 2.6. Menús Los menús también se generan a partir de los diagramas de navegación. Al definir un punto de menú en una navegación el editor la copia automáticamente al objeto MnuMain. Este objeto contiene la lista de opciones definidas para la aplicación. Cuando se graba una navegación también se graba el objeto MnuMain (si se hizo algún cambio en él), y al graba este último se genera el procedimiento responsable de carga el menú que le corresponde a cada usuario. Si se desea modificar el menú, por ejemplo para agregar una opción que no se define a partir de un diagrama de navegación, se puede editar el objeto MnuMain. Al abrirlo se presenta un editor con una estructura de árbol (similar a la de los formularios). Dentro de cada opción se indica su nombre, el objeto que tiene asociado y también los perfiles que están habilitados para utilizar la opción. Junto con el menú se define un procedimiento hijo. En este procedimiento se genera el código que carga el menú. Dentro de este código se evalúa el perfil del usuario actual y se incluyen únicamente las opciones que le corresponden. En el Apéndice C se brinda documentación detallada de todos los elementos y atributos que se utilizan para definir los menús. 2.7. Procesos Si se quiere incluir tecnología de Workflow en la aplicación se deben definir los procesos de negocio que se van a automatizar, para hacerlo se deben definir Diagramas de Actividad utilizando GXFlow. Se recomienda crear los procesos dentro de la carpeta Proceses con el prefijo Pro. Para invocar una navegación dentro de un proceso se debe asociar el WebPanel o Transacción de la primera página de la navegación a una tarea del proceso. Esta operación se realiza de la misma forma que se haría con los objetos construidos fuera de la Software Factory. Únicamente se debe tener la precaución de definir el contexto Workflow en la navegación correspondiente, así se genera el código necesario para interactuar con el motor de Workflow. 2.8. Ejecutable El Ejecutable comprende a los archivos compilados que deben ser copiados al servidor Web para poder utilizar la aplicación. Estos archivos se construyen con los generadores de GeneXus a partir de los objetos definidos en la Base de Conocimiento. Página 9 de 19

Apéndice A Diagramas de Navegación Dentro de este apéndice se describen los elementos y atributos que se pueden utilizar en el editor navegaciones. En primer lugar, se incluye un diagrama con los elementos disponibles y sus hijos, luego se brinda una descripción de cada uno de ellos y se enumeran sus atributos.. A.1. Estructura En la Figura 3 se muestra la estructura de los diagramas de navegación. Se utiliza una representación de árbol para indicar los hijos definidos para cada elemento. Root Context Route (Main) Form Action Expression InitCall Route Form Notación Elemento Elemento (cero o una instancia) Elemento Elemento (cero o más instancias) Elemento Elemento definido previamente A.2. Elemento y Atributos A.2.1. Root Figura 3. Estructura de los diagramas de navegación Raíz del documento. Actúa como contenedor del resto de los elementos. Página 10 de 19

A.2.2. Context Permite configurar el contexto en que se ejecuta la navegación. Type: Indica el tipo de contexto. Los valores posibles son: Menu: Se aplica cuando la navegación se ejecuta desde el menú principal Workflow: Se aplica cuando se ejecuta desde un proceso de Workflow. Text: Texto asociado al contexto, su significado depende del tipo de contexto. Si el tipo es Menu, indica el nombre de la opción de menú. En caso que sea Workflow, indica los datos que se almacenan a nivel de la instancia del proceso (ver sección 2.3 Navegaciones) A.2.3. Route (Main) Comprende la ruta que parte del contexto. Define la página de inicio de la navegación. Profiles: Define los perfiles que están habilitados a ejecutar la navegación. Se aplica únicamente cuando el tipo de contexto es Menu. Al cargar el menú principal sólo se incluye la opción si el usuario tiene uno de los perfiles validos. Se puede indicar más de un perfil separándolos por coma. Si el atributo se deja vacío no se aplica la restricción por perfil. A.2.4. Form Representa una página de la navegación. Title: Titulo de la página. Type: Tipo de página. Los valores posibles son: FormWebPanel: La página se representa con un WebPanel generado a partir de un objeto Form. FormTransaction: La página se representa con una Transacción generada a partir de un objeto Form (sólo se genera el formulario de la misma, y no su estructura) WebPanel: Define que se utiliza un WebPanel externo, su nombre se indica en el atributo Object Name. After Trn Code: Código adicional que se incluye en el evento After Trn (cuando el tipo es FormTransaction). Actions: Permite asociar acciones que el usuario puede realizar en la página, generalmente se representan con botones o links dentro de grillas. Cada acción se define con un elemento Action. Object Name: Nombre del objeto que se utiliza para representar la página. Parameters: Parámetros con que se invoca al objeto de la página. Los parámetros se calculan de forma automática en función de los símbolos que se utilicen dentro de las páginas. Sin embargo, se puede modificar este atributo para agregar variables adicionales dentro de la lista de parámetros. Selection Name: Nombre del símbolo al que se asocia la selección (sólo se muestra cuando hay una expresión asociada a la página). Source: Fuente de donde se obtienen los datos a mostrar/escribir en la página (sólo se muestra cuando hay una única expresión asociada a la página). Where: Condición de filtrado sobre los datos (sólo se muestra cuando hay una única expresión asociada a la página). Order By: Orden utilizado para mostrar los datos cuando en la fuente se define un conjunto (sólo se muestra cuando hay una única expresión asociada a la página). Filter By: Filtros que se le presentan al usuario para restringir los registros que se despliegan cuando la fuente es una tabla (sólo se muestra cuando hay una única expresión asociada a la página). Data Sources: A través de este atributo se puede indicar más de una expresión a la página. Cada expresión se representa con el elemento Expression. Página 11 de 19

Call On Start: Permite definir cero o más objetos que se llaman al cargar la página para inicializarla. Se pueden utilizar para cargar variables adicionales. Cada una de estas invocaciones se representa con el elemento InitCall. A.2.5. Action Define una acción que puede realizar el usuario sobre la página. Caption: Etiqueta que se muestra para identificar a la acción en la página. Object: Objeto que se invoca para ejecutar la acción. Parameters: Parámetros con que se realiza la invocación. Se pueden incluir tanto variables como referencias a símbolos. En este último caso se pasa la clave del registro que determina el símbolo. A.2.6. Expression Representa una expresión que determina los datos que se muestran o escriben en la página. Selection Name: Nombre del símbolo al que se asocia la selección. Source: Fuente de donde se obtienen los datos a mostrar/escribir en la página. Where: Condición de filtrado sobre los datos cuando la fuente es una tabla. Order By: Orden utilizado para mostrar los datos cuando la fuente es una tabla. Filter By: Filtros que se le presentan al usuario para restringir los registros que se despliegan cuando la fuente es una tabla. A.2.7. InitCall Define una invocación para realizar cuando se muestra la página. Caption: Permite definir un nombre para identificar la llamada. Object: Nombre del objeto que se invoca. Parameters: Parámetros con que se realiza la invocación. A.2.8. Route Brinda un camino para ir de una página a otra. Por cada ruta se agrega una opción en la página de origen que permite ir a la página destino. Caption: Define la etiqueta de la opción asociada a la ruta. Si no se define este atributo se toma el titulo de la página destino. Tab: Indica si la ruta se representa como una pestaña en la página de origen. GridLink: Indica si la ruta se representa como un link dentro de una grilla de la página de origen. Sólo se puede utilizar si muestra una tabla en dicha página. Insert: Indica si se define una operación de inserción. En caso que se indique True se utiliza una transacción en la página destino y al invocar esta operación se llama en modo INS. Update: Indica si se define una operación de modificación. En caso que se indique True se utiliza una transacción en la página destino y al invocar esta operación se llama en modo UPD. Delete: Indica si se define una operación de borrado. En caso que se indique True se utiliza una transacción en la página destino y al invocar esta operación se llama en modo DLT. Página 12 de 19

Apéndice B Formularios Dentro de este apéndice se describen los elementos y atributos que se pueden definir en el editor de formularios. Se sigue el mismo formato que se utilizó para las navegaciones en el Apéndice A. B.1. Estructura En la Figura 4 y 5 se muestra la estructura de los formularios. Se utiliza una representación de árbol para indicar los hijos definidos para cada elemento. Form Parameters Parameter Action Initialization Action Call Layout Record Action Action Field Action Grid Filters Continúa en la siguiente figura Action Filter Notación Elemento Elemento (cero o una instancia) Elemento Elemento (cero o más instancias) Figura 4. Estructura de los formularios Página 13 de 19

Form Layout Grid Columns Column Action Where Condition Action Order Columns TextArea Actions Action Routes Route Action Variables Variable Action Notación Elemento Elemento (cero o una instancia) Elemento Elemento (cero o más instancias) Elemento Elemento definido previamente Figura 5. Estructura de los formularios (continuación) Página 14 de 19

B.2. Elemento y Atributos B.2.1. Form Elemento base. Actúa como contenedor del resto de los elementos. Title: Titulo del formulario. Type: Tipo. Los valores posibles son los mismos de las páginas en los diagramas de navegación (ver sección A.2.4 Form). After Trn Code: Código adicional que se incluye en el evento After Trn (cuando el tipo es FormTransaction). Implementation: Nombre del objeto que se genera para implementar la especificación del formulario. Is Tab: Indica si la página se muestra como una pestaña. Is Workflow Entry: Indica si es la primera página de una navegación asociada a un proceso de Workflow. B.2.2. Parameters Contiene los parámetros que se definen en el objeto generado. B.2.3. Parameter Representa un parámetro del formulario. Name: Identificador del parámetro. Puede ser una variable (si comienza con & ) o un símbolo que identifica a un registro de una tabla. En este último caso al generar el objeto se agrega una variable por cada atributo que forma parte de la clave. Type: Tipo del parámetro. Sólo se aplica si el parámetro es una variable. TableKey: Nombre de la tabla para la cual se define el símbolo. Sólo se aplica si el parámetro es un símbolo. B.2.4. Layout Define los controles que se generan en el código HTML de la página para mostrar o editar los datos. B.2.5. Record Se utiliza para mostrar o editar un registro. Los registros se componen de campos, generalmente se define un campo por atributo. Source: Símbolo que determina el registro que se muestra. Este atributo se puede dejar vacío si sólo se quieren mostrar variables en los campos. B.2.6. Field Define un campo para mostrar o editar un atributo del registro. Caption: Etiqueta que se muestra a la izquierda del campo. Data: Nombre del atributo o la variable que está asociada al campo. Página 15 de 19

ReadOnly: Indica si el campo es de sólo lectura. Generalmente su valor es Auto, lo cual significa que será de sólo lectura salvo que el formulario este asociado a una transacción, el atributo no sea parte de la clave y no se pase por parámetro. IsPassword: Indica si el campo contiene una contraseña. Si se indica True se oculta el valor del campo sustituyendo sus caracteres por otro (depende del navegador que se utilice, generalmente es un asterisco o un circulo). Width: Ancho del campo en cantidad de caracteres. 0 si se determina de forma automática. Height: Altura del campo en cantidad de líneas. 0 si se determina de forma automática. B.2.7. Grid Representa una grilla. Se utiliza para mostrar un conjunto de registros. SelectionName: Símbolo al cual se le asigna la selección. Source: Fuente que determina los registros que se muestran. B.2.8. Filters Contiene los filtros definidos para la grilla. B.2.9. Filter Define un filtro que el usuario puede utilizar para restringir los registros que se muestran en la grilla. Caption: Etiqueta asociada al filtro. Data: Atributo sobre el cual se aplica el filtro. B.2.10. Columns Contiene las columnas que se muestran en la grilla. B.2.11. Column Define una columna de la grilla Title: Titulo de la columna. Data: Atributo que se muestra en la columna. Visible: Indica si la columna está visible. Se puede hacer invisible para cargar datos adicionales en la fila e incluirlos en los parámetros de invocaciones. B.2.12. Where Define condiciones adicionales que determinan los registros que se cargan en la grilla. Si hay más de una condición se combinan con el operador And. B.2.13. Condition Define una condición. Página 16 de 19

Expression: Expresión de la condición (con la misma sintaxis que en código GeneXus). B.2.14. Order Define el orden que se utiliza para mostrar los registros. B.2.15. Columns Determina las columnas por las cuales se ordena. Expression: Lista de atributos por los cuales se ordena (separados por coma). Si se quiere aplicar un orden descendente se debe poner el nombre del atributo entre paréntesis. B.2.16. TextArea Permite desplegar un texto en la página que no está asociado a ningún registro o variable. Title: Título del área de texto. Text: Texto que se muestra. B.2.17. Actions Contiene las acciones definidas para el formulario. Las acciones representan operaciones que puede realizar el usuario sobre la página. B.2.18. Action Representa una acción. Caption: Etiqueta asociada a la acción. Object: Objeto asociado a la acción. Al realizar la acción se invoca este objeto. Parameters: Parámetros con que se realiza la invocación. Se pueden incluir tanto variables como símbolos, estos últimos se traducen a variables (una por cada atributo de la clave del registro que representan). Position: Posición de la acción. Los valores posibles son: Button: La acción se representa como un botón en la parte inferior. GridColumn: La acción se representa como una columna adicional a la derecha de la grilla que corresponde según sus parámetros (sólo se puede utilizar si hay una grilla) GridLink: La acción se representa como un link sobre la primera columna de la grilla (sólo se puede utilizar si hay una grilla) B.2.19. Routes Contiene las rutas que parten de la página. B.2.20. Route Representa una ruta. Página 17 de 19

Caption: Etiqueta asociada a la ruta. Object: Objeto asociado a la ruta. Para llegar al destino de la ruta se invoca este objeto. Parameters: Parámetros con que se realiza la invocación. Se pueden incluir tanto variables como símbolos, estos últimos se traducen a variables (una por cada atributo de la clave del registro que representan). Tab: Indica si la ruta se representa como una pestaña en la parte superior. B.2.21. Variables Contiene variables adicionales que se definen en la página. Estas variables se pueden utilizar para mostrar datos que no se extraen directamente de la Base de Datos. Para lograr este efecto se puede incluir una variable en un programa de inicialización y luego asociarla a un campo de un registro. B.2.22. Variable Representa una variable. Name: Nombre de la variable. Type: Tipo de dato asociado a la variable Página 18 de 19

Apéndice C Menús Dentro de este apéndice se describen los elementos y atributos que se pueden definir en el editor de menús. Se sigue el mismo formato que se utilizó para las navegaciones en el Apéndice A. C.1. Estructura En la Figura 6 se muestra la estructura de los menús. Se utiliza una representación de árbol para indicar los hijos definidos para cada elemento. Menu Options Option Action Notación Elemento Elemento (cero o una instancia) Elemento Elemento (cero o más instancias) C.2. Elemento y Atributos C.2.1. Menú Figura 6. Estructura de los menús Elemento base. Actúa como contenedor del resto de los elementos. Implementation: Nombre del objeto que se genera para cargar las opciones del menú. C.2.2. Options Contiene las opciones que se definen en el menú. C.2.3. Option Define una opción del menú. Caption: Texto que se muestra en el menú para representar la opción. ObjectName: Nombre del objeto que se invoca al utilizar la opción. Navigation: Nombre de la navegación asociada a la opción. Profiles: Lista de perfiles habilitados para ejecutar la opción. Al cargar el menú principal sólo se incluye si el usuario tiene uno de los perfiles validos. Se puede indicar más de un perfil separándolos por coma. Si el atributo se deja vacío no se aplica la restricción por perfil. Página 19 de 19