如何在决策表中实现IF ALL ELSE?

时间:2017-12-19 19:21:57

标签: drools

流口水5.4 我有一个决策表,根据Channel Name属性设置BlueReport对象中的值。一切正常,除非频道名称包含我们没有映射的未知频道,我们需要设置值来指示这种情况。我确定下面的图片应该更清楚地说明这一点。这就是我们想要的:

enter image description here

我们如何才能实现"所有其他人"默认条件?!

我现在已经将电子表格规则演变为: Decision Table 2

在上面这个版本的DT中,我把B15留空了,然后我在C15上添加了一个新条件,它检查auditRule字段是否存在字符串变量" DIV"。我不知道我在C9中是否有正确的语法?!每当频道名称(F11 - F15)匹配时,ruleAudit字段就会更新。因此,缺少DIV规则名称将表示与B11-B14上的任何模式都不匹配。你怎么看?!

2 个答案:

答案 0 :(得分:0)

使用blueReport的声明再次添加新条件列并设置此条件  channel_name!=$1 || channel_name!=$2 ||channel_name!=$3 || channel_name!=$4 新条件的值字段对于前四个记录必须为空,除了这些值,例如{34}中的ChannelName1,ChannelName2,ChannelName3,ChannelName4;所有其他"行。虽然这不是标准解决方案,但请尝试使用此解决方法来检查

答案 1 :(得分:0)

我认为the post可以为您提供帮助。这意味着您不仅应该在sequential中声明RuleSet,而且应该在PRIORITY中声明RuleTable,以便根据PRIORITY的值调用规则。