已經玩工作流了,打算還是研究一下撤回的功能。但是流程圖裡面並不帶撤回的元件,所以需要自己動態改造一下,還是延續上乙個流程繼續試驗撤回功能。《工作流activiti初體驗【一】》
完整流程圖
我們研究一下分發任務撤回到發起任務,其他環節的撤回類似
撤回的原理大概如下:
將分發任務後面的方向清空,把發起任務拼接到原來的判斷閘道器,然後結束分發任務,這樣流程就到發起任務了
此時的流程如上圖,並且當前節點是發起任務,而後再將分發任務後面的方向清空,並還原為最初的方向,如下圖:
撤回**
/**
* 撤回流程
*/private void recall()
system.out.println(oripvmtransitionlist);
pvmtransitionlist.clear();
// 建立新方向
activityimpl nextactivityimpl = ((processdefinitionimpl) definitionentity)
.findactivity(curractivity.getid());
transitionimpl newtransition = nextactivityimpl.createoutgoingtransition();
newtransition.setdestination(hisactivity);
taskservice.claim(currtask.getid(), null);
taskservice.complete(currtask.getid(), variables);
historyservice.deletehistorictaskinstance(currtask.getid());
// 恢復方向
hisactivity.getincomingtransitions().remove(newtransition);
listpvmtlist = curractivity.getoutgoingtransitions();
pvmtlist.clear();
for (pvmtransition pvmtransition : oripvmtransitionlist)
system.out.println(pvmtransitionlist);
}} historyservice.deletehistorictaskinstance(historictaskinstance.getid());
}
專案位址 activiti-tes Activiti工作流概述
一 概述 工作流 workflow 就是 業務過程的部分或整體在計算機應用環境下的自動化 它主要解決的是 使在多個參與者之間按照某種預定義的規則傳遞文件 資訊或任務的過程自動進行,從而實現某個預期的業務目標,或者促使此目標的實現 工作流管理系統 workflow management system,...
Activiti工作流課程
activiti5是由alfresco軟體在2010年5月17日發布的業務流程管理 bpm 框架,它是覆蓋了業務流程管理 工作流 服務協作等領域的乙個開源的 靈活的 易擴充套件的可執行流程語言框架。activiti基於apache許可的開源bpm平台,創始人tom baeyens是jboss jbp...
Activiti 工作流框架
1 什麼是工作流,工作流的核心物件是什麼,activiti共運算元據庫多少張表 工作流就是多個參與者,按照某種預定義的規則,傳遞業務資訊,進行審核的功能乙個框架 activiti processengine,呼叫service,從而運算元據庫的表 23張表 大致分為 1 資源庫流程規則表 2 執行時...