说明
一般在流程中也会存在指定一个组去完成某项事情,然后组里的某一个人就会去完成该事项。在Activiti6里还存在用户和组的表(act_id_user和act_id_group)所以可以直接用,但在Activiti7里用户和组表就被删了,官方建议我们自己创建组表并维护ヽ(ー_ー)ノ(确实用户表、组表功能比较复杂,默认提供的功能可能不够,还是自己创建的好)
快速开始
下面是我创建的用户表和组表,以及产生的中间表(表比较简单 不解释了)
@Data
@Table(name = "user")
public class UserEntity {
@Id
private String userId;
private String password;
private String email;
}
@Data
@Table(name = "group_table")
public class GroupEntity {
@Id
private String id;
private String name;
private String description;
private Date date;
private String createUserId;
private Integer status;
}
@Data
@Table(name = "user_group")
public class UserGroupEntity {
private String id;
private String userId;
private String groupId;
private String type;
}
流程图假设长成下面的样子
xml文件如下,主要是设置了candidateGroups属性(组id),如果是直接指定人完成的话是assignee属性,注意区分
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" exporter="Activiti Modeler" exporterVersion="3.2.3">
<bpmn:process id="Process_0h11oif" name="用户组任务" isExecutable="true">
<bpmn:startEvent id="StartEvent_1" name="Start">
<bpmn:outgoing>SequenceFlow_1mfomlj</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:sequenceFlow id="SequenceFlow_1mfomlj" sourceRef="StartEvent_1" targetRef="Task_1odu8rn" />
<bpmn:userTask id=