1. 程式人生 > >activiti 流程歷史(五)

activiti 流程歷史(五)

package diagrams;

import java.util.List;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.history.HistoricActivityInstance;
import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.history.HistoricVariableInstance;
import org.junit.Test;

/**
 * 流程歷史
 * 
 * @author ZHEN.L
 * 
 */
public class ProcessHistoricTest {

	ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

	/**
	 * 查詢歷史流程例項 <br>
	 * act_hi_procinst
	 */
	@Test
	public void findHistoricProcessInstance() {
		String processInstanceId = "1301";
		HistoricProcessInstance h = processEngine.getHistoryService()
				.createHistoricProcessInstanceQuery()
				.processInstanceId(processInstanceId).singleResult();
		System.out.println(h.getId() + "; " + h.getStartTime() + "; "
				+ h.getEndTime());
	}

	/**
	 * 查詢歷史活動<br>
	 * act_hi_actinst
	 */
	@Test
	public void findHistoricActivity() {
		String processInstanceId = "1501";
		List<HistoricActivityInstance> list = processEngine.getHistoryService()
				.createHistoricActivityInstanceQuery()
				.processInstanceId(processInstanceId).list();
		if (list != null && list.size() > 0) {
			for (HistoricActivityInstance h : list) {
				System.out.println(h.getId() + "; " + h.getActivityType()
						+ "; " + h.getAssignee() + "; " + h.getActivityName()
						+ "; " + h.getStartTime());
			}
		}
	}

	/**
	 * 查詢歷史任務 <br>
	 * act_hi_taskinst
	 */
	@Test
	public void findHistoricTask() {
		String processInstanceId = "1501";
		List<HistoricTaskInstance> list = processEngine.getHistoryService()
				.createHistoricTaskInstanceQuery()
				.processInstanceId(processInstanceId).list();
		if (list != null && list.size() > 0) {
			for (HistoricTaskInstance h : list) {
				System.out.println(h.getId() + "; " + h.getAssignee() + "; "
						+ h.getName() + "; " + h.getStartTime());
			}
		}
	}

	/**
	 * 查詢歷史變數<br>
	 * act_hi_varinst
	 */
	@Test
	public void findHistoricVariables() {
		String processInstanceId = "1501";
		List<HistoricVariableInstance> list = processEngine.getHistoryService()
				.createHistoricVariableInstanceQuery()
				.processInstanceId(processInstanceId).list();
		if (list != null && list.size() > 0) {
			for (HistoricVariableInstance h : list) {
				System.out.println(h.getId() + "; " + h.getVariableName()
						+ "; " + h.getValue() + "; " + h.getVariableTypeName());
			}
		}
	}
}

相關推薦

activiti 流程歷史

package diagrams; import java.util.List; import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngines; import or

Activiti進階——流程執行歷史記錄

    之前的幾篇文章,為大家簡單的介紹了部署流程定義、啟動流程例項、檢視和辦理個人任務以及如何設定和獲取流程變數,這一系列的活動組成了一個完整的執行流程,那麼一個執行完的流程我們如何檢視相關的定義呢

Activiti的學習——監聽器

在流程中我們有時會對整個流程或者一個節點的某種狀態做出相應的處理。這時就會用到監聽器。 在Activiti中流程的監聽主要分為兩大類,執行監聽器和任務監聽器。 一、執行監聽器(ExecutionListener) 執行監聽器可以執行外部java程式碼或執行表示式,當流程定義中發生了某個事

Activiti——流程變數

Activiti——流程變數 流程變數在整個工作流中扮演很重要的作用。例如:請假流程中有請假天數、請假原因等一些引數都為流程變數的範圍。流程變數的作用域範圍是只對應一個流程例項。也就是說各個流程例項的流程變數是不相互影響的。流程例項結束完成以後流程變數還儲存在資料庫中(

SpringBoot啟動流程分析:SpringBoot自動裝配原理實現

SpringBoot系列文章簡介 SpringBoot原始碼閱讀輔助篇:   Spring IoC容器與應用上下文的設計與實現 SpringBoot啟動流程原始碼分析: SpringBoot啟動流程分析(一):SpringApplication類初始化過程 SpringBoot啟動流程分析(二)

Activiti工作流學習筆記入門——流程變數

package com.java1234.activiti.variable; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; i

activiti自定義流程之Spring整合activiti-modeler5.16例項流程定義列表

1.流程定義依舊屬於流程資源,因此查詢流程定義也還是使用repositoryService進行操作 2.後臺業務程式碼,   (1)自定義的流程定義實體類:package model; pub

C# 《流程控制1

generic ram div 執行 進行 運行 align strong c# 1、分支語句之 if 語句 1、流程控制語句是程序的核心部分,對任何一門編程語言來說都至關重要,是控制程序執行流向的基本語句。如果一門語言缺少了流程控制,就會缺少對程序流向的控制,就不能稱之為

Git工程開發實踐——Git分布式工作流程

項目 廣泛 小團隊 不常用 工作 forward 存在 proc http Git工程開發實踐(五)——Git分布式工作流程 一、Git分布式工作流程簡介 與集中式版本控制系統(CVCS)不同,Git的分布式特性使得開發者間的協作變得更加靈活多樣。在集中式系統中,每個開發者

從零開始學習比特幣--P2P網路建立的流程之套接字的讀取和傳送

寫在前面: 本篇文章接續 從零開始學習比特幣開發(四)–網路初始化,載入區塊鏈和錢包,匯入區塊啟動節點 從零開始學習區塊鏈技術(三)-接入比特幣網路的關鍵步驟解析、建立比特幣錢包,以及重要rpc指令 從零開始學習區塊鏈技術(二)–如何接入比特幣網路以及其原理分析 從零開始學習

Netty:ServerBootstrap啟動流程

handle ops pipe 簡單的 inf and acc rest 時也 這篇文章主要是對ServerBootstrap啟動流程做一個梳理,方便我們串聯起各個類,同時也對主要的一些類有個大概的印象,方便之後逐個類的深入學習。 本篇文章不在具體貼出代碼,而是對整個啟動流

檢視修改的歷史記錄 git log 命令 和 返回上一次修改版本 git reset 、git reflog

上一篇,已經學會了修改檔案,然後再把修改檔案提交到Git版本庫,now,再重複執行一次,修改index.html檔案如下: 然後執行新增、提交: 像這樣,你不斷對檔案進行修改,然後不斷提交修改到版本庫裡,每次修改到一定程度時,再提交;一旦你把檔案改亂了,或者誤刪了檔案,還可以從最

Activiti學習筆記Activiti流程引擎API和服務

引擎API是與Activiti互動的最常見方式。中心起點是ProcessEngine,可以通過多種方式建立,如《Activiti學習筆記(三)獲取ProcessEngine物件的多種方式》。 從ProcessEngine中,可以獲得包含工作流BPM方法的各種服務。一下是Activiti的模型圖 一共有

Activiti的學習——流程變數操作、任務型別

ProcessEngine pe = null; @Before public void init() { pe = ProcessEngines.getDefaultProcessEngine(); } 一、流程變數操作 流程變數指的是

一百一十二Android O wpa_supplicant初始化學習—— retrieveIfacePtr 流程探討

前言:一直想梳理下WiFi在supplicant的連線流程,但是初始化流程梳理的千瘡八孔,少了前置步驟很難梳理。先看下一個基礎的介面retrieveIfacePtr流程。   1.目標介面 sta_iface.cpp /** * Retrieve the underl

Python基礎-python流程控制之順序結構和分支結構

流程控制   流程:計算機執行程式碼的順序,就是流程   流程控制:對計算機程式碼執行順序的控制,就是流程控制   流程分類:順序結構、選擇結構(分支結構)、迴圈結構 順序結構   一種程式碼自上而下執行的結構,是python還有其他語言的預設執行的流程。 選擇結構(分支結構)   分類:單分支

Python基礎-python流程控制之迴圈結構

迴圈結構     迴圈結構可以減少源程式重複書寫的程式碼量,用來描述重複執行某段演算法的問題。   Python中迴圈結構分為兩類,分別是 while 和 for .. in。   一、while迴圈     格式1:       while 判斷語句:

WebRTC搭建流程Android端除錯

Android端除錯 (一)下載Demo 編譯需要linux+翻牆+16G的原始碼下載,太坑了,以後編譯,直接下載別人編好的應用demo 下載地址 (二)demo中需要修改 所有demo中的域名修改成

Activiti進階——流程定義的CRUD

     流程定義的RCUD,也就是對流程的增刪該查,這篇博文簡單的為大家介紹一下使用Activiti的api對流程定義進行增刪改查操作。 一、檢視流程定義 // 查詢流程定義 @Test

Netty實戰 IM即時通訊系統客戶端啟動流程

## Netty實戰 IM即時通訊系統(五)客戶端啟動流程 零、 目錄 IM系統簡介 Netty 簡介 Netty 環境配置 服務端啟動流程 實戰: 客戶端和服務端雙向通訊 資料傳輸載體ByteBuf介紹 客