ccflow表结构与运行机制(二次开发必读)
為什么80%的碼農都做不了架構師?>>> ??
馳騁工作流引擎,工作流程管理系統,表結構與運行機制。
-------------------------------------------------------
前言:
?
??? 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 , 表示此流程已經完成。
轉載于:https://my.oschina.net/ccflow/blog/2993577
總結
以上是生活随笔為你收集整理的ccflow表结构与运行机制(二次开发必读)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3.2Python的循环结构语句:
- 下一篇: egg(87)--egg之redis的安