流程部署(Deployment)
流程部署定义
1. 部署流程就是创建bpmn图,或者导入业务流程图,通过部署代码运行到数据库中并保存起来,说白了就是搭起一个框架,到时候就按照这个流程运行。
2. 因为只牵扯到部署,所以需要通过注入一个类,***RepositoryService*** ,通过这个类可以部署流程,并且后面还可以获取流程的相关信息
1
2
代码案例
————————————————
@Autowired
private RuntimeService runtimeService;
/**
* 初始化流程实例
*/
@Test
public void initProcessInstance(){
//TODO 获取页面表单的数据,例如请假时间,原因等,然后将这些信息自己创建一个业务表
//TODO 第二个参数将来就存放这个业务表的id,这样就工作流和业务关联起来了
//TODO 第一个参数为bpmn的id
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("bpmn的id","bket01");
}
/**
* 获取流程实例列表
*/
@Test
public void getProcessInstances(){
List<ProcessInstance> processInstanceQuery = runtimeService.createProcessInstanceQuery().list();
for (ProcessInstance processInstance : processInstanceQuery) {
//输出流程实例的信息
System.out.println(processInstance.getName());
System.out.println(processInstance.getBusinessKey());
System.out.println(processInstance.getId());
//查看流程是否结束
System.out.println(processInstance.isEnded());
//查看流程是否挂起
System.out.println(processInstance.isSuspended());
}
}
/**
* 暂停与激活流程实例
*/
@Test
public void activiteProcessInstance(){
//挂起流程实例
runtimeService.suspendProcessInstanceById("流程实例id");
//激活流程
runtimeService.activateProcessInstanceById("流程id");
}
/**
* 删除流程实例
*/
@Test
public void delProcessInstance(){
//第二个参数为删除理由,如果流程id已经删除了,在删除会报错
runtimeService.deleteProcessInstance("流程id","删着玩");
System.out.println("删除流程实例");
}
需要注意的是:为了使工作流与咱们的业务挂钩,所以在流程实例创建的时候咱们可以创建咱们的业务表返回id与实例相关联,例如: runtimeService.startProcessInstanceByKey("bpmn的id","bket01");
第一个参数为bpmn流程图的id,第二个参数就是咱们挂钩业务表的id,这样数据库也会相关联了。当然还有其他的到时候补充。