La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Reutilizando conocimiento en la versión Rocha

Presentaciones similares


Presentación del tema: "Reutilizando conocimiento en la versión Rocha"— Transcripción de la presentación:

1 Reutilizando conocimiento en la versión Rocha
Andrés Aguiar ARTech

2 ¿Dónde está el conocimiento?

3 ¿Qué hace GeneXus con una Transacción?

4 ¿Qué hace GeneXus con un Procedimiento?

5 Odio los procedimientos

6 Los procedimientos son buenos

7 ¿Para qué usamos código procedural?

8 Para programar el flujo de mi aplicación

9 Para obtener una lista de datos

10 Para obtener un valor

11 Para realizar actualizaciones batch

12 ¿Para programar el flujo de mi aplicación? ¡Workflow!

13 ¿Obtener un valor? ¡Fórmulas!

14 Fórmulas en GeneXus Rocha
Mas simples Mas flexibles Mas eficientes

15 Simples InvoiceLineTotal = Price * Quantity InvoiceTotal = sum(InvoiceLineTotal) CustomerTotalPaidInvoices = sum(InvoiceTotal, InvoicePaid = 1)

16 Flexibles For Each Defined by CustomerName Where Count(InvoiceDate) > 10 &CustomerTotal = sum(TotalFactura) &CustomerTotal2 = sum(InvoiceLineQty*ItemPrice) End For

17 Eficientes 1 sentencia SQL por For Each
For Each Defined by CustomerName Where Count(InvoiceDate) > 10 &CustomerTotal = sum(TotalFactura) End For SELECT T1.[CustomerId], T1.[CustomerName], T2.[GXC2], T3.[GXC1] FROM (([Customer] T1 LEFT JOIN (SELECT SUM(COALESCE( T5.[InvoiceTotal], 0)) AS GXC2, T4.[CustomerId] FROM ([Invoice] T4 LEFT JOIN (SELECT SUM(T7.[ProductPrice] * T6.[InvoiceLineQty]) AS InvoiceTotal, T6.[InvoiceId] FROM ([InvoiceItem] T6 INNER JOIN [Item] T7 ON T7.[ProductId] = T6.[ProductId]) GROUP BY T6.[InvoiceId] ) T5 ON T5.[InvoiceId] = T4.[InvoiceId]) GROUP BY T4.[CustomerId] ) T2 ON T2.[CustomerId] = T1.[CustomerId]) LEFT JOIN (SELECT COUNT(*) AS GXC1, [CustomerId] FROM [Invoice] GROUP BY [CustomerId] ) T3 ON T3.[CustomerId] = T1.[CustomerId]) WHERE T3.[GXC1] > 5 ORDER BY T1.[CustomerId]

18 ¿Obtener una lista de datos? ¡Data Providers!

19 Data Providers: Reutilizar Navegaciones
Navegaciones habituales Clientes Activos Diferentes presentaciones WebPanel WorkPanel Report Web Service

20 ¿Cómo se definen?

21 ¿Cómo se definen?

22 ¿Cómo se usan?

23 ¿Cómo funcionan? Expansión en tiempo de especificación

24 Consecuencias

25 La estructura de los Data Providers
Defined By Facilidad de asociación a grillas y reportes Exposición como WebServices

26 ¿Procesos Batch? ¡Data Providers + Formulas!

27

28 Otras aplicaciones Exponer un Data Provider como WebService
Consumirlo internamente como WebService Asociación a grilla Asociación a Reporte

29 Mas aplicaciones ‘Data Provider Externo’
Mapearlo a un WebService externo A un Data View sin tabla asociada A un Stored Procedure Default Data Provider por tabla Varios Data Providers con el mismo “contrato”

30 Mas ideas Definición de Data Providers en GXQuery
GXplorer & GXquery IO - Soluciones de BI más integrables, Mañana 9:00

31 Resumiendo Formulas y Data Providers nos permiten capturar conocimiento Todo conocimiento que capturamos lo podemos reusar En GeneXus Rocha, piensen dos veces antes de hacer un procedimiento


Descargar ppt "Reutilizando conocimiento en la versión Rocha"

Presentaciones similares


Anuncios Google