Définition de simples priorités entre règles

Les règles ont des priorités qui peuvent être statiques ou dynamiques. Utilisez une constante pour définir une priorité statique ou une expression contenant une variable d'ensemble de règles pour définir une priorité dynamique.
Pour définir l'ordre d'exécution des règles, définissez la priorité d'une règle dans la vue Propriétés de l'artefact de règles approprié, avec la propriété priorité.
Remarque: pour pouvoir éditer la propriété, assurez-vous que l'icône de main Icône de main pour rendre les propriétés modifiables est visible en regard de l'en-tête de colonne Valeur dans la vue Propriétés .

Priorité statique

Utilisez une priorité static pour changer la séquence d'exécution de règles dans un ensemble. Les priorités statiques sont des entiers dont les valeurs relatives déterminent la priorité de chaque règle de l'ensemble par rapport aux autres. Vous pouvez aussi utiliser une priorité static pour changer l'ordre d'exécution de plusieurs instances d'une même règle lorsqu'elles sont éligibles à l'exécution en même temps.

Vous définissez des priorités statiques à l'aide d'une constante. Dans le champ Valeur de la propriété priority, saisissez un nombre pour représenter la priorité. Il peut s'agir de n'importe quelle valeur entière Java™ comprise entre -109 et +109 . Plus il est élevé, plus haute est la priorité d'exécution de la règle.

Priorité dynamique

Une priorité dynamic est une expression dont la valeur dépend des variables d'ensemble de règles liées dans la partie condition d'une règle.
Remarque: Un message d'erreur s'affiche lorsqu'une archive d'ensemble de règles inclut une tâche de règle en mode séquentiel qui sélectionne des règles avec une priorité de règle dynamique.

Dans le champ Valeur de la propriété priority, saisissez une expression qui utilise une variable d'ensemble de règles. L'expression peut faire référence à toute variable définie dans la partie condition de la règle, sous réserve que sa portée couvre tout l'ensemble de règles. Si l'expression renvoie un nombre qui n'est pas un entier, elle est convertie en entier suivant la spécification du langage Java.

Voici deux exemples :
  • prior1 + ?p

  • -?a

Constantes

Vous pouvez utiliser des constantes dans les priorités de règles. Ces valeurs de priorité sont des entiers écrits sous la forme d'un littéral ou d'une expression ayant une valeur entière.

La liste suivante montre les constantes d'établissement des priorités sur les règles :

  • maximum : la priorité la plus élevée, sa valeur est un milliard.
  • high : la seconde priorité la plus élevée, sa valeur est un million.
  • low : la seconde priorité la plus basse, sa valeur est moins un million.
  • minimum : la priorité la plus basse, sa valeur est moins un milliard.