Cod. | Ultima revisione | Wiki | Note |
---|---|---|---|
737 | 2024/10/01 - MM | Sincronizzazione interrotta |
Sincronizzazione interrotta in modo anomalo
Durante il processo di sincronizzazione tra l'App e il Server, potrebbero verificarsi alcune interruzioni, come ad esempio il passaggio dell'app in background o l'arresto della sincronizzazione, che potrebbero causare problemi di disallineamento dei database sui dispositivi degli utenti. Di conseguenza, gli utenti potrebbero riscontrare anomalie come prezzi degli articoli azzerati, assenza di clienti o prodotti, e altre incongruenze nei dati.
Nell'app 9E sono state introdotte delle migliorie per ovviare alle problematiche causate da questi comportamenti.
Caratteristica
Le cause più comuni che possono portare a un disallineamento dei database durante una sincronizzazione sono:
- Messa in background dell'app
Su iPad, premendo una volta il tasto centrale "Home", l'app in uso viene messa in background. - Spegnimento dell'app
L'app viene chiusa completamente (su iPad, facendo doppio clic sul tasto "Home" e trascinando l'app verso l'alto). - Stop dello schermo del dispositivo
Su iPad, premendo una volta il tasto di accensione, lo schermo viene messo in standby. Questo stop può essere attivato manualmente o in base alle impostazioni del dispositivo, che lo spegne automaticamente dopo un certo periodo di inattività (risparmio energetico). - Spegnimento del dispositivo
Il dispositivo può essere spento manualmente o spegnersi automaticamente a causa della batteria scarica.
Quando l'app rileva uno o più di questi comportamenti, viene visualizzato un alert che avvisa l'utente che l'ultima sincronizzazione è stata interrotta in modo anomalo. L'alert offre due opzioni:
- Più tardi: la sincronizzazione non verrà avviata.
- Procedi ora: la sincronizzazione ripartirà da capo.
Attenzione Le problematiche derivano principalmente dal fatto che il sistema operativo, per "autotutelarsi" (secondo le direttive di Apple, su cui non abbiamo controllo), blocca determinate interazioni di rete (come le richieste HTTPS) e alcune attività delle applicazioni quando vengono messe in background o chiuse.
Solo determinati tipi di interazione, come le notifiche push o piccoli aggiornamenti tramite notifica, sono consentiti. Al contrario, attività cruciali per un corretto aggiornamento dell'app, come il download di database di grandi dimensioni o il controllo e confronto dei dati in locale, vengono bloccate. Ovviamente, lo spegnimento del dispositivo interrompe completamente queste operazioni e causa una reinizializzazione durante il riavvio del device.
Inoltre, bisogna considerare che un'interruzione prolungata della sincronizzazione (di diverse ore) può causare problemi. Il dispositivo potrebbe cercare di riprendere un allineamento parzialmente avviato con un'elaborazione del server già completata, generando ulteriori errori.
L'operazione di allineamento dei dati è la più delicata per l'app. Per questo motivo, come avviene con gli aggiornamenti dei sistemi operativi, è consigliato che:
- Il dispositivo sia collegato all'alimentazione (per evitare spegnimenti causati dalla batteria scarica).
- Il dispositivo sia stabilmente connesso a una rete (per evitare interruzioni nella ricezione dei dati).
- Il dispositivo abbia risorse e spazio sufficiente (per evitare crash dell'app).
- L'utente non esegua altre attività durante l'aggiornamento (altre app potrebbero esaurire la memoria disponibile in una fase critica dell'aggiornamento dei dati).
UI
Di seguito viene riportata l'interfaccia graficaImmagine di esempio | Descrizione |
---|---|
Esempio pop-up
Avviso di stop per anomalie della sincronizzazione |
Stato Implementativo
Client | Versione Rilascio | Stato |
---|---|---|
IOS App9E | 9E: 2019-04-15 - 3.0.24 | Completata |
|
|