2015-06-08 66 views
0

在我正在处理的代码中,我可以通过JAVA API启动进程实例,也可以通过Camunda驾驶舱启动进程实例。 除了数据持久性以外,两种工作流程确实没有区别。通过JAVA API启动进程实例时Camunda中的数据持久性

当我在由JAVA API启动的流程实例上运行HistoricProcessInstance时,我没有得到任何查询结果。 但是,如果我用Camunda驾驶舱启动流程实例,相同的查询会给出结果。

开始通过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驾驶舱启动该过程时,此查询将从数据库中检索相应的行;但如果该过程是通过JAVA API启动的,则此查询将检索空结果。我坚持已经使用asyncafter = true的状态。

+0

目前尚不清楚你的要求。另外,请提供您的代码示例。谢谢! –

+0

谢谢,更多细节补充。无法添加图片,因为我在这里是新的,需要最低声誉为10. – Varda

回答

0

找出问题所在。通过JAVA API启动的流程实例将始终触发先前版本的流程实例。我必须编写一个不同的流程,以确保我每次都从最新版本开始一个流程。

+0

“编写不同的过程”是什么意思?如果使用startByProcessKey,默认情况下将始终采用最新版本... –

+0

这里有两种POST方法:(1)。 POST/process-definition/{id}/start (2)。 POST/process-definition/key/{key}/start(启动最新版本的进程定义) – Varda