通过Camunda的Rest API检索属于流程定义一部分的所有任务的列表

时间:2017-01-18 16:59:20

标签: java rest bpmn camunda

我正在开发一个应用程序,我希望向用户显示一个界面,向他们展示他们需要完成的过程,并突出显示他们当前在该过程中的位置。我似乎无法找到可以提供此类信息的REST API。

例如,工作流程有4个步骤,它们已完成步骤1,现在处于步骤2中。

>步骤1> 第2步>步骤3>第4步

我可以通过Step 2端点获取用户的当前任务/task,我可以从Step 1端点获取/history/task,但我可以'似乎得到Step 3Step 4。我可以从相应的端点拉出xml并解析它,但这似乎有点过分了。

我错过了什么吗?

4 个答案:

答案 0 :(得分:3)

列出的bpmn.io选项将提供任务列表,但根据我的经验,这并不代表"里程碑"一个过程。通常,这是用户希望看到的里程碑。 例如,在贷款发起过程中,可能有30个具有多个批准级别的用户任务。客户不希望看到每项任务,他们想要看到的是他们所处的过程的阶段。 例如启动,承保,履行等等。

如果您正在寻找这个,我建议您在流程实例中维护一个变量,该变量包含流程中的当前里程碑。

我倾向于使用" none" message throw事件与关联的侦听器一起设置里程碑。

我并不是说原来的答案不正确,但根据我的经验,这并不是最终用户真正希望看到的。

希望这有帮助, 格雷格

答案 1 :(得分:1)

您不需要解析xml,可以使用bpmn.io渲染过程并突出显示实际活动。所有必要的信息都由camunda REST API提供。

您可以在此处找到一个简单示例https://github.com/camunda/camunda-consulting/tree/master/snippets/jsf-simple-tasklist

答案 2 :(得分:1)

不是使用 xml 方式,而是找到了获取特定流程定义 Key 的所有任务的新方法。

using key, pd = repositoryService.PDQuery.PDKey(key).singleresult();

从上面的值中,获取 PD Id。使用它可以从同一个 repoService 中获取模型实例。

BpmnModelInstance ins = repositoryService.getBpmnModelInstance(pd.getId());

使用上面的ins,我们可以得到所有的任务。

答案 3 :(得分:0)

您可以通过Camunda REST API获取bpmn.xml文件中定义的所有作业定义

GET:/ job-definition?activityIdIn = ServiceTask1,ServiceTask2

您还可以传递此链接中列出的其他查询参数。

Refer Camunda REST API Documentation