Biztalk规则,只有在未触发同一策略中的所有其他规则时才能触发规则

时间:2011-06-23 16:09:33

标签: biztalk

我正在构建验证策略,规则集将验证我传入的xml文档,如果发现任何无效的情况,则会引发不同类型的验证错误。但是,我想增加一条额外的规则,即“如果没有找到验证错误,请执行某些操作”。是否有可能实现这一目标以及如何实现?

即。规则看起来像这样

如果doc.firstname = dog  然后isDocumentValidate = false; failedReason ='必须是人' 如果doc.age = 0  然后isDocumentValidate = false; failedReason ='必须是成年人' 如果isDocumentValidate = true  然后做点什么

2 个答案:

答案 0 :(得分:0)

是的,您可以为策略中的每个规则设置优先级(单击规则并检查其属性)。规则将从最高优先级编号执行到最低优先级编号。您也可以使用负数。在“使文档无效”之后,您可以停止触发其他规则(例如here)。

但是对于您的示例,如果可能,我建议您使用isDocumentValidate=true的默认值,而BRE只需要担心更改无效实例的值。

条件为1 is equal to 1的规则始终为真。将该规则作为您的最低优先级。

答案 1 :(得分:0)

您可以通过为默认条件创建规则来实现此目的,isDocumentValidate = true,将条件设置为1等于1,并将优先级设置为高于其他规则。这样,默认规则将首先触发,设置默认值,然后如果任何其他规则匹配,它们将适当地设置值。