activiti 6.0.0 会签环节配置

开发环境:

  • jdk8
  • activiti 6.0.0
  • spring boot 1.5.10 (2.0.x版本不兼容 activiti 6.0.0,无法启动)

1. 流程结点关键配置

...

  
    
      
        
      
    
    
      
        
      
    
    
  
  
  

...

相关参数说明如下:

  • activiti:collection="${userService.getUsers()}" 为使用启动时传入的服务获取会签用户集合
  • activiti:elementVariable="user"为集合中的用户定义的变量,代表单个用户
  • isSequential="false" 取值为 true 时为顺签,false 时为并签
  • 配置中的activiti:assignee="${user}"为引用集合中的用户定义的变量,使用集合中用户设置处理人

2. 流程启动代码处理

// 构造参数
Map startVars = new HashMap<>();
startVars.put("completeTaskListener", completeTaskListener);
// 设置启动任务创建监听
startVars.put("createTaskListener", createTaskListener);
// 添加服务 ,userService 为注入的服务,用于返回用户信息
startVars.put("userService", userService);
startVars.put("pass", true);

// 使用流程KEY进行启动
ProcessInstance pi = runtimeService.startProcessInstanceByKey("p4", startVars);

UserService

@Service
public class UserService implements Serializable {

    /**
     * 获取环节单一审批人,生产使用应该从数据库配置表中获取
     * @param taskKey
     * @return
     */
    public String getUser(String taskKey) {
        if (taskKey.equals("task1")) {
            return "u2";
        } else if (taskKey.equals("task2")) {
            return "u3";
        }
        return "u1";
    }

    /**
     * 获取集合用户,生产使用应该从数据库配置表中获取
     * @return
     */
    public List getUsers() {
        List listUser = new ArrayList<>();
        listUser.add("manager1");
        listUser.add("manager2");
        listUser.add("manager3");
        listUser.add("manager4");
        return listUser;
    }
}

getUsers()方法用于获取集合用户,提供给会签任务分配用户使用

未完待续...

你可能感兴趣的:(activiti 6.0.0 会签环节配置)