工作流Activiti初體驗 流程撤回 二

2021-09-05 09:13:04 字數 1581 閱讀 3523

已經玩工作流了,打算還是研究一下撤回的功能。但是流程圖裡面並不帶撤回的元件,所以需要自己動態改造一下,還是延續上乙個流程繼續試驗撤回功能。《工作流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 執行時...