如何从camunda的Bpmn实例java对象获取两个活动之间的顺序流信息?

时间:2019-04-22 08:14:43

标签: activiti camunda

我正在开发go back函数。

go back函数目前仅适用于用户任务活动。

为清楚起见,我模拟了流程定义。

StartEvent → → →squenceFlow_A→ → →A_UserTask→ → →squenceFlow_B → → →B_UserTask → → → endEvent.

假设当前活动为B_UserTask 此功能需要执行两个步骤:

1。从squenceFlow_A

开始执行

2。完成上述步骤后,取消B_UserTask活动实例。

但是问题是如何从Java中的BpmnInstance获取squenceFlow_A的信息?

我的意思是如何从java中的BpmnInstance获取两个活动之间的squenceflow信息?

如果将问题更改为“如何从Java中的BpmnInstance获取给定活动之前的第一个序列流信息?”也许很明显。

在以前的案例中,这个问题是“如何从Java中的BpmnInstance获取B_UserTask之前的第一个序列流信息?”

我的英语太差了。希望我不会让你们对我感到难过。

顺便谢谢大家。

1 个答案:

答案 0 :(得分:1)

我自己找到了解决方法。

这是代码。

String givenActivityId = "activityId";
        BpmnModelInstance instance = repositoryService.getBpmnModelInstance("definitionId");
        Collection<SequenceFlow> sequenceFlows = instance.getModelElementsByType(SequenceFlow.class);
        for (SequenceFlow flow : sequenceFlows) {
            if (flow.getTarget().getId().equals(givenActivityId)) {
                LOG.info("Founded the sequenceFlow.");
                return flow;
            }
        }

        LOG.error("No such sequenceFlow");

欢呼!