Table de décisions

Réagir à une opération à travers une table de décisions Drools

Principe

Ce gestionnaire d’opérations s’appuie sur le moteur de règles Drools pour exécuter une table de décisions. Une table de décisions est un fichier Microsoft Excel composé de deux types de colonnes :

  • les conditions : détermine les cas dans lesquels appliquer une règle
  • les actions : les actions à exécuter pour une règle donnée

Pour chaque règle définie (ou ligne), les actions définies sont exécutées si toutes les conditions sont remplies.

La table de décisions est stockée comme contenu du document utilisé pour configurer l’abonnement à l’exécution d’une opération.

Conditions & Actions

Les conditions et les actions définies doivent être du code Java compilable au sein de la JVM de FlowerDocs Core. Pour faciliter leur développement, un objet accessible à travers la variable util est mise à disposition dont les méthodes exposées sont listées ici.

Afin de contextualiser la prise de décisions dans un contexte, les variables context et component sont fournies lors de l’évaluation d’une table de décision. Elles peuvent donc être utilisées dans les conditions ou les actions. La variable context contient un objet

OperationContext stockant le contexte d’exécution de l’opération.
Il est possible de récupérer le composant avant l’action grâce à la méthode getOld() disponible sur la variable context de type UpdateComponentOperationContext ou TaskOperationContext.
La variable component contient le composant (cf.

Component) concerné par l’opération (si disponible).


Pour définir manuellement ce gestionnaire d’opérations, l’identifiant com.flower.docs.core.tsp.operation.DroolsOperationHandler peut être utilisé comme valeur du tag OperationHandler.


Les gestionnaires d’opérations de type Drools ne supportent pas certains contextes d’exécution :

  • sur les objets d’administration (classes de composants, objets de sécurité, etc.)
  • à la modification de version d’un documents