工作流(workflow),就是「業務過程的部分或整體在計算機應用環境下的自動化」,它主要解決的是「使在多個參與者之間按照某種預定義的規則傳遞文件、資訊或任務的過程自動進行,從而實現某個預期的業務目標,或者促使此目標的實現」。
工作流管理系統(wfms,workflow management system)的主要功能是通過計算機技術的支援去定義、執行和管理工作流,協調工作流執行過程中工作之間以及群體成員之間的資訊互動。工作流需要依靠工作流管理系統來實現。工作流管理系統是定義、建立、執行工作流的系統,應能提供以下三個方面的功能支援:
1.定義工作流:包括具體的活動、規則等
2.執行控制功能:在執行環境中管理工作流過程,對工作流過程中的活動進行排程
3.執行互動功能:指在工作流執行中,wfms與使用者(活動的參與者)及外部應用程式工具互動的功能。
一、管理流程
部署(新增)
刪除查詢(查詢所有、自定義條件查詢)
獲取部署新增的檔案資訊(檢視流程圖)
* 沒有更新操作!策略為:重新部署 + 版本遞增。
二、執行流程
啟動流程例項
查詢我的任務列表
辦理任務
直接向後執行一步
****************************************===
部署物件
deployment
表示一次部署的多個檔案的資訊。
對應的表:
jbpm4_deployment
jbpm4_lob
流程定義
processdefinition
表示乙個工作流程,包含每個環節的詳細資訊。
這是解析.jpdl.xml檔案得到的資料。
此類沒有對應的表,他對應的是.jpdl.xml檔案。
執行物件
execution
表示乙個執行的路徑(分支)。最大的分支就是從start到end的那個。
最大的分支稱為root execution 也稱為 processinstance。
對應的表:
jbpm4_execution
正在執行的資訊表
jbpm4_hist_procinst
已經執行完的歷史資訊表
流程例項
processinstance
表示按某流程定義執行的所有執行時的資訊。
processinstance就是execution物件(的子型別)
任務task
在執行流程的過程中,在task環節生成的任務資訊。
對應的表:
jbpm4_task
正在執行的資訊表
jbpm4_hist_task已經執行完的歷史資訊表
示例**:
/**
* 管理流程定義有關的操作
* 部署(新增)
* 刪除
* 查詢(查詢所有、自定義條件查詢)
* 獲取部署新增的檔案資訊(檢視流程圖)
* !!沒有更新操作!策略為:重新部署 + 版本遞增。
* */
public class processdefinitiontest
// 部署(把多個檔案打包為乙個zip一起部署)
@test
public void testdeploy_zip() throws exception
// 刪除
@test
public void testdelete() throws exception
// 查詢流程定義(查詢所有、自定義條件查詢)
@test
public void testfindallprocessdefinition() throws exception -
+ ", name=" + pd.getname()// .jpdl.xml中根元素的name屬性的值。
+ ", key=" + pd.getkey()// .jpdl.xml中根元素的key屬性的值。如果不寫,預設為name屬性的值。
+ ", version=" + pd.getversion()// .jpdl.xml中根元素的version屬性的值。如果不寫,預設的效果為同名稱的第乙個version為1,以後的就遞增。(一般不要寫)
+ ", deploymentid=" + pd.getdeploymentid()); // 所屬的部署物件的id
} }// 獲取部署時新增的檔案資訊(檢視流程圖)
@test
public void testgetprocessimage() throws exception
// 獲取指定的部署物件中的指定名稱的檔案內容
inputstream in = processengine.getrepositoryservice().getresourceasstream(deploymentid, resourcename);
// 存到d:/中
fileoutputstream out = new fileoutputstream("d:/process.png");
byte buf = new byte[1024];
for (int len = -1; (len = in.read(buf)) != -1;)
in.close();
out.close();
}}
/**
* 執行流程例項有關的操作
* 啟動流程例項
* 查詢我的任務列表
* 辦理任務
* 直接向後執行一步
*/public class processinstancetest
// 查詢我的(未完成的)任務列表
@test
public void testfindmytasklist() throws exception
} // 辦理任務
@test
public void testcompletetask() throws exception
// 直接向後執行一步
@test
public void testsignal() throws exception
}
JBPM工作流 一
好了,吐槽了一番覺得心情頓時開朗了,那麼,接下來就進入正題把 jbpm,學技術首先知道這個技術是做什麼用的,否則學起來你就會沒頭沒腦了.這裡,個人的解釋不是很全面,大家可以在網上搜尋一下.知道個大概意思就行了 那麼,如何使用jbpm進行開發呢?首先,匯入相關的jbpm的jar包檔案,如果不知道匯入那...
JBPM工作流簡單步驟
啟動流程 獲取最新的流程定義 jbpmcontext.getcurrentjbpmcontext getgraphsession findlatestprocessdefinitions 返回list 獲取指定流程定義 processdefinition processdefinition grap...
liferay工作流開發(JBPM亂碼)
jbpm web不能匯出到ext工程裡,這個很鬱悶,在liferay原始碼中開發,他eclipse完全把這些檔案當作是普通的檔案,報錯提示什麼也沒有,錯了也不知道,我的做法是先在外面建乙個普通的web工程,然後把jbpm web下面的src拷到我面的web工程裡然後把要的包導進來,這樣開發起來就舒服...