每个循环都有空集合的activiti多实例

问题描述 投票:0回答:1

在我们的工作流程中,我们有几个多实例调用活动,如下所示:

<callActivity id="loopFoos" calledElement="${workflowResolver.resolveWorkflowName(foo)}">
   <multiInstanceLoopCharacteristics isSequential="false" activiti:collection="${foos}" activiti:elementVariable="foo" />
</callActivity>

问题是某些集合是空的,这会导致异常,因为 Activiti 假设集合中至少有一个元素。我们可以围绕所有子工作流调用做出决策,但这会用与业务无关的细节污染工作流图。

我们需要的是java对每个点赞的行为

for (Foo foo : foos) {
    // call workflow
}

空集合根本不进入循环。

有没有办法让 Activiti 表现得像这样?如果没有,您将如何建模工作流程?

java activiti bpmn
1个回答
2
投票

使用标准 Activiti 功能无法解决此问题。因此,唯一的选择是使用网关或 Java 服务任务以及实现

ActivityBehaviour
(不推荐)的类来控制序列流。我更喜欢使用
exclusiveGateway
s 。检查此链接以获取更多信息:

  1. Activiti官方论坛讨论

  2. MultiInstanceActivityBehavior.java - intresolveNrOfInstances(ActivityExecution执行) ParallelMultiInstanceBehavior - void createInstances(ActivityExecution执行); SequentialMultiInstanceBehavior - void createInstances(ActivityExecution执行);

© www.soinside.com 2019 - 2024. All rights reserved.