Projet

Général

Profil

Bug #66038

Mis à jour par Benjamin Dauvergne il y a plus d'un an

Il y a bien un trigger pour mettre à jour cette colonne à chaque écriture de la ligne en table, mais si la demande ne bouge pas, ce caractère final n'est pas mis à jour. Lors d'un changement du caractère final d'un statut, dans recreate_trigger() en plus de mettre à jour le trigger, on devrait appliquer immédiatement un update ciblé pour les lignes de la table dont la colonne is_at_endpoint diffère de la valeur qu'elle devrait avoir (le WHERE est important pour éviter trop d'écritures inutiles en base à chaque changement de quelque chose dans le workflow) quelque chose comme :
<pre>
UPDATE formdata SET is_at_endpoint = status IN ({endpoint_status}) is_at_endpoint·=·status·IN·({endpoint_status}) WHERE is_at_endpoint <> status IN ({endpoint_status}) status·IN·({endpoint_status})
</pre>

(il faut peut-être faire le tour des autres colonnes pour voir si elles nécessiteraient aussi une mise à jour à ce moment)

Disclaimer: pour de grosses tables ça peut potentiellement rendre tout changement au workflow un peu lent :/

Retour