3.activiti7 流程例項

葉為正發表於2020-10-22
package com.imooc.activitiweb;

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 Part3_ProcessInstance {

    @Autowired
    private RuntimeService runtimeService;

    //初始化流程例項
    @Test
    public void initProcessInstance(){
        //1、獲取頁面表單填報的內容,請假時間,請假事由,String fromData
        //2、fromData 寫入業務表,返回業務表主鍵ID==businessKey
        //3、把業務資料與Activiti7流程資料關聯
        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess_Part1","bKey002");
        System.out.println("流程例項ID:"+processInstance.getProcessDefinitionId());

    }

    //獲取流程例項列表
    @Test
    public void getProcessInstances(){
        List<ProcessInstance> list = runtimeService.createProcessInstanceQuery().list();
        for(ProcessInstance pi : list){
            System.out.println("--------流程例項------");
            System.out.println("ProcessInstanceId:"+pi.getProcessInstanceId());
            System.out.println("ProcessDefinitionId:"+pi.getProcessDefinitionId());
            System.out.println("isEnded"+pi.isEnded());
            System.out.println("isSuspended:"+pi.isSuspended());

        }

    }


    //暫停與啟用流程例項
    @Test
    public void activitieProcessInstance(){
        // runtimeService.suspendProcessInstanceById("73f0fb9a-ce5b-11ea-bf67-dcfb4875e032");
        //System.out.println("掛起流程例項");

        runtimeService.activateProcessInstanceById("73f0fb9a-ce5b-11ea-bf67-dcfb4875e032");
        System.out.println("啟用流程例項");
    }

    //刪除流程例項
    @Test
    public void delProcessInstance(){
        runtimeService.deleteProcessInstance("73f0fb9a-ce5b-11ea-bf67-dcfb4875e032","刪著玩");
        System.out.println("刪除流程例項");
    }
}

1.初始化例項

部署完流程後 需要初始化例項

ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess_Part1","bKey002");

第一個引數是ACT_RE_PROCDEF流程定義表的KEY,第二個引數是對應自己業務表的主鍵id
在這裡插入圖片描述

初始化流程例項後,會在ACT_RU_IDENTITYLINK執行時參與人員與節點關係表與ACT_RU_EXECUTION執行時流程執行例項表生成資料。

在ACT_RU_IDENTITYLINK執行時參與人員與節點關係表中生成相應的型別與參與人的id與流程例項id等資訊。

在這裡插入圖片描述
在ACT_RU_EXECUTION執行時流程執行例項表中生成業務主鍵id等資訊。
在這裡插入圖片描述

2.獲取流程例項列表

流程例項------
ProcessInstanceId:02cd9b83-1445-11eb-a86b-04d9f5f5f42b 流程例項id
ProcessDefinitionId:myProcess_Part1:2:8f783608-143e-11eb-be5b-04d9f5f5f42b 流程定義id :bpm key+uuid
isEndedfalse 是否結束
isSuspended:false 是否掛起

3.暫停與啟用流程例項

在這裡插入圖片描述
runtimeService.suspendProcessInstanceById(“02cd9b83-1445-11eb-a86b-04d9f5f5f42b”);
掛起該欄位為2

runtimeService.activateProcessInstanceById(“02cd9b83-1445-11eb-a86b-04d9f5f5f42b”);
啟用該欄位為1

4.刪除例項

在這裡插入圖片描述

則會同時清空這個表的相關資料

相關文章