探索工作流(八) 使用總結

2021-07-10 05:19:41 字數 3664 閱讀 7267

一 工作流概述

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 工作流沒有用超出功能分支工作流的概念和命令,而是為不同的分支分配乙個很明確的角色,並定義分支之間如何和什麼時候進行互動。除了使用功能分支,在做準備 ...