在activiti框架搭建好之後,我們要怎麼使用這個框架呢?很簡單,官方為我們提供了7個介面,分別操控框架的對應內容,下面我們來一起學習,簡單的走一套完整的流程吧。
一、建立測試類,引入測試用到的配置檔案
下邊是官方為我們提供的7大介面,他們的作用如下
;//key值
private
final
int version =1;
//版本號
//service介面的父類,可以直接獲取下邊的service
private processengine processengine;
//activiti的七大service類
private repositoryservice repositoryservice;
private runtimeservice runtimeservice;
private historyservice historyservice;
private managementservice managementservice;
private taskservice taskservice;
private identityservice identityservice;
private formservice formservice;
@before
public
void
init()
二、部署流程
/**
* 流程定義(流程圖的設計)好以後,需要部署
* 流程部署涉及到的幾個動作和表
* 流程部署表 act_re_deployment
* 流程定義表 act_re_procdef
* 流程資源表 act_ge_bytearray
*/@test
public
void
complatetask()
在部署流程執行之後,我們在資料庫中就會發現,多了很多的表,其中檢視 act_re_procdef 在表
三、建立使用者、角色、以及他們的對應關係
/**
* 建立 角色/分組
*/@test
public
void
testprocessdeploy()
四、啟動流程
流程的啟動方法有幾種,我們採用最安全穩定的一種。通過例項id來啟動,保證唯一性。
/**
* 流程的啟動(流程例項的產生) new class->object
* 涉及到的表 :
* act_ru_execution 流程例項表
* act_ru_task 會產生一條待執行的任務記錄
* act_hi_taskinst 也會產生一條歷史任務記錄(注意:endtime is null)
* 注意: 以流程定義的key啟動的話,缺省會進入版本最新的流程
*/@test
public
void
teststartprocess()
五、根據角色查詢task節點/**
* 根據角色查詢某組的任務
*/@test
public
void
testquerymygrouptask()
}}
六、節點通過——人工
流程申請過來的時候,我們要讓對應的角色來完成任務,保證流程繼續走下去
在分組的情況下,有人要來處理任務的時候,我們要保證只有乙個人正在處理,所以我們用拾取任務來保證工作的唯一性。
/**
* 任務拾取
* 我們設定的任務處理人員暫時都只是候選人 ,並不是實際處理人,必須經過任務拾取的過程來確定誰來處理任務
* 任務拾取的過程,就是給執行任務表指定assginee字段值的過程
*/@test
public
void
claimtask()
/** * 人工節點通過方法
* 流程處理過程:完成個人任務
* 處理流程的步驟:查詢個人任務 完成個人任務
* 涉及到的表:act_ru_task
*/@test
public
void
testcompletemytask()
七、通過節點——自動/**
* 自動審核通過節點
*/@test
public
void
testcompletemytaskself()
if("usertask2"
.equals
(task.
gettaskdefinitionkey()
))if(
"usertask3"
.equals
(task.
gettaskdefinitionkey()
))system.out.
println
("**********=="
+task.
getname()
+" 流程結束 **********==");
//帶審核意見
processengine.
gettaskservice()
.complete
(task.
getid()
, mapvariables)
;//重新獲取task
task = taskservice.
createtaskquery()
.processinstanceid
(instance.
getprocessinstanceid()
).active()
.singleresult()
;}system.out.
println
("審批完成");
}
v4l2框架v4l2 device API分析
涉及到的結構體 struct v4l2 device在v4l2框架中充當所有v4l2 subdev的父裝置,管理著註冊在其下的子裝置 struct v4l2 device struct device 代表子裝置,包含了子裝置的相關屬性和操作 struct device struct subdev s...
2分鐘讀懂大資料框架Hadoop和Spark的異同
談到大資料,相信大家對hadoop和apache spark這兩個名字並不陌生。但我們往往對它們的理解只是提留在字面上,並沒有對它們進行深入的思考,下面不妨跟我一塊看下它們究竟有什麼異同。解決問題的層面不一樣 首先,hadoop和apache spark兩者都是大資料框架,但是各自存在的目的不盡相同...
2分鐘讀懂大資料框架Hadoop和Spark的異同
談到大資料,相信大家對hadoop和apache spark這兩個名字並不陌生。但我們往往對它們的理解只是提留在字面上,並沒有對它們進行深入的思考,下面不妨跟我一塊看下它們究竟有什麼異同。首先,hadoop和apache spark兩者都是大資料框架,但是各自存在的目的不盡相同。hadoop實質上更...