Mise à jour Impossible, la donnée a déjà été modifiée par <utilisateur>

Bonjour Simplicité,

Je travaille aujourd’hui à quelques corrections de bugs pour les utilisateurs de Véolia Sabom sur l’instance OSI.
Il y a une erreur qui persiste et que je n’arrive pas à reproduire : “Mise à jour Impossible, la donnée a déjà été modifiée par nom_de_utilisateur”, lors d’une sauvegarde d’une liste en mode édition par ce même utilisateur.
Le message est clair et explicite cependant d’après mes recherches aucune action particulière de l’utilisateur en question n’expliquerait cette anomalie.
Ma question est donc la suivante : Face à une telle erreur, sauriez-vous me conseiller sur quel point tourner mon investigation ?

Merci à vous,

Vincent Scheffer

Un message de ce type signifie qu’il y a eu une mise à jour concurrente sur un record entre le moment où vous avez commencé à éditer la liste et le moment où vous avez enregistré la liste.

Le comportement des objets métier vis à vis de la mise à jour concurrente est paramétrable via la stratégie de timestamping/locking:

PS: Peut être que cette mise à jour est liée à du code specifique de votre objet qui, par exemple, sur enregistrement d’un record A va mettre à jour un record B, si les 2 records A et B sont dans votre liste éditable ça posera forcément pb. Dans ce cas c’est un point de conception

Bonjour David,
Merci pour cette réponse !
La liste ne contient qu’un seul objet, en revanche, son édition amène une mise à jour d’un autre mais il ne devrait pas y avoir de soucis.

A mon avis votre pb est lié à la manière dont votre code effectue ces mises à jour vs les records que vous êtes en train d’éditer ou dans le genre. C’est donc sans doute révélateur d’un pb de conception (ex: si des records sont mis à jour “en esclave” par d’autres, ceux ci ne doivent pas être éditables manuellement car forcément cela induira des mises à jour concurrentes)