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

  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. 流程状态设计

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

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

 

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

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

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

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

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

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

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

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

  1. 流程引擎表结构

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

流程注册表

 

流程工作人员表

 

重要字段解析:

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,把数据删除掉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驰骋低代码、工作流、表单引擎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值