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

Business Central BPMN图和Drools Ruleflow-带有KIE执行服务器的组

许正平
2023-03-14

我试图使用Business Central的BPMN可视化编辑器设计一个带有ruleflow组的业务流程,这些组将由DRL文件中的规则提取,但ruleflow组中的规则不会触发。

我正在使用Drools工作台(jboss/drools-workbench-showcase:7.18.0.final)和KIE执行服务器(jboss/kie-server-showcase:7.23.0.final)的showcase Docker图像以及Docker组合文件。我能够成功地连接和查询工作台和KIE服务器。

我在Business Central中设置了一个名为example的新项目,其中包含一个数据对象调用实体,该项目具有一个名为name字符串字段。然后,我创建了一个名为validate的新DRL文件,其内容如下:

package com.myspace.example;

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

我构建并将项目部署到一个执行服务器上,并使用Postman to以下应用程序/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

然后,我在项目中创建了一个业务流程资产,其定义如下名称:实体数据类型:实体[com.myspace.example]:

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

我更新了我的DRL文件,添加了语句ruleflow-group“validate”,重新构建并将项目重新部署到KIE执行服务器,但是现在在发出相同请求时规则不会触发。我还尝试使用遗留的BPMN2业务流程(根据文档中的可视化)(在一个单独的项目分支上),但并不满意。如何正确地将BPMN关系图从业务中心连接到DRL文件中定义的规则流组?在BPMN图中,要激活规则流组需要什么配置?


共有1个答案

徐秋月
2023-03-14

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

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

在您更改了业务需求之后,我理解了将BPMN流程作为RuleFlow组的一部分更改这些规则作为业务规则任务“Validate”的一部分来执行,正如您所描述的那样。因此,您不能重用相同的请求,您至少需要在会话中插入事实并启动BPMN流程。

 类似资料:
  • “Drools骆驼服务器”和“KIE-WB执行服务器”有什么区别?它们是否服务于在远程服务器中执行规则/进程的相同目的?

  • 公共无效populateRestHeader(交换交换){ String myMessage=“ ”+“ john”+“51 ”+“; } 在KIE服务器日志中,我得到: 15:19:33,140 WARN[org.jboss.resteasy.core.exceptionHandler](默认任务-114)执行失败:javax.ws.rs.notsupportedException:无法在org

  • 我们目前正在将jBPM(7.37.final)规则部署到一个Kie执行服务器,并使用执行服务器自动公开的REST API调用规则。 但是由于一些体系结构的限制,我们不能使用REST API调用规则。该选项是执行一个基于jar(kie服务器客户机或其他)的集成,并从客户机(java应用程序)远程调用执行服务器上的规则。 Virges Vinay

  • 我检查了其他几个类似的问题,但没有找到解决方案。 因此,我有一个配置了web服务的spring boot项目: ServiceImpl,例如: 服务运行良好。 我的POM实现如下所示: 主要类别: 到目前为止,一切都很好-WS是可达的,但如果我添加到POM: 应用程序启动,我可以在日志中看到: endpoint处理程序映射:映射”{[/info EndpointHandlerMapping:映射的

  • 当规则应用程序在KIE服务器上运行时,如何启用规则引擎跟踪/日志记录? 规则应用程序是在工作台中创建的,不包含自定义代码。我能够使用KIE REST API执行规则,但是规则应用程序没有产生预期的结果。 环境: 我尝试了以下步骤: 使用Git在本地克隆工作台项目 将logback.xml添加到项目的根目录 将更改推回到工作台git repo 在工作台项目编辑器视图中添加了日志作为依赖项 更新项目版

  • 我的要求是在工作台之外(比方说在记事本中)修改规则文件(.drl),并用这个新的drl文件更新容器。是否有一种简单的方法以编程方式创建jar文件,并将其部署到中央maven存储库中?然后,我可以运行KIE扫描程序来查找jar文件的最新版本,并自动更新容器。或者有没有其他推荐的方法可以用更新的.drl文件更新正在运行的容器? 我的客户机应用程序不是Java的,所以我不是在寻找一个集成的解决方案,在那