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,
发布日期<天)
然后
// ...
结束
当然,日期的许多其他表示也同样有效