我已经实现了流口水规则引擎,但是随机出现以下错误
readKnownledgeBase错误::无法确定使用的声明。 不是陈述,也不是结构不正确的:[规则名称='规则4']
在输入中或在规则中我将Map与eval一起使用,并且我在随后的部分
中进行了修改导入java.util.Map;
方言“奇迹”
规则“解决异常打开”
何时
$ input:Map((eval($ input.get('source')。toString()。equalsIgnoreCase('DSX'))||
eval($ input.get('source')。toString()。equalsIgnoreCase('DSI'))||
eval($ input.get('source')。toString()。equalsIgnoreCase('DS')))&&
eval($ input.get('open')。toString()。equalsIgnoreCase('N'))&&
eval($ input.get('EXP')。toString()。equalsIgnoreCase('Y'))
)
然后
$ input.put('step','RESOLVE');
System.out.println(“ 1”);
结束
规则“不解决异常”
何时
$ input:Map((eval($ input.get('source')。toString()。equalsIgnoreCase('DSX'))||
eval($ input.get('source')。toString()。equalsIgnoreCase('DSI'))||
eval($ input.get('source')。toString()。equalsIgnoreCase('DS')))&&
eval($ input.get('EXP')。toString()。equalsIgnoreCase('Y'))
)
然后
$ input.put('step','RESOLVE_WITH_NO');
System.out.println(“ 2”);
结束
规则“完成状态”
何时 $ input:Map((eval($ input.get('source')。toString()。equalsIgnoreCase('DS_X'))|| eval($ input.get('source')。toString()。equalsIgnoreCase('DS_I'))|| eval($ input.get('source')。toString()。equalsIgnoreCase('DS')))&& eval($ input.get('status')。toString()。equalsIgnoreCase('Completed')) )
然后
$ input.put('step','DONE');
System.out.println(“ 3”);
结束