Vidéo 36 • Expérience Utilisateur SaaS
Résolution de Conflits :
L'Arbitrage UI
Découvrez comment transformer un échec technique de synchronisation en une interface de décision élégante pour vos clients.
L'État Civil de la Donnée
Cycle de Vie Classique
La Méthode de l'Expert
L'application ne bloque pas, elle demande :
"Voici ce que vous avez tapé, voici ce que le serveur possède. Lequel est le bon ?"
Laboratoire : Interface de Fusion
"Le prix a été modifié sur le Cloud pendant que vous prépariez votre saisie."
L'Arbitrage Technique
Si l'utilisateur choisit LOCAL :
L'application renvoie la donnée au Cloud avec un flag bForceOverride = Vrai. Le serveur accepte d'écraser sa version même si elle est plus récente.
Si l'utilisateur choisit CLOUD :
L'application écrase simplement sa base locale avec les données reçues du serveur. Le conflit est résolu.
Code de Finalisation
// 1. On ouvre la fenêtre de résolution (Slide 2) sChoix est une chaîne = Ouvre(FEN_Résolution_Conflit, stLocal, stCloud) SELON sChoix CAS "KEEP_LOCAL" // On demande au SyncEngine de forcer le passage clMonSync.ForceSync(F_PRODUIT.ID, Vrai) CAS "KEEP_CLOUD" // On écrase notre local avec le Cloud HBufferVersEnreg(F_PRODUIT, stCloud) HModifie(F_PRODUIT) FIN // On enlève le flag de conflit pour que le Worker puisse repartir F_PRODUIT.bEnConflit = Faux HModifie(F_PRODUIT)