带有 KIE 执行服务器的 Business Central BPMN 图和 Drools 规则流组
Business Central BPMN diagrams and Drools ruleflow-groups with KIE execution servers
我正在尝试使用 Business Central 的 BPMN 可视化编辑器来设计一个包含规则流组的业务流程,这些规则流组将被 DRL 文件中的规则选取,但规则流组中的规则并未触发。
我正在使用 Drools Workbench (jboss/drools-workbench-showcase:7.18.0.Final) 和 KIE 执行服务器 (jboss/kie-server-showcase: 7.23.0.Final) 与 Docker Compose file。我能够成功连接和查询 workbench 和 KIE 服务器。
我在 Business Central 中建立了一个名为 example
的新项目,其中包含一个名为 name
的 String
字段的数据对象调用 Entity
。然后我创建了一个名为 validate 的新 DRL
文件,内容如下:
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
资产,其定义如下 Name
: Entity
, Data Type
: Entity [com.myspace.example]
:
- 处理数据(在图表级别)
- 数据输入和分配(在业务规则级别,数据分配)
- 数据输出和分配(在业务规则级别,数据分配)
我更新了我的 DRL 文件以添加语句 ruleflow-group "validate"
,重建项目并将其重新部署到 KIE 执行服务器,但现在发出相同请求时规则不会触发。我也尝试过使用遗留的 BPMN2 业务流程(根据 documentation 中的视觉效果)(在单独的项目分支上),但没有任何乐趣。如何将我的 BPMN 图从 Business Central 正确连接到 DRL 文件中定义的规则流组? BPMN 图表中要激活规则流组所需的配置是什么?
now the rule does not fire when making the same request
您粘贴的请求是关于在会话中插入一个事实并调用所有规则[与进程无关]。
在您更改业务需求后,我了解到有一个 BPMN 流程并更改了这些规则作为 ruleflow-group 的一部分作为业务规则任务 "Validate" 的一部分执行,如您所描述的。
因此,您不能 re-use 相同的请求,您至少需要在会话中插入事实并 启动 BPMN 流程。
我正在尝试使用 Business Central 的 BPMN 可视化编辑器来设计一个包含规则流组的业务流程,这些规则流组将被 DRL 文件中的规则选取,但规则流组中的规则并未触发。
我正在使用 Drools Workbench (jboss/drools-workbench-showcase:7.18.0.Final) 和 KIE 执行服务器 (jboss/kie-server-showcase: 7.23.0.Final) 与 Docker Compose file。我能够成功连接和查询 workbench 和 KIE 服务器。
我在 Business Central 中建立了一个名为 example
的新项目,其中包含一个名为 name
的 String
字段的数据对象调用 Entity
。然后我创建了一个名为 validate 的新 DRL
文件,内容如下:
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
资产,其定义如下 Name
: Entity
, Data Type
: Entity [com.myspace.example]
:
- 处理数据(在图表级别)
- 数据输入和分配(在业务规则级别,数据分配)
- 数据输出和分配(在业务规则级别,数据分配)
我更新了我的 DRL 文件以添加语句 ruleflow-group "validate"
,重建项目并将其重新部署到 KIE 执行服务器,但现在发出相同请求时规则不会触发。我也尝试过使用遗留的 BPMN2 业务流程(根据 documentation 中的视觉效果)(在单独的项目分支上),但没有任何乐趣。如何将我的 BPMN 图从 Business Central 正确连接到 DRL 文件中定义的规则流组? BPMN 图表中要激活规则流组所需的配置是什么?
now the rule does not fire when making the same request
您粘贴的请求是关于在会话中插入一个事实并调用所有规则[与进程无关]。
在您更改业务需求后,我了解到有一个 BPMN 流程并更改了这些规则作为 ruleflow-group 的一部分作为业务规则任务 "Validate" 的一部分执行,如您所描述的。 因此,您不能 re-use 相同的请求,您至少需要在会话中插入事实并 启动 BPMN 流程。