1

我必须根据 excel 表中的某些值在 guvnor 规则中做出决定。那么可以在统治者规则中做到这一点吗?让我解释一个简单的例子来说明我想要做什么:

规则:读取一个人在特定国家/地区的平均工资。比基于平均值。工资计算规则中的其他计算。

我将输入人的国家。然后我必须选择那个国家并在 Excel 表中检查平均工资并根据它进行计算。

excel内容:


国家薪水


2000 美元


美国 $3000


1900 人民币


现在,如果输入是国家 IND 的人。那么如何在 guvnor 中阅读 excel 呢?

在调用规则并将其添加为 pojo 字段之一之前,最好在 guvnor 中阅读 excel 或在 java 代码中阅读它。

非常感谢任何帮助。

4

1 回答 1

2

我会在外部解析 xls 文件并将数据作为事实(或全局变量,如果您愿意)插入。因此,您可以编写如下规则:

when
    Person($country: country)
    AvgSalary(country == $country, $salary: salary)  //This fact comes from the xls.
then
    ...
end

另一种选择是封装 xls 文件的解析,并提供一种机制来提取特定国家/地区的特定薪水。在这种情况下,您可以使用全局提供该机制并编写如下规则:

global XLSParser;   // your parser class

rule "..."
when
    Person($country: country)
    $salary: Double() from XLSParser.getAvgSalary($country)
then
    ...
end

希望能帮助到你,

于 2013-08-16T17:08:03.593 回答