通过议程小组了解锁定活动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过议程小组了解锁定活动相关的知识,希望对你有一定的参考价值。

我尝试了一个示例,看看锁定活动是如何工作的。当我在不使用议程组的情况下解雇规则时,一切似乎都很好。但是,当我在下面的代码中取消注释议程组并将焦点集中在“B组”组时,没有触发任何规则。

规则

rule "Additional Rs.1 tax for books above Rs.10"

//agenda-group "Group B"
lock-on-active true
when 
    $o: Product(name=="Book",amount>10)
then
    System.out.print($o.getAmount()+"-->");

    modify ($o) {
        setAmount($o.getAmount()+1); 
    }

    System.out.println($o.getAmount());
end

rule "Additional Rs.2 tax for books above Rs.20"

//agenda-group "Group B"
lock-on-active true
when 
    $o: Product(name=="Book",amount>20)
then
    System.out.print($o.getAmount()+"-->");
    modify ($o) {
        setAmount($o.getAmount()+1); 
    }

    System.out.println($o.getAmount());
end

用于解雇规则的代码

KieServices kieServices=KieServices.Factory.get();
KieContainer kieContainer=kieServices.getKieClasspathContainer();
KieSession kieSession=kieContainer.newKieSession("ksession-lockOnActive");

Product product=new Product();
product.setName("Book");
product.setAmount(11);

Product product2=new Product();
product2.setName("Book");
product2.setAmount(21);

kieSession.getAgenda().getAgendaGroup("Group B").setFocus();

kieSession.insert(product);
kieSession.insert(product2);
kieSession.fireAllRules();

没有议程组的产出

21-->22
11-->12
22-->23
答案

我使用的是旧版Drools(6.2.0 Final)。当我把它改成7.4.1。代码有效

以上是关于通过议程小组了解锁定活动的主要内容,如果未能解决你的问题,请参考以下文章

2天后锁定开发者大会!大会议程抢先看(内含直播链接)

按下锁定/主页按钮时的通知,单击返回选项卡片段时的通知

如何从片段外部清除/重置地图?

了解活动生命周期

如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用

完整日历议程查看不显示周日活动