Java 在决策表的单个RuleTable下包含多个规则

Java 在决策表的单个RuleTable下包含多个规则,java,drools,rule-engine,rule,Java,Drools,Rule Engine,Rule,我试图在决策表(excel)中的单个RuleTable下包含更多的规则,这意味着在单个RuleTable下包含两行或多行条件和操作,如图所示。如果我包含,我只能从三个操作项中获取单个操作。例如,如果我将值claim value指定为11-->我将操作输出设置为Done-2。但如果我把索赔值设为12,我就得不到任何输出 如果我的方法有错误,请告诉我 编辑:我已经完成了图中所示的更改,现在它没有给我任何输出 Excel表格中的此部分不是根据Drools决策表的规则编写的。我只是指出所有的偏差-请阅

我试图在决策表(excel)中的单个RuleTable下包含更多的规则,这意味着在单个RuleTable下包含两行或多行条件和操作,如图所示。如果我包含,我只能从三个操作项中获取单个操作。例如,如果我将值claim value指定为11-->我将操作输出设置为Done-2。但如果我把索赔值设为12,我就得不到任何输出

如果我的方法有错误,请告诉我

编辑:

我已经完成了图中所示的更改,现在它没有给我任何输出


Excel表格中的此部分不是根据Drools决策表的规则编写的。我只是指出所有的偏差-请阅读文档,了解如何编写决策表。(单元格根据发布的PNG从A1到H9进行编号。此外,请注意,为了简单起见,我使用value、value1和value2,而不是事实值的原始访问代码。)

  • 单元格H3包含
    tm
    ,这会产生无效的RHS代码(
    tm.System.out.println(…)
  • 由于规则表标题中省略了注释行(应位于第5行),因此只有第6、7、8和9行生成规则
  • 插入第#5行后,由于第6行到第10行(最初是第5行到第9行),会生成五条规则,但所有约束都是从第4行的单元格派生的
  • B列根据第4行和第6行(最初为5行)中的条目生成一个模式,导致文本
    Age<2
    ,该文本不是有效模式。这是因为B3是空的
  • 列A中的单元格A6到A10(最初是A5到A9)生成规则,其中模式可选为
    声明(value==10==“true”)
    声明(value==10==value==11”)
    或类似。这是可以编译的,但这并不是测试声明事实中的值所需要的
  • 类似地,操作列(E列)产生的RHS代码也可以是
    System.out.println(“Done-1”)
    (或类似)和
    System.out.println(“System.out.println(\“$param\”)”)
  • 试着猜测为什么没有得到预期的输出没有多大意义。您有定义规则属性“议程组”和“激活组”的列,但没有提供代码设置和切换议程组。从这个Excel代码片段可以看出,这两个列都没有多大意义

    文档中包含了足够的有效决策表示例,因此我避免重复容易获得的信息

    编辑条件必须作为单元格写入四行。(您只使用了三个)下面是如何为同一类的属性编写一对约束。请注意,第二条和第三条规则没有基于年龄的约束

    CONDITION         CONDITION
    -------------- Claim -------------
    value ==          age <
    Value must match  Age must be less
    10                2
    11
    12
    
    还是7行1列


    文档中有两个几乎相同的示例。

    我根据您的观点进行了更改,但对我没有帮助。我在这里发布之前查阅了文档。我是drools新手,需要一些语法方面的建议。如果你能帮助我,请告诉我。另外,我的预期输出是:如果claim值为11,我需要将action输出设置为“Done-2”,这就是我所期望的。请在您的问题中添加claim(是否包含Age?)和Diag的(简化)Java代码,以及您现在拥有的内容的屏幕截图。我根据您的评论进行了更改,但这对我没有帮助:(现在它甚至没有给我单一的输出。请让我知道,如果有任何语法错误,在我附加的图像。
    ACTION
    
    System.out.println( "$param" )
    Print something...
    Done-1
    Done-2
    Done-3