anonymous Log in
Search
Recents:
v3.0
sd
APP Offline deja de sincronizar
20/11/20 03:58

jncorujo2015

Replies: 12

Buenas noches, estoy teniendo un problema con una APP offline la misma
funciona perfectamente pero a los 2 o 3 dias de uso deja de sincronizar, si
desinstalo la app y vuelvo a instalar vuelve a funcionar sin problemas pero
a los 2 o 3 dias pasa lo mismo,
Según comentaron en un foro esto se debe a que la base de datos SQLite
utiliza diferentes tipos de datos ejemplo la transacción Orden tiene el
atributo OrdenId
En SQLite es un integer de (10) y en MySql es un bigint(20), no logro
entender si genexus no resuelve este problema o hay que setear alguna
propiedad que no me estoy dando cuenta.
O tal vez no es ese mi problema, si alguien puede ayudarme o contarme
alguna experiencia se agradece.
Desde ya muchas gracias.
Nicolas.
Replies

mcrispino

20/11/20 12:57
Nicolás, buen día. Te pido un poco más de información: - ¿Con qué versión de GeneXus estás? - ¿La app es Android o iOS? - ¿El problema se da en todos los dispositivos o solo en algunos? Si es solo en algunos, ¿que características tienen los que tienen el problema? - ¿El problema es con el Send (envío de datos desde el dispositivo al servidor) o con el Receive (traída de datos desde el servidor al dispositivo)? - ¿Qué quiere decir que "deja de sincronizar"? ¿Da algún error? Saludos. *Marcos Crispino* Research & Development | GeneXus +598 2601 2082 | Simplifying Software Development [image: GeneXus] On Fri, Nov 20, 2020 at 12:59 AM Nicolas Corujo

jncorujo2015

20/11/20 17:11
Marcos gracias por tu respuesta. Estoy usando como base la KB Sale de GX . - ¿Con qué versión de GeneXus estás? - Genexus 16u6 - ¿La app es Android o iOS? - Android - ¿El problema se da en todos los dispositivos o solo en algunos? Si es solo en algunos, ¿que características tienen los que tienen el problema? - por el momento solo en un celular se utiliza, es un Xiaomi redmi 9 - ¿El problema es con el Send (envío de datos desde el dispositivo al servidor) o con el Receive (traída de datos desde el servidor al dispositivo)? - El problema se da cuando la APP iniciar, y quiere cargar los datos desde el server y me imagino que enviar las ordenes registradas. comienza a cargar y da error synchronization failed, luego la app funciona perfectamente, es más si se crea una orden y se hace un Save usando un BC este devuelve que todo está correcto, pero luego en el server no envio nada - ¿Qué quiere decir que "deja de sincronizar"? ¿Da algún error? - como te comente en el paso anterior, en ningún momento da error sino que al iniciar la app " synchronization failed" o algo asi no lo recuerdo, luego todo sige normal pero no se ven los cambios en el server ni tampoco si hago cambios en el server se ven en la APP. El vie, 20 de nov. de 2020 a la(s) 09:57, Marcos Crispino ( mcrispino@genexus.com)

haguilera

20/11/20 17:33
Hola Nicolas, yo tuve un problema similar y lo que encontré fue que las tablas en mi servidor eran distintas a las tablas que se crean en el SQLlite del dispositivo y esto generaba problemas tanto en el recibe como en send. Lo que hicimos fue crear de nuevo las tablas tanto en el server como en el SQLlite de la DB Offline del dispositivo. Saludos Héctor Aguilera SOTEICA/Grupo GGI > El 20 nov. 2020, a las 11:11, Nicolas Corujo

gtorresl

20/11/20 18:54
Buenas tardes, en caso de compilar la APP e instalarla de nuevo en el dispositivo las BD's local se actualiza de cero con las mismas estructuras de la KB, ¿es correcto? tengo entendido que al hacer el Create Offline Database  la BD's del dispositivo se crea desde cero y se podria perder información Saludos El 20/11/2020 a las 11:33, Héctor Aguilera

RJSM1981@GMAIL.COM

20/11/20 19:32
Hola, Yo tengo la sincronización manual, llama este evento al abrir la app, y al guardar registros Creo que es importante capturar el numero de error exacto en la variable numérica &SynchResult para estar seguros de cuál es el error if NETWORK.IsServerAvailable() GeneXus.Common.UI.Progress.Title = "Sincronizando base de datos" GeneXus.Common.UI.Progress.Description = "Enviando..." GeneXus.Common.UI.Progress.Type = ProgressIndicatorType.Indeterminate GeneXus.Common.UI.Progress.Show() &SynchResult = Synchronization.Send() Do Case Case &SynchResult = 0 //Envio OK. Case &SynchResult = 1 //Error al abrir las transacciones msg('(1)Error en el envio') Case &SynchResult = 2 //Error desconocido msg('(2)Error en el envio') Case &SynchResult = 3 //Replicador no encontrado msg('(3)Error en el envio') Case &SynchResult = 8 //Envio se esta ejecutando EndCase GeneXus.Common.UI.Progress.Title = "Sincronizando base de datos" GeneXus.Common.UI.Progress.Description = "Recibiendo..." GeneXus.Common.UI.Progress.Type = ProgressIndicatorType.Indeterminate GeneXus.Common.UI.Progress.Show() &SynchResult = Synchronization.Receive() Do Case Case &SynchResult = 0 // msg('RECEPCION OK') Case &SynchResult = 1 // msg('NADA QUE RECIBIR') Case &SynchResult = 2 // msg('NO ESTA FUERA DE LINEA') Case &SynchResult = 3 // msg('NO SE PUEDE RECIBIR SI HAY EVENTOS PENDIENTES POR ENVIAR') Case &SynchResult = 8 // msg('LA RECEPCION YA SE ESTA EJECUTANDO') Case &SynchResult = 51 msg('(51)-VERSION NO VALIDA O ANTIGUA DE OFFLINEDATABASE') Case &SynchResult = 52 msg('(52)-HASHES ERROR') GeneXus.Common.UI.Progress.Title = "Reset base de datos Local" GeneXus.Common.UI.Progress.Description = "Restableciendo..." GeneXus.Common.UI.Progress.Type = ProgressIndicatorType.Indeterminate GeneXus.Common.UI.Progress.Show() synchronization.ResetOfflineDatabase() Case &SynchResult = 53 msg('(53)VERSION NO VALIDA O ANTIGUA DE OFFLINEDATABASE') Case &SynchResult = 99 // msg('(99)ERROR DESCONOCIDO') EndCase Atte. Reinaldo Silveira +56 9 3327 4908

pablobocconi12639

21/11/20 10:41
Hola, habilitado log en sd seguro te va a dar más información del error en la sync. Saludos Pablo El vie., 20 de noviembre de 2020 12:58 a. m., Nicolas Corujo < jncorujo2015@gmail.com>

jncorujo2015

21/11/20 13:16
por perder informacion no hay problema por que tengo todos los respaldo, el tema es que deja de funcionar cada 2 o 3 dias El vie, 20 de nov. de 2020 a la(s) 15:54, Gerardo Torres ( gtorres@castelec.mx)

jncorujo2015

21/11/20 13:19
Hector Como comparar las DB? encontró que por ejemplo en mi base de datos MySql el Id de la orden en genexus lo defino como numeric(10) pero en mysql esta como bigint(20), Tu dices que creando ambas bases de datos de cero con genexus se soluciona? El vie, 20 de nov. de 2020 a la(s) 14:33, Héctor Aguilera ( haguilera@soteica.net)

edmarmartelato

22/11/20 10:32
bom dia... esqueça a sincronização automática e faça a sincronização manual...... Em sáb., 21 de nov. de 2020 às 10:20, Nicolas Corujo escreveu: > Hector Como comparar las DB? encontró que por ejemplo en mi base de datos > MySql el Id de la orden en genexus lo defino como numeric(10) pero en mysql > esta como bigint(20), > Tu dices que creando ambas bases de datos de cero con genexus se > soluciona? > > El vie, 20 de nov. de 2020 a la(s) 14:33, Héctor Aguilera ( > haguilera@soteica.net)

mcrispino

23/11/20 20:18
Nicolás: Lo que comentan Reinaldo y Pablo parecen buenos consejos... En todo caso, hay que ver bien cuál es el error que está dando. El error "synchronization failed" es el mensaje genérico, pero hay que ver bien qué es lo que está fallando. Por los tipos de datos de los numéricos, no creo que sea ese el problema. Si la base de datos no fuera "compatible" no sincronizaría nunca. Y por lo que decías, te sincroniza por un tiempo y luego deja de sincronizar. A no ser, claro, que estés haciendo cambios en la BD del servidor y que esos cambios no los estés reflejando en la BD del dispositivo (con un nuevo Create Offline Database y la correspondiente instalación en el dispositivo). Ahí sí tendrías problemas por tener estructuras distintas. Saludos. *Marcos Crispino* Research & Development | GeneXus +598 2601 2082 | Simplifying Software Development [image: GeneXus] On Sat, Nov 21, 2020 at 10:20 AM Nicolas Corujo

RJSM1981@GMAIL.COM

23/11/20 21:01
Hola, Cuando existe diferencia entre las BD, te retorna error 53. Por ello te recomiendo, hacer algo similar al código que envié, capturar el error y ver que numero te retorna, si todo está bien debe retornar siempre un cero (0) en el send y en el receive, cuando deje de sincronizar ver que numero de error arroja y con ello tener la pista para poder solucionar Atte. Reinaldo Silveira +56 9 3327 4908

jncorujo2015

24/11/20 22:58
Muchas gracias a todos.. Tome como ejemplo el código de reinaldo, por ahora quedo funcionando voy a esperar unos días a ver que pasa y si todo va bien les comparto lo que hice para solucionar el problema, de lo contrario vuelvo a preguntar. Muchas gracias nuevamente Saludos. Nicolas. El lun, 23 de nov. de 2020 a la(s) 18:02,


Back to sd