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

JBPM integration with web application organisation hierarchy

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

我像下面这样设置演员 ID,他们是我的 Web 应用程序中定义的用户。 我知道 jbpm 和我的用户 table 之间必须有一个 link。但我找不到任何解释。

所以我的问题是有没有办法使用我自己预定义的用户组职位等作为 activity 负责人?

示例过程


我试图将一些现有的 wep 应用程序用户 ID 添加到用户任务的参与者列表中,但这当然行不通



编辑:我正在研究 jbpm-human-task-jpa 源代码以改变组织结构,我希望我能实现代码与我自己的组织相适应

我想你想实现一个自定义 UserGroupCallback。您将需要创建一个 class 来实现该接口并将其注册到运行时。如果您使用的是 CDI,则可以将 @ApplicationScoped 注释添加到 class 并且它应该会注册。如果手动构建运行时,您可以像下面的代码一样注册它

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