Drools规则实施与多个事实

时间:2016-08-10 15:57:34

标签: java drools rules

我正在寻找互联网上的一些文章,谷歌搜索,但到目前为止还没有发现我的需要太明确。

我想做一个 - 对于我的看法 - 不是那么简单的案例评估。

rule "Send email E-mail based on rule evaluation"
/*
If  
    kind is equal 1 or 2 AND 
    code is equal 1 or 341 AND
    payment is equal S
    I do whatever I need to do
*/
when
    $item : Item((kind == 1 || kind == 2 ),(code == 1 || code == 341),payment = S);
then
    //do whatever I need to do
end

难的是添加一个新的评估条件,其作用类似于日期限制(最近的工作日,因此它不是静态的),并且必须由我的代码提供以提供规则(使用kSession.insert?)然后比较如果item中的issueDate较小(是我提供的最后一个工作日之前的日期),我可以做任何我需要做的事情。

有可能吗?怎么样?

1 个答案:

答案 0 :(得分:0)

这取决于issueDate的表示方式。让我们说它表示为一个整数yyyyddd,其中yyyy是年份而ddd是一年中的一天,然后你创建另一个类限制与字段日(相同的类型和格式),插入一个适当的对象并写你的规则

rule "issue Date"
when
    Limit( $day: day )
    Item( kind == 1 || == 2, code == 1 || == 341 , payment == 123,
          issueDate < day )
then
    // ...
end

当然,许多其他日期陈述也同样适用。