Правила Biztalk, как заставить правило срабатывать, только если все другие правила в той же политике не запущены - PullRequest
1 голос
/ 23 июня 2011

Я создаю политику проверки, наборы правил будут проверять документ xml, который я передал, и будут вызывать различные виды ошибок проверки, если будет найдено что-то недопустимое.Однако я хочу сформулировать еще одно правило, которое гласит: «Если ошибка проверки не найдена, сделайте что-нибудь».Можно ли это заархивировать и как?

т.е. правило выглядит так

если doc.firstname = dog, то isDocumentValidate = false;failedReason = «должен быть человеком», если doc.age = 0, то isDocumentValidate = false;failedReason = 'должен быть взрослым', если isDocumentValidate = true, тогда doSomething

Ответы [ 2 ]

0 голосов
/ 30 апреля 2014

Вы можете сделать это, создав правило для условия по умолчанию: isDocumentValidate = true, установите для условия значение 1, равное 1, и установите приоритет выше, чем остальные правила. Таким образом, правило по умолчанию будет запускаться сначала, устанавливая ваше значение по умолчанию, а затем, если какие-либо другие правила будут совпадать, они установят значение соответствующим образом.

0 голосов
/ 08 июля 2011

Да, вы можете установить приоритет для каждого правила в политике (нажмите на правило и проверьте его свойства).Правила будут выполняться от номера с самым высоким приоритетом до самого низкого.Вы также можете использовать отрицательные числа.После того, как вы «аннулируете» документ, вы можете прекратить применение дополнительных правил (пример этого здесь ).

Однако для вашего примера, если это возможно, я бы предложил, чтобы у вас было значение по умолчанию дляisDocumentValidate=true, и BRE нужно будет беспокоиться только об изменении значения на недопустимых экземплярах.

Правило с условием 1 is equal to 1 всегда будет истинным.Пусть это правило будет вашим самым низким приоритетом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...