Module Drupal à suivre : ECA (Event-Condition-Action), la relève du module Rules !

Mercredi 2 Novembre 2022

Module présenté et discuté lors d'un meetup de la communauté Drupal France, ECA nous parait très ambitieux. Il nous apparait aussi comme le successeur le plus crédible au célèbre module Rules, qui a fait son temps !

Présentation du module Drupal ECA - bluedrop.fr

Module ECA

Event condition action (ECA) est un raccourci pour faire référence à la structure des règles actives dans l'architecture événementielle et les systèmes de bases de données actives.

Une telle règle se compose traditionnellement de trois parties :

  • La partie événement qui spécifie le signal qui déclenche l'invocation de la règle.
  • La partie condition, constituée par un test logique qui, s'il est satisfait ou évalué comme vrai, entraîne l'exécution de l'action.
  • La partie action matérialisée par des mises à jour ou des invocations sur les données locales.

Inspirés par BPMN (2) à l'occasion d'un projet de mise à niveau d'un site Drupal 7 à 9 disposant d'utilisation intensives de règles, l'équipe (3) de développeurs Drupal a étudié les voies possibles et construit un module expérimental pour traiter les événements basés sur des modèles BPMN.

ECA en successeur du module Rules

Le module Rules de Drupal n’est plus au niveau demandé. Toujours en version alpha, il attend encore un investissement important. Le module ECA a été construit pour fournir un équivalent au module Rules pour Drupal 9 et au-delà. Tout en se rapprochant de cet objectif, ECA résout d'autres problèmes :

  • Il permet de réduire le nombre de modules sur-mesure. ECA permet de remplacer les hooks, les form alter, tâches reliées au CRON, les gestionnaires de validation ou de soumission et autres.
  • Il permet de réduire le nombre de modules contribués. Il sera facile, par exemple, de configurer une redirection après login avec ECA, ce qui permet de se débarrasser du module “Redirect after login”. Moins de modules implique moins de maintenance ! Pour citer quelques modules pouvant être éliminés : Redirect 403 To User Login, Login And Logout Redirect Per Role, Maxlength, Field validation, Computed Field, ou encore Automatic entity label.
  • Il permet de fournir un outil permettant aux équipes projet qui comprennent leur logique commerciale, mais pas nécessairement les détails de Drupal, de participer à l'élaboration et à la maintenance de la configuration tout au long du cycle de vie de l'application Drupal. À vrai dire, concernant ce point, on est encore loin de l’objectif puisque l’interface est encore complexe à gérer.
  • Il permet d’exporter les modèles en XML pour réutiliser des règles et des schémas sur d'autres sites (les modèles restent toujours des entités de configurations dans Drupal aussi).

Une proposition a été faite pour étendre le module encore afin de contenir les révisions et les modérations du contenu ce qui permettra d’appliquer des flux de travail solides (workflow) en cas de besoin. 

Interface utilisateur

Si l'interface peut sembler difficile d'accès pour les novices de l'analyse des flux, elle s'avère très efficace une fois les principes assimilés. Elle permet de mettre en perspective les flux d'information, les règles à déclencher au fur et à mesure des actions sur le site et les permissions associées. 

Le module est encore jeune, 200 sites au moins l’ont installé. Il existe cependant un channel Slack qui vous permettra de suivre les évolutions du module : https://drupal.slack.com/archives/C0287U62CSG

De l'avis de notre équipe, avis partagé par les participant au meetup Drupal France du jour, ce module semble avoir un réel avenir. Il est à surveiller de très près et à tester dès que le périmètre de votre projet s'y prête.

Le module : https://www.drupal.org/project/eca
La documentation : https://ecaguide.org/
Tutoriels Video : https://ecaguide.org/videos/tutorials/
BPMN : www.bpmn.org
Merci Elie !

Notes : 

(1) Une base de données active est une interface automatisée qui exécute certaines fonctions dépendant d'entrées d'informations spécifiques.

(2) C’est un langage de modélisation visuelle pour les applications d'analyse commerciale et la spécification des flux de processus d'entreprise. Il s'agit d'une notation standard ouverte pour les organigrammes graphiques utilisés pour définir les flux de processus d'entreprise. Il s'agit d'un langage graphique populaire et intuitif qui peut être facilement compris par toutes les parties prenantes de l'entreprise, notamment les utilisateurs, les analystes, les développeurs de logiciels et les architectes de données (traduit de https://www.visual-paradigm.com/guide/bpmn/what-is-bpmn/).

(3) Jurgen Haas (@jurgenhaas), Richard Papp (@boromino), Max Haupt (@mxh), Daniel Speicher (@danielspeicher) et Ralf Koller (@rkoller).