16.1 數據結構
目前的流程信息沒有保存到任何一個可持久化的環境中,根據網友建議,增加存儲工作流xml文件的功能。這個功能使用數據庫來實現,您也可以有更多的持久化方式。
根據工作流引擎的實現不同,有些引擎只需要xml文件配置就可以了,有些引擎需要建立數據庫的模型。在本文中,假設工作流引擎是跟數據庫相關的。
整個持久化流程是這樣的:
從使用webservices從服務器下載相應的流程xml描述(或者新建一個流程)
在客戶端使用流程設計器進行流程設計或者修改,此時任何修改都在本地完成
在用戶點擊保存按鈕以後,根據當前流程生成對應的xml字符串,通過webservices上傳到服務器。
在服務器分析xml文件,並將相應的數據更新到數據庫
首先需要定義一些工作流的數據表,這些表包括流程表、活動表、規則表。因為還沒有涉及到流程監控,所以暫不考慮工作流實例表。另外為了簡化程序,也沒有配置活動類型、規則類型等輔助表,而直接在相關的活動和規則表裡面設置了相關字段。
流程表(WorkFlow_Process)
字段名稱 類型 意義 WorkFlowID PK,Varchar(50),not nul 主鍵 WorkFlowName Nvarchar(50),not nul 流程名稱 WorkFlowXM Ntext,not nul 流程xml描述文件
活動表(WorkFlow_Activity)
字段名稱 類型 意義 ActivityID PK,Varchar(50),not nul 主鍵 ActivityName Nvarchar(50),not nul 活動名稱 ActivityType Varchar(50),not nul 活動類型 ProcessID FK,varchar(50),not nul 關聯流程ID
規則表(WorkFlow_Rule)
字段名稱 類型 意義 RuleID PK,Varchar(50),not nul 主鍵 RuleName Nvarchar(50),not nul 規則名稱 BeginActivityID FK,Varchar(50), nul 關聯的啟示活動 EndActivityID FK,varchar(50), nul 關聯的結束活動 Condition Nvarchar(1000),nul 流轉條件 RuleType Varchar(50),not nul 規則類型
下面的圖片顯示了這幾個表的關系。
您可以在codeplex下載本程序源代碼以及數據庫備份文件(sq2005數據備份文件)
(最近更新沒有那麼頻繁了,見諒。)