一、工作流 Activiti7-6.流程实例ProcessIns

2021-03-29  本文已影响0人  那钱有着落吗
image.png

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","没有受让人,所以删掉重来");
    }

image.png

启动一个流程实例,在运行时流程执行实例的数据会产生两条,因为每次创建实例都会执行2个节点,一个start,一个任务节点。

我们再看运行时人员与节点关系表就可以发现,多了一条受让人为wang的数据了。


image.png image.png
上一篇 下一篇

猜你喜欢

热点阅读