A continuación pasamos a detallar los pasos que sigue el algoritmo de recepción de datos presente en los procesos de sincronización en las aplicaciones móviles.
- Descargamos configuración de objetos y vistas, menús, propiedades, páginas, plantillas, etc.
- Creamos todas las tablas usando el nombre original pero con prefijo temp_ y añadiendo los siguientes campos a cada tabla: _isInserted, _isUpdated, _isDeleted, _syncDate, _insertDate, _updatedDate, _deletedDate.
- Descargamos e insertamos los datos de cada tabla en distintos hilos de ejecución.
- Con todos los datos descargados, comparamos con la estructura anterior y ejecutamos en una única transacción los siguientes pasos:
I. Las tablas antiguas que ya no existan en el modelo son eliminadas.
II. Las tablas nuevas que no existían en el modelo son renombradas quitando el prefijo _temp.
III. Con las tablas coincidentes en ambos modelos:
A) En caso de "Refrescar datos":
- Se comprueba si ha cambiado la clave primaria, en caso afirmativo se devuelve error y se deshace todo el proceso solicitándole al usuario que realice una sincronización completa (tipo B).
- Se marcan como eliminados aquellos registros que ya estaban marcados como eliminados.
- Se insertan nuevamente los registros marcados como nuevos pero sólo usando los campos coincidentes en ambos modelos.
- Se actualizan los campos coincidentes en ambos modelos de los registros del muevo modelo usando aquellos del viejo que estén marcados como actualizados.
- Se eliminan las tablas antiguas y se renombran las nuevas quitando el prefijo _temp.
B) En caso de "Sobrescribir datos":
- Se eliminan las tablas viejas y se renombran las nuevas quitando el prefijo _temp
¿Le ha sido útil este artículo?
¡Qué bien!
Gracias por sus comentarios
¡Sentimos mucho no haber sido de ayuda!
Gracias por sus comentarios
Sus comentarios se han enviado
Agradecemos su esfuerzo e intentaremos corregir el artículo