自己动手写工作流

    很多时候,工作流引擎就是系统的核心,可是很多工作流框架太过死板,配置项也比较麻烦,归根结底工作流引擎也不过是帮助我们完成事件的框架,其实可以根据自己的需求自己设计数据库,完成工作流
    首先工作流必备的几张表有:历史表,步骤表,步骤历史表和事件当前状态表,这四张表是最基础的,如果工作里比较复杂也可以根据自己的工作流自行增加删减

历史表:历史表是对事件办理完成后的归档保存处理,所以历史表必须要包含事件的所有字段,这里就不给出具体表结构,根据自己的事件自己设计。
步骤表:步骤表的作用,首先定义每个工作流的步骤,当流程开始时流程的每一步以及下一步是什么大致表结构如下:

CREATE TABLE "FLOW_STATE" 
   ("CODE" NVARCHAR2(255), 
    "STATE_CODE" NVARCHAR2(255), 
    "BEROF_NUM" NVARCHAR2(255), 
    "AFTER_NUM" NVARCHAR2(255), 
    "STATE_NAME" NVARCHAR2(255), 
    "EXPLAIN" NVARCHAR2(255)
   )

该表包括主键、步骤code、上一步code、下一步code,当前步骤名称,及步骤注释。
步骤历史表:记录每个事件,每一步的历史留痕,事件每走一步,这张表就插入一条数据,表结构如下:


  CREATE TABLE "FLOW_STEP" 
   ("CODE" NVARCHAR2(255), 
    "CREATE_DATE" NVARCHAR2(255), 
    "PERSON_CODE" NVARCHAR2(255), 
    "BEFOR_STEP" NVARCHAR2(255), 
    "AFTER_STEP" NVARCHAR2(255), 
    "OPINION" NVARCHAR2(255), 
    "STEP_STATE" NVARCHAR2(255), 
    "MAIN_CODE" NVARCHAR2(255)
   ) 

该表包括主键,操作时间按,操作人,上一步操作人,下一步操作人,意见,步骤code,以及事件当前状态表code。
事件当前状态表:主要记录事件分类,事件当前状态等信息,表结构如下:

 CREATE TABLE "ARES"."FLOW_MAIN" 
   (    "CODE" NVARCHAR2(255), 
    "CREATE_DATE" NVARCHAR2(255), 
    "PERSON_CODE" NVARCHAR2(255), 
    "EVENT_CODE" NVARCHAR2(255), 
    "EVENT_STATE" NVARCHAR2(255) DEFAULT NULL, 
    "EVENT_NAME" NVARCHAR2(255), 
    "STEP_NUM" NVARCHAR2(255)
   )

此表关联所有表的相关信息,包括主键,创建时间,创建人,事件code,事件状态,事件名称code以及事件步骤code

猜你喜欢

转载自blog.csdn.net/sunguoqiang1213/article/details/78190840