
Presentamos GeneXus 18, la nueva versión de la Plataforma de Desarrollo Low-Code que te permite construir sistemas más complejos de forma más simple y más rápida, y aún así seguir siendo future proof.
El mundo acelera, vivimos en un contexto de realidades volátiles donde los cambios se dan de forma contínua y apresurada.
Con GeneXus 18 puedes adaptarte y seguir siendo competitivo, ya que te permite desarrollar soluciones de misión crítica que crean experiencias totales, a una velocidad nunca antes vista en la industria. Además, la aceleración no va en detrimento de la inversión a futuro porque con GeneXus 18, hoy más que nunca, construimos en base al conocimiento formalizado y se automatiza todo lo automatizable.
¡Bienvenidos a nuestra nueva y mejor versión!
Breve repaso de lo estudiado en el curso CORE y personalización del comportamiento de las reglas.
Análisis de las reglas Add y Subtract mediante casos de estudio e introducción a otras reglas de interés.
Analizaremos el comportamiento de las reglas Add y Subtract dependiendo del modo en el que se accede a una transacción que las usa, e introduciremos reglas de interés general, como Update, RefMsg, Prompt y Color.
Se presentan ejemplos de los eventos de disparo BeforeInsert y AfterInsert a nivel de cabezal y líneas, AfterLevel y AfterComplete.
Se estudia la lógica que emplea GeneXus para determinar qué reglas y fórmulas deben redispararse ante cambios de valores de atributos en la pantalla.
Entenderemos mediante ejemplos la lógica empleada por GeneXus para armar el "árbol de dependencias" o "árbol de evaluación", que es el encargado de determinar qué reglas y fórmulas deben redispararse ante cambios de atributos en la pantalla.
Introducción de los eventos de disparo relacionados con la validación de los datos: on BeforeValidate y on AfterValidate.
Completaremos el análisis referente al orden de ejecución de reglas en transacciones, estudiando los eventos de disparo on BeforeValidate y on AfterValidate.
Qué sucede cuando se permite asumir valor nulo a una parte de una llave foránea compuesta.
Anteriormente hemos visto que una llave foránea puede aceptar valores nulos. Esto significa que GeneXus no disparará los correspondientes controles de integridad referencial cuando dicho valor queda sin asignar. Abordamos ahora el mismo concepto pero cuando el valor nulo aplica a una parte de una llave foránea compuesta.
Se presenta un caso de referencia múltiple indirecta y un caso de especialización.
Se presenta un caso de referencia múltiple indirecta que se da cuando desde la transacción Attraction se quiere referenciar el país de cada atracción y a la vez el del guía turístico, el cual también pertenece a un país, y un caso de especialización, trabajando con clientes, pasajeros y empleados, que son especializaciones de la transacción Person.
Realizamos un análisis exhaustivo de un caso de referencia múltiple indirecta y presentamos un caso de uso de subtipos recursivos.
Aquí te ofrecemos un xpz para que puedas probar fácilmente. Analizaremos un caso de referencia múltiple indirecta que se da cuando se introduce el concepto de CityTour a la realidad, ya que el tour se desarrolla en determinado país y ciudad y cuenta con atracciones, que a la vez también se encuentran en un país y ciudad.
También introduciremos el concepto de subtipos recursivos con un caso de ejemplo en el que cada empleado de la agencia puede ser jefe de otros empleados.
Repasamos y profundizamos conceptos sobre fórmulas, viendo la diferencia entre definir un atributo mediante un cálculo en una fórmula o en una regla de asignación.
En particular, se analizan las ventajas y desventajas entre actualizar un atributo a través de una regla Add y definirlo como una fórmula redundante.
Se repasan conceptos de fórmulas horizontales, profundizando en su sintaxis, características y formas de uso.
Se repasan conceptos y se analizan las fórmulas aggregate en mayor profundidad.
Se introduce el concepto de fórmulas compuestas, se analiza su sintaxis y algunos ejemplos de uso.
Cómo configurar las propiedades del grupo Data de un objeto transacción, para que su Data Provider asociado pueda obtener información de otras fuentes de datos.
Anteriormente hemos visto cómo asociar un Data Provider a una transacción para poblarla de datos. Vemos ahora que el Data Provider puede ser utilizado para recuperar la información de la transacción de otras fuentes de datos. Esto tendrá como consecuencia que la transacción no tenga tablas asociadas y que se comporte como una "vista" sobre la base de datos.
Este video introduce el concepto general de "evento", y muestra los eventos disponibles en los objetos de tipo Transacción. En particular nos detenemos a observar el evento After Trn en una transacción a la cual se le aplicó el pattern Work With for Web. (VIDEO DEL CURSO CORE)
A través del estudio de una realidad acotada, se analizan diferentes opciones para resolver el diseño de transacciones, utilizando un conjunto de recursos esenciales y dando solución a una serie de requerimientos reales.
Aquí puedes descargar el PDF con la descripción de la realidad analizada en este video.
Se profundiza en el comando For each simple: transacción base, índices y su relación con las consultas a la base de datos (optimización).
Se estudia cómo condicionar los órdenes y los filtros, y cómo programar acciones cuando el For each no recupera registros. Para eso, se introducen las cláusulas When y When none. Para finalizar, se analiza un caso de estudio para comprender cómo aplica un filtro por un atributo recibido por parámetro.
Analizamos las navegaciones de For eachs anidados cuando implementan un Join, un Producto Cartesiano, o un Corte de Control.
Estudiaremos los listados de navegación que se generan en cada caso.
Cómo escribir una sola vez un bloque de código y lograr luego que se ejecute desde varios lugares del mismo objeto.
Objetivo de las subrutinas: modularizar, facilitar lectura y mantenimiento. Y cortar las inferencias automáticas de GeneXus.
Se repasa el concepto de cláusula Unique que permite declarar los valores que no deben repetirse en la salida de una consulta. Se muestran ejemplos de uso en comandos For each, con fórmula inline, en Data Providers y en el grid de un Web Panel.
Cómo evitar reescribir una y otra vez los mismos órdenes y condiciones de filtro para diversas consultas de datos.
Se conceptualiza y se muestra a través de casos la potencia de los Data Providers.
Se recomienda previo a visualizar este video repasar el tema Data Provider del curso Core.
Se atiende al modo de operación con el que quedan las variables BC tras cada Insert, Update o Delete, y se deja allanado el camino para pasar a estudiar cómo se actualiza la base de datos a través de un BC de dos niveles.
Se estudia cómo insertar, eliminar y actualizar líneas de una transacción a través del Business Component (manipulando la colección de líneas de la variable).
Adjuntamos este xpz con los objetos utilizados en la demo del video y un poco más (pues también se agregó un DP para agregar las atracciones en los city tours cargando a través de ese DP).
Se integran ambos casos, para poder visualizar sus semejanzas y diferencias. Además se menciona la diferencia entre utilizar el método Insert o Update y el Save.
Se trabaja sobre los ejemplos vistos en los videos ""Actualización de BD usando Business Components de un nivel. Repaso"" y ""Actualización de BD usando Business Components de dos niveles"". Se recomienda ver luego el video ""Actualización de BD: diferencias entre métodos""
Se presentan y discuten las diferencias entre los métodos para trabajar con la base de datos (Load, Insert, Update, Save, asignación directa de clave primaria, InsertOrUpdate) y se presenta un ejemplo de uso de Data Provider para cargar datos.
Se recomienda haber visto el video "Actualización de BD usando Business Component de uno y dos niveles. Comparación"
Se estudia cómo insertar un registro en una tabla a través del comando New de procedimientos
Se estudia cómo actualizar registros a través del comando For each en procedimientos
Se estudia cómo eliminar registros a través del comando Delete en procedimientos
Se estudian pros y contras de ambas formas de actualizar la base de datos por código (business component versus comandos en procedimientos).
Al final se presenta el caso en el que hay que explicitar Commit en procedimiento.
Se estudia la diferencia entre valor empty y null a nivel de base de datos y se ven sus repercusiones a la hora de intentar actualizar una clave foránea vacía tanto a través de Business Component como a través de procedimiento con comandos directos. Se estudia por qué la transacción no produce una excepción de base de datos.
Las bases de datos permiten definir Unidades de Trabajo Lógicas (UTL): el conjunto de operaciones que se tienen que realizar todas o ninguna. El comando Commit y el Rollback se tornan fundamentales.
Se presentan los casos que se estudiarán en los videos siguientes: cómo se determina la tabla base y navegación de un web panel sin grid, con un grid y con varios grids.
Se estudia a partir de un ejemplo cómo se determina la tabla base de un web panel que no tiene ningún grid y la navegación resultante.
Aquí tienes un xpz para obtener la KB con estos web panels implementados. Recomendamos haber visto el video del curso GeneXus Core "Objeto web panel. Carga de datos y eventos", min 8:50, que es donde se presenta el caso que aquí se analizará.
Se estudia a partir de un ejemplo cómo se determina la tabla base de un Web panel que tiene un único grid y la navegación resultante.
Aquí tienes un xpz para obtener la KB con estos web panels implementados. Recomendamos haber visto/repasado los videos del curso GeneXus Core "Objeto web panel. Carga de datos y eventos" y "Objeto web panel. Esquema de ejecución de eventos".
Se estudia a partir de un ejemplo cómo se determina la tabla base de cada grid en un Web panel con grids paralelos y en otro con grids anidados, y se analiza la navegación resultante.
Aquí tienes un xpz para obtener la KB con estos web panels implementados. Recomendamos haber visto/repasado el video del curso GeneXus Core "Objeto web panel. Esquema de ejecución de eventos" y el video "Objeto web panel. Múltiples grids".
Se estudia cómo implementar un corte de control entre dos grids anidados. Tanto cuando ambos tienen tabla base como cuando ninguno tiene.
Recomendamos haber visto el video "Tablas base y navegaciones en Web panels con varios Grids". Aquí tienes un xpz para obtener la KB con estos web panels implementados.
Veremos diferentes ejemplos de carga de datos en grids sin tabla base, y algunas consideraciones a la hora de cargar líneas en este tipo de grids.
Aquí tienes un xpz para obtener la KB con estos web panels implementados.
Cómo seleccionar muchas líneas de un grid y hacer algo con ellas.
En diversas ocasiones necesitamos seleccionar varias líneas de un grid para realizar alguna acción sobre todas ellas. Veremos cómo implementarlo tanto para aplicaciones Web como para dispositivos móviles. Aquí tienes un xpz para obtener la KB con todos los objetos implementados.
Además de las pantallas utilizadas como Web Pages comunes, vemos que tenemos Web Panels de tipo Master Page (o Master Panel) y otros de tipo Components, con usos específicos.
Para obtener la KB de este video, descárgate este zip.
Se estudia con un ejemplo web cómo lograr la interacción entre componentes que no están relacionados más que por pertenecer directa o indirectamente a una misma pantalla.
Aquí tienes un xpz con el estado final de la KB en este video.
La arquitectura de las aplicaciones condiciona, entre otras cosas, la forma de programarlas. En este módulo nos enfocaremos en las aplicaciones web que correrán en un cliente inteligente, es decir aplicaciones customer-facing que nos permitan brindar la mejor experiencia de usuario posible. (VIDEO DEL CURSO CORE)
En este video veremos cómo diseñar e implementar las pantallas web y para dispositivos móviles, que utilizarán los clientes de la agencia para consultar información, lo que constituye la parte customer-facing de la aplicación. Se utilizará el objeto Panel, con un modelo de programación diferente, generando la aplicación web en Angular y móvil en Android. (VIDEO DEL CURSO CORE)
En el transcurso del video, se desarrolla un objeto panel de nombre Attractions_CFPanel que pemite ver las atracciones de la agencia, filtradas por país y un rango de nombres de atracción. Al llegar al minuto 18, para cumplir con los requerimientos de la Agencia de Viajes de ver para cada atracción su información de detalle, se muestra al objeto AttractionDetail_CFPanel que como se menciona en el video, no se construye paso a paso, para ahorrar tiempo.
Puedes importar el xpz que se encuentra aquí con el que obtendrás el objeto ya pronto y también los atributos que se agregan a un segundo nivel de la transacción atracción que contienen la información del detalle de la atracción.
En el data provider que carga datos de Attractions,se inicializa este segundo nivel con datos del museo Louvre, como sus exhibiciones y un mapa con la localización del museo.
Para poder generar los ejemplos en Angular, debe seguir previamente los pasos que se indican en el siguiente link: https://wiki.genexus.com/commwiki/servlet/wiki?42541
Y para ejecutar la aplicación móvil en Android, debe instalar el software que se indica en este link: https://wiki.genexus.com/commwiki/servlet/wiki?14449
En este video comenzaremos a ver los eventos que podemos definir en las pantallas con foco en aplicaciones Customer-facing, en particular en las pantallas web y también nos detendremos en algunas características propias del objeto panel. (VIDEO DEL CURSO CORE)
Imagina que tienes todas las herramientas para generar de una forma más simple y más fácil que toda la interfaz se comporte y se vea de la misma manera.
Que al activar en la base de conocimientos GeneXus el módulo de seguridad o procesos de negocio automáticamente todos los back office de administración de usuarios de roles, permisos, procesos y tareas también sigan la misma línea de diseño.
¡Todo esto es posible con Unanimo en GeneXus 18!
Unanimo es un sistema de diseño creado por un equipo de expertos en usabilidad y diseño que da cohesión y consistencia a toda la interfaz que generas cuando construyes aplicaciones con GeneXus. Con la versión 18 es posible crear experiencias de usuario siguiendo prácticas de diseño y usabilidad modernas.
GeneXus 18 permite que todo lo que hagas siga una única fuente de la verdad en lo referido a diseño y experiencia de usuario. Descubre todo en esta charla.
Hasta el momento solamente nos encargamos de implementar comportamiento, pero nada del aspecto visual y de navegación de la aplicación. Aquí veremos una introducción a la imprescindible tarea del diseño de la UX y cómo se lleva a cabo en GeneXus, con el ejemplo de Unanimo.
Se realizan algunas personalizaciones de ejemplo sobre la UI para entender la lógica de trabajo a través de las clases y tokens del DSO y su relación con los controles de los layouts.
Entre otras cosas se muestra cómo variar características de los controles -incluso cómo hacerlos desplegarse o no- en base al tamaño de pantalla (responsividad), cómo personalizar la estética de un control atributo/variable tanto cuando es readonly como cuando no, y su etiqueta, etc.
En muchas oportunidades se hace necesario acceder a datos que no están almacenados en la base de datos de nuestra aplicación. Aquí se presenta una introducción a los posibles métodos que serán desarrollados en los videos siguientes.
Se introduce el concepto de web services SOAP, REST y OData y se muestra cómo se puede consumir un webservice desarrollado por terceros desde una aplicación GeneXus, así como también cómo se desarrolla un web service con GeneXus a través de un ejemplo implementando un servicio REST.
Principales conceptos generales sobre seguridad informática, y descripción de los mecanismos en GeneXus para mitigar y controlar las posibles fallas de seguridad.
Se presenta el concepto del módulo de seguridad GAM (GeneXus Access Manager), cómo se importa a la KB, su configuración y ejecución. También se muestra cómo acceder a la aplicación del backoffice del GAM que permite registrar usuarios, definir roles, etc.
Una de las grandes ventajas de GeneXus es que permite generar aplicaciones para diferentes plataformas. Toda esta información, se define en un Environment. Éste tiene disponible varias propiedades que determinan la plataforma de ejecución y sus características.
Se presenta cómo administrar el control de cambios de una aplicación en desarrollo. Se muestra la posibilidad de definir versiones congeladas de una versión de desarrollo y nuevas versiones de desarrollo que permitan trabajar en paralelo, cómo comparar dos versiones y cómo integrar diferencias entre una y otra.
La herramienta Application Deployment Tool integrada al IDE, nos ofrece varias maneras de transportar la aplicación desarrollada a un servidor de producción cualquiera, tanto sea en la nube, como en servidores
Objetivo
Ampliar y profundizar en la lógica de GeneXus de modo de lograr un dominio y uso óptimo de la plataforma para la construcción de aplicaciones digitales de cualquier complejidad, con el menor esfuerzo posible.
Brindar conocimientos de cómo evolucionar una aplicación de prototipo a producción, mejorando su interfase de usuario, agregándole seguridad, creando casos de prueba que te permitan verificar si tus procesos siguen funcionando correctamente luego de que hayas hecho cambios, utilizar distintos ambientes y plataformas para prototipo o producción y aprender a migrar tu prototipo de la nube de desarrollo de GeneXus o desde tu máquina local, a un servidor de producción.
Requisitos previos
Contar con los conocimientos brindados en los videos del Curso "Fundamentos de GeneXus 18 - Aprende GeneXus desde cero"
Sobre el contenido del curso
El teórico se compone de videos elaborados especialmente para este curso, los cuales están pensados para poder verse no solo dentro del hilo del curso, sino también de modo independiente, y por ello no necesariamente parten de la KB del video anterior.
El práctico (que encontrarás en la sección “Materiales”) sí trabaja sobre una misma realidad y KB.
Duración
Teórico/Práctico: 30 horas aprox.
Metodología sugerida para el curso
Con cada video sugerimos que:
Lo mires y pruebes hacer lo mismo en tu versión Trial de GeneXus.
Para facilitarte esto, en algunos videos se incluye un xpz.
Vuelvas a mirarlo las veces que necesites hasta sentir que has incorporado los conceptos importantes. Puede ser útil que listes al final del video cuáles son esos conceptos.
Identifiques en la letra del práctico los ejercicios o preguntas correspondientes al video e intentes resolverlos.
Importante: si no tienes tiempo para hacer ambos prácticos (replicar lo que viste en el video + los ejercicios correspondientes incluidos en el Práctico), entonces privilegia lo segundo, el Práctico del curso. Es requisito que hagas todos esos ejercicios.
Examen y Certificación
El examen se compone de preguntas/ejercicios del estilo múltiple opción o verdadero/falso referentes a los temas vistos en el curso.
De aprobar el examen y contar con la certificación de “Analista Junior GeneXus” (ambas cosas) automáticamente obtienes la certificación “Analista GeneXus”.
Nota: El curso en esta plataforma NO incluye examen.