驰骋工作流引擎,工作流程管理系统,表结构与运行机制。

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

前言:

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表机构与运行机制(二次开发必看)的更多相关文章

  1. 利用JS提交表单的几种方法和验证(必看篇)

    第一种方式:表单提交,在form标签中增加onsubmit事件来判断表单提交是否成功 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <scr ...

  2. 试着讲清楚:js代码运行机制

    一. js运行机制 js执行引擎 经常看文章的说到js是带线程的,其实这个说法非常的模糊,准确的是js执行引擎是单线程的,js执行引擎就是js代码的执行器,有了这个概念就可以下来说说js是如何运行的了 ...

  3. 3.NetDh框架之缓存操作类和二次开发模式简单设计(附源码和示例代码)

    前言 NetDh框架适用于C/S.B/S的服务端框架,可用于项目开发和学习.目前包含以下四个模块 1.数据库操作层封装Dapper,支持多种数据库类型.多库实例,简单强大: 此部分具体说明可参考博客: ...

  4. Chrome扩展开发之二——Chrome扩展中脚本的运行机制和通信方式

    目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...

  5. SSL/TLS 协议运行机制概述(二)

    SSL/TLS 协议运行机制概述(二) 在SSL/TLS 协议运行机制概述(一)中介绍了TLS 1.2 的运行机制,现在我们来看年 TLS 1.3 的运行机制.会涉及到SSL/TLS 协议运行机制概述 ...

  6. 《疯狂Java讲义》(二)---- Java程序的运行机制和JVM

    1. 运行机制 Java源文件(*.java)-----使用javac编译----编译成*.class文件----使用java解释执行----特定平台的机器码 2. 原理 负责解释执行字节码文件的就是 ...

  7. 通过案例对 spark streaming 透彻理解三板斧之二:spark streaming运行机制

    本期内容: 1. Spark Streaming架构 2. Spark Streaming运行机制 Spark大数据分析框架的核心部件: spark Core.spark  Streaming流计算. ...

  8. 深入GPU硬件架构及运行机制

    目录 一.导言 1.1 为何要了解GPU? 1.2 内容要点 1.3 带着问题阅读 二.GPU概述 2.1 GPU是什么? 2.2 GPU历史 2.2.1 NV GPU发展史 2.2.2 NV GPU ...

  9. SSL/TLS协议运行机制的概述

    互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 ...

随机推荐

  1. 文末福利丨i春秋互联网安全校园行第1站精彩回顾

    活动背景 为响应国家完善网络安全人才培养体系.推动网络安全教育的号召,i春秋特此发起“互联网安全校园行”系列活动.旨在通过活动和知识普及提升大学生信息安全意识,并通过线下交流.技能分享.安全小活动以及 ...

  2. 美图App的移动端DNS优化实践:HTTPS请求耗时减小近半

    本文引用了颜向群发表于高可用架构公众号上的文章<聊聊HTTPS环境DNS优化:美图App请求耗时节约近半案例>的部分内容,感谢原作者. 1.引言 移动互联网时代,APP 厂商之间的竞争非常 ...

  3. [Swift]LeetCode30. 与所有单词相关联的字串 | Substring with Concatenation of All Words

    You are given a string, s, and a list of words, words, that are all of the same length. Find all sta ...

  4. [Swift]LeetCode88. 合并两个有序数组 | Merge Sorted Array

    Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: T ...

  5. SpringBoot时间戳与MySql数据库记录相差14小时排错

    项目中遇到存储的时间戳与真实时间相差14小时的现象,以下为解决步骤. 问题 CREATE TABLE `incident` ( `id` int(11) NOT NULL AUTO_INCREMENT ...

  6. 11.Git分支-远程跟踪分支的概念、多个远程仓库的使用

    1.远程跟踪分支的概念 远程引用是对远程仓库的引用,包括分支.标签等等. 1.可以通过 git ls-remote <remote> 来获得远程引用的完整列表  2.git remote ...

  7. Xapian的内存索引-添加文档

    本文主要记录Xapian的内存索引在添加文档过程中,做了哪些事情. 内容主要为函数执行过程中的流水线. demo代码: Xapian::WritableDatabase db = Xapian::In ...

  8. IdentityServer4实战 - API与IdentityServer的交互过程解析

    开局一张图,内容全靠看.如有不明白的地方可在评论里说出,后面我再加上.

  9. SignalR学习笔记(一) 简单聊天室

    什么是ASP.NET SignalR? ASP.NET SignalR是一个方便程序员添加实时网络通信功能的类库.所谓的实时网络通信功能(Real-time Web Functionality)就是需 ...

  10. Android--MediaRecorder录音录像

    前言 Android除了支持播放多媒体文件之外,还可以从对应的硬件中捕获多媒体,比如从麦克风录音.从摄像头录像等.本篇博客讲解一下Android下如何通过MediaRecorder进行录音以及录像的步 ...