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