Evolución del lenguaje GeneXus

38
#GX23 Evolución del Lenguaje GeneXus Gustavo Brown [email protected]

description

Evolución del lenguaje GeneXus

Transcript of Evolución del lenguaje GeneXus

Page 1: Evolución del lenguaje GeneXus

#GX23

Evolución del Lenguaje GeneXus

Gustavo Brown

[email protected]

Page 2: Evolución del lenguaje GeneXus

#GX23

Tab Data en Transacciones +Trn Dinámicas

Actualización de Transacciones via Eventos

for each Trn Base

Cláusula Unique

Page 3: Evolución del lenguaje GeneXus

#GX23

Tab Data en Transacciones

Page 4: Evolución del lenguaje GeneXus

#GX23

Tab Data en Transacciones

• Transacción define modelo de la realidad (tiempo de diseño):• Contenedor de datos• Relaciones entre los datos

• Carga de los datos:• Por los usuarios en tiempo de ejecución• Por procedimientos de inicialización• Por procesos batch

Page 5: Evolución del lenguaje GeneXus

#GX23

Tab Data en Transacciones

• Nuevo tab Data en transacciones:• Define un DataProvider para la carga de los datos

• Define el momento de ejecución• Creation Time• Dynamic

• Define políticas de actualización• Read Only• Extensible• Updatable• Event Driven

Page 6: Evolución del lenguaje GeneXus

#GX23

Tab Data en Transacciones

• Momento de ejecución: Creation Time

• Ejemplo: Transacción de Monedas

Page 7: Evolución del lenguaje GeneXus

#GX23

Tab Data en Transacciones

• Momento de ejecución: Creation Time

• Ejemplo: Transacción de Monedas

Page 8: Evolución del lenguaje GeneXus

#GX23

Transacciones Dinámicas

Page 9: Evolución del lenguaje GeneXus

#GX23

Transacciones Dinámicas

• Transacciones con tab Data • Momento de ejecución: Dynamic

• Ejemplo: Transacción de Monedas (lista predefinida)• Política de actualización: ReadOnly

Page 10: Evolución del lenguaje GeneXus

#GX23

Transacciones Dinámicas

• Transacciones con tab Data • Momento de ejecución: Dynamic

• Ejemplo: Transacción de Monedas (lista predefinida)• Política de actualización: ReadOnly

Page 11: Evolución del lenguaje GeneXus

#GX23

Servicio externo como TRN dinámica

• Escenario: Acceso a datos a través de servicios externos

• Permite encapsular la lógica asociada al servicio• Desde GX se accede como cualquier TRN• Permite prototipar la aplicación y luego pasar a

usar servicios externos

• Permite usar distintos puntos de entrada al servicio externo según el tipo de acceso requerido

• Servicios OData pueden importarse directamente

Page 12: Evolución del lenguaje GeneXus

#GX23

Servicio externo como TRN dinámica

• Ejemplo: Clientes como servicio externo

Page 13: Evolución del lenguaje GeneXus

#GX23

Servicio externo como TRN dinámica

• Ejemplo: Clientes como servicio externo

Page 14: Evolución del lenguaje GeneXus

#GX23

Servicio externo como TRN dinámica

• Múltiples puntos de acceso al servicio• Sentencia Match

• Permite identificar qué punto de entrada al servicio usar de acuerdo a los atributos instanciados

• Permite determinar en tiempo de especificación si la consulta se puede realizar

Page 15: Evolución del lenguaje GeneXus

#GX23

Servicio externo como TRN dinámica

Page 16: Evolución del lenguaje GeneXus

#GX23

Relaciones temporales como TRN dinámica

• Escenario: Modelar un valor que cambia con el tiempo

• Ejemplo: Cambio de precio de un producto

• Se desea consultar, dada una fecha, el precio vigente de un producto ( )

Page 17: Evolución del lenguaje GeneXus

#GX23

Relaciones temporales como TRN dinámica

( )

Page 18: Evolución del lenguaje GeneXus

#GX23

Relaciones temporales como TRN dinámica

Page 19: Evolución del lenguaje GeneXus

#GX23

Relaciones de integridad tipo OR

• Escenario: Manejar datos de dos entidades de la misma especie

• Ejemplo: Modelar facturas y recibos

Page 20: Evolución del lenguaje GeneXus

#GX23

Relaciones de integridad tipo OR

Page 21: Evolución del lenguaje GeneXus

#GX23

Agrupación de datos

• Escenario: Agrupación de datos

• Ejemplo: Obtener información sobre ventas mensuales

Page 22: Evolución del lenguaje GeneXus

#GX23

Actualización de Transacciones via Eventos

Page 23: Evolución del lenguaje GeneXus

#GX23

Actualización de Transacciones vía Eventos

• Eventos • Insert• Update• Delete

• Invocados automáticamente al actualizar un BC &BC.Save(), &BC.Delete()

• Permiten realizar actualizaciones en transacciones dinámicas

Page 24: Evolución del lenguaje GeneXus

#GX23

Actualización de Transacciones vía Eventos

• Permiten realizar actualizaciones en transacciones dinámicas• Ejemplo: actualización de TRN accesible vía

servicios

Page 25: Evolución del lenguaje GeneXus

#GX23

Actualización de Transacciones vía Eventos

• Escenario: Agrupación de datos

• Ejemplo: Obtener información sobre ventas mensuales

Page 26: Evolución del lenguaje GeneXus

#GX23

Actualización de Transacciones vía Eventos

• MonthlySales deja de ser dinámica

• Se programan los eventos en la TRN de Invoice

Page 27: Evolución del lenguaje GeneXus

#GX23

for each Trn Base

Page 28: Evolución del lenguaje GeneXus

#GX23

for each Trn Base

• Cláusula opcional en for each/DPs/etc

• Define cual es la TRN a utilizar como tabla base

• Mejora capacidad expresiva del for each

• Mejora la capacidad de comprender KB existentes

Page 29: Evolución del lenguaje GeneXus

#GX23

for each Trn Base

Page 30: Evolución del lenguaje GeneXus

#GX23

for each Trn Base

Page 31: Evolución del lenguaje GeneXus

#GX23

for each Trn Base

Page 32: Evolución del lenguaje GeneXus

#GX23

for each Trn Base

Page 33: Evolución del lenguaje GeneXus

#GX23

Cláusula Unique

Page 34: Evolución del lenguaje GeneXus

#GX23

Cláusula Unique

Ejemplo: Productos alguna vez vendidos

Page 35: Evolución del lenguaje GeneXus

#GX23

Cláusula Unique

Ejemplo: Total facturado por año

Ejemplo: Total facturado por año / cliente

Page 36: Evolución del lenguaje GeneXus

#GX23

Tab Data en Transacciones +Trn Dinámicas

Actualización de Transacciones via Eventos

for each Trn Base

Cláusula Unique

Page 37: Evolución del lenguaje GeneXus

www.genexus.com/encuentro@genexus#GX23

Gustavo [email protected]

Page 38: Evolución del lenguaje GeneXus

¡GRACIAS!

[email protected]

@genexusfacebook.com/genexus.artech

Gustavo Brown