Variables

Locales

Lors de la configuration d’une instance de moteur de règles, il peut être nécessaire d’utiliser des variables. Par exemple, pour effectuer un comptage, pour connaître l’index courant dans une boucle, etc …

4 Addons permettent de définir une variable :

  • DEF : Dédié à la définition d’une variable.
  • FOREACH : 2 variables définies : l’item courant et son index.
  • FOREACHNUMBER : 2 variables définies : l’item courant et son index.
  • EXEC : Le code retour de l’exécution est positionné dans une variable.

Ces Addons prennent donc en paramètre le nom de la variable à définir. Elle peut être ensuite accédée en préfixant ce nom par le caractère « $ ».

Globales

En plus des variables locales, des variables globales sont disponibles nativement pour toute exécution. Elles doivent être préfixées pour y accéder par le caractère « # ». En voici la liste :

  • DATE : Date courante, les informations d’heure étant positionnées à 0.
  • DATETIME : Date et heure courante.
  • TIME : Heure courante. Le language Java n’ayant pas de représentation native d’une heure avant sa version 1.8, la représentation utilisée est un Objet Date ayant les informations de jour, mois et années réinitialisées au « zéro epoch ».
  • RULESETNAME: Nom du RuleSet.
  • NOW : Alias pour DATETIME.
  • NULL : La valeur « null ».
  • READBASE : Pour forcer l’accès au bean d’entrée du contexte courant.
  • WRITEBASE : Pour forcer l’accès au bean de sortie du contexte courant.
  • ROOTREADBASE : Pour forcer l’accès au bean d’entrée du contexte racine. Ceci est utile lors de l’utilisation de sous-propriétés (lors de filtrage de collection par exemple). Si le contexte courant est le contexte racine, alors l’utilisation de ROOTREADBASE est équivalente à celle de READBASE.
  • ROOTWRITEBASE : Pour forcer l’accès au bean de sortie  du contexte racine. Ceci est utile lors de l’utilisation de sous-propriétés (lors de filtrage de collection par exemple). Si le contexte courant est le contexte racine, alors l’utilisation de ROOTWRITEBASE est équivalente à celle de WRITEBASE.