Historisation d'attributs d'un objet lié

Version

Version=5.3.21

Description

Bonjour,

J’ai un objet A qui a une FK vers un objet B. Dans l’historique de A, j’ai quelques attributs de B.
Aujourd’hui, quand on change un de ces attributs sur B

  • ça ne crée pas de nouvelle ligne d’historique dans A
  • l’attribut ramené change de valeur pour toutes les lignes d’historique déjà présentes dans A

Il serait utile de pouvoir

  • avoir une ligne dans A à la modification d’un attribut ramené de B
  • que les anciennes valeurs d’historique gardent la précédente valeur de l’attribut

Merci d’avance,
Emmanuelle

Bonjour,

L’historique est une copie à date de l’objet métier, pas des champs ramenés qui doivent être historisé indépendamment. Seule la clé étrangère est stockée dans l’historique.

Il est toujours possible d’ajouter des champs specifiques dans votre objet historique et de les valoriser au preCreate de cet objet avec des champs externes, résultat d’un select sql…

On pourrait imaginer historiser les champs B joints dans A, ca peut faire sens. Par contre c’est un contre sens d’historiser A si B est modifié par ailleurs, sauf à le modéliser proprement dans le link comme pour le RedoLog :

https://community.simplicite.io/t/journal-des-modifications-pour-plusieurs-objets-lies-entre-eux/7140/8

1 Like

Une autre solution fonctionnelle à ce cas d’usage est de gérer un historique fonctionnel dans B en ajoutant une colonne clé “Version”.

Si on veut “modifier” B il faut obligatoirement le versionner = créer un autre row_id. La mise à jour restant possible pour les erreurs de saisie d’une version donnée de B.

Ensuite dans l’historique de A, la foreign-key et les champs joints non copiés/persistants resteront inchangés, il faut également ajouter la version de B pour lever toute ambiguïté en cas d’import/export ou usage via API de l’historique.

1 Like