La synchronisation d'une formation maintient elle-même un booléen pour savoir si le processus a changé quoi que ce soit sur la formation, entre autres pour faire le rapport.
Il serait peut-être plus pertinent d'utiliser la méthode program.needsSave() pour avoir cette information, ce serait plus précis.