工作流概要设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Document number 文档编号Confidentiality level 密级

内部公开Document version 文档版本

Total 25 pages 共25 页V1.0

流程详细设计

Prepared by

拟制王先红

Date

日期

2012-3-18

Reviewed by 评审人Date 日期

Approved by

批准Date 日期

1流程框架

1.1架构模式

流程采用一套独立的框架,与业务平台没有任何依赖。

其架构模式为:

1)采用log4j为日志框架。

2)单元测试使用junit4.0框架。

3)定义config.xml文件,所有的数据访问对象与业务逻辑对象的注册,外部接口的获取,均

配置在这里。

4)底层实体po包,封装所有数据库的表结构;

5)底层数据访问对象dao包,由一个接口类与一个通用的UDao类组成,即所有的数据操作

均由UDao去实现;

6)异常类均封装在exception包中;

7)业务逻辑封装在biz包中,这里是流程所有的对外调用接口,即业务平台与流程的接口都

定义在这里。

8)数据库的连接获取定义在db包,这里只管从业务平台获取连接,不包括连接的释放,事

务的提交与回滚。

9)一个连接工厂包,主要用来获取config.xml中的对象。

1.2主键生成器

在一个数据库设计里,假如使用了逻辑主键,那么你一般都需要一个ID生成器去生成逻辑主键。在许多数据库里面,都提供了ID生成的机制,如Oracle中的sequence,MSSQL中的identity,可惜这些方法各种数据库都不同的,所以需要找寻一种通用的方式。

如果用字符串的形式,在集群的时候就不行了,通常还需要加上IP的前缀,即IP + 时间+ 计数器,这个就是JA V A原版本的实现了。但是,这样这个ID就会太长了。

并且,字符串主键本身就存在效率问题,所以还是要考虑用数字主键,用一张表来保存,但取主键的时侯,必须用同步synchronized的方法来做,否则肯定会重复。值得注意的是非静态方法的synchronized用的是对象锁,每个线程都会创建一个新的对象,所以根本锁不住该方法。只有静态方法用的是类锁,才会锁住,所以需要用类锁或同步代码块来实现。

1.3时间类型

为了便于处理,数据库时间一律采用:4位年+2位月+2位日+2位时+2位分+2位秒=14位数字型,便于提高查询的效率,简化编程。

在DB2中,可用DECIMAL(m,n)数据类型,Oracle中用Number数据类型,Mysql中用Bigint 可达8字节,SqlServer中用bigint可达8字节,均能满足要求。

而在程序处理中,java可用long数据类型8个字节长来存储,不用转换为对象,大大提高了数据库处理端的效率和程序处理效率。

2流程配置

2.1界面技术选型

流程配置界面采用图形化技术开发,客户端应支持所有的浏览器和不同的版本。本工作流前端界面采用Flex技术开发。

2.2主界面

当在业务系统中点击流程配置或流程定义模块,弹出如下界面。

最上部是菜单栏;左侧是流程列表,流程、节点、路由属性栏;右侧上部是工具栏,用于选择绘制的节点,下部是绘图区域。

主界面中的属性,包括流程、节点、路由三部分。这些属性全部采用xml文件定义好,保存到本地,支持可扩展,不允许写死在代码中。节点属性的xml格式为:

< property name=”name” label=”节点名称” defvalue=”11” />

< property name=”type” label=”节点类型” defvalue=”22”/>

路由属性的xml格式为:

如下图

2.3流程角色

在左侧上部的树上增加流程角色项,让其位于流程列表项的下面。点击流程角色,右侧将显示所有已经定义好的角色。对于列表中的角色,可以新增、修改、删除。

什么是流程角色呢?流程中使用的人员集合,统称为流程角色。与业务系统的角色和岗位没有任何联系,专属于流程子系统。但必须在业务系统中为用户分配这些角色。

流程角色只有二个字段,与wf_post表对应,在节点定义表的{参与者角色}字段要用到流程角色,具体属性有:

✓角色编号

✓角色名称

2.4流程变量

在左侧上部的树上增加流程变量项,让其位于流程角色项的下面。点击流程变量,右侧将显示所有已经定义好的流程变量。对于列表中的变量,可以新增、修改、删除。

流程变量又叫业务要素,是将业务系统中某些重要的业务表的字段,视流程的需要,汇入本表,以便在流程定义的流程描述、节点定义的节点描述、路由定义的执行条件中引用这些变量,使流程的表现更丰富,业务规则更灵活。

当然本表也可以不需要,直接引用各业务表的相关字段,但这样势必与业务表紧耦合,实现了流程的硬编码,对于流程引擎极为不利。

相关文档
最新文档