Bonjour,
j’ai une transition d’état qui possède une action, une notification par alerte, et une méthode (javascript) après transition.
Depuis que j’ai mis la méthode après transition, mon alerte par mail se multiplie (près de 400 exécutions). Comment cela est-il possible ?
Techniquement, une transition d’état est un “save” du champ statut modifié et qui appelle la méthode après transition si elle est renseignée. Donc faire un “save” sur l’instance qui est en train de travailler partira effectivement en boucle. C’est comme faire un “save” dans un pre/postSave.
La méthode après transition est là pour faire des actions en cascade (envoyer un email, mettre à jour un autre objet…), surtout pas pour modifier le record lui-même sinon ça se mord la queue.
Donc pour mettre à jour un champ du record :
il faut juste setter le champ avant le “save” natif = dans le hook preSave ou preUpdate en testant les valeurs du statut pour savoir sur quelle transition on se trouve :