一 工作流概述
1 工作流是什麼?
為了實現某個業務目標,利用計算機在多個參與者之間按某種預定規則自動傳遞文件、資訊或者任務。
2 分類
業務流、審批流
3 解決方案
workflow、bpm、activity
二 工作流服務
1 對外介面
1 流程定義的匯入匯出,為不同的流程定義提供商定義了乙個介面規範。
2 使用者介面,工作流系統必須提供與使用者互動的通道
3 外部應用介面,呼叫外部應用所需要的介面
4 不同工作流系統之間的介面,跨系統、跨伺服器之間的資料介面
5 管理和監視,使用者管理和監控系統執行狀態,檢視歷史記錄等資料。
2 核心業務
repositoryservice:用於設計流程模板。
runtimeservice:每當乙個流程定義被啟動一次之後,都會生成乙個相應的流程物件例項。runtime service 提供了啟動流程、查詢流程例項、設定獲取流程例項變數等功能。
taskservice:流程定義中的每乙個執行節點被稱為乙個 task,對流程中的資料訪問,狀態變更等操作均需要在 task 中完成。
identityservice:工作流內建了使用者以及組管理的功能,必須使用這些使用者和組的資訊才能獲取到相應的 task。
managementservice:management service 提供了對流程引擎的管理和維護功能,這些功能不在工作流驅動的應用程式中使用,主要用於工作流系統的日常維護。
historyservice: history service 用於獲取正在執行或已經完成的流程例項的資訊,與 runtime service 中獲取的流程資訊不同,歷史資訊包含已經持久化儲存的永久資訊,並已經被針對查詢優化。
formservice: 工作流中的流程和狀態 task 均可以關聯業務相關的資料。通過使用 form service 可以訪問啟動和完成任務所需的表單資料並且根據需要來渲染表單。
三 持久化
1 持久化方式
xml、資料庫
2 持久化資料庫
四 工作流宿主
1 workflowinvoker提供呼叫工作流的簡單方法,我們使用workflowinvoker物件時,就像使用乙個普通方法一樣建立和啟動工作流,並且只能用於不使用持久化的工作流;
3 workflowservicehost為訊息傳遞活動提供支援,乙個工作流主機可以管理多個工作流例項,用於工作流遠端呼叫。
五 設計時描述
設計時描述類:每個流程以iwfprocess來表示,在流程中我們會有很多的活動點,但是起始點和終結點只有乙個.所以流程的描述會有乙個起始點描述,多個中間活動點描述和乙個終結點描述.這些活動點上可能有一些流轉時的限制條件,所以我們還需要條件的描述.
但是只有這些內容不足以完整的定義乙個流程,因為缺少流程的流向,即活動點之間的關係.所以我們還需要線描述來聯結活動點,說明活動點的先後順序.線的流轉也可能會有一些條件的判斷和限制,比如說當金額超出時流轉到活動點1,否則流轉到活動點2.這樣我們就可以完整地描述乙個流程,並將其儲存至資料庫或檔案.
六 執行時例項
執行時例項:流程的執行時物件與設計時物件相比,多了一些操作和流程的起始結束時間,建立者,操作者,分派人,候選人等資訊,流程執行的操作包括流轉到下一活動點,撤回到已有活動點,取消流程,流程結束.這些操作都由流程的例項來完成.活動點例項檢查是否可以流轉,受到活動點條件描述或線條件描述的制約.
七 執行環境
1 執行時的引數
wfprocessstartupparams
流程啟動引數包含流程建立人,分派人等資訊持有乙個流程描述.
wfruntimeparameters
流程啟動引數,定義是否載入action
wftransferparams
流程流轉時引數包含分派人以及操作人.持有下一活動點的描述.持有下一活動點的入線描述.持有wfbranchprocesstransferparams集合,為唯讀屬性.由描述檔案自動生成
wfbranchprocesstransferparams
子流程啟動引數,持有子流程描述,持有wfbranchprocessstartupparams集合
wfbranchprocessstartupparams
每一種分支流程的啟動引數,包括分派人集合資訊.
2 流程執行上下文
wfprocessactioncontext
在工作流的執行環境中用來存放一些行為和操作,流程的流轉,撤回,通知相關人員等操作都需要使用wfprocessactioncontext中的一些資料或操作.
3 流程例項管理器
wfruntime
前面我們在啟動流程時使用過wfruntime類, 通過wfruntime來管理所有執行中的流程例項。該類提供了流程例項的裝載,儲存,刪除以及啟動新流程例項的功能.它持有乙個很重要的物件,就是wfprocessactioncontext,在wfruntime中它的生命週期是單次會話,即快取在contextcachequeue中,很多方法都要訪問wfprocessactioncontext來完成。
八 前台框架
介紹前台幾個模組之間的關係
九 執行控制
1 表單資料
2 持久層
3 控制項
4 事件
1 工作流執行時觸發的事件
1 aborted工作流中止時觸發的事件
2 completed工作流完成時觸發的事件
3 unloaded 工作流解除安裝時觸發的事件
4 idel 工作流進入空閒狀態時觸發的事件
5 persistableidle工作流進入空閒狀態並且可被持久化時執行的事件
2 客戶選擇觸發的事件
public event movetoeventhandler beforemoveto;
public event movetoeventhandler aftermoveto;
public event executoreventhandler beforeexecute;
public event preparetaskseventhandler preparemovetotasks;
public event preparetaskseventhandler preparenotifytasks;
public event prepareuseroperationlogeventhandler prepareuseroperationlog;
public event executoreventhandler aftermodifyworkflow;
public event erroreventhandler error;
工作流使用總結(1)
1.什麼是工作流 workflow 工作流 是 業務過程的部分或整體在計算機應用環境下的自動化,是對工作流程及其各操作步驟之間業務規則的抽象。它主要解決的是 為了實現某個業務目標,利用計算機在多個參與者之間按某種預定規則自動傳遞文件 資訊或者任務。2.使用工作流優點 工作流系統,實現了工作流程的自動...
git flow工作流總結
寫在前面 文章的出處是由於作者本人對於gitlab 以及sourcetree的使用實在是摸不著頭腦,所以決定將各個地方詳細的截圖下來 因為我找的資料裡面對我來說都是不夠用的 由於在學校的時候沒有接觸過git,所以實習有些不適應,就這些天的使用就行相關的總結。現在在實習公司用的gitlab sourc...
Git Flow工作流總結
gitflow 工作流定義了乙個圍繞專案發布的嚴格分支模型。雖然比功能分支工作流複雜幾分,但提供了用於乙個健壯的用於管理大型專案的框架。gitflow 工作流沒有用超出功能分支工作流的概念和命令,而是為不同的分支分配乙個很明確的角色,並定義分支之間如何和什麼時候進行互動。除了使用功能分支,在做準備 ...