第1节. 关键字

驰骋工作流引擎 流程快速开发平台 workflow ccflow jflow

第1节. 流程引擎表结构的设计

流程引擎表是流程引擎控制流程运转的数据存储表,是整个流程引擎的核心表。理解表结构,掌握状态字段,相关字段变化的规律,就掌握的整个流程引擎运转的规律了。

1.1.1: 流程引擎表的作用

流程引擎表,是用来存储流程运行中信息的表。

流程在运行过程中,需要把中间数据写入到该表中。

一个流程启动后,就创建一个workid,就在流程引擎注册表里注册一条数据,有一个字段WFState来表示该流程的运行状态,一个FK_Node标识该流程运行到的节点。

流程启动发送到下一个节点,系统就会产生下一个节点的工作人员,每个人员都有一条记录写入到WF_GenerWorkerList。 在这个WF_GenerWorkerList表里,有FK_Emp,WorkID,FK_Node三个字段作为联合主键。

WF_GenerWorkerList的字段IsRead标明该 待办该文件是否读取, IsPass标识该待办的状态,是否通过/处理过,关于这两张表大详细信息请参考下一章节。

当一个流程结束之后,WF_GenerWorkerlist这个表关于该流程实例的workid数据被全部清除掉,这个workid的流程在这个表的使命已经完成。在WF_GenerWorkFlow表里的状态字段(WFState) 标记已经完成状态,可以供历史流程查询。

工作流程引擎的待办列表是通过这两个表联合组成一个视图实现的。

1.1.2: 流程状态设计

流程在整个生命周期中有不同的状态,合理的设计流程状态,正确的划分是系统协调一致稳定运行的基础。

我们把流程分为如下状态。

流程状态变化的概要说明:

操作员启动一个流程,创建一个workid,这个时候的状态是空白状态,也叫站位状态,如果在启动之前已经有了这个站位状态,它就不在创建新的workid而是取出来这个workid作为当前流程的实例。

如果启用了草稿规则,并且允许有草稿的模式下:

这个时间,如果用户点击保存该状态从空白状态转化为草稿状态,如果用户执行发送当前节点就运行到下一个节点上去了,当前状态变为运行中的状态。如果用户直接关闭了,这个时间的状态就是草稿状态,可以在草稿里找到这条实例记录。

如果不启用草稿,在这种模式下:

这个时间,如果用户点击保存,仍然是空白状态。用户点击发送后,由空白状态转化为运行中状态,当前节点运动到下一个节点上去,下一个节点的工作人员就产生了待办。

如果上一个节点退回了,执行了退回操作,当前的流程状态就变成为退回状态,上一个节点人被退回人就有了待办工作,被退回人打开后,就可以看到退回消息,他点击发送后又变成了运行中的状态,发送到下一个节点上去了。

流程走到最后一个节点,点击发送,整个流程就结束了,状态变为流程完成状态。

1.1.3: 流程引擎表结构

每个字段的详细意思,请参考数据表结构如下图:

流程注册表

流程工作人员表

重要字段解析:

WF_GenerWokFlow

字段名

中文名

解释

WorkID

工作ID

唯一的主键,该表不能重复。

WFState

状态

流程运行状态:

请参考流程状态设计

Title

标题

流程的标题

FK_Flow

流程模版编号

 

FK_Node

停留节点

停留到那个节点上去了。

Starter

发起人

 

RDT

发起日期

 

工作人员列表: WF_GenerWokerList

字段名

中文名

解释

WorkID

工作ID

主键

FK_Emp

状态

主键

FK_Node

标题

主键

IsPass

是否通过?

0=未通过,1=通过

IsRead

是否读取?

0=未读,1=已读

SDT

应完成日期

 

RDT

到达日期

 

CDT

实际完成日期

 

流程运行完毕后,根据当前的工作ID,把数据删除掉。

第2节. 流程业务数据表设计

流程业务数据表是指,一个流程在运转过程中的数据存储的相关表,它包含了流程业务表与流程轨迹表两部分。

1.1.4: 流程业务表

该表名可以被自定义,默认为”ND”+int.prease(流程编号)+”Rpt”为业务表名,该表必须有一个OID作为主键的字段,整个OID字段存储的是WorkID,与流程的WorkID关联在一起。

该业务表的字段由两部分组成:系统字段+业务字段。

系统字段有:

业务字段,就是表单信息的字段,比如:请假人,请假时间,请假类型等。

字段名称

类型

说明

OID

int

OID主键-与流程的workid一致

RDT

nvarchar

记录日期

Title

nvarchar

流程标题

FID

int

FID分合流用到

CDT

nvarchar

完成日期

Rec

nvarchar

记录人

Emps

nvarchar

操作员,多个用逗号分开。

FK_Dept

nvarchar

所在部门

FK_NY

nvarchar

年月,比如:2018-01,统计分析用.

MyNum

int

个数,统计分析用

PNodeID

int

父子流程所用

PrjName

nvarchar

工程名称

PrjNo

nvarchar

工程编号,工程流程所用

PEmp

nvarchar

父子流程所用

AtPara

nvarchar

参数属性

BillNo

nvarchar

单据编号

FlowNote

nvarchar

流程备注

GUID

nvarchar

唯一标识符

WFSta

int

简易状态

FlowStartRDT

nvarchar

发起日期

FlowEnderRDT

nvarchar

最后节点处理日期

FlowEndNode

int

最后停留的节点

FlowDaySpan

float

流程跨度天数

PWorkID

int

父子流程所用

PFlowNo

nvarchar

父子流程所用

FlowEmps

nvarchar

流程参与人

FlowEnder

nvarchar

最后处理人

FlowStarter

nvarchar

流程发起人

WFState

int

流程状态

1.1.5: 轨迹表

流程轨迹表也叫流程日志表,他是记录流程在整个过程中执行的动作操作,如下图就是流程日志表。

流程日志表的作用可是生成流程轨迹图,流程时间轴信息。可以用他来追溯整个流程的运行过程,也可以用该表的数据回滚流程。

转载于:https://www.cnblogs.com/mengjuan/p/10221733.html

驰骋工作流引擎设计系列04 流程引擎表结构的设计相关推荐

  1. 关于工作流程引擎表结构的设计概要说明.

    流程引擎表结构的设计 流程引擎表是流程引擎控制流程运转的数据存储表,是整个流程引擎的核心表.理解表结构,掌握状态字段,相关字段变化的规律,就掌握的整个流程引擎运转的规律了. 流程引擎表的作用 流程引擎 ...

  2. MySQL数据库表结构的设计

    一.前言 1.1 关系型数据库 数据库关系型模型的概念最早由"关系数据库之父"之称的埃德加·弗兰克·科德(Edgar Frank Codd或E. F. Codd)博士提出,1970 ...

  3. ezdml 支付mysql 吗_关于EZDML数据库表结构制作设计工具使用踩的坑

    我使用的是一款EZDML的数据库表结构制作设计工具 最开始在数据库创建数据库名为personalmall,基字符集为默认,数据库排序规则也是默认,创建完成之后 去EZDML生成SQL 点击执行sql ...

  4. 状态机/流程引擎/审批流的流程引擎/结合低代码开发的流程引擎 区别 业务系统中使用流程引擎

    理念 - 反对用模板,用流程引擎实现业务 先强调一点. 业务系统, 要学习 ,反对用模板,用流程引擎实现业务. 除非有人参与,必须用流程引擎,不然不要用状态机or流程引擎, 不要用. 但是要学习流程引 ...

  5. (一)什么是流程引擎?为什么学习流程引擎?

    activity(流程引擎)从零入门到实战学习 1.什么是流程引擎? 2.为什么需要学习流程引擎? 3.为什么选择activiti? 本编文章将详细介绍什么是流程引擎,为什么学习,以及为什么选择act ...

  6. 数据库设计系列[04]组织结构加入权限系统

    1引言 接着上一篇随笔"数据库设计系列[03]权限系统":在上篇随笔中,只是简单地介绍基于角色和操作访问控制模型,能把权限控制到页面和按钮.CDM图: 2 新的需求:组织结构 比如 ...

  7. python获取数据库查询的元数据_Python数据库、MySQL存储引擎、使用分区表、更改表结构、获取数据库元数据...

    :1. 数据库基本操作 1.1 创建数据库 - CREATE DATABASE test; #创建数据库 - GRANT ALL ON test.* to user(s); #为指定用户(或所有用户) ...

  8. mysql评论表结构设计_文章评论嵌套显示mysql表结构如何设计(形式如网易新闻评论)...

    现在有一张post表 (结构不能改变) tid 主题pid pid 回复id 现在新增了评论嵌套显示功能,即tid=1 a评论了一条 pid为1 b回复了a的评论 pid为2 c回复了b的评论 pid ...

  9. 数据库设计中常见表结构的设计技巧(转)

    2019独角兽企业重金招聘Python工程师标准>>> 一.树型关系的数据表 不少程序员在进行数据库设计的时候都遇到过树型关系的数据,例如常见的类别表,即一个大类,下面有若干个子类, ...

最新文章

  1. 能打羽毛球又能击穿墙壁,戴上这款机械臂,秒变蜘蛛侠反派「章鱼博士」
  2. python的快速入门-Python如何快速入门的基础知识
  3. Vista 系统C盘(系统盘)越来越小的问题.与解决.
  4. ASP.NET Core服务器综述
  5. (译)我的第一游戏完成之后的5点心得体会
  6. 解决:git push error: failed to push some refs to
  7. 计算机题库启用宏,2009计算机一级:打开文件时一定要启用宏
  8. oracle18c 配置,0报错!Oracle 18C 完全安装指南及常见问题汇总
  9. 通用AI元素识别在UI自动化测试的最佳实践
  10. 最有范儿的H5制作工具—应用之星之表单控件详解
  11. 火狐浏览器打开后是搜狗浏览器_搜狗浏览器和Firefox浏览器哪个好
  12. /dev/sr0 3.7G 3.7G 0 100% /media/CentOS_6.8_Final no space left on device磁盘空间不足处理
  13. 如何解决zt210打印标签机问题,状态灯和耗材灯都变为红色,打印空白 打印不全 且偏了
  14. HX711测试【一个非常廉价且实用的模块】
  15. 计算机无法设置双屏显示,电脑双屏显示怎么设置?
  16. 群集共享卷(CSV)
  17. 路由与交换技术期末上机考核
  18. 迪文屏幕T5L平台学习笔记七:RS485测试
  19. [纯净版]小路工作室GhostXP 2008贺岁版
  20. 在excel中计算风向的函数

热门文章

  1. php定时删除目录,shell定时删除指定目录下的文件
  2. spark hive udf java_【填坑六】 spark-sql无法加载Hive UDF的jar
  3. springboot源码 红色J_通达信副图指标源码之,出手就赢
  4. java Date.getTime()返回负数异常情况分析
  5. eclipse 插件扩展新建java页面_java-Eclipse插件-弹出菜单扩展
  6. 唐朔飞计算机组成原理pdf_唐朔飞计算机组成原理第2版配套题库名校考研真题课后答案资料课后习题章节题库模拟试题...
  7. 织梦 PHP 字段 调用,织梦dede网站内容模型普通文章调用自定义图片字段的方法(和调用...
  8. 第十六届全国大学智能汽车竞赛全向组沁恒芯片申请统计情况
  9. 2021年春季学期-信号与系统-第八次作业参考答案-第九小题
  10. 第十五届全国大学生智能汽车竞赛 人工智能创意组总决赛