Camunda :将 Assignee 设置为流程实例的所有用户任务



我有一个要求,我需要在创建实例后立即将受让人设置为流程实例中的所有"用户任务",这是基于设置为用户任务的候选组。

我尝试使用这个获取用户任务:

Collection<UserTask> userTasks = execution.getBpmnModelInstance().getModelElementsByType(UserTask.class);

这在某种程度上是正确的,但我无法设置受让人的,而且,看起来这将适用于流程本身而不是流程实例。

其次,我尝试从taskQuery中获取它,它只给我下一个任务,而不是进程内的所有用户任务。

请帮忙!!

它不是那样工作的。流程可以简化为"令牌在 bpmn 图中移动"......只有令牌的当前位置是相关的。因此,自然而然地,任务列表只为您提供当前任务。不是之后会发生什么...您无法知道,因为如果您有一个根据任务结果以不同方式继续的网关?所以放弃使用 BPMN 元模型。专注于运行时。

有两种选择来动态分配用户任务:

1.( 在建模器中,不要将任务硬分配给"a-user",而是使用类似${taskAssignment.assignTask(task)}的表达式,其中"taskAssignment"是一个 bean,它提供了一个返回用户的 String 方法。 2.( 在"创建"上添加一个任务监听器到任务,并在侦听器中设置任务分配对象。

对于选项 2,您可以使用 Camunda Spring 启动事件(或(过时的(Camunda-BPM-Reactor 扩展(来注册一个中心组件,而不是为每个任务添加一个侦听器。

最新更新