我必须将一些存储过程移植到Drools中。由于存储过程遵循命令式编程模型,我发现将它们转换为Drools规则很棘手。例如,我可以有一系列这样的案例陈述:
case
when <condition 1> then <action 1>
when <condition 2> then <action 2>
when <condition 3> then <action 3>
end
因为在上面的评估中隐含了一个排序,即首先评估条件1,然后评估条件2,然后条件3,我发现很难将其转换为Drools。在Drools中,我只是在没有指定顺序的情况下编写规则。如何将上述SQL隐含的顺序实现为Drools规则?我是否必须创建JPBM流程并为上述SQL中的每个条件设置规则任务?
答案 0 :(得分:2)
在手册中查找salience
和activation-group
。
salience
属性为您提供了一种定义规则优先级的机制。
使用activation-group
属性可以强制激活特定组中只有一个规则。
通过组合这些,你有一些近似于case / switch语句。