如何在 Camunda Parallel User Task 中根据受托人完成用户任务

How to complete user task based on assignee in Camunda Parallel User Task

提问人:Yuvaraj Siva 提问时间:6/28/2023 更新时间:6/30/2023 访问量:133

问:

我创建了一个 Camunda 工作流,其中存在一个并行用户任务。如果我尝试完成用户任务,它将根据列表中给出的顺序完成用户任务。例如:{“John”, “Max”, “Jassica”}。如果我完成一次用户任务,则认为 John 已完成用户任务。

有没有办法我可以告诉 Camunda “嘿,这是完成用户任务的用户。

我正在尝试获取每个用户的待处理用户任务列表。 例如:{“John”, “Max”, “Jassica”} 是我的并行用户任务中的任务分配对象列表。

当我启动工作流时,将为每个用户分配 1 个待处理任务。

taskService.complete(taskIds, processVariables);

使用此代码,我将完成用户任务,但它不特定于任何被分派者。即使我以 Max 的身份完成任务,它仍在考虑 John,因此 John 的待处理任务将变为 0,Max 的待处理任务将变为 1。

我想按特定任务分配对象完成用户任务。

Camunda BPMN Camunda-modeler

评论


答:

0赞 Jan Galinski 6/30/2023 #1

您应该使用正在处理该任务的 userId 声明该任务。 通常,尽早声明是个好主意,因此当您开始处理任务时,请调用 ,因为这样您就可以从其他用户的任务列表中排除此任务并避免重复工作。taskService.claim(taskId, userId)

但是做一个“迟到索赔”也没关系,所以直接在你打电话之前,就打电话了。completeclaim

如何获取用于声明的 userId 由你决定,通常需要访问 Web 授权才能从令牌或会话中获取登录用户。

评论

0赞 Yuvaraj Siva 8/19/2023
但我的用例是所有 3 个都必须批准,如果一个用户拒绝,那么流程不应该等待其余用户,它应该进入下一步,如果一个用户批准,那么该特定用户的待处理任务计数应该减少一个。但是我面临的问题是我无法告诉 camunda 这是完成其用户任务的特定用户。声明在这一点上不起作用,因为它已经声明了。