在我正在编写的这段代码中,我可以通过 JAVA API 和 Camunda cockpit 启动流程实例。除了数据持久性之外,这两种工作流程实际上没有区别。
当我在由 JAVA API 启动的流程实例上运行 HistoricProcessInstance 时,我在查询中没有得到任何结果。但是,如果我使用 Camunda cockpit 启动流程实例,同样的查询会给出结果。
通过 JAVA API 开始:
public String start process (some parameters...){
Response jsonResult = target.path(serverPathREST).path(path).path(component).path("start")
.request(MediaType.APPLICATION_JSON_TYPE)
.post(Entity.entity(jsonBody, MediaType.APPLICATION_JSON));
}
在这里,我从服务器获得响应 200,并且进程实例也启动(在 Camunda 驾驶舱中可见)。
我开始的另一种方式是通过输入相应的参数直接通过 Camunda 驾驶舱。在我的流程图中,(在开始符号之后有一个服务任务:为了简单起见)这个服务任务有一个查询,它检索有关当前流程实例的信息。
问题是当进程通过 Camunda cockpit 启动时,该查询从数据库中检索相应的行;但如果该过程是通过 JAVA API 启动的,则此查询检索空结果。我已经使用 asyncafter=true 来保持状态。