Partager via


Exécution de RuleSets basée sur la priorité

Comme mentionné précédemment, si vous souhaitez une certaine séquence d'exécution pour le RuleSet ou un sous-ensemble de règles dans ce RuleSet, vous pouvez définir cette séquence précisément en utilisant le champ de priorité sur une règle. Cela supprime souvent la spécification pour le chaînage et vous pouvez même désactiver le chaînage dans ces scénarios.

Notez que le mécanisme d'exécution avant dans Windows Workflow Foundation vous permet de définir une séquence d'exécution, mais ce n'est pas obligatoire. La plupart du temps, le comportement de chaînage avant rend l'assignation de priorités de règle inutile pour accomplir le résultat RuleSet correct, parce que les relations sont gérées automatiquement par le moteur pour s'assurer que ces dépendances de règle sont remplies.

L'exemple suivant illustre cet aspect.

Rule 1
IF this.Weather.Temperature < 50
THEN this.Drink.Style = "Latte"

Rule 2
IF this.Drink.Style == "Latte"
THEN this.Snack.Style = "Scone"
ELSE this.Snack.Style = "Muffin"

Dans Windows Workflow Foundation, vous pouvez fournir une priorité plus haute à la Règle 1 afin qu'elle s'exécute en premier. Cela garantit que Drink.Style est défini avant que la Règle 2 soit évaluée.

Toutefois, la mise en séquence n'est pas obligatoire pour obtenir les résultats que vous souhaitez. Supposons que la Règle 2 est évaluée en premier. Dans ce cas, Drink.Style peut être null ou un autre style. Cela provoquerait une définition de Snack.Style sur « Muffin ». Toutefois, après que la Règle 1 a exécuté et défini Drink.Style sur « Latte », la Règle 2 doit être réévaluée et définir Snack.Style au « Scone ». Vous avez principalement la possibilité de dicter la mise en séquence, mais dans de nombreux cas vous n'avez pas à le faire.

La mise en séquence peut également être utile si les règles ont des dépendances, mais que vous ne souhaitez pas utiliser l'attribution d'instructions ou d'une méthode Update explicites pour les scénarios où elles seraient autrement nécessaires.

Voir aussi

Référence

RuleSet
RuleUpdateAction

Concepts

Utilisation de RuleSets dans les workflows
Évaluation des règles dans des RuleSets

Footer image

Copyright ©2007 par Microsoft Corporation. Tous droits réservés.