我正在开发一个应用程序,我希望向用户显示一个界面,向他们展示他们需要完成的过程,并突出显示他们当前在该过程中的位置。我似乎无法找到可以提供此类信息的REST API。
例如,工作流程有4个步骤,它们已完成步骤1,现在处于步骤2中。
>步骤1> 第2步>步骤3>第4步
我可以通过Step 2
端点获取用户的当前任务/task
,我可以从Step 1
端点获取/history/task
,但我可以'似乎得到Step 3
和Step 4
。我可以从相应的端点拉出xml
并解析它,但这似乎有点过分了。
我错过了什么吗?
答案 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
您还可以传递此链接中列出的其他查询参数。