我必须根据excel表中的某些值来决定guvnor规则。那么有可能在guvnor规则中做到这一点吗?让我解释一下我想要做的一个简单的例子:
规则:读取特定国家/地区的平均工资。比基于平均值。工资计算规则中的其他计算。
我会在输入中得到人的国家。然后我必须拿到那个国家并在Excel Sheet中查看平均工资并根据它进行计算。
Excel内容:
国家薪资
IND $ 2000
美国$ 3000
1900新西兰元
现在,如果输入是具有国家IND的人。那么如何在guvnor中阅读excel?
在调用规则并将值作为pojo字段之一添加之前,最好是在guvnor中读取excel还是在java代码中读取它。
任何帮助都非常感激。
答案 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
希望它有所帮助,