我必须将一些存储过程移植到Drools中。由于存储过程遵循命令式编程模型,我发现将它们转换为Drools规则很棘手。例如,我可以有一系列这样的case语句:
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中的每个条件都有一个规则任务吗?
在手册中查找显着性
和激活组
。
显着性
属性为您提供了一种定义规则优先级的机制。
tivation-group
属性使您能够强制仅激活特定组中的一条规则。
通过组合这些,您可以获得近似case/switch语句的东西。