drools - 带有 KIE 执行服务器的 Business Central BPMN 图和 Drools 规则流组
问题描述
我正在尝试使用 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 文件. 我能够成功连接和查询工作台和 KIE 服务器。
我在 Business Central 中设置了一个新项目,名为example
Data Object 调用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
具有以下定义的资产Name
:Entity
,Data Type
::Entity [com.myspace.example]
- 过程数据(在图表级别)
- 数据输入和分配(在业务规则级别,数据分配)
- 数据输出和分配(在业务规则级别,数据分配)
我更新了我的 DRL 文件以添加语句ruleflow-group "validate"
、重建项目并将其重新部署到 KIE 执行服务器,但现在在发出相同请求时规则不会触发。我也尝试过使用遗留的 BPMN2 业务流程(根据文档中的视觉效果)以及(在单独的项目分支上),但没有任何乐趣。如何正确地将我的 BPMN 图从 Business Central 连接到 DRL 文件中定义的规则流组?要激活规则流组,BPMN 图中需要什么配置?
解决方案
现在发出相同请求时规则不会触发
您粘贴的请求是关于在会话中插入一个事实并调用触发所有规则[与进程无关]。
在您更改业务需求后,我知道有一个 BPMN 流程并将这些规则更改为规则流组的一部分,作为您描述的业务规则任务“验证”的一部分执行。因此,您不能重复使用相同的请求,您至少需要在会话中插入事实并启动 BPMN 流程。
推荐阅读
- javascript - 打字稿:创建确保值在数组内的类型
- azure - Azure Cloud Shell:权限被拒绝(公钥)
- sql-server - 以这样一种方式生成 JSON,即子表的 JSON 应具有 ARRAY_WRAPPER,而父表的 JSON 不应具有 ARRAY_WRAPPER
- docker - 运行从 Dockerfile 生成的 docker 映像不会执行任何操作
- typescript - 打字稿:基于泛型推断
- java - 使用 Java 根据来自 aws-sam template.yaml 文件的信息在本地 AWS dynamoDB 中创建表
- git - Runner https://gitlab.com... 不健康,将被禁用
- python - 调用 StyleFrame.apply_style_by_indexes 时如何避免 ValueError?
- python - 尝试登录时出现 TypeError
- html - 堆叠伪元素位置绝对/固定