工作流引擎的设计与实现
第四章 工作流引擎的设计与实现(一) (2009-03-24 17:26:26)转载▼标签: 工作流数据模型 工作流数据结构 工作流定义 工作流实例 it 分类: 基于工作流的政务系统--设计 工作流引擎的作用是解释流程定义,创建、执行和控制流程实例。对于
第四章 工作流引擎的设计与实现(一)

4.1 工作流引擎的数据模型设计
4.1.1 工作流定义的数据库设计
字段名 |
字段类型 |
字段描述 |
ProcessID |
整数(标识) |
过程定义编号 |
ProcessName |
字符串 |
过程定义名称 |
RelatedTable |
字符串 |
与当前过程定义相关联的业务数据表名称 |
Alias |
字符串 |
业务数据表中文名称 |
IdentifiedField |
字符串 |
业务数据表的标识字段名称 |
IsDefineCompleted |
字符(Y/N) |
当前过程是否已被完整定义(只有定义完整的过程才可用) |
IsSuspended |
字符(Y/N) |
当前过程是否被挂起(被挂起的过程不可用) |
DueDate |
整数 |
业务过程的承诺办理期限(单位为天) |
字段名 |
字段类型 |
字段描述 |
TaskID |
整数(标识) |
节点(任务)编号 |
TaskName |
字符串 |
节点(任务)名称 |
ProcessID |
整数 |
所属过程定义编号 |
NodeType |
字符串 |
节点类型(开始、结束节点或任务节点) |
ProcessLogic |
字符串 |
节点的过程逻辑属性(是否分支或合并节点) |
AssignedRole |
整数 |
分配的任务角色编号 |
AboutAttached |
两位字符 |
是否可以上载或下载附件 |
ReadableFields |
字符串 |
当前任务可读的业务数据表字段名集和 |
WritableFields |
字符串 |
当前任务可编辑的业务数据表字段名集和 |
DueDate |
整数 |
当前任务的承诺完成期限(天) |
PrintedTable |
字符串 |
当前任务可打印的表格编号集合 |
字段名 |
字段类型 |
字段描述 |
ID |
整数(标识) |
迁移(有向线段)的编号 |
ProcessID |
整数 |
迁移所属过程定义的编号 |
ToNodeName |
字符串 |
迁移指向的节点名称 |
FromNodeName |
字符串 |
迁移的起始节点名称 |
4.1.2
字段名 |
字段类型 |
字段描述 |
ProcessInstanceID |
整数(标识) |
流程实例编号 |
Description |
字符串 |
业务实例的内容描述 |
ProcessDefinitionID |
整数 |
流程定义编号 |
StartTime |
日期 |
流程实例的创建日期 |
EndTime |
日期 |
流程实例的结束日期 |
StartTaskInstanceID |
整数 |
开始任务实例编号 |
RelatedTable |
字符串 |
过程相关的业务数据表名称 |
IdentityFieldValue |
数字 |
关联业务表的记录编号值 |
IsSuspended |
字符 |
Y(N) 是否冻结当前流程实例 |
SuspendedTime |
日期 |
冻结时间 |
IsCanceled |
字符 |
Y(N) 是否取消当前流程 |
CanceledTime |
日期 |
取消流程的时间 |
CanceledReason |
字符串 |
取消流程的原因 |
Message |
字符串 |
记录每个环节的任务名称与完成人,以及用户审核意见 |
字段名 |
数据类型 |
字段描述 |
TaskInstanceID |
整数(标识) |
任务实例编号 |
TaskDefinitionID |
整数 |
任务定义编号 |
ProcessInstanceID |
整数 |
对应的流程实例编号 |
StartTime |
日期 |
任务开始时间 |
EndTime |
日期 |
任务结束时间 |
TaskUserID |
整数 |
拾起任务的用户编号 |
NextTaskInstance |
字符串 |
后续任务实例编号集合(逗号隔开) |
PreTaskInstance |
字符串 |
前驱任务实例编号集合(逗号隔开) |
TaskState |
字符串 |
任务执行状态 |
4.2 工作流引擎组件及核心程序逻辑
4.2.1 工作流引擎的组件类设计
图4.1
4.2.2 工作流引擎的核心程序逻辑
图4.2 引擎处理不同类型任务的程序逻辑
图4.3 创建节点的所有前驱任务实例列表的程序逻辑
更多推荐
所有评论(0)