流程引擎设计之二

1 逻辑设计

逻辑设计的目的是说明了流程引擎的设计中住基础的设计部分,我们把它分成3部分,分别是“原料工厂”、“组装工厂”、“使用工厂”,这3个部分分别从不同的资源层次阐述了设计流程引擎的关键点,下面我们就这3个部分分别加以说明。

1.1 原料工厂

原料工厂的主要内容就是系统中可能的流程类型,以及每种类型可能的步骤,这不是一个固定的内容,二次开发可以在这列做文章,如果你希望你的系统在二次开发提供流程的自定义,那么最主要的接口就在这里。我们假设这是一个大的工厂,里面就是所有的需要的流程类型,所有的步骤,所有的步骤的属性,所有的控制参数,你需要用很多的精力来分析你的需求,以便对付这一模块,但是一旦这一模块的任务有些明确,那么你的工作会如此的轻松。我们用一个图形加以说明这一模块希望达到的效果:(参考图1

(参考图1

这象是一个奇怪的东西,其实他是一个步骤的原型,输入客输出以及控制信息是您定义的,从数量到数据类型都是您自己做决定的,为了在后期能统一管理和便于二次开发,您需要文档化这些设计。下面是另外一个图形说明一个类别的原型;(参考图2

(参考图2

打个比方吧,一个发文流程可能有:拟稿、校对、部门领导审核、YY级别领导签字、YY1领导会签、YY2领导会签、TT领导签发。那么这些步骤就是(参考图2)的元素了图形,您要关注的是每个步骤可能的出入和协调问题。做成一个整体(对象)看待,这样对你的设计很有好处。

1.1.1 业务流程类别管理

仔细的分析你的系统可能存在的流程类别,比如说收文、发文、车辆审批、出入库、报销……,这些是你的系统要解决的业务主题,他们都可能是有流程。有的流程是“活”的,有的流程是“死”的,如何设计一个模板库存放这些不同的类别流程资料,这也是你要考虑的问题,因为你要把业务上分开的东西经过你的分析,得出他们的共性和个性,以便在后面的设计中会使用到这些特性。

通过类别对基础资源加以有效的管理是设计的一个难题,使用Rose设计过程中,不时的需要回到前面的设计中看内容才能继续进行下去.

步骤技术的复制(复用),这是设计过程中一个特点,也就是当你设计了一个完整的类型之后,其他类型可能可以使用复制的方式实现设计,特别是特性相同的流程资源,比如收文和发文.

1.1.2 可以随时删除、修改

这是针对后面的流程而言的,流程使用这些基础资源是一次性死的使用,一旦使用了某个类别的资源,那么这些资源就被复制到流程的数据库里,而在原料工厂的同样的资料是否在以后存在或是修改了都不会对已建立的流程产生影响,流程的操作有流程的管理模块来完成,我们会在后面的内容加以描述.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
工作引擎数据库设计全文共3页,当前为第1页。工作引擎数据库设计全文共3页,当前为第1页。工作引擎数据库设计 工作引擎数据库设计全文共3页,当前为第1页。 工作引擎数据库设计全文共3页,当前为第1页。 概述 基于打造一个灵活、高效、轻量级的工作引擎,暂时不考虑功能的完备和复杂,只是实现其中必不可少的功能和条件。主要考虑以下三个方面的内容: 流程定义:工作流中的流程极其相关活动的定义和模型数据搭建 运行调度控制:执行工作流过程中流程活动任务分配、调度控制 运行阶段的人机交互:实现各种活动执行过程中用户与IT应用工具之间的交互 数据库定义 流程定义 主要是跟流程模型定义相关的数据表,主要包括流程模型定义表(WF_FlowTemplate)、流程步骤模型定义表(WF_StepTemplate)、流程链路表(WF_FlowLink)、流程类型表(WF_FlowType) WF_FlowType 字段 类型 描述 备注 FlowTypeID int 流程类型ID 标示 not null FlowTypeName nvarchar(50) 流程分类名称 Description nvarchar(200) 流程类别描述 WF_FlowTemplate 字段 类型 描述 备注 FlowID int 流程ID 标示 not null FlowName nvarchar(50) 流程名称 FlowTypeID int 流程类型编码 Manager nvarchar(50) 流程实例管理者 CreateUserID int 创建人ID CreateDate Date 创建时间 ModifyUserID int 最后修改人ID ModifyDate Date 最后修改时间 Version int 版本 WF_StepTemplate 工作引擎数据库设计全文共3页,当前为第2页。工作引擎数据库设计全文共3页,当前为第2页。字段 工作引擎数据库设计全文共3页,当前为第2页。 工作引擎数据库设计全文共3页,当前为第2页。 类型 描述 备注 StepID int 步骤ID 标示 not null StepName nvarchar(100) 步骤名称 FlowID int 流程ID FormURL nvarchar(200) 表单URL PositionX float X坐标 PositionY Float Y坐标 LimitTime int 步骤时限 SubFlowID int 子流程ID Description nvarchar(200) 步骤描述 WF_FlowLink 字段 类型 描述 备注 FlowLinkID int 流程链路ID 标示 not null FlowID nvarchar(50) 流程ID FromStep int 前一步骤ID ToStep Int 后一步骤ID Action nvarchar(200) 流转条件行为 Description nvarchar(200) 流转路径描述 Expression nvarchar(200) 条件表达式 流程调度 针对运行中的流程实例以及活动实例进行管理和调度,主要包括流程实例表(WF_FlowInstance)、步骤实例表(WF_StepInstance) WF_FlowInstance 字段 类型 描述 备注 FlowInstanceID int 流程实例ID 标示 not null FlowInstanceName nvarchar(100) 流程实例名称 FlowID int 流程ID CreateUserID int 创建人ID CreateDate Date 创建时间 FinishDate Date 完成时间 Status int 流程实例状态 WF_StepInstance 字段 类型 描述 备注 StepInstanceID int 步骤实例ID 标示 not null FlowInstanceID int 流程实例ID StepID int 步骤ID 工作引擎数据库设计全文共3页,当前为第3页。工作引擎数据库设计全文共3页,当前为第3页。StartDate 工作引擎数据库设计全文共3页,当前为第3页。 工作引擎数据库设计全文共3页,当前为第3页。 datetime 开始时间 FinishDate datetime 完成时间 Status int 步骤状态 TrackRemark nvarchar(200) 轨迹备注 任务管理 流程实例运行过程中产生的工作任务,主要包括任务列表(WF_TaskList)、消息列表(WF_MessageList) WF_TaskList 字段 类型 描述 备注 TaskID int 步骤实例

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值