drools - 查找规则中的所有条件元素为真
问题描述
在 drool 中,当我使用事实执行无状态会话时,我们可以选择查找规则中所有条件元组满足的内容。
例如:如果我们在规则 RUL1 中有规则条件,car.schi == 'A' || car.carKind str[startsWith] 'A'
如果因为 car.schi 而满足 RUL1,那么我们是否有任何 API 可以获取此信息(car.schi)。
我给出的示例比较简单,但我们的实际业务规则非常复杂,如下所示,
|| car.schi 包含 \"CM\" || car.schi 包含 \"DW\" || car.schi 包含 \"PB\") && (validateElementRule($trainrulesRequestDTO.getElementRuleMap(),\"1_N\",true,$trainrulesRequestDTO.getCar().getCarNumb()))))) && (((car.prevSchi不包含 \"N2\" && car.prevSchi 不包含 \"N1\") && (car.prevLoadEmpty == \"L\") && ((car.prevCarKind str[startsWith] \"F\" || car .prevCarKind str[startsWith] \"YF\") && (car.prevCarKind not str[startsWith] \"FI\" && car.prevCarKind not str[startsWith] \"FA\" && car.prevCarKind not str[startsWith] \"FW\" && car.prevCarKind not str[startsWith] \"FB\") && (car.prevCarKind != \"YFB\"))) || ((car.
如果我们要将其拆分为不同的规则以查找是否满足规则是因为 (prevCarKind , prevSchi , prevLoadEmpty) 或 (nextCarKind, nextSchi,nextLoadEmpty) 拆分复杂规则太难了。
我还给出了规则条件作为从我们的 UI 应用程序中获取的图像。 上述规则条件字符串的图形视图 如果有人可以让我们知道如何根据哪个条件查找是否满足上述条件,将会很有帮助。
问候, Madhankumar。乙
谢谢,马丹
解决方案
不,你不能。但是您可以将规则拆分为多个规则,如下所示:
rule "RUL1A"
when
car.schi == 'A'
then
...
end
rule "RUL1B"
when
car.carKind[0] == 'A'
then
...
end
推荐阅读
- java - Tomcat 对二进制文件的 POST 请求随机返回 401
- javascript - AppendChild 不适用于父元素
- sql - 使用 Group By 根据 2 列计算行数
- wordpress - 联系表格 7 - 在链接上单击填写文本字段
- python - Python cv2 90:90 长宽比矩形裁剪图像
- java - 在这个例子中如何使用 toString?
- c++ - clang交叉编译命令找不到头文件
- android - Android 如何在社交媒体上一起分享 URL + 文本
- python - Python递归函数失败
- python - ExtraTreesClassifier 的特征重要性返回全零