aplicaciones offline sd conceptos avanzados

32
#GX3199 Aplicaciones Offline para Smart Devices: Conceptos avanzados Marcos Crispino @mcrispino [email protected]

Upload: genexus

Post on 19-Jun-2015

1.090 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Aplicaciones offline sd conceptos avanzados

#GX3199

Aplicaciones Offline para Smart Devices: Conceptos avanzados

Marcos Crispino

@mcrispino

[email protected]

Page 2: Aplicaciones offline sd conceptos avanzados

#GX3199

Page 3: Aplicaciones offline sd conceptos avanzados

#GX3199

Offline

Page 4: Aplicaciones offline sd conceptos avanzados

#GX3199

TEMASObjeto Offline Database

Generaciónde código

Escenarios avanzados

Sincronización

Page 5: Aplicaciones offline sd conceptos avanzados

Objeto Offline Database

Page 6: Aplicaciones offline sd conceptos avanzados

#GX3199

Condiciones y eventos

• Conditions

• Event Start

• Navegación

Page 7: Aplicaciones offline sd conceptos avanzados

#GX3199

Creación de la base de datos

• Generación de los programas

• Ejecución en el dispositivo

• Solo creación

• Opción de precarga de datos

Page 8: Aplicaciones offline sd conceptos avanzados

#GX3199

Base de datos local

• SQLite

• Integridad transaccional

• Transacciones son bloqueantes

Page 9: Aplicaciones offline sd conceptos avanzados

#GX23

TEMASObjeto Offline Database

Page 10: Aplicaciones offline sd conceptos avanzados

Generación de código

Page 11: Aplicaciones offline sd conceptos avanzados

#GX3199

Online vs. Offline

• Eventos Start, Refresh y Load

• Eventos de usuario

• Procedures y Data Providers

• Business Components

Page 12: Aplicaciones offline sd conceptos avanzados

#GX3199

Ejecución en dispositivos

• Acceso a datos (for each, new)

• Estructuras de control (if, while, etc.)

• Operaciones

• Funciones del lenguaje

Page 13: Aplicaciones offline sd conceptos avanzados

#GX3199

Seguridad con GAM

• Credenciales en el servidor

• Opción de Login solo Online

• Usuario autenticado Offline

• Consulta de datos del usuario Offline

• Solo autenticación

Page 14: Aplicaciones offline sd conceptos avanzados

#GX3199

TEMASObjeto Offline Database

Generaciónde código

Page 15: Aplicaciones offline sd conceptos avanzados

Escenarios avanzados

Page 16: Aplicaciones offline sd conceptos avanzados

#GX3199

Aplicación full offline

• Nunca se conecta al servidor

• Datos precargados o generados por el usuario

• Ejemplo: aplicación de finanzas personales

Page 17: Aplicaciones offline sd conceptos avanzados

#GX3199

Aplicación basada en servicios

• No necesita “backend”

• Requiere de servicios externos

• Puede o no tener datos locales

• Ejemplo: Find My Plane

Page 18: Aplicaciones offline sd conceptos avanzados

#GX3199

TEMASObjeto Offline Database

Generaciónde código

Escenarios avanzados

Page 19: Aplicaciones offline sd conceptos avanzados

Sincronización

Page 20: Aplicaciones offline sd conceptos avanzados

#GX3199

Sincronización

Receive

Send

Page 21: Aplicaciones offline sd conceptos avanzados

#GX3199

Propiedades

Page 22: Aplicaciones offline sd conceptos avanzados

#GX3199

Receive

• Automática o Manual

• Data Synchronization Criteria

• Minimum Time Between Synchronizations

• Synchronization.Receive()

• Por tabla o por registro

• Data Synchronization Granularity

Page 23: Aplicaciones offline sd conceptos avanzados

#GX3199

Receive: by row

• Tablas auxiliares en el servidor

• Versión de los datos en el cliente (hash)

• Juego de datos por hash en el servidor

Page 24: Aplicaciones offline sd conceptos avanzados

#GX3199

Receive: by row

Dispositivo ServidorClientes[ {id=1, nombre=A}, {id=2, nombre=B} ]

Hash

3458145ae23490fb142

Clientes[]

Clientes, 3458145ae23490fb142[ {id=1, nombre=A}, {id=2, nombre=B} ]

Clientes[ {id=1, nombre=D}, {id=2, nombre=B},{id=3, nombre=C} ]

Hash

e59274ac5d5923b6efa8

INS: {id=3, nombre=C}UPD: {id=1, nombre=D}DLT: {id=2}

Clientes, e59274ac5d5923b6efa8[ {id=1, nombre=D}, {id=3, nombre=C} ]

3458145ae23490fb142

Page 25: Aplicaciones offline sd conceptos avanzados

#GX3199

Receive: filtrado de datos

• Conditions en el objeto Offline Database

• Se aplican antes de calcular el hash de la

tabla

• Parámetros:

• Información del dispositivo

• Usuario de GAM

Page 26: Aplicaciones offline sd conceptos avanzados

#GX3199

Send

• Solo Business Components

• Tabla auxiliar en SQLite

Page 27: Aplicaciones offline sd conceptos avanzados

#GX3199

Send: cuándo

• Propiedad Local Changes Processing

• When Connected

• User Defined: Synchronization.Send()

Page 28: Aplicaciones offline sd conceptos avanzados

#GX3199

Send: mapeo de claves

• Claves autogeneradas

• Usadas como Foreign Key en otras tablas

• Cambian de valor en el servidor

• Actualización en la respuesta

Page 29: Aplicaciones offline sd conceptos avanzados

#GX3199

Send: mapeo de claves

Cliente: {CliId=1,...}Factura: {..., CliId=1, ...}

Dispositivo Servidor

Cliente: {CliId=1,...}Factura: {..., CliId=1, ...}

Cliente: {CliId=24,...}

Factura: {..., CliId=24, ...}

INS

INS

Factura: {..., CliId=24, ...}Cliente: {CliId=1 => 24}Factura: {CliId=1 => 24}

Page 30: Aplicaciones offline sd conceptos avanzados

#GX3199

Send: manejo de errores

• Respuesta de error

• SynchronizationEventsAPI

Page 31: Aplicaciones offline sd conceptos avanzados

#GX23

TEMASObjeto Offline Database

Generaciónde código

Escenarios avanzados

Sincronización

Page 32: Aplicaciones offline sd conceptos avanzados

#GX23

www.genexus.com/encuentro

@mcrispino#GX3199