Méthode ObjectField.hasChanged()

Bonjour,

Je souhaiterais savoir comment fonctionne la méthode getOldValue(). A quel moment exact est setté cette oldValue ?

Je souhaiterais savoir ça car je souhaiterai travailler avec un champ logique non persisté qui serait alimenté dans l’initUpdate et utiliser la methode hasChanged().

Merci d’avance.

Bonjour Jean-Michel,

A priori getOldValue() sera vide sur un champ non persisté.
De même appeler un hasChanged() dans un initUpdate sur un champ non persisté n’a pas trop de sens à mon avis.

Est-ce que tu peux m’expliquer le besoin afin de mieux t’orienter ?

Pour des raisons de sécurité, on souhaiterais persister toutes les données sensibles d’une manière détournée dans un blob chiffré(JSON) qui serait déchiffré uniquement avec le profil adéquat. La réécriture du json et le chiffrement seraient déclenchés uniquement si au moins un champ à changé.

Dans ce cas je te conseille d’implémenter la valorisation des champs dans le hook postSelect pour l’affichage du formulaire et dans le postSearch dans le cas où ces attributs sont visibles également en liste.

Ensuite pour vérifier si la valeur de ces champs a été modifiée, au moment d’appeler le setValue (toujours dans le postSelect) pour valoriser le champ, appeler également un setOldValue.

Avec ça, le hasChanged fonctionnera correctement lors de la reconstruction potentielle du JSON dans le hook preSave.

1 Like

C’est parfait, ça répond parfaitement au besoin, merci beaucoup Alistair !

[Message prédéfini]

Nous conseillons aux utilisateurs de marquer comme “solution” la réponse résolvant leur problématique pour permettre au support de mieux suivre les sujets non résolus, et à la communauté de trouver plus facilement la bonne réponse.

Vos messages indiquant une résolution du problème, nous avons réalisé cette opération pour vous.

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.