Flux d'événements dans un jeu de règles

Dans un jeu de règles, le flux d'événements suit l'ordre dans lequel les blocs de règles et les règles sont codés. Lorsque le moteur Active Correlation Technology reçoit un événement, il détermine le type d'événement et identifie les règles qui l'utilisent pour l'activation de la règle, le traitement de l'événement ou la désactivation de la règle.

Utilisation des événements par les règles

Chaque règle qui utilise un événement commence par déterminer si ce dernier répond à tous les critères spécifiés pour l'activation de la règle, le traitement de l'événement ou la désactivation de la règle. Si c'est le cas, elle applique les actions suivantes :
Pour l'activation de la règle
Les actions contenues dans l'élément <onActivation> de la règle sont exécutées si elles sont codées.
Pour le traitement de l'événement
La règle traite l'événement. Lorsque le modèle de règle correspond, les actions de réponse à la règle sont exécutées si elles sont codées. Dans certaines situations :
  • L'action peut interrompre le traitement de l'événement pour la suite du bloc de règles ou du jeu de règles.
  • L'action peut envoyer un événement nouveau ou existant vers une autre règle ou un autre bloc de règles pour qu'ils procèdent à son traitement.
Pour la désactivation de la règle
Les actions contenues dans l'élément <onDeactivation> de la règle sont exécutées si elles sont codées.

Méthodes susceptibles d'influencer le flux d'événements

Active Correlation Technology offre des méthodes qui peuvent être appelées pour influencer le flux d'événements dans le jeu de règles. Ces méthodes sont disponibles par le biais de la variable act_lib.
exitRuleSet
Cette méthode spécifie que l'événement en cours n'est traité par aucune règle supplémentaire dans le jeu de règles.
exitRuleBlock
Cette méthode spécifie que l'événement en cours n'est traité par aucune règle supplémentaire dans le bloc de règles en cours ou dans tout bloc de règles contenu dans ce dernier. Cependant, il est traité par des règles supplémentaires en-dehors de la portée du bloc en cours.
forward
Cette méthode spécifie qu'un événement doit être envoyé vers d'autres règles et blocs de règles, bien que la règle en cours n'ait pas fini de le traiter. Ensuite, chaque règle et chaque bloc de règles traite entièrement l'événement avant de le renvoyer vers la règle qui a appelé la méthode forward.
forwardOnCompletion
Cette méthode spécifie qu'un événement doit être envoyé vers d'autres règles et blocs de règles au terme de son traitement par la règle en cours.