我开发了一个与jbpm 6集成的spring和hibernate应用程序。我成功启动了在eclipse bpmn 2插件中设计的示例流程
我将actor ID设置为如下所示,我的Web应用程序中定义了用户。 我知道jbpm和我的用户表之间必须有一个链接。但我找不到任何解释。
所以我的问题是有一种方法可以使用我自己的预定义用户组 - 职位等作为负责的活动吗?
样品流程
我尝试将一些现有的wep应用程序用户ID添加到User Task的actor列表中,但这当然不起作用
编辑:我正在研究jbpm-human-task-jpa源代码以改变组织结构,我希望我能够在我自己的组织中使用
答案 0 :(得分:1)
我认为您想要实现自定义UserGroupCallback。您将需要创建一个实现该接口的类,并将其注册到运行时。如果您正在使用CDI,则可以将@ApplicationScoped注释添加到类中,它应该注册。如果手动构建运行时,可以像下面的代码一样注册它
RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get()
.newDefaultBuilder()
.entityManagerFactory(emf)
.userGroupCallback(usergroupCallback)
以下是getGroupsForUser方法的示例实现。
public List<String> getGroupsForUser(String userId, List<String> groupIds, List<String> allExistingGroupIds) {
List<String> groups = new ArrayList<String>();
if ("ismail".equals(userId)) {
groups.add("admin");
groups.add("project_manager");
}
return groups;
}
您可以通过进入用户任务/属性/组ID来按组设置任务分配。您可以在该字段中使用admin或project_manager。当您尝试将该任务声明为用户ismail时,它应该可用。您可以对另一个数据库进行JDBC或JPA调用以执行查找,而不是像它那样进行硬编码。