在Guvnor规则中阅读Excel表格

时间:2013-08-16 07:01:56

标签: drools drools-guvnor

我必须根据excel表中的某些值来决定guvnor规则。那么有可能在guvnor规则中做到这一点吗?让我解释一下我想要做的一个简单的例子:

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

我会在输入中得到人的国家。然后我必须拿到那个国家并在Excel Sheet中查看平均工资并根据它进行计算。

Excel内容:


国家薪资


IND $ 2000


美国$ 3000


1900新西兰元


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

在调用规则并将值作为pojo字段之一添加之前,最好是在guvnor中读取excel还是在java代码中读取它。

任何帮助都非常感激。

1 个答案:

答案 0 :(得分: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

希望它有所帮助,