2011-06-23 3 views
1

Je suis en train de créer une politique de validation, les jeux de règles valideront le document xml que j'ai passé, souleveront différentes sortes d'erreurs de validation. invalide est trouvé. Cependant, je veux ajouter une règle supplémentaire qui dit «si aucune erreur de validation n'est trouvée, faire quelque chose». Est-il possible de l'archiver et comment?Règles Biztalk, comment déclencher une règle uniquement si toutes les autres règles de la même stratégie ne sont pas déclenchées

à savoir règle ressemble à ceci

si doc.firstname = chien alors isDocumentValidate = false; failedReason = 'doit être un humain' si doc.age = 0 alors isDocumentValidate = false; failedReason = « doit être un adulte » si isDocumentValidate = true alors doSomething

Répondre

0

Oui, vous pouvez définir une priorité à chaque règle dans la politique (cliquez sur la règle et examiner ses propriétés). Les règles seront exécutées du numéro de priorité le plus élevé au plus bas. Vous pouvez également utiliser des nombres négatifs. Après avoir "invalidé" un document, vous pouvez arrêter de tirer des règles supplémentaires (par exemple here).

Cependant, pour votre exemple, si possible, je suggère que vous ayez la valeur par défaut pour isDocumentValidate=true, et le BRE n'aura qu'à s'inquiéter de changer la valeur sur les instances non valides.

Une règle dont la condition est 1 is equal to 1 sera toujours vraie. Avoir cette règle soit votre priorité la plus basse.

0

Vous pouvez accomplir cela en créant une règle pour votre condition par défaut, isDocumentValidate = true, définir la condition sur 1 est égal à 1 et définir la priorité plus haut que le reste de vos règles. De cette façon, la règle par défaut se déclenchera en premier, en définissant votre valeur par défaut, et si d'autres règles correspondent, elles définiront la valeur de manière appropriée.

Questions connexes