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);
}
}