processengine processengine = new configuration()
.buildprocessengine();
上面的**演示了如何通過classpath根目錄下 預設的配置檔案jbpm.cfg.xml建立乙個processservice。 如果你要指定其他位置的配置檔案, 請使用setresource()方法:
processengine processengine = new configuration()
.setresource("my-own-configuration-file.xml")
.buildprocessengine();
一、processengine = configuration.getprocessengine(); //初始化啟動流程引擎
二、repositoryservice repositoryservice = processengine
.getrepositoryservice();
string deploymentid = repositoryservice.createdeployment()
.addresourcefromclasspath("helloworld.jpdl.xml").deploy(); //流程發布
listlist = repositoryservice
.createprocessdefinitionquery().list(); //已發布的流程定義
for (processdefinition pd : list)
repositoryservice.deletedeploymentcascade(deploymentid); //流程定義刪除
三、executionservice executionservice = processengine.getexecutionservice(); //得到流程例項
processinstance pi = executionservice
.startprocessinstancebykey("helloworld"); //啟動流程例項
四、pi = executionservice.signalexecutionbyid(pi.getid()); //流程繼續向下執行,即走到下一步
五、 executionservice.endprocessinstance(pi.getid(), "cancel"); // 以cancel方式結束流程例項
executionservice.deleteprocessinstancecascade(pi.getid()); // 刪除流程例項
六、 listlist = executionservice.createprocessinstancequery().list(); //查詢當前已經在執行的流程例項
for (processinstance processinstance : list)
processdefinition pd
pd.getid()
pd.getname()
pd.getversion()
七、 taskservice taskservice = processengine.gettaskservice();
listtasklist = taskservice.findpersonaltasks(username); //使用者username的任務列表
task.getformresourcename() // 任務活動中繫結的jsp例如
八、 map map = new hashmap();
map.put("owner", session.getattribute("username")); //放置username到變數#中
executionservice.startprocessinstancebyid(request
.getparameter("id"), map);
九、 map map = new hashmap();
map.put("day", day); //放入變數
map.put("reason", reason);
taskservice.completetask(taskid, map); //任務完成
申請人:<%=taskservice.getvariable(taskid, "owner") %>
//取得變數
十、identityservice identityservice = processengine.getidentityservice(); //身份認證
identityservice.creategroup("dev"); //建立使用者組
identityservice.createuser("user1", "user1", "user1"); //建立使用者
identityservice.createuser("user2", "user2", "user3");
identityservice.createmembership("user1", "dev");
identityservice.createmembership("user2", "dev");
taskservice.findgrouptasks("user1") //得到候選任務
taskservice.taketask(task.getid(), "user1"); //接受任務
taskservice.completetask(task.getid()); //任務完成
十一、 事件監聽
public class processeventlistener implements eventlistener
}<?xml version="1.0" encoding="utf-8"?>
十二、 setactivitynames = processinstance.findactiveactivitynames(); //當前活動節點
十三、歷史資訊
如果想查詢某一特定流程定義的所有流程例項, 可以像這樣操作:
listhistoryprocessinstances = historyservice
.createhistoryprocessinstancequery()
.processdefinitionid("icl-1")
.orderasc(historyprocessinstancequery.property_starttime)
.list();
單獨的活動流程也可以作為historyactivityinstance 儲存到歷史資訊中。
listhistactinsts = historyservice
.createhistoryactivityinstancequery()
.processdefinitionid("icl-1")
.activityname("a")
.list();
有時,我們需要獲得指定流程例項已經過的節點的完整列表。 下面的查詢語句可以用來獲得所有已經執行的節點列表:
listhistactinsts = historyservice
.createhistoryactivityinstancequery()
.processinstanceid("icl.12345")
.list();
jbpm中Decision的使用
decision是jbpm中非常重要的一種node,在我們的一般的工作流系統中使用的也很頻繁,本文談談它的使用.1 如果客戶端能夠比較容易的判斷decision後應該到哪個transition,我們只需要把 transition的名稱作為signal發給token就可以了,此時,引擎將驅動流程轉向該...
jbpm5學習資料
jbpm5學習資料 迴圈示例 本示例是乙個在外部傳入的變數,通過傳入的變數來判斷迴圈次數的演示程式,看一下流程定義的內容 如圖 初始化的時候設定變數i的值為0,然後進入流程結點,選擇的是xor,就是異或的意思,在迴圈中輸出變數i的值並且加1,在後面的選擇節點上判斷變數i的值,如果小於count則迴圈...
Python 各種語句 2018 07 27
1.if.elif.else條件語句 coding utf 8 num 5 if num 3 判斷num的值 print boss elif num 2 print user elif num 1 print worker elif num 0 值小於零時輸出 print error else pr...