activiti7经典类
1:流程部署
Deployment:添加资源文件、获取部署信息、部署时间
相关表:流程部署表act_re_deployment;流程引擎二进制数据表act_ge_bytearray
@SpringBootTest
public class Part1_Deployment {
@Autowired
private RepositoryService repositoryService;
//通过bpmn部署流程
@Test
public void initDeploymentBPMN(){
String filename="BPMN/Part4_Task_claim.bpmn";
//String pngname="BPMN/Part1_Deployment.png";
Deployment deployment=repositoryService.createDeployment()
.addClasspathResource(filename)
//.addClasspathResource(pngname)//图片
.name("流程部署测试候选人task")
.deploy();
System.out.println(deployment.getName());
}
//通过ZIP部署流程
@Test
public void initDeploymentZIP() {
InputStream fileInputStream = this.getClass()
.getClassLoader()
.getResourceAsStream("BPMN/Part1_DeploymentV2.zip");
ZipInputStream zip=new ZipInputStream(fileInputStream);
Deployment deployment=repositoryService.createDeployment()
.addZipInputStream(zip)
.name("流程部署测试zip")
.deploy();
System.out.println(deployment.getName());
}
//查询流程部署
@Test
public void getDeployments() {
List<Deployment> list = repositoryService.createDeploymentQuery().list();
for(Deployment dep : list){
System.out.println("Id:"+dep.getId());
System.out.println("Name:"+dep.getName());
System.out.println("DeploymentTime:"+dep.getDeploymentTime());
System.out.println("Key:"+dep.getKey());
}
}
}
2:流程定义
ProcessDefinition:获取版本号、key、资源名称、部署ID等
相关表:流程模型定义表act_re_procdef
@SpringBootTest
public class Part2_ProcessDefinition {
@Autowired
private RepositoryService repositoryService;
//查询流程定义
@Test
public void getDefinitions(){
List<ProcessDefinition> list = repositoryService.createProcessDefinitionQuery()
.list();
for(ProcessDefinition pd : list){
System.out.println("------流程定义--------");
System.out.println("Name:"+pd.getName());
System.out.println("Key:"+pd.getKey());
System.out.println("ResourceName:"+pd.getResourceName());
System.out.println("DeploymentId:"+pd.getDeploymentId());
System.out.println("Version:"+pd.getVersion());
}
}
//删除流程定义
@Test
public void delDefinition(){
String pdID="23568f4d-cf3a-11eb-b8ab-309c233b322a";
//false:正在使用的流程定义删除掉,历史的不删除;true:全部删除
repositoryService.deleteDeployment(pdID,true);
System.out.println("删除流程定义成功");
}
}
3:流程实例ProcessInstance
流程实例和流程定义是一对多的关系
相关表:流程运行时流程实例表act_ru_execution;运行时流程人员表act_ru_identitylink
@SpringBootTest
public class Part3_ProcessInstance {
@Autowired
private RuntimeService runtimeService;
//初始化流程实例
@Test
public void initProcessInstance(){
//1、获取页面表单填报的内容,请假时间,请假事由,String fromData
//2、fromData 写入业务表,返回业务表主键ID==businessKey
//3、把业务数据与Activiti7流程数据关联
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess_claim","bKey002");
System.out.println("流程实例ID:"+processInstance.getProcessDefinitionId());
}
//获取流程实例列表
@Test
public void getProcessInstances(){
List<ProcessInstance> list = runtimeService.createProcessInstanceQuery().list();
for(ProcessInstance pi : list){
System.out.println("--------流程实例------");
System.out.println("ProcessInstanceId:"+pi.getProcessInstanceId());
System.out.println("ProcessDefinitionId:"+pi.getProcessDefinitionId());
System.out.println("isEnded"+pi.isEnded());
System.out.println("isSuspended:"+pi.isSuspended());
}
}
//暂停与激活流程实例
@Test
public void activitieProcessInstance(){
// runtimeService.suspendProcessInstanceById("73f0fb9a-ce5b-11ea-bf67-dcfb4875e032");
//System.out.println("挂起流程实例");
runtimeService.activateProcessInstanceById("73f0fb9a-ce5b-11ea-bf67-dcfb4875e032");
System.out.println("激活流程实例");
}
//删除流程实例
@Test
public void delProcessInstance(){
runtimeService.deleteProcessInstance("73f0fb9a-ce5b-11ea-bf67-dcfb4875e032","删着玩");
System.out.println("删除流程实例");
}
}