轻量级工作流系统的实现
目前项目的需要,开发了一个轻量级的工作流系统。用于处理简单的顺序工作流,现将实现方式描述如下。还请专家多多指点。
一、 系统组成:
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页面等),处理的模式可以根据需要不断补充或完善。
当工作流只有一个活动时,工作流的实例退化为数据表管理,可以代替简单的数据表单。
以上是我的一点浅见,请多提宝贵意见。
浙公网安备 33010602011771号