轻量级工作流系统的实现

         目前项目的需要,开发了一个轻量级的工作流系统。用于处理简单的顺序工作流,现将实现方式描述如下。还请专家多多指点。

一、 系统组成:

1、   工作流定义:

        工作流由多个前后相关的活动组成;

        每一个活动由所要处理的各类数据组成。

2、   工作流管理:

        根据工作流定义实现特定的工作流实例。

二、 实现:

1、   工作流定义:

A) 活动的定义

活动的属性包含:

名称、

处理人/处理角色、

代理人/代理角色、

是否需要确认(处理人明确给出通过或者不通过)、

是否需要等待本节点处理后才流向下个节点

是否需要节点内所有人员处理

是否可以终止

B) 活动所要处理的数据类型的定义

活动所要处理的数据类型定义为:

     public enum FieldType

     {

         ATTACH,            //附件

         BINARY,

         BIT,

         CHAR,

         DATETIME,

         DECIMAL,

         FLOAT,

         IMAGE,

         INT,

         MONEY,

         NCHAR,

         NTEXT,

         NUMERIC,

         NVARCHAR,

         SMALLDATETIME,

         SMALLMONEY,

         TEXT,

         VARCHAR,

          UNDERWRITE,        //签名

         MYDEPARTMENT,     //我的部门

         CHILDFLOW,         //子流程

         CHILDTABLE         //子表

     }

2、   工作流管理:

        工作流管理模块是根据定义的工作流动态创建其实例,主要是根据每一种活动所要处理的数据类型定义相应的处理工厂(数据操作页面创建、DataGrid模板创建、更新SQL、甚至生成可再开发的aspx页面等),处理的模式可以根据需要不断补充或完善。

        当工作流只有一个活动时,工作流的实例退化为数据表管理,可以代替简单的数据表单。

        以上是我的一点浅见,请多提宝贵意见。

Posted on 2006-09-02 16:42  zhili  阅读(1275)  评论(0)    收藏  举报