Partager via


Agenda et priorité

Pour comprendre comment le moteur de règle métier évalue les règles et exécute des actions, vous devez comprendre les concepts d’agenda et de priorité.

Agenda

L'agenda est une planification dont se sert le moteur pour mettre en file d'attente les règles à exécuter. L'agenda est lié à une instance de moteur et agit sur une stratégie, pas sur plusieurs. Lorsque les conditions d'une règle donnée sont satisfaites et qu'un fait est déclaré en mémoire de travail, la règle est placée sur l'agenda et exécutée selon sa priorité. Les actions d'une règle sont exécutées dans l'ordre, du haut vers le bas. Les actions de la règle suivante sur l'agenda sont ensuite exécutées.

Les actions appartenant à une règle sont traitées comme un bloc afin que toutes soient exécutées avant le début de la règle suivante. Toutes les actions d'un bloc de règle s'exécutent indépendamment les unes des autres. Pour plus d’informations sur l’assertion, consultez Fonctions de contrôle du moteur.

L'exemple suivant illustre le fonctionnement de l'agenda.

Règle1

IF  
Fact1 == 1  
THEN  
Action1  
Action2  

Règle 2

IF  
Fact1 > 0  
THEN  
Action3  
Action4  

Nous déclarons le fait Fait1 qui possède la valeur 1 dans le moteur. Étant donné que les conditions de Règle 1 et Règle  2 sont satisfaites, ces deux règles sont déplacées dans l'agenda pour que leurs actions puissent être exécutées.

Mémoire de travail Agenda
Fait1 ( valeur = 1 ) Règle1

- Action1
- Action2

Règle 2

- Action3
- Action4

Priorité

Une priorité d'exécution est définie pour chaque règle, avec une priorité par défaut de 0 pour toutes. La priorité peut être positive ou négative ; les nombres les plus élevés correspondent aux priorités les plus importantes. Les actions sont exécutées de la priorité la plus élevée à la priorité la plus faible.

L'exemple suivant montre l'incidence de la priorité sur l'ordre d'exécution des règles.

Règle1 (priorité = 0)

IF  
Fact1 == 1  
THEN  
Discount = 10%  

Règle2 (priorité = 10)

IF  
Fact1 > 0  
THEN  
Discount = 15%  

Les conditions des deux règles sont satisfaites, mais Règle2 est exécutée en premier car elle a la priorité la plus importante. La remise finale est de 10 % car il s'agit du résultat de l'action exécutée pour Règle1, comme l'illustre le tableau suivant.

Mémoire de travail Agenda
Fait1 ( valeur = 1 ) Règle 2

Remise = 15 %

Règle1

Remise  = 10 %

Voir aussi

Moteur de règles