具有KIE执行服务器的Business Central BPMN图和Drools规则流组

时间:2019-06-28 11:23:27

标签: drools kie drools-guvnor

我正在尝试使用Business Central的BPMN可视化编辑器来设计带有规则流组的业务流程,该规则流组将由DRL文件中的规则拾取,但是规则流组中的规则不会触发。

我正在使用Drools Workbench(jboss / drools-workbench-showcase:7.18.0.Final)和KIE执行服务器(jboss / kie-server-showcase:7.23.0.Final)的Docker展示柜图像Docker Compose file。我能够成功连接并查询工作台和KIE服务器。

我在Business Central中建立了一个名为example的新项目,该项目的数据对象调用为Entity,其中有一个名为String的单个name字段。然后,我创建了一个新的DRL文件,名为validate,具有以下内容:

package com.myspace.example;

rule "example validation"
    when
        Entity ()
    then
        System.out.println("validation rule fired");
end

我将项目构建并部署到其中一台执行服务器,并使用Postman将POST以下的application/json有效负载http://127.0.0.1:3931/kie-server/services/rest/server/containers/instances/example_1.0.0-SNAPSHOT

{
    "commands": [
        {
            "insert": {
                "object": {
                    "com.myspace.example.Entity": {
                        "name": "Some Name"
                    }
                },
                "out-identifier": "Some identifier"
            }
        },
        {
            "fire-all-rules": {
                "out-identifier": "firedActivations"
            }
        }
    ]
}

如预期的那样,使用以下控制台输出触发规则:

kie-server-1_1      | 09:49:37,445 INFO  [stdout] (default task-1) validation rule fired

然后,我在项目中创建了一个Business Process资产,其定义如下:NameEntityData TypeEntity [com.myspace.example]

  • 过程数据(在图级别)
  • 数据输入和分配(在业务规则级别,数据分配)
  • 数据输出和分配(在业务规则级别,数据分配)

我更新了DRL文件以添加语句ruleflow-group "validate",将项目重建并重新部署到KIE执行服务器,但是现在在发出相同请求时该规则不会触发。我也尝试过使用旧的BPMN2业务流程(根据documentation中的视觉效果)(在单独的项目分支上),也没有任何乐趣。如何将我的BPMN图从Business Central正确连接到DRL文件中定义的Ruleflow-Group? BPMN图中要激活的规则流组需要什么配置?

Business Workbench BPMN designer

enter image description here

1 个答案:

答案 0 :(得分:1)

  

现在发出相同请求时规则不会触发

您粘贴的请求是关于在会话中插入一个事实并调用所有规则(与流程无关)。

在您更改了业务需求之后,我了解到有一个BPMN流程,并且将这些规则作为规则流组的一部分进行了更改,作为您所描述的业务规则任务“验证”的一部分来执行。 因此,您不能重复使用同一请求,至少需要在会话中插入事实并启动BPMN流程