当前位置: 首页 > 知识库问答 >
问题:

使用excel向Drools规则决策表中的操作添加多个参数

彭弘伟
2023-03-14

我在excel文件中的Drools规则desicion表中有一个操作,这在java中调用了一个方法。此方法需要2个参数来在此方法变量中添加数据,但会生成错误。

这是java中的方法

public void addNewProduct(String idProduct, String productURL) {
        DTOOutProduct dtoOutProduct = new DTOOutProduct();      
        dtoOutProduct.setId(idProduct);
        dtoOutProduct.setName(productURL);
        dtoOutProductsList.add(dtoOutProduct);
}

这是excel文件中Drools决策表中的规则

报价产品。添加新产品(“1美元”,“2美元”);

选项是2个字符串,格式如下:

"字符串1","字符串2"

创建KieBase时出错[Message[id=1, level=ERROR, path=rules.xls, line=93,列=0 text=无法确定使用的声明。java.lang.NullPointerException], Message[id=2, level=ERROR, path=rules.xls, line=116,列=0 text=无法确定使用的声明。java.lang.NullPointerException], Message[id=3, level=ERROR, path=rules.xls, line=126,列=0 text=无法确定使用的声明。java.lang.NullPointerException], Message[id=4, level=ERROR, path=rules.xls, line=103,列=0 text=规则编译错误语法错误,插入")"以完成方法调用语法错误,插入")语句"以完成令牌“Cash”上的If报表语法错误,(预计令牌上的不兼容操作数类型String和布尔语法错误")",删除此令牌语法错误,插入";"以完成语句

共有1个答案

归俊杰
2023-03-14

有趣的问题,如果您的列标题/定义正好是offerProduct。添加新产品(“1美元”,“2美元”) 请确保您在数据部分中输入的值不带引号,这意味着,<代码>字符串1,字符串2

 类似资料:
  • 我有一个drools决策表,其中包含条件和位置类型 我的excel如下所示 设置参数的代码如下 我按要求提供的excel文件条件对象: 需求级别==$参数位置类型==$参数 当我像上面那样设置时,我得到以下错误: 创建KieBase时出错[消息[id=1,级别=错误,路径=规则.xls,行=8,列=0文本=[错误102]行8:14不匹配的输入'=='在规则“替换规则”中],消息[id=2,级别=错

  • 想想有没有一种方法可以使用Drools API将drl文件转换为excel工作表? 我们目前使用的是Drools 5.3,但实际上可以使用任何版本。 提前感谢

  • 场景如下: 我有一个java pojo类,具有2个变量和以及适当的getter和setter。我正在使用决策表流,我想要: 条件:当类型设置为“1”时 操作:调用name类的setName setter,并从excel中设置适当的参数 现在,我想在java中访问name的这个集值。 这就是我所做的: Name.java- MainClass.java-这有口水实现!! 决策表e:: http://

  • 我们在决策表中实现了一个场景,如果某个规则成功地执行了规则的操作部分,就可以退出其余规则的执行。假设我有50条规则,第5条规则表示保险索赔无效,那么我们将索赔设置为对象无效,那么就不需要执行其余的规则。如何才能做到这一点。请建议

  • 在一个场景中,我们有一组主规则。其中一条规则类似于以下规则: 这些规则将向客户提供。我们希望我们的客户能够定制规则。若决定不定制,则应适用规则。自定义可以在“何时”中添加其他条件,也可以覆盖现有条件,还可以添加或修改“何时”部分。他们还可以添加到规则的“then”部分。 像这样的东西: 我们还有一些需要类似定制的决策表。 根据规则,最初建议使用“extends”,但据我所知,“extends”的作

  • 因此,如果输入条件是TRUEFALSEFALSETRUEFALSE,那么有没有什么方法可以同时触发第一个规则和第二个规则,并在列表中返回结果,在本例中,第一个操作是APPROVERTWO和APPROVERFOUR。