请问如何BPM将任务自动分配给角色,而不是单个用户?

111
222 333

我按照文档中的方法去设置,他只会把任务分配给Assignee属性里设置的用户,而Candidate users里设置的用户则不起任何作用。怎么将任务自动分配给Candidate groups组用户 或者 Candidate users里设置的多个用户 ,而不是Assignee单个

image

这块配上角色,就是userRole表的那个角色名称,然后assignment不要设置,满足角色的用户就可以认领任务。

或者candidate Users那里不是有个加号么,可以加用户id呀。还有groups那里也可以加。

这个新版的手册描述多些:
https://doc.cuba-platform.com/bproc-1.0/?_ga=2.80952468.2079367972.1576411143-335075791.1553745059#task-candidate-users-and-groups

candidate Users那里和groups那里我都加过用户id了而且加了好几个都 没有效果,它只认Assignee属性里设置的那一个用户id。另外我用的是111 这个免费的BPM插件而不是BProc这个收费的插件,这两个插件的文档是一样的么

111 222 另外我把process role下拉选择配置成了你说的角色名称,然后assignment不设置,依然不能达到满足角色的用户就可以认领任务的效果

image

claim allowed还是得勾上。

勾上了 是可以启动流程 但是任务直接就丢失了 我登录了‘业务总监’的所有账户 都不能认领 任务未分配给任何人

你在实体探查里分析下procTask表和procActor表, procActor里会对每一个满足条件的用户生成一条数据。 注意如果已经启动流程,这会再加角色没有用, 必须在procActor生成之前把需要的角色配上。

按你说的 我又重新试了一遍 但仍然不起作用 原因未知,这个bpm就没关联成功系统里的角色用户
111 222333

要不您登上去帮我看看?是不是我BPM哪配置有问题 http://106.52.27.127:8080/app/#login 账号密码都是系统默认admin

好像是你代码里的配置起了作用,启动流程的时候需要手动指定下一审批人,我指定了两个,就可以有认领任务了。
你的代码优先了, 你的代码什么procActor都没生成,所以没有人能认领。

:sob:你误解我的需求了。我就是不想启动流程的时候需要手动指定下一审批人。而是他自动把任务分配给我在设计BPM时候配置的符合角色(比如:有业务总监角色的所有用户们,都可以认领)的用户们。我需要的是自动不是手动,不希望每次启动流程的时候都要指定一遍 太繁琐了

我明白你的意思。我的意思是你的代码在screen里不是把procActor绑定上了么,这块代码就覆盖了bpm的逻辑,所以bpm没有给你自动生成procActor

那我应该怎么修改?我的代码是按照https://doc.cuba-platform.cn/bpm-latest/qs_project_creation.html文档里的快速入门一步一步来的 怎么才能让代码不覆盖BPM的逻辑 这块文档也没明说

这个问题就大了,可能需要自己实现procform。
我看到有这个方法:
image

你把这个开关关了,看看页面上是不是就没有选人的部分了。

或者看看这个例子里有没有你要的:

我在英文版论坛那边找到了这篇回答https://www.cuba-platform.com/discuss/t/bpm-assign-task-to-cuba-roles-not-individual-users/308好像是相同问题 但文章是2016年的 不知道现在解决没有

你可以这样做:
image

在选择审批人那里用你的代码把符合条件的用户都填进去(这样就不用用户填了),这样用户也不用一个一个加。

111 其实他流程设计界面本来就有这个功能 就是不知道怎么才能让他生效 使用我在candidate users里填的用户id 的用户都能自动领到任务 不用我去每次启动流程时候都手动配一遍

在这里加不合理。 因为这是流程设计阶段,你上线的时候用户是动态的。难道有了新用户你要重新配流程吗?

正确的方法就是重写procform,通过代码去获取所有用户,生成procActor数据,省去了用户选择。

这个页面你填的userid和配角色那个道理是一样的,真正启动流程的时候procActor都是需要用户选的吧,你提到的bug里就是这个意思吧。

不是。assignee属性里填就生效,启动流程的时候不手动配置就默认自动把任务分配给assignee里填的用户,但是只能自动分配给assignee里一个用户。分配给多个就不知道怎么实现了 填到候选用户candidate users里是不起作用的