Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
drools决策表存在关键字_Drools - Fatal编程技术网

drools决策表存在关键字

drools决策表存在关键字,drools,Drools,目前,我的drools决策表如下所示: |CONDITION|CONDITION| --------------------- | Person | --------------------- |name=$1 |age=$1 | --------------------- | | | --------------------- |a |22 | --------------------- |b

目前,我的drools决策表如下所示:

|CONDITION|CONDITION| --------------------- | Person | --------------------- |name=$1 |age=$1 | --------------------- | | | --------------------- |a |22 | --------------------- |b |33 | --------------------- 现在我想让这个决策表看起来像.drl文件中的下一个:

rule "1" when exist Person(name=="a",age="22") then do something end rule "2" when Person(name="b", age="33") then do something end 那么,如何修改决策表以实现我的目标呢

这就是如何在决策表文件中使用“exists”关键字

提前谢谢

| CONDITION  | CONDITION |
--------------------------
|     exists Person()    |
-------------------------
|name==$param|age==$param|
---------------------
|            |           |
---------------------------
|a           |22         |
---------------------------
|b           |33         |
--------------------------
另一条规则几乎是一样的;只需忽略存在的部分。但是,一个这样的表只能根据一个模板生成规则。因此,您将获得两条规则a/22、b/33,其中一条规则存在,另一条规则相同,但不存在


要根据这两个模板创建规则,您需要两个不同的规则表。

如果像您在决策表文件中所说的那样,实际上这两个规则在.drl文件中都有“exists Person”,我想要的是:第一个规则有“exists Person”,而第二个规则只有“Person”。如果Person匹配,那么exists Person也是真的。因此,在第二条规则中,试图避免现有的匹配是毫无意义的。@frank请看我对答案的补充。@Steve the Acquisites nothing不太正确。根据>=某类事实的存在而有一个操作可能非常有用,但仍然需要为每个事实执行其他操作。@laune,你是说一个RuleTable只能有一个规则吗?但我有很多规则,所以如果一个RuleTable只有一个规则,那么它将有很多RuleTable。此外,这会导致重复的条件和操作标题。