OpenJWeb 1.8工作流设计
Openjweb开发团队
联系人:王先生
手机:13651070328
QQ:29803446
Msn:baozhengw999@hotmail.com
Email:baozhengw@163.com
2009-11-23
说明:因文档中图片较多,需要看带图片的文档,请到http://code.google.com/p/openjweb/downloads/list下载OpenJWeb-workflow.rar .
目 录
第一章 设计原则.... 2
第二章 设计规范.... 3
1.1 数据库表的设计... 3
1.2 约定的流程状态位说明... 3
1.3 页面按钮说明.... 3
1.4 页面生成注意事项及审批相关内容... 4
第三章 OpenJWeb的工作流设计思路.... 5
第四章 OpenJWeb的工作流Demo.. 5
第五章 总结.... 11
OpenJWeb的工作流设计以简单实用为原则,简单实用并不意味着不能支持复杂的业务情况,而是在设计中不固守既有的工作流联盟的标准,也不盲目套用工作流理论中的逻辑。实际上工作流理论中有相当一部分内容是为了解释工作流原理的,例如开始结束节点、工作流实例等,在具体的系统实现中,OpenJWeb的设计更简单。这体现在:
(1) 不需要设计专门的工作流实例表。实际应用中,每个数据库表存储的记录都可以作为一个流程实例。
(2) 对于工作流的开始结束节点,本平台中,单据填写人将单据送审的时候是真正的工作流的流程起点,而最终审批通过则作为流程的结束点。
(3) 不需要为每一流程状态设置对应表单元素的是否可读写的权限,事实上在单据被送审后,任何环节都不应在页面上直接修改单据内容,如果必须修改,可打回单据填写人,所以在后续流程中,单据页面的所有输入项都不可以修改(填写审批意见除外,审批意见存储在单独的表中),这种设计原则可以大大减少页面处理不同流程状态的难度。
(4) OpenJWeb是以状态图逻辑解析工作流的,所以不同的状态是不同的节点,节点之间的连线实际是与操作按钮对应的(对人工活动而言),通过不同的操作,将状态从A状态转换为B状态。 )
(5) OpnenJWeb的简单工作流设计方式使得基于GUI的图形流程定义工具不再成为工作流的核心,因为没有GUI工具也可以很快的定义工作流。不使用GUI工具同时也意味着项目的成本大大降低。
(6) OpenJWeb的单据页面中的与审批相关的按钮是动态生成的,所以增加新的审批时,页面上会自动显示对应的审批按钮。
1.1 数据库表的设计
OpenJWeb平台在生成数据库表时自动生成flow_status字段,此字段用作流程状态位标识别。
1.2 约定的流程状态位说明
状态位编码
|
状态位名称
|
状态位说明
|
00
|
初始
|
当录入新的单据后,保存时默认的状态。状态为00的因为没有流程审批信息,所以可直接物理删除。
|
01
|
已送审
|
只有初始状态(00)和打回状态(97)的单据才可以送审,送审后才算工作流正式启动。
|
97
|
打回
|
打回的单据只有单据创建人可以进行逻辑删除和再次送审。
|
98
|
逻辑删除
|
当单据被打回时,如果单据填写人作废此单据,可执行逻辑删除,这是将流程状态位设置位98,原则上应控制打回后逻辑删除,其他状态不应执行逻辑删除。
|
99
|
审批通过
|
单据最终审批通过,标识流程结束,工作流引擎不再监控审批通过的单据。
|
在流程定义中,初始(00)—已送审(01)是通过送审按钮实现的,这个功能不需要在审批流中定义,实际上,当状态为01才是真正工作流开始的状态。
以上状态位在生成功能页面时会自动插入到流程状态为定义表(wf_status_def)中。
当审批通过、打回时由工作流引擎自动发送邮件或手机短信、内部短信等形式通知单据创建人,如果需要同时通知其他人员,具体实现方式另行考虑。
打回和审批通过是工作流引擎自动计算的,各环节审批人只需要选择同意不同意,工作流引擎会自动计算审批逻辑。
1.3 页面按钮说明
与工作流相关的页面按钮说明:
按钮
|
说明
|
增加
|
增加按钮属于功能权限,只要进行功能授权就可以显示。在编辑页面和列表页面都有增加按钮。
|
删除
|
未送审的初始状态的记录(状态位00)可以进行物理删除。
|
保存
|
对于流程相关的表单,只有新记录、状态为初始(00)或者打回(97)的状态才能显示保存按钮。如果不是流程相关的页面,则可显示保存按钮。
|
作废
|
当单据被打回时,如果单据送审人不想再修改后送审,则点作废可设置逻辑删除状态(98),系统可根据业务需要来决定是否定时清除作废的单据还是保留,作废单据如清除会同时清除审批日志。
|
送审
|
当单据为初始状态,可显示送审按钮,只有在初始、打回状态才会显示送审按钮,其他状态隐藏送审按钮。
|
动态审批按钮
|
根据流程设置动态显示的各审批环节的按钮。
|
1.4 页面生成注意事项及审批相关内容
生成页面时,如果需要生成流程相关的页面,则应在表结构定义页面中,相应表设置必须勾选”是否创建业务逻辑类”为“是”,是否监控流程为“是”。见下图:
下表是各流程状态下的页面审批相关元素的控制
状态位
|
是否可编辑
|
是否显示
审批按钮
|
显示审批意
见输入框
|
是否显示
审批日志
|
初始(00)
|
是
|
否
|
否
|
否
|
打回(97)
|
是
|
否
|
否
|
是
|
删除(98)
|
否
|
否
|
否
|
是
|
通过(99)
|
否
|
否
|
否
|
是
|
OpenJWeb工作流主要考虑业务系统中使用较多的审批型流程。以状态图而不是活动图作为工作流设计逻辑。大致的设计思路:
(1) 首先定义每个业务表单的状态位。例如借款申请可定义:已送审、部门审核通过、财务审核通过、总经理审核通过等节点。每个状态还可以定义入口路由规则为AND还是XOR模式,例如由已送审-部门审核通过的状态有三条分支,如果“部门审核通过”状态设置了入口逻辑为 AND,则三个分支必须全部满足条件。
(2) 审批流设置:定义不同状态之间的连线,对于人工活动,连线实际对应不同的审批操作。审批流设置了每个操作对应的前置流程状态和后置流程状态、页面上对应的操作码、操作按钮的文字、业务对象审批条件(例如不同借款额度由不同的人员审批)、参与者条件、是否发送邮件通知、与或逻辑(这个与或逻辑是针对本操作所有有权限的操作人来计算的)。
(3) 打回:打回是系统根据设置的规则自动判断的,由系统定时计算哪些单据被打回,打回后,业务对象会生成新的事务ID(可称为令牌),这样即使在不同的环节有未处理的待办信息也不受影响,因为打回后系统会根据新的令牌来生成待办任务。
(4) 工作流定时器:监控所有的业务对象,每3分钟运行一次,用于生成待办任务、根据流程规则自动转换流程状态,以及待办、审批通过时进行邮件通知等。
(5) 待办任务显示:工作流自动生成待办任务,任务处理完成后为待办任务设置完成标志和完成时间,同时待办任务列表会刷新。
(6) 收回:当单据送审后,如果后续环节尚未处理,则可以将单据收回,这个功能很好实现,把单据状态重置为00并生成一个新的令牌就可以了,这样代办任务列表中会自动清除未办事宜。
(7) 审批环节的投票计算:
目前为 AND 和XOR模式,暂未实现按绝对人数或比例的计算原则。
对于 AND模式,如果所有人都投票且投票同意,则此环节审批通过;
如果存在否决票,则此环节审批拒绝;
如果已投票的都投了同意票,但有未投票的,则暂不处理;
对于 XOR模式,如果有至少一人投票同意,则此环节审批通过;
如果所有人都投否决票,则此环节审批拒绝;
如果已投票没有投同意票,但有未投票的,则暂不处理;
第一步,定义流程表单并生成表单页面,这个过程与非流程的定义过程是一样的,只是在建表页面要选择“是否创建业务逻辑类”和“是否监控流程”为“是”。
第二步,页面生成后,定义流程状态位,功能点位于(工作流-流程状态位),列表页面如下:
上图中表单设置已不使用。在生成功能页面时,00,01,97,98,99状态为系统自动插入,这里定义了1个新状态位,分别是02(部门审核通过),下面是编辑页面,此状态位定义了入口路由为 AND:
第三步定义审批线,每个审批线实际对应页面上的审批环节的radion按钮,本功能位于:工作流-审批流设置。下图是审批流设置的列表页面:
下面是由送审-部门审核通过的审批设置:
这里设置的审批线为01-02,即送审状态-部门审核通过状态,对应的页面按钮为部门审核,动作码为doDeptCheck,业务对象审批条件为借款额度小于100(loanAmt<100),线内的投票逻辑为 AND(须全部通过),是否人机交互选择为是,表示为人工活动。参与者为erp和admin帐号,参与者表达式必须以 ${user.loginId}in开头。
下面是总经理审核页面:
st
分享到:
相关推荐
本文是openjweb(v1.8)java web应用快速开发平台产品白皮书,内容包括增删改查页面快速生成,组织结构、权限、校验、国际化、电子邮件、手机短信、即时聊天等很多功能。近期即将推出openjweb1.8开源版本。
JWFD开源工作流引擎的联盟成员 openjweb 快速开发平台 的作者 阿宝先生设计的一款简单易行的工作流 这是设计文档,openjweb官方网站 www.openjweb.com
JWFD的全称是 JAVA WORKFLOW DESIGNER(JAVA工作流设计者) 但是它并不仅仅是一个基于JGRAPH组件的工作流设计器,而是包括流程引擎控制模块和流程数据结构在内的一个非常实用的工作流系统,可以很容易的嵌入到包括 ERP...
本文详细介绍如何通过OpenJWeb快速开发平台创建事务性计划的增删改查页面及如何实现事务性计划的简易审批工作流
OpenJWeb平台中的事务性计划审批流开发实例
NULL 博文链接:https://baozhengw.iteye.com/blog/394297
openjwebopenjwebopenjwebopenjweb
OpenJWeb(V1.9)Relase开源版本(2011-6-1发布)可从 http://code.google.com/p/openjweb/downloads/list 下载,文件为: ojw19rl-comm1.rar ojw19rl-comm2.rar ojw19rl-comm3.rar ojw19rl-comm4.rar
Openjweb 1.6版本最新功能手册,本平台基于sping+strut2+hibernate+spring security+dwr框架,实现了完整的组织结构(矩阵),功能权限,权限继承,委托,树形角色管理,快速增删改查创建工具等
JWFD 是 java workflow designer JAVA工作流设计系统 的缩写 作者 comsci 官方群号: 7428804 推荐技术联盟 fireWorkflow 群,作者:非也 作品 FireWorkflow 工作流系统 群号:80347522 网站 www.fireflow.org ...
NULL 博文链接:https://baozhengw.iteye.com/blog/402010
NULL 博文链接:https://baozhengw.iteye.com/blog/360425
名称是 JWFD v0.94工作流源代码 for eclipse(BUG修正版) COMSCI 2005 需要JDK1.4以上 运行方法:双击jwfd.jar运行 QQ:784092877 本工具由JAVA SWING与开源软件JGRAPH包的一些类和方法共同编写的,其中...
OpenJWeb3.6业务开发平台支持分布式架构-附件资源
本文介绍最新的开源产品Openjweb java快速应用开发平台,基于struts2+hibernate+spring+spring security,实现了单表,主明细表增删改查,完整的组织结构树和权限管理体系,支持多语设置和自动生成多语言文件,支持可配置...
OpenJweb平台通过平台生成增删改查页面的视频,分两部分,这是第一部分
此文件介绍如何利用OpenJweb快速开发平台快速生成增删改查功能页面,已实现由用户定义及创建数据库表,在平台中生成hibernate映射文件和POJO类,生成的增删改查页面包括跨数据库的分页,排序,条件查询,及下拉型字段根据...
OpenJWeb V1.6采用的主框架为Struts2+Spring+Hibernate+Spring Security,后台管理页面可使用平台的代码生成器来生成。在平台中定义好一个数据库表结构后,可生成对应的数据库表,Java实体类代码,Hibernate配置文件...
NULL 博文链接:https://baozhengw.iteye.com/blog/1000649