1. 程式人生 > >ccflow表結構與執行機制(二次開發必看)

ccflow表結構與執行機制(二次開發必看)

馳騁工作流引擎,工作流程管理系統,表結構與執行機制。

-------------------------------------------------------

前言:

 

    1, ccflow 有自動修復資料表功能, 所以表的欄位的變化不需要使用者干預由ccflow自動完成. 所以如果你看到sql的錯誤,在執行一般就可以解決,如果解決不了,就執行一次資料庫修復工具。

    2, ccflow 有自動增加欄位備註功能,所以每個欄位的中文名稱都已經增加了資料表的欄位的備註屬性上了,請注意對照,以方便您閱讀ccflow.

    3, 瞭解ccflow 的表結構是您二次開發的基礎,所以ccflow的高階使用者需要熟悉每個表,掌握必要的表結構. 但是沒有必要全部掌握。

 

    4, ccflow 表命名規則是 字首+"_"+表名.  大多以英文縮寫或者,拼音大寫組成. 比如: Port_Emp 人員表. WF_Flow 流程表。

 

 

ccflow 表分為框架表、流程規則描述表、流程資料執行表、公共表4大類:

-------------------------------------------------------------------

 

1, 框架表.

   通常以Sys_ 與 Port_ 開頭. 也可以稱為ccflow系統表. 它是儲存系統執行的基礎資訊. 沒有必要多瞭解它們.

   

   列舉如下:

    Port_Emp: 操作員表.

    Port_Station: 崗位表

    Port_Dept: 部門表

    Port_EmpStation: 人員崗位表.

    Port_EmpDept: 人員部門對應表.

    Port_Unit: 集團公司表,對於集團類的使用者有效.

 

    Sys_MapData: 對映主表

    Sys_MapAttr: 欄位表

    Sys_MapDtl:  表單對映明細表.

    Sys_MapExt : 表單對映擴充套件資訊表

    Sys_MapFrame :表單框架表

    Sys_MapM2M: 多對多的關係表

  

    Sys_FrmAttachment: 表單附件表

    Sys_FrmImg: 表單圖片表

    Sys_FrmImgAth: 圖片附件表.

    Sys_FrmLab: 表單標籤表

    Sys_FrmLine: 表單線表.

    Sys_FrmLink: 表單連線.

    Sys_FrmRB: 表單單選按鈕.

    Sys_GloVer: 全域性變量表.

    Sys_GroupField: 表單欄位分組表.

    Sys_Log:日誌表

    Sys_Serial : 序列號生成記錄表.

    Sys_Enum: 列舉資訊表.

    Sys_EnumMain: 列舉資訊主表.

    Sys_SFTable :自定義表

    Sys_UserRegedit : 使用者註冊資訊表.

    Sys_CField: 查詢欄位選擇資訊儲存表. 

    Sys_Config: 系統配置表.

    Sys_Contrast: 統計分析表:

    Sys_DefVal: 預設值表,快速填寫大塊文字時臨時資訊儲存.

 

 

2, ccflow流程規則描述表.  用來儲存流程配置的基礎資訊。 以 WF_ 開頭.

 

   列舉如下:

    WF_FlowSort : 流程類別表.

    WF_Flow : 流程表.

    WF_FlowStation: 流程完成操送的崗位表.

    WF_FlowEmp :  可控制流程的人員表.

    WF_FlowNode : 流程的節點表.

    WF_Node : 節點表

    WF_NodeStation : 節點崗位(能夠訪問該節點的崗位.)

    WF_NodeDept : 節點部門表(能夠訪問該節點的部門)

    WF_NodeEmp : 節點人員表(能夠訪問該節點的人員)

    WF_NodeFlow: 節點了流程表(在此節點上能夠調起的子流程)

    WF_NodeReturn : 可退回到的節點(一個節點能夠退回的節點,多對多的關係.)

 

    WF_BillTemplate 單據表

    WF_BillType 單據型別表

    WF_Cond :條件表 (方向條件,流程完成條件,節點完成條件)

    WF_Direction :方向表

    WF_Event : 事件表(節點事件,流程事件)

    WF_FAppSet : 應用配置表(可以配置呼叫第三方的資料)

 

    WF_Frm 流程表單.

    WF_FrmNode : 流程表單與節點對應關係表.

    WF_LabNote : 標籤用在流程設計器的標籤.

    WF_Listen : 訊息收聽配置表. 詳細請 baidu "ccflow 訊息收聽"

 

    WF_Rpt : 流程報表設計

    WF_RptAttr : 流程報表屬性

    WF_RptEmp : 報表可訪問的人員

    WF_RptStation : 報表可訪問的人員

    WF_RunRecord : 報表可訪問的人員

    WF_SelectAccper : 報表可訪問的人員

 

3, ccflow流程執行資料表.

 

    WF_GenerFH : 分合流資訊登錄檔,對於是分合流的流程才有效,發起一條分合流,就多一條資料在此。

    WF_GenerWorkFlow : 流程登錄檔

    WF_GenerWorkerlist : 節點工作人員表.(流程執行完成後此記錄就被刪除了)

    WF_Bill : 單據資訊儲存表. 

    WF_CHOfFlow : 流程考核資訊表.

    WF_CHOfQL  : 流程質量考核資訊表.

    WF_Emp  : 流程人員配置資訊表

    WF_FileManager :流程附件資訊儲存表

    WF_ForwardWork : 轉發資訊儲存表.

    WF_RememberMe : 投遞路徑記憶表, 請baidu "ccflow 智慧投遞"

    WF_ReturnWork : 退回資訊儲存表

    WF_M2M : 一對多的關係儲存表.

 

 

4, 公共字典表. 大多以Pub CN開頭。

    比如: 城市,省份,片區,年月,工作日. 這裡不介紹了.

 

 

    如果您對以上的表結構在大概的認識,您可以閱讀如下檔案了.

 

 

瞭解ccflow資料表執行機制,為自己專案做高階的查詢與二次開發(開發進階篇).

=======================================================================================================

 

一, 流程建立時.

 

   流程表 WF_Flow,  節點WF_Node.

 

   1, 流程自動生成一個三數數的流程編號. 比如: 0001.

 

   2, ccflow自動生成開始與結束兩個節點. 節點編號為 101 與 199. 如果在有建立節點時,節點編號就為 102, 103 ....

 

   3, ccflow 會為每個節點生成一個物理表,這個節點的資訊儲存這個表裡,格式為 “ND” + 節點編號,比如:ND101,ND199.

      每個節點表都有相同的欄位.

      比如: OID工作ID, RDT記錄日期, Rec記錄人,CDT,完成時間. NodeState 節點狀態.

      開始節點比較特殊, 它多一個 WFState 欄位.就是流程狀態,用來記錄流程執行的狀態.

 

   4, 建立一個流程 WF_Flow,插入一條流程資料. WF_Node 插入n條節點資料.

 

    

   5, ccflow會產生一個流程資料表,系統產生一個ND+流程編號+Rpt 命名的表, 比如:ND1Rpt 它是流程資料表。

      它把所有節點欄位的彙總集合形成的一個表.流程在啟動後,執行中,完成後,這個表的資料一直跟隨流程運轉而更新.所以你可以查詢  

      任何資料在這個流程表中。

 

   6, ccflow 會產生一個節點檢視,V+流程編號. 比如:V001.  這個檢視就是把本流程中的各個節點資料,相同的欄位都彙總出來。

      事例如下:

      CREATE VIEW [dbo].[V001] /* WorkFlow:測試流程 Date:2011-07-30 */

       AS

       SELECT '101'+'_'+CAST(OID AS varchar(10)) +'_'+CAST(FID AS VARCHAR(10)) AS MyPK, '101' AS FK_Node,OID,FID,RDT,substring(RDT,1,7) AS       FK_NY,CDT,Rec,Emps,NodeState,FK_Dept, 1 AS MyNum FROM ND101

       UNION

       SELECT '199'+'_'+CAST(OID AS varchar(10)) +'_'+CAST(FID AS VARCHAR(10)) AS MyPK, '199' AS FK_Node,OID,FID,RDT,substring(RDT,1,7) AS          FK_NY,CDT,Rec,Emps,NodeState,FK_Dept, 1 AS MyNum FROM ND199

      GO

      對於開發時效考核的朋友大用用處,可以統計每個節點用的天數,規定完成的天數,完成的工作量。

 

    

 

 

二, 流程執行時.

 

   分合流流程登錄檔: WF_GenerFH

   流程登錄檔: WF_GenerWorkFlow

   工作人員表: WF_GenerWorkerlist

 

   1. 啟動一個流程後,ccflow自動產生一個WorkID, 一個流程一個WorkID, 並且處開始節點表(ND101)中插入一條資料, WFState=0 流程狀態=0 表示執行中.

 

   2. 啟動一個流程後,就產生一條資料,放在WF_GenerWorkFlow ,

 

   3. 傳送一個步驟後,就把接受的工作人員放入WF_GenerWorkerlist .

 

   4. 流程執行完成後,就把兩個表中的這個 WorkID 的資料清除.

 

   5, 在流程資料表裡(ND1Rpt)中, 每個節點有新採集的資料就會copy到此表中.

 

   所以結合流程資料表,與當前的這兩個表,你可以查詢出來想要的資料滿足二次開發.

   

 

三, 流程完成後.

 

    流程完成後,就與 WF_GenerWorkFlow ,WF_GenerWorkerlist 沒有關係了.

  

    所以查詢流程資料從,流程資料表裡,或者從節點資料表裡查詢. 比如: ND101, ND102, ND199, NDRpt. V001 .

 

    開始節點的流程狀態=1 , 表示此流程已經完成。

更多詳細資訊可以去ccflow.org檢視