简单规则:是否存在if-else规则



我正在尝试使用简单的规则。

我们可以使用简单的规则来执行if-else规则吗?

我检查了ActivationRuleGroupConditionalRuleGroup,但似乎都是if

所有规则都是如果是,则没有其他规则;这是一种不同的想法。规则并不意味着只替换您在普通源代码中看到的任何逻辑。它们最好是为类似于长切换的情况(如逻辑或参数驱动逻辑)实现的。所得税表单是参数驱动用例的一个示例。

如果您需要基于一个事实的值的三个操作,例如:

if age < 16
action: discount = 15%
else if age >= 16 and age <= 65
action: discount = 0%
else 
action: discount = 20%

然后你只需写3条规则:

when age < 16
action: discount = 15%
when age >= 16 and age <= 65
action: discount = 0%
when age > 65
action: discount = 20%

组合规则用于处理规则的

ConditionalRuleGroup有一个"主要"规则,因此当它的计算结果为true(已触发)时,将激发组中的其余规则,否则将跳过组。

我使用UnitRuleGroup进行类似表单的验证。表单中的所有数据都被放入facts中,并触发验证规则。如果任何一个规则为false,则整个组将返回false,表单将被视为无效。

最新更新