WindevExpert

Vidéo 34 • Intégrité de Données

Le Verrouillage
Optimiste

Apprenez à détecter et empêcher les collisions de données quand plusieurs sites modifient le même enregistrement.

Le Drame du "Dernier Arrivé"

Mise à jour "Fantôme"

Le Site A modifie le client. 2 min après, le Site B modifie le MÊME client sans savoir que le Site A est passé avant.

SANS VERSIONING : Le Site B écrase le travail du Site A. La donnée est perdue.

La Garde Optimiste

Le serveur vérifie le numéro de version. Si celui du client est plus petit que celui du Cloud, la porte se ferme.

SOLUTION : "Désolé Site B, la donnée a changé entre temps. Rechargez-la."

Laboratoire : Détection de Conflit

Poste Paris
CLIENT_7F4D
Stock : 80
VER: 5
VER: 5
En attente de paquets...
Poste Lyon
CLIENT_7F4D
Stock : 75
VER: 5

L'Algorithme du Garde-Fou

Règle de l'Expert SaaS

Chaque table de votre analyse doit posséder une rubrique RowVersion (Entier 8 octets ou DateHeure précises).

À chaque modification réussie sur le Cloud, le serveur incrémente ce numéro.

"Si (Version_Reçue < Version_Cloud) ALORS REJET."
Metadata Row
CURRENT_VERSION = 102

Implémentation de l'API Cloud

// 1. On lit l'enregistrement actuel sur le serveur Cloud
HLitRecherchePremier(F_CLIENT, ID, stMonPaquetRecu.ID)

// 2. VERROUILLAGE OPTIMISTE : On compare les versions
SI F_CLIENT.RowVersion > stMonPaquetRecu.Version ALORS
    // La donnée a été modifiée par un autre site entre temps !
    HTTPRéponse(409, "CONFLICT_ERROR")
    RETOUR
FIN

// 3. OK : On applique les modifs et ON INCRÉMENTE LA VERSION
F_CLIENT.RowVersion++
HModifie(F_CLIENT)