Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Drools规则的多事实实现_Java_Drools_Rules - Fatal编程技术网

Java Drools规则的多事实实现

Java Drools规则的多事实实现,java,drools,rules,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 */ w

我在互联网上搜索一些文章,谷歌搜索,但到目前为止还没有找到任何关于我的需求的明确信息

我想对一个案例做一个——对我的感知——而不是这么简单的评估

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?),然后比较来自项的issueDate是否较小(是提供的最新工作日之前的日期),以执行我需要执行的任何操作


可能吗?如何?

这取决于发行日期的表示方式。假设它表示为一个整数yyyyddd,其中yyyy是年,ddd是年内的天,然后创建另一个带有字段day(相同类型和格式)的类限制,插入适当的对象并编写规则

rule "issue Date"
when
    Limit( $day: day )
    Item( kind == 1 || == 2, code == 1 || == 341 , payment == 123,
          issueDate < day )
then
    // ...
end
规则“发布日期”
什么时候
限额(天:天)
项目(种类==1 | |==2,代码==1 | |==341,付款==123,
发布日期<天)
然后
// ...
结束

当然,日期的许多其他表示形式也同样适用。

这取决于issueDate的表示方式。假设它表示为一个整数yyyyddd,其中yyyy是年,ddd是年内的天,然后创建另一个带有字段day(相同类型和格式)的类限制,插入适当的对象并编写规则

rule "issue Date"
when
    Limit( $day: day )
    Item( kind == 1 || == 2, code == 1 || == 341 , payment == 123,
          issueDate < day )
then
    // ...
end
规则“发布日期”
什么时候
限额(天:天)
项目(种类==1 | |==2,代码==1 | |==341,付款==123,
发布日期<天)
然后
// ...
结束
当然,日期的许多其他表示也同样有效