Script Data Selectors: reusing definitions

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Script Data Selectors: reusing definitions"

Transcripción

1 Script Data Selectors: reusing definitions Supongamos que hemos agregado a la transacción Customer el atributo CustomerStatus, para poder representar uno de los tres estados (activo, en espera o cerrado) que puede tener un cliente en el sistema de la agencia de viajes. Para ello se ha definido un tipo de datos Status, enumerado, con esos tres valores. {ppt} Ahora supongamos que en varios lugares de la aplicación, necesitamos trabajar con los clientes activos ingresados entre un par de fechas determinadas. Page1

2 Por ejemplo, en el web panel que mostraba todos los clientes y el total de precios de sus vuelos, y que permitía filtrar por nombre del cliente, ahora queremos mostrar siempre los clientes activos únicamente, dándole al usuario la posibilidad de ingresar un rango de fechas para poder filtrar también por los agregados al sistema dentro de ese rango. Otro ejemplo: necesitamos realizar un listado pdf que muestre para cada vuelo, además de la información del aeropuerto de partida y de llegada, la cantidad de clientes ACTIVOS registrados con asiento, entre los clientes ingresados hasta la fecha de hoy. O por ejemplo, necesitamos realizar un listado pdf que reciba por parámetros un rango de fechas (&start y &end) y muestre los clientes activos que fueron ingresados al sistema entre ese par de fechas dadas. Page2

3 En definitiva, estaremos repitiendo en todos esos objetos estos tres filtros (para optimizar, podemos ordenar por CustomerStatus, dado que filtramos por igualdad por ese atributo): Para ahorrarnos el trabajo de tener que repetir esas mismas especificaciones en todos los lugares donde las necesitemos (el web panel y los procedimientos anteriores, pero también podría ser en grupos de data providers o en grids de Panels en Smart Devices), podemos realizar esas definiciones en un único lugar, dándoles un nombre, y de allí en más utilizar ese nombre como referencia. Este lugar es el objeto Data Selector: Page3

4 {GeneXus} Creamos el objeto, al que llamaremos ActiveCustomers : y allí definimos las condiciones: El estado del cliente, CustomerStatus, activo. La fecha de ingreso del cliente al sistema: CustomerAddedDate, mayor o igual a la variable &start, que será un parámetro de este objeto, siempre y cuando no esté vacía. Y por último: CustomerAddedDate, menor o igual que la variable end, también parámetro recibido, cuando la variable &end no esté vacía. Debemos entonces definir las variables utilizadas como parámetros: start de tipo date, y end de tipo date. Y también establecemos que ordene por CustomerStatus, para optimizar. Page4

5 Observemos que también aparece un nodo DefinedBy que permitirá, al igual que en el for each, nombrar atributos para que participen en la determinación de la tabla base. De qué tabla base? Dependiendo de la forma de usarlo, este DataSelector será unas veces simplemente una definición, que se agregará a la consulta representada por un grid, un for each, un grupo de data provider, o una fórmula, donde sea que se esté utilizando este data selector, y allí no tendrá sentido hablar de su tabla base, pero otras representará una consulta en sí misma, que puede ejecutarse sobre la base de datos, como si fuera un for each, devolviendo un conjunto, para hacer algo con sus elementos. Allí sí tendrá sentido hablar de su propia tabla base, que en este caso será Customer. Lo veremos en los ejemplos que siguen. {Web panel ActiveCustomersFlights} Aquí hemos salvado el web panel que teníamos con otro nombre, y hemos definido e insertado en el form las variables &start y &end, de tipo date: Si observamos las propiedades del grid, sólo estamos filtrando por CustomerFullName. Así, si ejecutamos, se mostrarán todos los clientes (los activos y los otros) cuyos nombres contengan lo ingresado por el usuario en esta variable {poner %Be en &CustomerFullName} pero no se modificará lo mostrado si cambiamos estas otras {&start y &end} Page5

6 Esto podemos apreciarlo en el listado de navegación: Sin embargo, si vamos a las propiedades y especificamos a nivel del grid el Data Selector que hemos creado, ActiveCustomers, vemos que se nos abre la propiedad Parameters para especificar los parámetros que debemos enviarle : Page6

7 y damos F5 en el grid se mostrarán sólo los clientes activos, cuyos nombres contengan lo ingresado por el usuario en la variable &CustomerFullName y que hayan sido ingresados entre las dos fechas estipuladas por el usuario en las variables &start y &end. Ya no los indica el listado de navegación: Podríamos haber implementado esto mismo, agregando las condiciones del Data selector directamente en la propiedad Conditions del grid, y el order del data selector en la propiedad Order. Page7

8 El comportamiento será el mismo, así como lo que nos informará el listado de navegación. Es decir: se combinará la definición del Data selector con las propiedades Conditions y Order del grid. En todo grid (estándar o freestyle), salvo en el caso de transacciones, podrá utilizarse un data selector. Esto también vale para grids de Panels for Smart Devices. Puede encontrar más documentación sobre Data selectors en Grids en nuestro wiki: {Procedure PrintActiveVIPCustomers} Ahora veamos la implementación del procedimiento que imprime un PDF web con todos los clientes VIP activos, ingresados entre un par de fechas recibidas por parámetro. Si no tuviéramos definido el data selector haríamos: Page8

9 Pero teniéndolo, simplemente lo usamos, a través de la cláusula using: Así, queremos que el for each se resuelva utilizando, además de sus otras cláusulas, el data selector ActiveCustomers, al que le pasamos por parámetro los valores de las variables &start y &end que este reporte recibió a su vez como parámetros del objeto que lo llama. El comportamiento es en todo análogo a la especificación anterior (incluyendo la determinación de la tabla base del for each, que tomará en cuenta los atributos propios del for each, y los definidos dentro del Data selector). Si ejecutamos el procedimiento, directamente, los parámetros &start y &end estarán vacíos, y por tanto, saldrán listados todos los clientes VIP activos: Page9

10 Vemos que su listado de navegación no nos permite discriminar si usamos el Data Selector o lo programamos manualmente: Para el caso del comando for each, podría hacerse otro uso del Data Selector, que es ejecutándolo como si fuera una consulta independiente a la base de datos. No lo veremos en este curso, pero es el caso de usar el operador in en lugar de la cláusula using: Aquí los atributos del Data Selector no participan en la determinación de la tabla base del for each, que en principio tiene como tabla base la de asientos de los vuelos. Page10

11 En el where, se estarán filtrando los asientos que tienen clientes cuyo identificador se encuentra en el conjunto devuelto por el Data Selector, ejecutado como una consulta independiente. Es decir, se estará filtrando por los CustomerId que se encuentren en el conjunto de clientes activos ingresados entre el par de fechas &start y &end. Puede encontrar más documentación sobre Data selectors en For eachs en nuestro wiki: {ppts} Ya habíamos visto cuando resumimos el comando for each, que al indicarle que use un Data Selector, le estaremos diciendo que agregue sus orders, condiciones y defined by, a los explícitos. Page11

12 Por eso, los atributos que figuren como parámetros, serán considerados para la determinación de la tabla base del for each (así como los que se encuentren internamente en el DataSelector). La otra posibilidad, es filtrar de acuerdo a los valores devueltos por un Data Selector. Aquí le estamos diciendo que filtre los registros del for each según el atributo mencionado se encuentre en el conjunto de valores devueltos al ejecutar el Data Selector como si fuera una consulta a la base de datos. Aquí, el único atributo que participa de la determinación de la tabla base del for each es el del where. Los que aparecieran como parámetros o los internos al Data Selector no participarán. Page12

13 En este caso el Data Selector tendrá su propia tabla base, que será la accedida para obtener el conjunto resultante de la consulta: {GeneXus } Por último, veamos el ejemplo de uso de Data Selector en una fórmula count. Estamos queriendo imprimir los vuelos, y por cada uno, además de los datos del aeropuerto de partida y de llegada, queremos desplegar el total de pasajeros (clientes) activos ingresados hasta la fecha del día, y que tienen reservados asientos en el vuelo: Page13

14 Para ello, hemos definido una variable, &active, que debemos calcular en el Source, antes de imprimir el printblock. Queremos contar todos los asientos de vuelos, utilizando el Data Selector, es decir, filtrando por todo lo que éste contiene): Puede encontrar más documentación sobre Data selectors en For eachs en nuestro wiki Page14

15 Si ahora necesitamos modificar los filtros, tanto para el web panel como para los pdfs que vimos, de manera tal que los clientes recuperados, además de ser los activos e ingresados entre dos fechas dadas, sean los VIP al tener la información centralizada y encapsulada en un Data Selector, sólo tendremos que ir a modificar ese Data Selector, agregándole la condición, para que todos los objetos que lo utilicen queden automáticamente actualizados. {ppts} En suma El Data selector es un objeto para almacenar un conjunto de parámetros, orders, conditions y definedby, para utilizarlo o invocarlo desde diferentes consultas y cálculos, y así reutilizar la misma navegación varias veces. Por tanto, en qué lugares podremos utilizar un Data Selector? En todos los que especifiquen consultas a la base de datos: Page15

16 Puede encontrar más documentación sobre Data selectors en nuestro wiki: Page16

Web panel y tabla base

Web panel y tabla base Web panel y tabla base En este video analizaremos en detalle algunas ideas que en videos anteriores apenas hemos sobrevolado. Por ejemplo, a qué se le llama tabla base de un web panel? Todo web panel tiene

Más detalles

Introducción a Web Panels

Introducción a Web Panels Introducción a Web Panels El web panel es el objeto más flexible que provee GeneXus. Como ya habíamos indicado, es básicamente una página web que nos permite resolver variadas funcionalidades, como solicitarle

Más detalles

Cuando el web panel tiene un grid, entonces para determinar tabla base GeneXus observa lo que se indica arriba.

Cuando el web panel tiene un grid, entonces para determinar tabla base GeneXus observa lo que se indica arriba. Habíamos visto el caso de Web Panel con atributos sueltos en el form, sin grid. También el de un Web Panel con un grid con atributos y también sin atributos. Y habíamos dejado planteada la pregunta: cuando

Más detalles

Transacción base. A partir de GeneXus X Ev3, se incorpora el concepto de transacción base.

Transacción base. A partir de GeneXus X Ev3, se incorpora el concepto de transacción base. Transacción base A partir de GeneXus X Ev3, se incorpora el concepto de transacción base. Esto brinda la posibilidad de indicar explícitamente el nombre de la transacción cuya tabla física asociada se

Más detalles

Data Providers - Más conocimientos

Data Providers - Más conocimientos Data Providers - Más conocimientos Introduciremos nuevos conocimientos sobre el uso de los Data Providers. Para ello propondremos una implementación práctica en nuestra aplicación. Supongamos que la agencia

Más detalles

Base Tables and Navigation

Base Tables and Navigation Base Tables and Navigation Por su importancia, repasemos lo que hacen las tablas base y las navegaciones de los objetos GeneXus para Smart Devices. Aquí vemos un ejemplo, donde desde un Panel for Smart

Más detalles

El listado de navegación nos informa claramente que la tabla base es ATTRACTION, que la recorrida será ordenada por la clave primaria de dicha tabla:

El listado de navegación nos informa claramente que la tabla base es ATTRACTION, que la recorrida será ordenada por la clave primaria de dicha tabla: Recordemos que GeneXus determina la tabla base del for each teniendo en cuenta el nombre de la transacción que declaramos al lado del for each (que debe ser la transacción cuya tabla física asociada queremos

Más detalles

Cómo listar información relacionada

Cómo listar información relacionada Cómo listar información relacionada En el video anterior habíamos visto cómo definir un procedimiento que contenía en su Source un único comando For each, que accedía a los datos de una tabla base (y su

Más detalles

Fórmulas Locales. Page1. Video filmado con GeneXus X Evolution 2. Veremos ahora qué es una fórmula local.

Fórmulas Locales. Page1. Video filmado con GeneXus X Evolution 2. Veremos ahora qué es una fórmula local. Fórmulas Locales Veremos ahora qué es una fórmula local. Una fórmula local es una fórmula que declaramos como instrucción puntual, dentro de determinado código, como ser en el source de un procedimiento,

Más detalles

Cómo listar información agrupada

Cómo listar información agrupada Cómo listar información agrupada En el video anterior hemos visto un listado solicitado por la agencia de viajes, que mostraba todas las Categorías de atracciones turísticas y para cada categoría, la lista

Más detalles

Comando For Each simple y For Each anidado para listar info relacionada

Comando For Each simple y For Each anidado para listar info relacionada Comando For Each simple y For Each anidado para listar info relacionada En otro video hemos visto cómo definir un procedimiento, el cual contenía en su source un único comando For each, que accedía a los

Más detalles

Cargando Tipos de Datos Compuestos (SDT) mediante Data Providers

Cargando Tipos de Datos Compuestos (SDT) mediante Data Providers Cargando Tipos de Datos Compuestos (SDT) mediante Data Providers En más de una oportunidad necesitamos almacenar en memoria una lista de elementos. Por ejemplo, la agencia de viajes puede necesitar realizar

Más detalles

Cargando los tipos de datos compuestos

Cargando los tipos de datos compuestos Cargando los tipos de datos compuestos En más de una oportunidad, necesitamos almacenar en memoria una lista de elementos que tienen el mismo tipo de información pero distintos valores guardados. Por ejemplo,

Más detalles

Comando for each anidado para listar info agrupada

Comando for each anidado para listar info agrupada Comando for each anidado para listar info agrupada Volvamos ahora a la sección Source del procedimiento Una cosa que nos había quedado pendiente es que queríamos que las atracciones salgan ordenadas en

Más detalles

Orders Searchs Conditions

Orders Searchs Conditions Orders Searchs Conditions Dentro del comportamiento de las aplicaciones móviles, comencemos por estudiar el modo en el que podemos ordenar la información desplegada en un panel y cómo establecer criterios

Más detalles

Cargando los tipos de datos estructurados

Cargando los tipos de datos estructurados Cargando los tipos de datos estructurados En más de una oportunidad, necesitamos almacenar en memoria una lista de elementos que tienen el mismo tipo de información pero distintos valores guardados. Por

Más detalles

Comunicación entre objetos

Comunicación entre objetos Comunicación entre objetos En situaciones anteriores nos hemos encontrado con la necesidad de llamar a un objeto, desde otro. Por ejemplo en el evento Enter del web panel EnterPercentage2, estamos llamando

Más detalles

Introducción a procedimientos, listados y comando For each

Introducción a procedimientos, listados y comando For each Introducción a procedimientos, listados y comando For each Pasemos a conocer los objetos de tipo Procedimiento, que podemos definir en una base de conocimiento GeneXus Este tipo de objeto nos permite definir

Más detalles

Ahora veremos qué sucede cuando el objeto B debe devolver un valor a quien lo llama, al finalizar su ejecución.

Ahora veremos qué sucede cuando el objeto B debe devolver un valor a quien lo llama, al finalizar su ejecución. Comunicación entre objetos: cuando el objeto invocado devuelve un valor En el video anterior vimos cómo declarar en un objeto parámetros para permitirle recibir datos de otro objeto y tomar las acciones

Más detalles

En el ejemplo, se procede en este orden:

En el ejemplo, se procede en este orden: Lo primero que hace GeneXus al encontrar un par de for eachs anidados es determinar la tabla base de cada uno, en forma ordenada, de afuera hacia adentro, empezando por el más externo. Recién luego determina

Más detalles

Introducción a procedimientos, listados y comando For each

Introducción a procedimientos, listados y comando For each Introducción a procedimientos, listados y comando For each Pasemos a conocer a los objetos de tipo Procedimiento, que podemos definir en una base de conocimiento GeneXus. Este tipo de objeto nos permite

Más detalles

Orden y lugar de ejecución de los eventos de Web Panels

Orden y lugar de ejecución de los eventos de Web Panels Orden y lugar de ejecución de los eventos de Web Panels En videos anteriores hemos visto y programado diferentes eventos en Web panels algunos como el click, el doble click, botón derecho, etc., asociados

Más detalles

De la determinación de las tablas base, surgen los tres casos de For eachs anidados que ya hemos estudiado antes, y que aquí queremos conceptualizar.

De la determinación de las tablas base, surgen los tres casos de For eachs anidados que ya hemos estudiado antes, y que aquí queremos conceptualizar. De la determinación de las tablas base, surgen los tres casos de For eachs anidados que ya hemos estudiado antes, y que aquí queremos conceptualizar. Cuando las tablas base son distintas, se abren dos

Más detalles

El listado de navegación nos informa claramente que la tabla base es ATTRACTION, que la recorrida será ordenada por la clave primaria de dicha tabla:

El listado de navegación nos informa claramente que la tabla base es ATTRACTION, que la recorrida será ordenada por la clave primaria de dicha tabla: Recordemos que GeneXus determina la tabla base del for each teniendo en cuenta el nombre de la transacción que declaramos al lado del for each (que debe ser la transacción cuya tabla física asociada queremos

Más detalles

Script For each simple tabla base y cláusula order

Script For each simple tabla base y cláusula order Page1 Script For each simple tabla base y cláusula order Para determinar la tabla base, GeneXus extrae los atributos nombrados en el for each encuentra las tablas en las que se hallan: y toma como tabla

Más detalles

Momentos de disparo de reglas en transacciones

Momentos de disparo de reglas en transacciones Momentos de disparo de reglas en transacciones Cuando vimos las reglas que podemos escribir en las transacciones, dijimos que no era necesario especificar cuándo debe ejecutarse cada una de ellas, ya que

Más detalles

Tipos de datos compuestos

Tipos de datos compuestos Tipos de datos compuestos Hasta ahora hemos empleado siempre tipos de datos simples. Hemos definido atributos y dominios de tipo Numeric, de tipo Character y también contamos con otros tipos de datos simples

Más detalles

Tipos de datos estructurados

Tipos de datos estructurados Tipos de datos estructurados Hasta ahora hemos empleado siempre tipos de datos simples. Hemos definido atributos y dominios de tipo Numeric, de tipo Character y también contamos con otros tipos de datos

Más detalles

Orders, Searches, and Conditions

Orders, Searches, and Conditions Orders, Searches, and Conditions En esta sección veremos en primer lugar cómo ordenar información, hacer búsquedas y establecer filtros. Luego veremos los eventos, que son acciones que disparan los usuarios

Más detalles

Pantallas interactivas: objeto Web Panel (continuación) Agreguemos primeramente una nueva variable al grid, de nombre newtrip, character de 10

Pantallas interactivas: objeto Web Panel (continuación) Agreguemos primeramente una nueva variable al grid, de nombre newtrip, character de 10 Page1 Pantallas interactivas: objeto Web Panel (continuación) Estábamos construyendo nuestro web panel WWAttractionsFromScratch. Habíamos visto cómo condicionar los datos que se mostraban en el grid, cómo

Más detalles

Events. Video filmado con GeneXus X Evolution 3

Events. Video filmado con GeneXus X Evolution 3 Events En este video empezaremos a estudiar los eventos que podemos definir a nivel de los objetos Smart Devices, en el contexto de una aplicación online, es decir, que requiere conectividad. Se mencionarán

Más detalles

Qué son los subtipos?

Qué son los subtipos? Qué son los subtipos? Hasta ahora hemos visto que GeneXus establece relaciones entre transacciones -y entre tablas- basándose en los nombres de atributos que encuentra iguales. Por ejemplo, en la transacción

Más detalles

Actualización de la Base de Datos - For each, delete, new

Actualización de la Base de Datos - For each, delete, new Actualización de la Base de Datos - For each, delete, new Hasta el momento, para actualizar los datos de la base de datos, hemos empleado las transacciones en sus 2 formas de uso: Ejecutando su pantalla

Más detalles

Agregando funcionalidad con patrones

Agregando funcionalidad con patrones Agregando funcionalidad con patrones Los patrones nos permiten potenciar nuestra aplicación, agregando nuevas funcionalidades en forma muy sencilla! Al aplicar un patrón, GeneXus crea por nosotros todos

Más detalles

Eventos en Smart Devices

Eventos en Smart Devices Eventos en Smart Devices Tenemos eventos cuyo código se ejecuta en el servidor y eventos cuyo código se ejecuta en el cliente (es decir, en el dispositivo). Queremos abordar ahora el tipo de acciones que

Más detalles

Ahondaremos acerca de este otro uso posible de web panels sin tabla base más adelante.

Ahondaremos acerca de este otro uso posible de web panels sin tabla base más adelante. Si bien los ejemplos que hemos visto hasta el momento de web panels SIN TABLA BASE son de casos en los que necesitamos solicitar datos al usuario, también existen casos de uso de web panels sin tabla base

Más detalles

Cláusula Unique. La cláusula Unique permite mencionar atributos cuyos valores no deben salir duplicados en el resultado de la consulta.

Cláusula Unique. La cláusula Unique permite mencionar atributos cuyos valores no deben salir duplicados en el resultado de la consulta. Cláusula Unique En ocasiones necesitamos definir ciertas consultas, que requieren navegar determinada tabla, pero necesitamos que si un mismo atributo tiene almacenado el mismo valor para varios registros,

Más detalles

Fórmulas Globales. Page1. Video filmado con GeneXus X Evolution 2

Fórmulas Globales. Page1. Video filmado con GeneXus X Evolution 2 Fórmulas Globales Muchas veces necesitamos que la aplicación efectúe un cálculo, que involucra valores de determinados atributos, constantes, y/o funciones. Para estos casos, GeneXus nos provee las Fórmulas

Más detalles

Componentes de pantalla (Extended controls)

Componentes de pantalla (Extended controls) Componentes de pantalla (Extended controls) Además de los controles comunes que tenemos disponibles en la toolbox GeneXus nos permite crear nuestros propios controles o usar controles creados por otros,

Más detalles

Introducción a procedimientos y listados. Comando para consultar la base de datos.

Introducción a procedimientos y listados. Comando para consultar la base de datos. Introducción a procedimientos y listados. Comando para consultar la base de datos. Pasemos a conocer los objetos de tipo Procedimiento que podemos definir en una base de conocimiento GeneXus Este tipo

Más detalles

Momentos de disparo de reglas en transacciones

Momentos de disparo de reglas en transacciones Momentos de disparo de reglas en transacciones Cuando vimos las reglas que podemos escribir en las transacciones, dijimos que no era necesario especificar cuando debe ejecutarse cada una de ellas, ya que

Más detalles

Actualización de la Base de Datos - For each, delete, new

Actualización de la Base de Datos - For each, delete, new Actualización de la Base de Datos - For each, delete, new Hasta el momento, para actualizar los datos de la base de datos, hemos empleado las transacciones en sus 2 formas de uso: Ejecutando su pantalla

Más detalles

Curso GeneXus - Otro ejemplo de uso de Business components

Curso GeneXus - Otro ejemplo de uso de Business components Curso GeneXus - Otro ejemplo de uso de Business components Vamos a ver a continuación un ejemplo práctico de uso de Business Components. Page1 Comencemos planteando el siguiente escenario: Todo cliente

Más detalles

Otro ejemplo de uso de Business Components

Otro ejemplo de uso de Business Components Otro ejemplo de uso de Business Components Vamos a ver a continuación un ejemplo práctico de uso de Business Components. Comencemos planteando el siguiente escenario: Page1 Todo cliente de la agencia de

Más detalles

Qué son los subtipos?

Qué son los subtipos? Qué son los subtipos? Hasta ahora hemos visto que GeneXus establece relaciones entre transacciones -y entre tablas- básandose en los nombres de atributos que encuentra iguales. Por ejemplo, en la transacción

Más detalles

Introduciremos nuevos conocimientos sobre el uso de los Data Providers.

Introduciremos nuevos conocimientos sobre el uso de los Data Providers. Introduciremos nuevos conocimientos sobre el uso de los Data Providers. Recordemos que el objetivo de un Data Provider es devolver cargada una estructura de datos en memoria (que puede ser colección o

Más detalles

Dos formas de devolver una colección con un Data Provider

Dos formas de devolver una colección con un Data Provider Dos formas de devolver una colección con un Data Provider Los Data Provider son objetos versátiles que con un lenguaje declarativo nos facilitan la carga de estructuras, tanto ítems simples como colecciones

Más detalles

Tareas multi-instanciadas y mapeo de datos relevantes

Tareas multi-instanciadas y mapeo de datos relevantes Tareas multi-instanciadas y mapeo de datos relevantes En videos previos, hemos asociado las tareas del diagrama de reserva de pasajes de la Agencia de Viajes a objetos GeneXus, convirtiendo el modelo del

Más detalles

Momentos de disparo de reglas en transacciones

Momentos de disparo de reglas en transacciones Momentos de disparo de reglas en transacciones Cuando vimos las reglas que podemos escribir en las transacciones, dijimos que no era necesario especificar cuándo debe ejecutarse cada una de ellas, ya que

Más detalles

Relaciones entre entidades de la realidad

Relaciones entre entidades de la realidad Page1 Relaciones entre entidades de la realidad En varios ejemplos de nuestra agencia de viajes, encontramos que los actores de la realidad se relacionan entre sí de distintas maneras, por ejemplo cuando

Más detalles

Uso de la API del GAM

Uso de la API del GAM Uso de la API del GAM En videos anteriores, vimos como construir una aplicación para una inmobiliaria, con una parte Web y una parte para Smart Devices Y luego vimos como resolver la Seguridad de ambas

Más detalles

Data Provider que carga colección con valores fijos (no extraídos de la base de datos)

Data Provider que carga colección con valores fijos (no extraídos de la base de datos) Data Provider que carga colección con valores fijos (no extraídos de la base de datos) Hasta el momento hemos visto ejemplos de uso de Data Providers, que han accedido siempre a la base de datos para recuperar

Más detalles

Prototipado, instancias e historia de un proceso

Prototipado, instancias e historia de un proceso Prototipado, instancias e historia de un proceso En los videos anteriores sobre Automatización, utilizamos objetos del tipo transacción, para registrar la reserva de pasajes y crear al pasajero como cliente

Más detalles

Tutorial simulador autómatas de pila

Tutorial simulador autómatas de pila Tutorial simulador autómatas de pila A continuación se mostrará, a través de algunos ejemplos, como puede ser usado el simulador de autómatas de pila para visualizar el comportamiento de este tipo de autómatas

Más detalles

Y cuando en la transacción Flight nombramos a CountryName, sabemos que será inferido a través del atributo AirporId.

Y cuando en la transacción Flight nombramos a CountryName, sabemos que será inferido a través del atributo AirporId. Habíamos visto un caso donde debimos definir un grupo de subtipos porque teníamos en una transacción una doble referencia a un mismo actor de la realidad. Era el caso de la transacción Flight, en la cual

Más detalles

Poblar de datos las tablas desde la propia transacción

Poblar de datos las tablas desde la propia transacción Poblar de datos las tablas desde la propia transacción Cuando creamos una transacción, por defecto GeneXus creará tablas asociadas para almacenar la información que ingresamos a través de su pantalla.

Más detalles

Hasta el momento hemos visto ejemplos de aplicación de Data Provider que requieren acceder a la base de datos para recuperar información.

Hasta el momento hemos visto ejemplos de aplicación de Data Provider que requieren acceder a la base de datos para recuperar información. Hasta el momento hemos visto ejemplos de aplicación de Data Provider que requieren acceder a la base de datos para recuperar información. Pero también es posible utilizar un Data Provider que devuelva

Más detalles

Definición de reglas

Definición de reglas Definición de reglas Además de todos los controles automáticos que GeneXus incluye en las aplicaciones que genera, hay ciertos controles específicos que los usuarios desean efectuar. En las transacciones,

Más detalles

Hasta ahora hemos visto que por cada objeto transacción se crea una tabla por cada nivel, para almacenar sus datos y luego recuperarlos.

Hasta ahora hemos visto que por cada objeto transacción se crea una tabla por cada nivel, para almacenar sus datos y luego recuperarlos. Hasta ahora hemos visto que por cada objeto transacción se crea una tabla por cada nivel, para almacenar sus datos y luego recuperarlos. La transacción, en su forma canónica, se utiliza para poder realizar

Más detalles

Modelo conceptual de Smart Devices

Modelo conceptual de Smart Devices Modelo conceptual de Smart Devices Las aplicaciones para Smart Devices organizan y manipulan la información estructurada de las entidades de la realidad con las que se trabaja (por ejemplo, la realidad

Más detalles

Formularios dinámicos

Formularios dinámicos Formularios dinámicos En general, si necesitamos ejecutar una tarea interactiva de un diagrama de proceso de negocios, debemos contar en nuestra KB con un objeto transacción o un webpanel, para asociarlo

Más detalles

Pantallas interactivas en ambiente web: objeto Web Panel

Pantallas interactivas en ambiente web: objeto Web Panel Page1 Pantallas interactivas en ambiente web: objeto Web Panel El web panel es el objeto más flexible que provee GeneXus. Como ya hemos visto en algunos ejemplos que hemos mostrado, todo web panel ofrece

Más detalles

Demo: empezando a desarrollar la aplicación en su parte móvil

Demo: empezando a desarrollar la aplicación en su parte móvil Demo: empezando a desarrollar la aplicación en su parte móvil En el video anterior, creamos una nueva kb: vimos los dominios predefinidos (entre ellos los semánticos): Page1 cambiamos la propiedad Deploy

Más detalles

Examen "Analista GX X"

Examen Analista GX X Examen "Analista GX X" Sobre las preguntas de múltiple opción: - Hay una sola opción correcta. - Los puntos de cada pregunta aparecen al principio de la pregunta. - Asuma que todas las preguntas están

Más detalles

Controles: Video filmado con GeneXus X Evolution 3

Controles: Video filmado con GeneXus X Evolution 3 Controles: En este video nos detendremos específicamente en el nodo Detail del objeto WorkWith para estudiar como se muestran las diferentes secciones que lo componen. En abstracto: si tenemos una entidad

Más detalles

Introducción a Smart Devices

Introducción a Smart Devices Introducción a Smart Devices Hasta el momento hemos construido todos los requerimientos solicitados por la agencia de viajes en lo relativo a la aplicación web a ser utilizada por los usuarios de la propia

Más detalles

Consulta con salida Table

Consulta con salida Table Consulta con salida Table El concepto de tabla para GXquery, es el general de tabla, es decir: un conjunto de elementos ordenados en filas y columnas. La cantidad de columnas es fija mientras que la cantidad

Más detalles

Comunicación entre objetos

Comunicación entre objetos Comunicación entre objetos 109 Data Provider Procedimiento Web Panel Transacción Procedimiento PDF Los objetos GeneXus pueden comunicarse entre ellos o con otros programas externos. Un objeto GeneXus puede

Más detalles

Introducción a Smart Devices

Introducción a Smart Devices Introducción a Smart Devices Hasta el momento hemos construido todos los requerimientos solicitados por la agencia de viajes en lo relativo a la aplicación web a ser utilizada por los usuarios de la propia

Más detalles

Definiendo reglas. En las transacciones, las reglas que deben cumplirse, o los controles que nos solicitan validar, se definen en la sección de Rules.

Definiendo reglas. En las transacciones, las reglas que deben cumplirse, o los controles que nos solicitan validar, se definen en la sección de Rules. Definiendo reglas Además de todos los controles automáticos que GeneXus incluye en las aplicaciones que genera, hay ciertos controles específicos que los usuarios nos piden validar. En las transacciones,

Más detalles

BEHAVIOUR : INVOCATION BETWEEN OBJECTS

BEHAVIOUR : INVOCATION BETWEEN OBJECTS BEHAVIOUR : INVOCATION BETWEEN OBJECTS En este video nos detendremos en las opciones que tenemos al invocar desde un objeto a otro con interfaz. Veremos que podemos hacer la invocación, especificando en

Más detalles

Diseñando más transacciones

Diseñando más transacciones Diseñando más transacciones Pasemos a crear una transacción de países: la llamamos Country Page1 Definimos aquí un atributo identificador de país CountryId Y vemos que Genexus le asignó el dominio Id y

Más detalles

Behavior: Caching. Video filmado con GeneXus X Evolution 3

Behavior: Caching. Video filmado con GeneXus X Evolution 3 Behavior: Caching En este video veremos cómo habilitar o deshabilitar el caché de los datos navegados en el dispositivo, teniendo en cuenta aplicaciones de arquitectura online. Existen varios escenarios

Más detalles

Definición de procesos de negocios

Definición de procesos de negocios Definición de procesos de negocios En la agencia de viajes, hay trámites que requieren de que varias tareas se realicen unas a continuación de otras, en un cierto orden, por ejemplo, cuando se desea hacer

Más detalles

Controles: Múltiples layouts por fila de un grid

Controles: Múltiples layouts por fila de un grid Controles: Múltiples layouts por fila de un grid Acabamos de ver el primer punto. Ahora vamos a estudiar el control grid en un aspecto: la posibilidad de variar el diseño de cada fila, para que en cada

Más detalles

Diseñando más transacciones

Diseñando más transacciones Diseñando más transacciones Pasemos a crear una transacción de países: la llamamos Country Page1 Definimos aquí un atributo identificador de país CountryId Page2 Y vemos que Genexus le asignó el dominio

Más detalles

Actualización de la Base de Datos - Business Components

Actualización de la Base de Datos - Business Components Actualización de la Base de Datos - Business Components Hasta el momento hemos visto que las transacciones permiten a los usuarios, ingresar, modificar y eliminar datos, en las tablas de la base de datos

Más detalles

Cómo visualizar la información detallada de un material (desde el trabajar con materiales del SAP ERP)

Cómo visualizar la información detallada de un material (desde el trabajar con materiales del SAP ERP) Page1 Cómo visualizar la información detallada de un material (desde el trabajar con materiales del SAP ERP) Para que cuando el usuario haga tap sobre un material: Page2 se invoque a un panel que muestre

Más detalles

Agregando funcionalidad con patrones

Agregando funcionalidad con patrones Agregando funcionalidad con patrones Los patrones nos permiten potenciar nuestra aplicación, agregando nuevas funcionalidades en forma muy sencilla. Al aplicar un patrón, GeneXus crea por nosotros todos

Más detalles

Demo: empezando a desarrollar la aplicación en su parte web

Demo: empezando a desarrollar la aplicación en su parte web Demo: empezando a desarrollar la aplicación en su parte web En videos anteriores, habíamos empezado por ver la aplicación a la que queremos llegar en ejecución. Luego habíamos estudiado las características

Más detalles

Reporting (objeto Query)

Reporting (objeto Query) Reporting (objeto Query) En muchas ocasiones necesitamos realizar consultas a la base de datos para analizar la información y poder tomar decisiones. Podemos necesitar agrupar la información por uno o

Más detalles

Testeando las aplicaciones (GXtest)

Testeando las aplicaciones (GXtest) Testeando las aplicaciones (GXtest) A medida que vamos haciendo crecer nuestra aplicación para la agencia de viajes, hemos ido agregando funcionalidades y haciendo modificaciones a cosas que habíamos implementado

Más detalles

BPM (Business Process Management)

BPM (Business Process Management) BPM (Business Process Management) En la agencia de viajes, hay trámites que requieren de que varias tareas se realicen unas a continuación de otras, en un cierto orden, por ejemplo, cuando se desea hacer

Más detalles

Acceso a bases de datos externas

Acceso a bases de datos externas Acceso a bases de datos externas Muchas veces necesitamos acceder a bases de datos externas desde nuestras aplicaciones GeneXus. Por ejemplo, podemos necesitar cargar datos en tablas de nuestra base de

Más detalles

Para eso abrimos el ambiente de desarrollo de Genexus.

Para eso abrimos el ambiente de desarrollo de Genexus. Overview GeneXus - Demo: 1. IDE de GeneXus, creación de base de conocimiento para desarrollar un sistema de facturación y objeto Transacción para ingreso de facturas. Vamos a ver ahora en una demo las

Más detalles

Diseñando la primera transacción

Diseñando la primera transacción Diseñando la primera transacción Luego de creada la base de conocimiento, el siguiente paso consiste en describir a los objetos de la realidad mediante objetos GeneXus.. Para identificar a los objetos

Más detalles

QUÉ ES UNA TABLA DINÁMICA?

QUÉ ES UNA TABLA DINÁMICA? TABLAS DINAMICAS QUÉ ES UNA TABLA DINÁMICA? DEFINICIÓN Una tabla dinámica es una de las herramientas más poderosas de Excel, te permiten resumir y analizar fácilmente grandes cantidades de información

Más detalles

Actualización de la Base de Datos - Business Components

Actualización de la Base de Datos - Business Components Actualización de la Base de Datos - Business Components Hasta el momento hemos visto que las transacciones permiten a los usuarios, ingresar, modificar y eliminar datos, en las tablas de la base de datos

Más detalles

Overview GeneXus - Demo: 2.Cómo obtener el ejecutable de la KB y declaración de algunas reglas del negocio.

Overview GeneXus - Demo: 2.Cómo obtener el ejecutable de la KB y declaración de algunas reglas del negocio. Overview GeneXus - Demo: 2.Cómo obtener el ejecutable de la KB y declaración de algunas reglas del negocio. En la primera parte de esta demo creamos nuestra base de conocimiento y la transacción de facturas

Más detalles

Conceptual Model. Aquí podemos ver los cuatro tipos de pantallas que tenemos disponibles:

Conceptual Model. Aquí podemos ver los cuatro tipos de pantallas que tenemos disponibles: Conceptual Model Las aplicaciones para dispositivos inteligentes van a tener que ser nativas, para poder entonces interoperar con las funcionalidades nativas del dispositivo, tanto de software como de

Más detalles

Estructuras de control: Las variables: Fuertemente tipado: Tipado dinámico: Variables booleanas: Qué son las estructuras de control?

Estructuras de control: Las variables: Fuertemente tipado: Tipado dinámico: Variables booleanas: Qué son las estructuras de control? Estructuras de control: Qué son las estructuras de control? Las estructuras de control nos permiten modificar el flujo del programa. Piensa en el programa como una piedra que baja por un tubo, entra por

Más detalles

Relaciones entre entidades de la realidad

Relaciones entre entidades de la realidad Relaciones entre entidades de la realidad En varios ejemplos de nuestra agencia de viajes, encontramos que los actores de la realidad se relacionan entre sí de distintas maneras, por ejemplo cuando vemos

Más detalles

Qué son los subtipos?

Qué son los subtipos? Page1 Qué son los subtipos? Hasta ahora hemos visto que GeneXus establece relaciones entre transacciones -y entre tablas- basándose en los nombres de atributos que encuentra iguales. Por ejemplo, en la

Más detalles

Cómo implementar un menú de entrada para la aplicación móvil

Cómo implementar un menú de entrada para la aplicación móvil Page1 Cómo implementar un menú de entrada para la aplicación móvil En este video veremos cómo hemos implementado un menú de entrada para la aplicación, deslizable, que ofece dos opciones: ir al panel que

Más detalles

Overview GeneXus - Demo: 3. Se agregan transacciones para registrar Clientes y Productos al sistema de facturación.

Overview GeneXus - Demo: 3. Se agregan transacciones para registrar Clientes y Productos al sistema de facturación. Overview GeneXus - Demo: 3. Se agregan transacciones para registrar Clientes y Productos al sistema de facturación. Vamos a comenzar creando una transacción cliente. Y un cliente tiene: un identificador,

Más detalles

Ciclos de prototipado y producción

Ciclos de prototipado y producción Ciclos de prototipado y producción Para poder loguearnos con distintos usuarios, en lugar de hacerlo siempre con el usuario administrador, primero debemos modificar el modo de ejecución de Worflow, en

Más detalles

Una vez completo este paso, es necesario verificar que haya paquetes disponibles para la cantidad de personas que deseen realizar el viaje.

Una vez completo este paso, es necesario verificar que haya paquetes disponibles para la cantidad de personas que deseen realizar el viaje. En la agencia de viajes, hay trámites que requieren de que varias tareas se realicen unas a continuación de otras, en un cierto orden, por ejemplo, cuando se desea hacer una reserva de un paquete turístico

Más detalles

Dossier Cursos. Desarrolle mejores aplicaciones, para más plataformas, en menor tiempo.

Dossier Cursos. Desarrolle mejores aplicaciones, para más plataformas, en menor tiempo. Dossier Cursos Desarrolle mejores aplicaciones, para más plataformas, en menor tiempo. Curso GeneXus Básico / iniciación Curso GeneXus X Ev2 - Analista Junior Duración: 2 ó 3 días > 12 horas Sesión 1 (3

Más detalles

Controles: tipos de control en el diseño

Controles: tipos de control en el diseño Controles: tipos de control en el diseño Ahora pasemos al siguiente punto: veremos la posibilidad de modificar para un control, su tipo, para que luzca y se comporte de una manera diferente a la predefinida.

Más detalles