使用 kie 服务器的 REST API,我创建了一个具有以下流程定义的容器:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<process-definition>
<process-id>someProcessId</process-id>
<process-name>someProcessName</process-name>
<process-version></process-version>
<package>somepackage</package>
<container-id>someContainerId</container-id>
<dynamic>false</dynamic>
</process-definition>
如果我尝试启动进程的一个实例,它似乎可以工作,使用:
curl -i -u '用户:密码!' -X POST -H 'Content-type: application/json' http://localhost:8080/kie-server/services/rest/server/containers/someContainerId/processes/someProcessId/instances
我收到一个 HTTP 201 Created 响应。
但是,如果我随后获得流程实例列表,则该列表为空。使用:
curl -i -u '用户:密码!' -X GET http://localhost:8080/kie-server/services/rest/server/queries/containers/someContainerId/process/instances
我收到:
我的 .drl 文件为每个规则定义了相同的规则流组,并且 .bpmn 定义了一个开始事件和 businessRuleTask 定义了该规则流组:
BPMN:
<process processType="Private" isExecutable="true" id="someProcessId" name="someProcessName" tns:packageName="somepackage" >
<!-- nodes -->
<startEvent id="_1" isInterrupting="true"/>
<endEvent id="_jbpm-unique-0" name="End" >
<terminateEventDefinition />
</endEvent>
<businessRuleTask id="_jbpm-unique-2" name="someBusinessRuleTask" g:ruleFlowGroup="someRuleflowGroup" >
<ioSpecification>
<inputSet>
</inputSet>
<outputSet>
</outputSet>
</ioSpecification>
</businessRuleTask>
<!-- connections -->
<sequenceFlow id="_jbpm-unique-2-_jbpm-unique-0" sourceRef="_jbpm-unique-2" targetRef="_jbpm-unique-0" />
<sequenceFlow id="_1-_jbpm-unique-2" sourceRef="_1" targetRef="_jbpm-unique-2" />
</process>
如果我从 DRL 中删除规则流组,我可以简单地触发所有规则(甚至不需要 BPMN),但想了解进程在 kie 服务器中的工作方式以及如何启动它们。
我应该补充一点,我正在单独插入规则使用的 java.util.Map 对象。
抱歉,这似乎是一个相对基本的问题,但据我所知,它应该启动流程实例,因此不确定我缺少什么。
谢谢。