• ProcessDefinition流程定义, ProcessInstance 流程实例
    • ProcessDefinition与ProcessInstance是一对多关系 ```java package com.torey.activiti7_workflow;

    import org.activiti.engine.RuntimeService; import org.activiti.engine.runtime.ProcessInstance; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;

    import java.util.List;

    /**

    • 流程实例对应 act_ru_execution / @SpringBootTest public class Part3_ProcessInstance { /*

      • 所用的流程实例类,都要用RuntimeService类 / @Autowired private RuntimeService runtimeService; /*
      • 初始化流程实例,也就是启动流程 */ @Test public void initProcessInstance(){ //runtimeService.startProcessInstanceByKey(processDefinitionKey,businessKey)可以传入两个参数 //businessKey 是业务id //业务流程为: //1 获取页面表单填报的内容,比如:请假事件,请假内容 //2 fromData 写入业务表,返回业务表主键ID==businessKey //3 把业务数据与Activiti7流程数据关联 ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(“myProcess_1”,”businessId”); System.out.println(“流程实例ID:” + processInstance.getId()); //启动流程后,act_ru_execution (运行时流程执行实例表)、act_ru_identitylink(运行时参与人员与节点关系表)会有数据 }

        /**

      • 获取流程实例 */ @Test public void getProcessInstances(){ List list = runtimeService.createProcessInstanceQuery().list(); for (ProcessInstance processInstance : list) {

        1. System.out.println("===流程实例==");
        2. System.out.println(ToStringBuilder.reflectionToString(processInstance, ToStringStyle.JSON_STYLE));
        3. System.out.println(processInstance.getId());
        4. System.out.println(processInstance.isEnded());
        5. System.out.println("是否被挂起:"+processInstance.isSuspended());

        } }

        /**

      • 暂停与激活流程实例 */ @Test public void activitieProcessInstance(){ //挂起流程实例 // runtimeService.suspendProcessInstanceById(“d8461bd4-20fd-11eb-9b4d-603a7c6bd5e8”); // System.out.println(“挂起流程实例成功processInstance.isSuspended()==true”); //getProcessInstances(); runtimeService.activateProcessInstanceById(“d8461bd4-20fd-11eb-9b4d-603a7c6bd5e8”); System.out.println(“激活流程实例成功processInstance.isSuspended()==false”); getProcessInstances(); }

        /**

      • 删除流程实例
      • 如果流程里没有用数据,删除则会报错 */ @Test public void deleteProcessInstance(){ runtimeService.deleteProcessInstance(“d8461bd4-20fd-11eb-9b4d-603a7c6bd5e8”,”删除原因!!”); System.out.println(“删除流程成功,act_ru_execution表的数据就没有该数据了!!”); } }

    ```