JBPM与Web应用程序组织层次结构的集成

时间:2015-07-01 17:29:53

标签: java spring hibernate jbpm

我开发了一个与jbpm 6集成的spring和hibernate应用程序。我成功启动了在eclipse bpmn 2插件中设计的示例流程

我将actor ID设置为如下所示,我的Web应用程序中定义了用户。 我知道jbpm和我的用户表之间必须有一个链接。但我找不到任何解释。

所以我的问题是有一种方法可以使用我自己的预定义用户组 - 职位等作为负责的活动吗?

样品流程 Sample Process


我尝试将一些现有的wep应用程序用户ID添加到User Task的actor列表中,但这当然不起作用

enter image description here

编辑:我正在研究jbpm-human-task-jpa源代码以改变组织结构,我希望我能够在我自己的组织中使用

1 个答案:

答案 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调用以执行查找,而不是像它那样进行硬编码。