anonymous Log in
Search
Recents:
v3.0
sd
Sincronización en Offline
14/11/20 11:50

pablobocconi12639

Replies: 4

Buenos días, existe alguna forma de que la sync con los valores por defecto
al iniciar el proceso de sincronización libere la app inmediatamente luego
de que terminó el proceso?.
Me pasa en un app que haciéndole el seguimiento por el log cuando arranca
el proceso de sincronización, veo en el log que a los 25 seg. aprox
terminó, en el log veo la línea :
D SyncHelper: DATABASE SYNCHRONIZATION FINISHED
Sin embargo, el proceso se toma los 60 segundos completos, quedando sin
hacer nada 35 segundos, ¿hay forma de mejorar esto?. Lo ideal es que cuando
termine de recibir libere la app sería más óptimo en mi opnión
Saludos
Pablo
Replies

mcrispino

16/11/20 10:07
Pablo, buen día. ¿Nos podrías aclarar qué significa que "el proceso se toma los 60 segundos completos, quedando sin hacer nada 35 segundos"? Y por favor decinos con qué versión de GeneXus estás, si es Android o iOS, sincronización automática o manual, etc. Saludos. *Marcos Crispino* Research & Development | GeneXus +598 2601 2082 | Simplifying Software Development [image: GeneXus] On Sat, Nov 14, 2020 at 11:50 AM Pablo Bocconi

pablobocconi12639

16/11/20 13:32
Hola Marcos, estoy con GX16 U9 en Android y pronto la idea es pasarla a iOS y subir de upgrade. La configuración del objeto offlinedatabase en la condición de receive la tengo manual, es decir que luego del login estoy llamando el receive. El send lo tengo con el valor por defecto. GeneXus.Common.UI.Progress.ShowWithTitleAndDescription("Recibiendo datos...","Por favor espere...") &SynchRecResult = Synchronization.Receive() GeneXus.Common.UI.Progress.Hide() Este proceso demora desde que inicia hasta que finaliza 1 minuto aproximadamente, ni bien comienza la sincronización monitoreo el log y veo todos los insert, a los 25 segundos transcurridos desde el inicio veo que terminan los insert, además veo el mensaje en el log de DATABASE SYNCHRONIZATION FINISHED pero la app sigue con él "Recibiendo datos..." unos 35 segundos aprox más hasta que desaparece el msj y devuelve el control, desconozco si del lado del servidor realiza algo más este proceso y ese es el motivo de la demora. [image: image.png] Muchas gracias Saludos Pablo El lun., 16 nov. 2020 a las 10:08, Marcos Crispino ()

fpanizza

16/11/20 15:12
nos puedes enviar el log completo de una syncronizacion que se comporta de la manera que describes? Gracias, On Mon, Nov 16, 2020 at 1:32 PM Pablo Bocconi

pablobocconi12639

16/11/20 17:04
Sub 'Sync' &IsServerAvailable = Network.IsServerAvailable() if &IsServerAvailable GeneXus.Common.UI.Progress.ShowWithTitleAndDescription("Consultando nueva información...","Por favor espere...") // Second step - Receive data &ServerStatus = Synchronization.ServerStatus() GeneXus.Common.UI.Progress.Hide() Do Case Case &ServerStatus = 1 // &HasConfirmed = Interop.Confirm('Nueva información disponible, ¿Desea recibirla?') // If &HasConfirmed GeneXus.Common.UI.Progress.ShowWithTitleAndDescription("Recibiendo datos...","Por favor espere...") &SynchRecResult = Synchronization.Receive() GeneXus.Common.UI.Progress.Hide() If &SynchRecResult <> 0 Do Case Case &SynchRecResult = 1 Msg("No es necesario recibir - Todos los datos ya están sincronizados.") Case &SynchRecResult = 2 Msg("La aplicación esta en línea, no necesita sincronizar.") Case &SynchRecResult = 3 Msg("Tiene eventos pendientes de enviar") Case &SynchRecResult = 8 Msg("La recepción ya se esta ejecutando, por favor aguarde") Case &SynchRecResult = 51 Msg("El dispositivo está enviando una versión no válida o antigua para la sincronización por favor actualice su app.") Case &SynchRecResult = 52 Msg("Los hashes enviados al servidor no son válidos, por lo que el servidor no puede calcular las diferencias entre las tablas de cliente y las de servidor.") Case &SynchRecResult = 53 Msg("El dispositivo está enviando una versión no válida o antigua de la base de datos sin conexión, por favor actualice su app.") Case &SynchRecResult = 99 Msg("Sincronización finalizada") OtherWise Msg("Sincronización finalizada con código de error: "+ &SynchRecResult.ToString().Trim() + " en recepción.") EndCase Else Msg("Sincronización finalizó correctamente", nowait) EndIf // EndIf Case &ServerStatus = 0 Msg("No hay nueva información para recibir", nowait) EndCase else msg('Atención: No hay conexión con el servidor de aplicación, no se pudo realizar la sincronización.' + newline() + 'Por favor intente nuevamente.') endif endsub


Back to sd