1.关于流程定义再讲点
在前几个帖子的时候,我们讲了发布流程的操作,注意,我们发布的时候是根据一个BPMN文件来发布的,比如我们是针对BPMN-A发布流程的,发布一次,数据库自动的生成一个版本号1,再根据BPMN-A发布流程,那么就会生成一个新的数据,版本号为2,注意看数据库表就可以理解了:
image.png
流程定义好之后,我们就需要创建实例了,开头说了一个流程我们定义好了之后,那么下面肯定就需要有实例来执行这个流程了,所以下面我们就需要创建流程实例。
1.关于流程实例
//初始化流程实例
@Test
public void initProcessInstance(){
//1.你的业务数据生成之后,这条业务的id就是bkey
//2.然后将流程数据与业务数据进行关联
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess_1","b-key001");
System.out.print("流程实例id:"+processInstance.getProcessInstanceId());
}
//获取流程实例
@Test
public void findProcessInstance(){
//流程实例id:a069fe4b-87c5-11eb-9570-de68af471d68
List<ProcessInstance> list = runtimeService.createProcessInstanceQuery().list();
for(ProcessInstance pl:list){
System.out.print("流程实例id:"+pl.getProcessInstanceId());
System.out.print("流程定义信息:"+pl.getProcessDefinitionId());
System.out.print("业务数据id:"+pl.getBusinessKey());
System.out.print("isSuspended:"+pl.isSuspended());
System.out.print("isEnded:"+pl.isEnded());
}
}
//暂停与激活流程实例
@Test
public void activityProcessInstance(){
//挂起一个流程实例
runtimeService.suspendProcessInstanceById("");
//激活一个流程实例
runtimeService.activateProcessInstanceById("");
}
//删除流程实例
@Test
public void delProcessInstance(){
runtimeService.deleteProcessInstance("a069fe4b-87c5-11eb-9570-de68af471d68","没有受让人,所以删掉重来");
}
-
1.在我们创建流程实例之后,就会在表ACT_RU_EXECUTION中创建数据
image.png
启动一个流程实例,在运行时流程执行实例的数据会产生两条,因为每次创建实例都会执行2个节点,一个start,一个任务节点。
我们再看运行时人员与节点关系表就可以发现,多了一条受让人为wang的数据了。
image.png image.png
网友评论