通过 JAVA API 启动流程实例时 Camunda 中的数据持久性

Data Persistence in Camunda when starting a process Instance through JAVA API

在我正在处理的这段代码中,我可以通过 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 来保持状态。

解决了问题。通过 JAVA API 启动的流程实例将始终触发以前版本的流程实例。我不得不编写一个不同的过程以确保我每次都从最新版本开始一个过程。