当前位置: 首页 > 知识库问答 >
问题:

Drools 6.2.0工作台从drl规则编辑jbpm变量

艾学海
2023-03-14

我试图将我的流程变量放入业务规则任务中,并在该任务中更改该变量,但值保持不变。我做错了什么?流程是在kie工作台中开发的,不使用Eclipse。

在触发规则之前,我的变量在脚本任务中初始化,如

kcontext.setVariable("triggers",new   com.embeddedwireless.healthdesk.InitialTriggers(false,false,false,false));
kcontext.setVariable("answers",new   com.embeddedwireless.healthdesk.InitialAnswers("not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","twice","not"));
   package com.embeddedwireless.healthdesk;

    import com.embeddedwireless.healthdesk.InitialAnswers
    import com.embeddedwireless.healthdesk.InitialTriggers



rule "BehavioralHealth" ruleflow-group "InitialCheck"
no-loop
lock-on-active     
salience 1
        when
            answers : InitialAnswers( q9a in ( "always", "most", "some" ) || q10a in ( "always", "most", "some" ) || q12a in ( "always", "most", "some" ) )
        triggers_out : InitialTriggers()
     then
        System.out.println("Beh!!!!");
            triggers_out.setBehavioral( true );
           update( triggers_out );

end

rule "OccupationalRule" ruleflow-group "InitialCheck"
no-loop
lock-on-active   
salience 2 
        when
            answers : InitialAnswers( q3a in ( "some", "rare", "not" ) || q3b in ( "some", "rare", "not" ) || q4a in ( "some", "rare", "not" ) || q7b in ( "always", "most", "some" ) )
        triggers_out :  InitialTriggers()
        then

          System.out.println("Occupation!!!!");
                triggers_out.setOccupational( true );
              update( triggers_out );

    end

    rule "PhysicalRule" ruleflow-group "InitialCheck"
    no-loop
      lock-on-active
    salience 3
        when
            answers : InitialAnswers( q1a in ( "some", "rare", "not" ) || q1b in ( "some", "rare", "not" ) || q2a in ( "some", "rare", "not" ) || q2b in ( "some", "rare", "not" ) || q11a in ( "always", "most", "some" ) || q11b in ( "once", "twice", "more", "often" ) )
        triggers_out:InitialTriggers()
        then
        System.out.println("Phys!!!!");
            triggers_out.setPhysical( true );
            update( triggers_out );

    end

    rule "Speech Rule" ruleflow-group "InitialCheck"
        no-loop
       lock-on-active
    salience 4
        when
            answers : InitialAnswers( q7a in ( "always", "most", "some" ) )
        triggers_out : InitialTriggers()
        then
             System.out.println("Speech!!!!");
            triggers_out.setSpeech( true );
            update( triggers_out );

    end 
InitialTriggers{physical=false, occupational=false, speech=false, behavioral=false}

谢谢你的帮助!

共有1个答案

长孙谦
2023-03-14

嗯,一切都还好。我查看变量历史,没有看到变化。在KIE-WB中有一个问题。我的变量被更改了,但在kie-wb中显示的是旧值。

 类似资料:
  • 在业务规则任务之后,我放置了一个简单的脚本任务: 我现在得到的输出是(注意:MyCustomObject不重写toString): 内存中对象的值:MyCustomObject@XYZ 欢迎提出任何建议。

  • 我是jBpm新手,对创建进程的不同编辑工具有点困惑。我正在阅读一些jboss留档和电子书“jbpm5开发人员指南”,但仍然不清楚,在我部署jbpm安装后(通过运行antstart.demo)我可以: > 从url处的web门户创建新进程http://localhost:8080/jbpm-控制台 从打开的Eclipse创建新进程 根据文档,还应该有drools guvnor编辑器(我无法打开它。当

  • 我正在把一些业务规则放入drool工程中。我们不能使用KIE工作区UI来编写规则。所以这是出局了。 我的问题是我无法使这个工作。代码运行良好,但我无法看到drl文件被写入。在调试模式下,我可以看到具有正确drl结构的字符串对象。以前有人遇到过这个问题吗? 我在github上看到了一些例子,人们已经完成了在spring Boot中集成drools的yoman工作。我可以从构建我的服务开始,但我需要确

  • 作为概念证明,我已经使用Drools workbench创建数据对象和DRL文件。我创建了jar文件并部署到kie服务器(带有容器)。全部通过工作台UI完成。我使用C#应用程序中的KIE REST服务通过XML发布输入对象(使用批处理执行)来触发规则,并得到了我正在寻找的响应。 但是在实际场景中,我们将有自己的规则编辑器(为了便于使用)来根据现有对象的属性创建规则。一旦规则保存到我们的数据库中,我

  • 我的要求是,触发第二条规则,然后停止进程而不触发第三条规则

  • 我正在使用Optaplanner申请员工排班。没有毅力,一切都很好。现在,我想添加Hibernate集成。我想从MySQL数据库中获取信息,并将其用作时间表输入。 在数据库中,我有位置和技能表。 员工数据、时隙和工作分配现在已在应用程序中硬编码。 我的域类,技能: 和职位: 不起作用的规则: 我认为数据库还可以,因为其中的数据以前是用这个应用程序创建的。此外,我还有另一个DRL规则正在运行。我没有