Activiti 學習筆記十:開始活動節點(判斷流程是否結束及查詢歷史)
一、流程圖
二、演示程式碼
package jiankunking.start;
import java.io.InputStream;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.junit.Test;
public class StartTest {
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
/**部署流程定義(從inputStream)*/
@Test
public void deploymentProcessDefinition_inputStream(){
InputStream inputStreamBpmn = this.getClass().getResourceAsStream("start.bpmn");
InputStream inputStreamPng = this.getClass().getResourceAsStream("start.png");
Deployment deployment = processEngine.getRepositoryService()//與流程定義和部署物件相關的Service
.createDeployment()//建立一個部署物件
.name("開始活動")//新增部署的名稱
.addInputStream("start.bpmn", inputStreamBpmn)//
.addInputStream("start.png", inputStreamPng)//
.deploy();//完成部署
System.out.println("部署ID:"+deployment.getId());//
System.out.println("部署名稱:"+deployment.getName());//
}
/**啟動流程例項+判斷流程是否結束+查詢歷史*/
@Test
public void startProcessInstance(){
//流程定義的key
String processDefinitionKey = "start";
ProcessInstance pi = processEngine.getRuntimeService()//與正在執行的流程例項和執行物件相關的Service
.startProcessInstanceByKey(processDefinitionKey);//使用流程定義的key啟動流程例項,key對應helloworld.bpmn檔案中id的屬性值,使用key值啟動,預設是按照最新版本的流程定義啟動
System.out.println("流程例項ID:"+pi.getId());//流程例項ID 101
System.out.println("流程定義ID:"+pi.getProcessDefinitionId());//流程定義ID helloworld:1:4
/**判斷流程是否結束,查詢正在執行的執行物件表*/
ProcessInstance rpi = processEngine.getRuntimeService()//
.createProcessInstanceQuery()//建立流程例項查詢物件
.processInstanceId(pi.getId())
.singleResult();
//說明流程例項結束了
if(rpi==null){
/**查詢歷史,獲取流程的相關資訊*/
HistoricProcessInstance hpi = processEngine.getHistoryService()//
.createHistoricProcessInstanceQuery()//
.processInstanceId(pi.getId())//使用流程例項ID查詢
.singleResult();
System.out.println(hpi.getId()+" "+hpi.getStartTime()+" "+hpi.getEndTime()+" "+hpi.getDurationInMillis());
}
}
}
三、小結
1):結束節點沒有出口
2):其他節點有一個或多個出口。
如果有一個出口,則代表是一個單線流程;
如果有多個出口,則代表是開啟併發流程。
演示demo下載:http://download.csdn.net/detail/xunzaosiyecao/9627473
本文部分內容整理自itcast講義,在此表示感謝。
作者:jiankunking 出處:http://blog.csdn.net/jiankunking
相關文章
- Activiti判斷流程是否結束
- Activiti 學習筆記六:流程執行歷史記錄筆記
- Activiti 學習筆記 小結筆記
- Activiti 學習筆記五:流程變數筆記變數
- js判斷dom節點是否存在JS
- Activiti 學習筆記11:接收活動(receiveTask,即等待活動)筆記
- Activiti學習筆記三:管理流程定義筆記
- 判斷DOM元素是否含有子節點
- 判斷 Eloqument 模型查詢資料結果是否為空模型
- 判斷ssh遠端命令是否執行結束
- Sqlite學習筆記之Sqlite歷史SQLite筆記
- ES[7.6.x]學習筆記(十)聚合查詢筆記
- Activiti7 結束/終止流程
- activiti學習筆記二筆記
- Activiti 流程啟動及節點流轉原始碼分析原始碼
- Git改變歷史-章節筆記Git筆記
- activiti學習筆記(四)managementService筆記
- 檢視提交歷史 —— Git 學習筆記 11Git筆記
- Activiti 學習筆記四:流程例項、任務的執行筆記
- 子查詢學習筆記1筆記
- MYSQL學習筆記26: 多表查詢|子查詢MySql筆記
- Activiti 學習筆記一到六小結筆記
- python學習----判斷是否是閏年Python
- 從零開始學習C++之if判斷語句C++
- jquery實現的判斷倒數計時是否結束程式碼jQuery
- (MySQL學習筆記)分頁查詢MySql筆記
- Activiti 學習(三)—— Activiti 流程啟動並完成
- Activiti 學習筆記七:連線(SequenceFlow)筆記
- MYSQL學習筆記25: 多表查詢(子查詢)[標量子查詢,列子查詢]MySql筆記
- 查詢SQL Server的歷史執行記錄SQLServer
- SqlServer查詢資料改動歷史記錄SQLServer
- 學習JAVA的第一天 流程控制及判斷Java
- 資料庫學習筆記1(資料管理歷史)資料庫筆記
- Flowable查詢歷史任務
- Golang 學習——如何判斷 Golang 介面是否實現?Golang
- 泛微oa流程表單之請假單(判斷請假結束時間不能小於等於請假開始時間)
- oracle學習筆記(十一) 高階查詢Oracle筆記
- NDK學習筆記-NDK開發流程筆記