activiti7__03ProcessInstance基本用法


Process Definition与 ProcessInstance是一对多关系


import org.activiti.engine.RuntimeService;
import org.activiti.engine.runtime.ProcessInstance;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
public class Test03ProcessInstance {

    @Autowired
    private RuntimeService runtimeService;

    /**
     * 初始化一个流程定义
     */
    @Test
    public void getInfo111(){
        //1.获取页面表单填写的内容,比如请假信息
        //2.页面内容写入业务表,成功以后返回主键id
        //3.把业务数据与activiti7流程数据关联
        String bpmnId ="myProcess_1";//bpmn文件定义的id
        String bussinessKey ="";//自定义的业务id
        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(bpmnId,bussinessKey);
        //返回流程实体的流程定义id
        //流程定义与流程实例是一对多的关系
        //一个请假业务流程可能有多个人使用,去请假 产生多个流程实例
        System.out.println(processInstance.getProcessDefinitionId());
    }


    /**
     * 获取流程实例信息
     */
    @Test
    public void getInfo222(){
        List<ProcessInstance> list = runtimeService.createProcessInstanceQuery().list();
        for (int i = 0; i < list.size(); i++) {
            ProcessInstance p = list.get(i);
            System.out.println(p.getProcessDefinitionId());
            System.out.println(p.getId());//710a6456-4bcc-11eb-b25e-6c71d96cc83a
            System.out.println(p.getProcessInstanceId());//710a6456-4bcc-11eb-b25e-6c71d96cc83a
            System.out.println(p.getName());
            System.out.println(p.getDeploymentId());
            System.out.println(p.getDescription());
            System.out.println(p.isSuspended());
            System.out.println(p.isEnded());
        }
    }

    /**
     * 流程实例终止
     * 流程实例激活
     */
    @Test
    public void getInfo333(){
        String instanceId = "710a6456-4bcc-11eb-b25e-6c71d96cc83a";
        //暂停
        runtimeService.suspendProcessInstanceById(instanceId);
        //激活
        runtimeService.activateProcessInstanceById(instanceId);
    }

    /**
     * 删除一个流程实例
     */
    @Test
    public void getInfo444(){
        String instanceId = "710a6456-4bcc-11eb-b25e-6c71d96cc83a";
        String info ="";//自定义删除时候的提示信息
        //删除
        runtimeService.deleteProcessInstance(instanceId,info);
    }
}




免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM