Souvent les débutants, à qui il n'est jamais donné assez de temps pour apprendre avant de réaliser, pensent tout de suite à démarrer les workflows à l'aide de module fonction. Après tout ils sont là pour ça, non ?
Oui, mais ce n'est pas la bonne pratique ....
Pourquoi faut-il mieux le faire avec les événements ?
Imaginons, vous glissez dans votre code le module fonction, le workflow démarre impeccable .
Demain, vous souhaitez changer le workflow, humm, il va falloir soit que vous ayez bien documenté votre workflow et ne pas avoir perdu cette documentation, pour préciser ou vous avez glissé le déclenchement du workflow.
Sinon, il va vous falloir retrouver où sont appelés les différents modules fonctions qui peuvent lancer les workflows.
Cette documentation est souvent bien faite au moment du projet, mais dans 5 ou 6 ans quand il faudra changer ce workflow, qui saura ou là trouver aura-t elle été mise à jour ?
Si vous décidez de changer de workflow, alors il suffit de désactiver la liaison.
Pas besoin de retrouver le code qui lance l’événement.
Si vous décidiez de ne démarrer un workflow que si certaines conditions sont rempli (uniquement pour un type de facture, un type de document, au dessus d'un certain montant...) c'est possible avec un événement en utilisant l'éditeur de condition pour les événements déclencheurs.
Ainsi par exemple, vous pourriez avoir selon certaines conditions des workflows différents qui démarrent.
Aucun besoin de modifier le code dans la plupart des cas (si votre objet contient à les attributs nécessaires).
Si vous lanciez votre workflow directement avec les modules fonctions vous devriez coder avant chaque appel les conditions pour lancer ou non le workflow.
Dans d'autres articles, nous verrons comment trouver les événements existants pour un objets, comment en créer et comment les lancer, sans rien coder !
J'espère que cet article vous aura fait comprendre que se passer d'un événement pour lancer un workflow est un raccourci pour le très court terme qui peut vous nuire sur le moyen terme.