Qué son los subtipos?

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

Download "Qué son los subtipos?"

Transcripción

1 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 Attraction está el atributo CountryId con rol de llave foránea, dado que con igual nombre está presente en la transacción Country, y allí es llave primaria El atributo CountryName por su parte Page1

2 también se encuentra en ambas transacciones con el mismo nombre, por lo que GeneXus interpreta que se trata del mismo atributo. GeneXus siempre asume que si usamos el mismo nombre de atributo, estamos representando al mismo concepto. Sin embargo, hay casos en los que podríamos necesitar usar nombres distintos para el mismo concepto, e indicarle a GeneXus, que ambos nombres significan lo mismo. Veamos esto. Supongamos que en la agencia de viajes nos piden registrar los vuelos que ofrecen a los clientes para arribar a Page2

3 una atracción turística. Debemos registrar la ciudad y país desde donde parte el vuelo así como también la ciudad y país a donde arriba el mismo Page3

4 Para eso, vamos a crear una transacción Flight con los atributos necesarios para registrar esta información Page4

5 Más adelante agregaremos a esta transacción otros datos como la aerolínea a la que pertenece el vuelo, el precio de los vuelos, etc. Observemos que agregamos estos atributos para almacenar la información del país y ciudad desde donde parte el vuelo Y estos otros para almacenar el país y la ciudad de destino Page5

6 Vamos a hacer esto en GeneXus Creamos un objeto transacción File..New Object... la nombramos Flight Page6

7 Agregamos el atributo identificador FlightId y los atributos para almacenar el país y ciudad de origen del vuelo CountryId CountryName CityId CityName Page7

8 Y ahora vamos a agregar los atributos para almacenar el país y la ciudad de destino del vuelo... Ingresamos CountryId pero cuando damos Enter GeneXus nos indica que hay un error!! Nos dice que estamos agregando un atributo con nombre duplicado! Lo mismo nos va a pasar con todos los atributos que pensábamos agregar para representar la información del vuelo de destino, y que se llamaban igual a los que usamos para registrar la información del origen del vuelo. Cómo podemos hacer entonces para ingresar 2 países y 2 ciudades en una misma transacción? Evidentemente vamos a tener que usar nombres de atributos diferentes para almacenar la información de origen y de destino del vuelo que queremos registrar. Vamos a borrar entonces a los atributos que originalmente habíamos ingresado y vamos a definir nuevos nombres de atributos. Page8

9 Primero vamos a definir los atributos correspondientes a desde donde sale el vuelo: Llamamos FlightDepartureCountryId al identificador de país de origen del vuelo, FlightDepartureCountryName al nombre de país., FlightDepartureCityId al identificador de ciudad y FlightDepartureCityName al nombre de la ciudad desde donde parte el vuelo. Ahora bien, hemos definido nombres de atributos nuevos pero para GeneXus estos nombres de atributos no tienen relación con CountryId Page9

10 CountryName CityId Page10

11 o CityName Tal como dijimos antes, si usamos nombres distintos en la transacción Fligh y en la transacción Country para identificar al concepto Id de país, GeneXus no establecerá ninguna relación entre la transacción Flight y la transacción Country ya que justamente se basa en los nombres de los atributos para establecer relaciones Vamos a crear un diagrama de transacciones, para corroborar esto Hacemos New / Object elegimos Diagram, le dejamos el nombre por defecto Page11

12 y presionamos Create. Ahora arrastramos a las transacciones Flight y Country al diagrama. Vemos que efectivamente, GeneXus no encuentra relación entre ellas, ya que no se identificó a ninguna clave foránea en Flight que permita la relación con Country. Otra forma de ver esto, es prestar atención a la forma en que GeneXus nos muestra, en la transacción Flight, al atributo identificador de país de partida que ingresamos, FlightDepartureCountrId. Page12

13 Vemos que está señalizado con el símbolo cuadrado que indica que es un atributo secundario y no es considerado como clave foránea Comparemos esto con la definición del identificador de país de la transacción Attraction Page13

14 En Attraction, el atributo CountryId tiene una flecha que apunta hacia arriba, lo cual nos indica es un atributo clave foránea pero no es el caso del atributo FlightDepartureCountryId en Flight Page14

15 Entonces, cómo hacemos para que GeneXus pueda asociar distintos nombres a un mismo concepto? Necesitamos que FlightDepartureCountryId aunque se llame distinto que CountryId, sea considerado como tal, como un identificador de país! Page15

16 Y lo mismo ocurre con el nombre del país y el identificador y nombre de ciudad. La respuesta es mediante la definición de subtipos. Cuando un atributo se llama distinto a otro ya definido pero ambos representan el mismo concepto Page16

17 podemos decirle a GeneXus que el nuevo atributo es subtipo del otro y a partir de ese momento Page17

18 GeneXus los considerará exactamente como si fueran la misma cosa. En nuestro caso, vamos a definir al atributo FlightDepartureCountryId como subtipo de CountryId Page18

19 y a partir de ese momento GeneXus tratará a FlightDepartureCountryId exactamente como si fuera CountryId, es decir lo identificará como clave foránea en la transacción Flight y establecerá la relación con Country como queríamos. Para definir subtipos, lo primero que debemos hacer es crear un grupo de subtipos. Seleccionamos File New Object elegimos el tipo Subtype y le damos el nombre FlightDeparture: Page19

20 Digitamos un punto (. ) y GeneXus nos sugiere los atributos que comienzan con FlightDeparture y que ya habíamos definido en la transacción Flight. Elegimos a FlightDepartureCountryId. Ahora damos tabulador y como queremos que FlightDepartureCountryId sea subtipo de CountryId, elegimos como su supertipo al atributo CountryId. Ahora agregamos a FlightDepartureCountryName Page20

21 como subtipo de CountryName FlightDepartureCityId como subtipo de CityId y FlightDepartureCityName como subtipo de CityName. Salvamos Y ahora abramos nuevamente a la transacción Flight. Page21

22 Vemos que ahora los atributos FlightDepartureCountryId y FlightDepartureCityId tienen el símbolo de la flechita hacia arriba Page22

23 que indica que serán tratados como claves foráneas y además el símbolo de la letra S, que indica que son atributos definidos como subtipos. Si volvemos a analizar el diagrama de tablas Page23

24 las relaciones ahora muestran que GeneXus considera a los atributos subtipos identificadores de país y ciudad en Flight, exactamente igual que si hubiéramos referenciado a CountryId y CityId. Vemos que GeneXus ha encontrando la relación entre Flight, CountryCity y Country. Page24

25 Ahora tenemos que proceder de igual manera para definir a los atributos que permitan registrar el país y la ciudad hacia donde llega el vuelo así que llamamos: FlightArrivalCountryId al identificador de país de llegada del vuelo FlightArrivalCountryName al nombre del país de llegada. FlightArrivalCityId al id de la ciudad de destino y FlightArrivalCityName al nombre de la ciudad de destino. Page25

26 Salvamos. Y ahora vamos a crear un grupo de subtipos llamado FlightArrival para definir que los nuevos atributos que recién creamos, serán subtipos de los atributos que definen a los países y ciudades. Digitamos., completamos el nombre del atributo con CountryId y el supertipo es CountryId. completamos con CountryName y el supertipo es CountryName. completamos con CityId y el supertipo es CityId y por último, FlightArrival CityName y su supertipo es CityName. Salvamos Page26

27 y vamos a corroborar en la transacción Flight, que los íconos representan que ya hay relación establecida Vamos a presionar F5 para ver en funcionamiento todo esto. Page27

28 Ejecutamos la transacción Flight y vamos a registrar un vuelo desde Rio de Janeiro a París. Dejamos el id sin ingresar, ya que como sabemos se autonumerará y elegimos como país de origen del vuelo a Brasil y la ciudad de origen a Rio de Janeiro. Como país de arribo elegimos a Francia y la ciudad: a París. Page28

29 Confirmamos y vamos a ingresar otro vuelo. Digitamos en el país de partida 15 y sale el aviso de que no existe. Ahora utilicemos la flechita Page29

30 y seleccionamos a China Page30

31 Como vimos, contamos con los mismos controles y ayudas, que si los atributos fueran las llaves foráneas con sus nombres originales pero se trata de atributos subtipos de ellos! Y esa es la idea : que definiendo subtipos, logramos definir que nombres de atributos distintos, corresponden al mismo concepto! Page31

32 Ahora bien, vimos que el uso de subtipos nos permitió representar una situación que se da en la realidad, como ser en este caso, que un vuelo tiene 2 países y 2 ciudades, que cumplen distinto rol. Page32

33 Un país y una ciudad corresponden a donde se origina el vuelo y el otro país y ciudad corresponden al destino del vuelo. Hemos definido nombres de atributos con nombres descriptivos que hacen alusión al rol de partida y llegada Page33

34 respectivamente y también fue de vital importancia agrupar en el mismo grupo de subtipos a los atributos que se correspondan. Observemos que no hemos definido a todos los subtipos en un mismo grupo, ni a los 2 países por un lado y a las 2 ciudades por otro. Hemos agrupado a los atributos del país de partida con los atributos de la ciudad de partida: GeneXus entiende con este grupo, que cuando ingresen valor para este identificador de país Page34

35 el nombre de país correspondiente a este identificador, tiene que cargarse en este atributo Page35

36 y no en el otro nombre de país que hay en la transacción. De la misma manera entiende que cuando digiten valor para esta ciudad, Page36

37 el nombre de ciudad correspondiente a este identificador, tiene que cargarse en este atributo y no en el otro nombre de ciudad que hay en la transacción Y algo importante que GeneXus también interpreta con esta definición de grupo, es que debe controlar que Page37

38 esta ciudad, esté registrada en la base de datos para este país y no para el otro país. El grupo de subtipos que define al país y ciudad de arribo del vuelo Page38

39 es totalmente equivalente a este y aplica todo lo mismo que recién explicamos. Así hemos visto como resolver una doble referencia a un mismo concepto pero con distintos roles, ya que los 2 países debían obtenerse de la misma tabla pero cada uno tenía distinto rol Page39

40 y las 2 ciudades debían obtenerse de una misma tabla también Page40

41 cumpliendo distintos roles Para finalizar Page41

42 es importante saber que estas podrían haber sido soluciones válidas también En la propuesta de arriba Page42

43 se ha definido un único grupo de subtipos: el grupo correspondiente al país y ciudad de partida y se ha dejado a los atributos supertipos para el ingreso del destino. Esto es completamente válido. Y en la propuesta de abajo Page43

44 se ha definido un un único grupo de subtipos también, en este caso el grupo correspondiente al país y ciudad de arribo. En resumen, los subtipos nos permiten indicarle a GeneXus como asociar distintos nombres de atributo a un mismo concepto. Y como vimos, las validaciones y todo el comportamiento de los subtipos será idéntico a si hubiéramos usado a los atributos supertipos. Page44

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

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

Curso GeneXus - Haciendo crecer la aplicación

Curso GeneXus - Haciendo crecer la aplicación Curso GeneXus - Haciendo crecer la aplicación Al mostrarle la aplicación que tenemos hasta el momento a los usuarios de la Agencia de Viajes, nos dan su visto bueno y nos recuerdan que para cada atracción

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

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

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

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

Diseñando más transacciones

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

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

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

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

Identificando atributos disponibles

Identificando atributos disponibles Identificando atributos disponibles Explicaremos ahora la definición de tabla base y tabla extendida. Son 2 conceptos muy sencillos, y es importante entenderlos, ya que se usan mucho en el uso de la herramienta

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.. Page1 Para identificar a los objetos

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

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

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

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: Definimos aquí un atributo identificador de país CountryId Y vemos que Genexus le asignó el dominio Id y definimos

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Definición de subtipos

Definición de subtipos Uso de Subtipos 293 Definición de subtipos Las relaciones entre atributos GeneXus se establecen a través de sus nombres. Mediante subtipos se puede establecer que dos atributos que se llaman diferente

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

Consulta con salida pivot table

Consulta con salida pivot table Consulta con salida pivot table Para comenzar recordemos que la base de conocimiento TravelAgency permite gestionar la actividad de una agencia de viajes... y para la misma ya hemos creado la metadata,

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

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

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

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

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

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

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

Convirtiendo el modelo en una aplicación funcional

Convirtiendo el modelo en una aplicación funcional Convirtiendo el modelo en una aplicación funcional En videos anteriores hemos modelado el proceso de reserva de pasajes de la Agencia de Viajes mediante un diagrama de procesos de negocios, hemos visto

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

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

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

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

Consulta con salida Chart (Parte I)

Consulta con salida Chart (Parte I) Consulta con salida Chart (Parte I) Ya hemos visto en videos anteriores la creación de consultas con salida Table y Pivot table. Veamos ahora la creación de una consulta con salida Chart, o sea, vista

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

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 otras

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

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

Reglas en transacciones - Más conocimientos

Reglas en transacciones - Más conocimientos Reglas en transacciones - Más conocimientos En un video anterior hemos visto que en las transacciones, los controles que nos solicitan los usuarios o que debemos validar, se definen en la sección de RULES.

Más detalles

Programando el Evento Start, Click o De usuario en un Web Panel

Programando el Evento Start, Click o De usuario en un Web Panel Programando el Evento Start, Click o De usuario en un Web Panel Teníamos un web panel que desplegaba información de los clientes y permitía filtrar la información desplegada por nombre completo del cliente.

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

Qué son las fórmulas?

Qué son las fórmulas? Qué son las fórmulas? 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

Más detalles

Trabajando con documentos

Trabajando con documentos Trabajando con documentos Continuando con la asociación de objetos GeneXus a las tareas del diagrama de validación de la reserva, seguiremos con las tareas interactivas Add customer information required

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

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

Objeto Query - Más conocimientos

Objeto Query - Más conocimientos Objeto Query - Más conocimientos Hemos visto anteriormente las generalidades del objeto Query, los componentes de su estructura y la forma de verlo en ejecución a través del uso del control Query Viewer.

Más detalles

Script Data Selectors: reusing definitions

Script Data Selectors: reusing definitions 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)

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

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

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

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

Se ejecuta el diagrama de procesos por primera vez

Se ejecuta el diagrama de procesos por primera vez Se ejecuta el diagrama de procesos por primera vez En el video Automatización Parte 1, vimos cómo asociar un objeto transacción a la tarea de registro de reservas de pasajes. Continuando con nuestro diagrama

Más detalles

Definición de tareas concurrentes, detección e identificación de errores

Definición de tareas concurrentes, detección e identificación de errores Definición de tareas concurrentes, detección e identificación de errores El proceso de reserva de pasajes de la Agencia de Viajes, incluye un subproceso que llamamos Validate Reservation, que se encarga

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

Ejecutando la aplicación por primera vez

Ejecutando la aplicación por primera vez Ejecutando la aplicación por primera vez Presionamos la tecla de función F5 y se nos presenta el siguiente diálogo: Recordemos que al momento de crear nuestra base de conocimiento, ya se nos había solicitado

Más detalles

Modificación de dato relevante, evento timer y calendarios

Modificación de dato relevante, evento timer y calendarios Modificación de dato relevante, evento timer y calendarios Continuando con el diagrama, la tarea Evaluate Customer deberá evaluar la situación financiera del cliente y almacenar la decisión en un dato

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

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

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

Usuarios y roles. Para administrar el acceso a las tareas de un diagrama de procesos, debemos definir ciertos roles que serán parte del modelo.

Usuarios y roles. Para administrar el acceso a las tareas de un diagrama de procesos, debemos definir ciertos roles que serán parte del modelo. Usuarios y roles Hasta ahora hemos modelado diagramas de proceso, asociado objetos GeneXus a los elementos de los diagramas y ejecutado esos procesos, pero todas las pruebas las hicimos siempre con el

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 nos piden validar. En las transacciones,

Más detalles

Creación de la Knowledge Base

Creación de la Knowledge Base Creación de la Knowledge Base Vamos a ejecutar a GeneXus Este número que vemos aquí, nos indica cuál es la versión de GeneXus que estamos ejecutando. Es importante estar siempre actualizados en la última

Más detalles

Ejecutando la aplicación por primera vez

Ejecutando la aplicación por primera vez Ejecutando la aplicación por primera vez Presionamos la tecla de función F5 y se nos presenta el siguiente cuadro de diálogo: Recordemos que al momento de crear nuestra base de conocimiento, ya se nos

Más detalles

Transacción de 2 niveles usada como Business Component y manejo de errores.

Transacción de 2 niveles usada como Business Component y manejo de errores. Transacción de 2 niveles usada como Business Component y manejo de errores. Ya hemos visto anteriormente el concepto general de Business Component y su aplicación en una transacción de un solo nivel. Veamos

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

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

Creación de la KB. Page1. Video filmado con GeneXus X Evolution 3. Vamos a ejecutar a GeneXus

Creación de la KB. Page1. Video filmado con GeneXus X Evolution 3. Vamos a ejecutar a GeneXus Creación de la KB Vamos a ejecutar a GeneXus Este número que vemos aquí, nos indica cuál es la versión de GeneXus que estamos ejecutando. Es importante estar siempre actualizados en la última versión.

Más detalles

Administrando las bases de conocimiento

Administrando las bases de conocimiento Administrando las bases de conocimiento A lo largo de este curso, en el cual fuimos desarrollando una aplicación para una agencia de viajes, hemos utilizado GXserver. Lo primero que hicimos en lo que respecta

Más detalles

Ejecutando la aplicación por primera vez

Ejecutando la aplicación por primera vez Ejecutando la aplicación por primera vez Queremos probar la transacción que creamos en los pasos anteriores. Para ello, le vamos a pedir a GeneXus que construya la aplicación, que cree la base de datos,

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

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

1 - Objetivos de Venta por Vendedor y Grupo de Objetivos

1 - Objetivos de Venta por Vendedor y Grupo de Objetivos I MÓDULO OBJETIVOS El objetivo de este manual es el de guiar al usuario a realizar la generación de los objetivos de la fuerza de ventas de la distribuidora. Para ello sólo nos vamos a detener en aquellos

Más detalles