admin 管理员组文章数量: 1086019
2024年3月22日发(作者:二郎神的传说故事)
2014年第9期
文章编号:1006—2475(2014)09-0086
计算机与现代化
JISUANJI YU XIANDAIHUA 第229期
工作流系统中会签功能的设计与实现
韩红云,陈燕,李桃迎
(大连海事大学交通运输管理学院,辽宁大连116026)
摘要:随着计算机技术的日益成熟,会签流程在工作流系统中逐渐崭露头角,本文运用Activiti工作流引擎实现工作流系
统中会签功能,用Activiti Modeler实现定义流程、创建流程、部署流程的基本功能。在启用运行流程后,实现流程申请中
任务签收、任务审批、添加审批意见、驳回申请功能,并显示申请的详细流转信息。该功能易于实现,便于操作,可以有效
地提高管理效率。
关键词:工作流;会签;Activiti
中图分类号:TP3 ll 文献标识码:A doi:10.3969/j.issn.1006-2475.2014.09.019
Design and Implementation of Countersigned Function in Workflow System
HAN Hong—yun,CHEN Yan,LI Tao—ying
(Transportation Management College,Dalian Mairtime University,Dalian 1 16026,China)
Abstract:With the growing maturity of computer technology,countersigned function gradually emerges in the workflow system.
In this paper,we use Activiti workflow engine to implement countersigned features in workflow system,and implement the basic
functions of defining processes,creating processes,deployment process with Activiti Modeler.After enabling the running proces—
ses to achieve process signing,such functions are implemented,i.e.,task approval,approval to add comments,approval to re—
ject the application and display the lfow applications detailed information.This feature is easy to implement and operate,which
can effectively improve management eficifency.
Key WOrds:workflow;countersigned;Activiti
0 引 言
随着信息技术的不断发展和企业信息化的逐步
深入,越来越多的企业流程需求已经无法用普通的办
公自动化系统来满足。工作流会签系统,可以自动地
完成各部门间信息的流动,可以更加有效地实现信息
的传递和交流,可以直观地了解流程审批的责任人和
某项流程当下所处的审批节点,具有更高的安全性、封
闭性,可以极大地提高工作效率,节约时间成本。
目前已经有很多学者进行了相关的研究,文献
[1]研究了基于JBPM的工作流会签设计,给出了单
步会签和多步会签的具体解决方案。但是目前JBPM
技术已经逐步被Activiti所取代,Activiti兼容JBPM
收稿日期:2014-06—16
的同时又有良好的拓展性。文献[2]介绍了管理信
息系统会签管理的实现,虽然达到了会签效果但是系
统运行时存在一定的误差且效率低下。文献[3]主
要介绍了基于Activiti的工作流引擎技术在管理系统
中的应用,运用了主要数据库以及主要的接口工作模
型,给出了Activiti的优势但是没有图形化的追踪,不
利于实时控制。
鉴于此,本文将Activiti运用到会签技术中,既对
JBPM进行了拓展和延伸,满足当下高速发展的需求,
同时也降低了错误率,避免审批部门间的推诿和延
误,提高管理效率。且在审批流程过程中可以看到图
形化的追踪界面,方便使用人员对流程的实时控制。
基金项目:国家自然科学基金资助项目(71271034);中央高校基本科研业务费资助项目(3132014307,3132014080);辽宁省
社科基金资助项目(L13DGL060);辽宁省教育厅一般项目(12012173);辽宁省社科联2014年度辽宁经济社会发展立项课
题(2014 lslktzdian一11)
作者简介:韩红云(1988-),女,河北石家庄人,大连海事大学交通运输管理学院本科生,研究方向:交通运输管理;陈燕
(1952一),女,教授,博士生导师,研究方向:交通运输现代化管理,决策支持系统,知识管理,数据仓库与数据挖掘;李桃迎
(198t一),女,副教授,博士,研究方向:决策支持,数据仓库与数据挖掘。
2014年第9期 韩红云等:工作流系统中会签功能的设计与实现 87
1工作流会签与Activiti简介
工作流主要解决的是“使在多个参与者间按照
某种预先定义的规范传递文件、信息及任务的过程自
动进行,从而实现某个预期的目标,或促使此目标的
实现”。工作流是为了实现某些标准或者业务目的
从开始到终止,按照审批流程规定经过若干人顺序审
批。工作流流程中的一个活动只有当另一个活动完
成后才能进行。例如:当订单填写活动完成后,客户
通知才可以进行。
2)并发模式即可以同时运行2个活动。在流程
中1个控制线程分为可以并行执行的2个控制线程,
而进行的自动化过程 J。一个工作流包括一组任务
和它们之间的相互顺序关系,还包括流程及任务的起
始条件和终止条件,以及对每个任务的描述。工作流
参考模型即工作流管理系统的体系结构模型_5 J。
允许2个活动可以同时运行 J。
当然会签的发起模式还可以将顺序模式和并发
模式进行合理的嵌套,构成复杂形式。
1.2 Activiti技术
工作流管理联盟(WfMC)对工作流给出定义:工
作流就是指一类可以自动执行的经营过程,根据一系
列过程规范,将文档、信息或者任务在不同的执行者
间进行流转与执行-o
1.1会签及其分类
Activiti是一个独立运作和经营的开源项目,独
立于Al ̄esco开源ECM系统运行。Activiti是一个轻
量级、可嵌入的BPM引擎,而且还适用于可扩展的云
架构 】 。Activiti提供宽松的Apache许可2.0,以便
这个项目可以被广泛使用,同时促进Activiti BPM引
擎和BPMN 2.0的匹配¨ 。在流程中提供了平行、
在企业的日常工作中正确处理管理和控制中的
工作流程十分重要。以企业的生产运行系统为例,存
分流、决策、聚合等多种复杂的工作流种类,还提供了
方便的基于Web的工作流表单自定义功能,可以定
制业务流程表单所需的字段,以及显示权限¨ 。
1.3 Activiti工作流引擎的优点
1)具有良好的拓展性。
Activiti是基于JBPM4开发的,支持PVM(流程
虚拟机)技术,支持更多的流程格式,且可与外部服
务良好集成,服务接口清晰,拥有链式的API接口,为
流程管理营造良好的内部实现环境。
在着具有时序性和实效性的“三票”(工作票、命令票
和操作票)管理控制,即许多重要的数据需要有关岗
位责任人签名予以确认 J。这些需要签署意见的文
档、合同、三票等将其统称为“会签文件”,需要签名
的用户为“会签人” J。
会签分为单步会签和多步会签2种。
1)单步会签:只有一个审批节点,且在这个节点
处需要多个审批人员共同负责审批任务或者添加审
批意见。它的使用最广泛且易于实现。
2)多步会签:某审批流程有多个审批节点,且每个
节点又存在一个相对独立的审批流程。多步会签逻辑
结构复杂,难以实现,但在流程审批过程中必不可少。
会签的发起模式一般分为顺序模式和并发模式。
1)顺序模式即按照顺序执行各项活动。一道流程
WebWork
2)可视化的流程设计。
Activiti与Eclipse集成实现了定义流程的可视
化,使流程更加清晰明了。另外Activiti Modeler是基于
开源的Signavio Web流程编辑器的一个版本,提供了对
BPMN 2.0图形化规范支持,流程定义后以XML文件格
式存储,用户可以轻松画出逻辑复杂的工作流程u引。
Hibemate
1.http请求
7.访问模型
8模型映射
9墩据操作
。
I
i:
一
i: i: 11 回数据弛 L…_到 rvice 一l一…… 一…’--l嗵--4-1 ....m. ..。.…E二j … ………一
●;
;-
_;
i●
l;
i-
:i
i:
j
墨
I
l
●L一‘■一一些 -一一一一・一一一 I………r………; I _
I iI iI i-
图1 WSH框架调用流程图
88 计算机与现代化 2014年第9期
2 开发框架
本课题是WebWork、Spring和Hibernate三种框
架技术的整合使用,也称为WSH框架。3种技术顾
及到了和其他框架的联系,充分发挥了三大框架各自
的特点,三大框架的集成使得开发效率显著地提高,
充分利用了每个框架的优势,从而达到了取长补短的
效果。WSH框架调用流程图如图1所示。
该系统的实现是基于J2EE的标准设计,逻辑上分
为表现层、控制层、业务层和数据层。如图2所示。
客户层
i客户端
Web层
J2EE服
务器
业务层
EIS层
图2 J2EE规范的四层模型
J2EE平台中客户端应用程序和Applet是运行在
客户端的组件;Java Servlet和Java Server Pages(JSP)
是运行在服务器端的Web组件;Enterprise Java Bean
(EJB)组件是运行在服务器端的业务组件_1 。如图
3所示。
图3客户端层、Web层和业务层
本文研究的工作流会签系统是基于J2EE的B/S
应用模式,将Activiti与Eclipse集成,利用Webwork、
Spring、Hibernate三大框架,采用了Java语言编程,同
时运用JSP的相关页面设计技术实现相关功能。本
系统采用MySQL作为数据库,Tomcat 6.0作为应用服务
器,基于Intemet与Web技术、B/S结构的系统功能,具
有开放、可靠、弹』生、兼容、灵活、跨平台的特陛 。
3实现会签流程
3.1设计思想
会签流程的设计思想是将每个会签过程看成一
个任务,在数据库中存储起来,将设计好的流程定义
审批图以文件的形式部署存储到Activiti环境中。运
行流程后,根据流程在流程定义中存储的会签节点间
流转,首先任务人签收审批任务,经验证有权限后进
行审批操作或者添加审批意见。通过后流程流转到
下一节点,拒绝时流程驳回到申请人节点修改。直至
流程审批结束。
3.2数据库设计
Activiti使用到的表都是ACT一开头的。
1)ACT—RE一 :’RE’表示repository(存储),Reposi-
toryService接口所操作的表。带此前缀的表包含静态信
息,如流程定义,流程的资源(图片、规则等)。
2)ACT—RU一 :’RU’表示runtime,运行时表-
RuntimeService。这是运行时的表,存储流程变量、用
户任务、变量、职责(job)等运行时的数据。Activiti只存
储实例执行期间的运行时数据,当流程实例结束时,将
删除这些记录,保证了运行时的表小且快。
3)ACT—ID一 :’ID’表示identity(身份标识),
IdentityServiee接口所操作的表。用户记录、流程中
使用到的用户和组。这些表包含标识的信息,如用
户、用户组等。
4)ACT—HI一 :’HI’表示history,历史数据表,
HistoryService。这些表包含流程执行的历史相关数
据,如结束的流程实例、变量、任务等。
5)ACT_GE一¥:’GE’全局通用数据及设置(gen.
era1),各种情况都使用的数据 。
3.3 工作流会签的具体实现过程及相关代码
本文实现的难点在于具体业务与实现层交互。利
用Activiti技术实现方案审批业务流程需要以下步骤。
1)设计工作流程图。
在Eclipse开发环境中用流程设计工具按照
BPMN规范绘制方案审批流程图。
2)将设计好的工作流程图部署,相关配置如下:
<bean id=”processEngineConfiguration”class=”org.ac—
tiviti.spring.SpringProeessEngineConfiguration”>
<property nan'le:”dataSouree”ref=”com:dataSource”/>
<property name=”transactionManager”ref=”ma01:trans—
Manager”/>
<!一自动部署流程一流程只有部署了用户才可以走这个
流程一>
<property nalne=”depl0ymentRes0urces”>
<list><value>classpath木:/deployments/ </value>
</list>
</property>
</bean>
3)部署后的流程就可以启用;首先发起申请。
2014年第9期 韩红云等:工作流系统中会签功能的设计与实现 89
用户发起申请保存后增加语句将流程插入到数
据库,并与项目申请相关联,启动流程。
//用来设置启动人员的ID,引擎会自动把用户ID保存到
aetl’vl—tl:m‘m’’ator里
identityService.setAuthenticatedUserId(String.valueOf(pro・
jectApp.getApplyUserID()));
//插入流程到数据库
Map<Stirng,Object>variable=new HashMap<String,Ob—
ject>();
ProcessInstance processInstance=runtimeService.startPro—
cessInstanceByKey(LogisticConstants.PROJECT_APPLICATION—
NEW,Stirng.valueOf(projectApp.getId()),variable);
4)签收任务流程。
Task task=tasks.get(i);
List<IdentityLink>idl=taskService.getIdentityLinksFor-
Task(task.getId());
Stirng groupId=id1.get(0).getGroupId();if(task.getTask-
DefinitionKey().equals(e)){taskService.claim(task.getId(),
userId);
流程流转到下一个节点后,由负责人员签收任
务,其他人员无权限签收,负责人签收后,业务申请对
外不可见。
5)审批流程。
TaskQuery task=taskService.createTaskQuery().processIn—
stanceId(projectApp.getProcessID()).orderByTaskName().de—
se();
List<Task>t=task.1ist();//添加审批意见
f0r(int j=0;j<t.size();j++){
if(t.get(j).getAssignee()==nul1){}
else{taskService.addComment(t.get(j).getld(),project—
App.getProcessID(),approvalOpinion);
6)查看流程图。
查看ProcessInstance processInstance=runtimeService.cre—
ateProcesslnstanceQuery().processInstanceId(projectApp.get—
ProcessID()).singleResuh();
BpmnModel bpmnModel=repositoryService.getBpmnModel
(processlnstance.getProcessDefinitionId());
List<Stirng> activeActivityIds=runtimeService.getActive-
Activitylds(projectApp.getProcessID());
InputStream imageStream=ProcessDiagramGenerator.gener—
ateDiagram(bpmnModel,”png”,activeActivityIds);
7)待办任务和已经完成的任务。
ProcesslnstanceQuery query runtimeService.createProcess—
InstanceQuery().processDefinitionKey(Lo百sticC0nstants.PRO—
JECT—APPLICATION
—
NEW).active().orderByProeessInstan—
eeld().desc();
//构造节点的查询语句
TaskQuery taskQuery taskService.createTaskQuery().pro—
cesslnstanceld(processInstance.getProcesslnstanceId());
//查询当前流程节点
8)删除流程任务。
ProjectApplication projectApp=(ProjectApplication)obj;//
删除流程记录
runtimeService.deleteProcessInstance(projectApp.getPro-
cessID(),”删除了”);
//删除流程历史记录historyService.deleteHistoricProcess-
Instance(projectApp.getProcessID());//删除业务记录base—
DataDao.removeObjeet(ProjectApplication.class,id);
4 结束语
本文利用Activciti技术实现了工作流会签功能,
解决了发起会签的顺序模式以及简单的并发模式的
实现,完成了信息在各级、各部门间的流转且可以对
流程任务进行实时控制。下一步将研究顺序模式和
并发模式嵌套的实现,使工作流会签系统功能更加完
善,从而发挥其更强大全面智能的功能。
参考文献:
[1]顾大明.基于JBPM的工作流会签设计[J].民营科技,
2010(12):50,207.
[2] 梅峰,于洋,卫青延,等.基于开源工作流Activiti的企业协
同信息平台研究[J].福建电脑,2012(11):125—127.
[3] 阿斯特.工作流管理:模型、方法和系统[M].王建民
译.北京:清华大学出版社,2004.
[4] 张利君,马骏,杨涛,等.基于工作流的动态任务调度研究
与实现[J].计算机工程与设计,2009(10):5233-5237.
『5] WFMC.TC.1025,工作流过程定义接口——xML过程
定义语言[S].
[6] 罗海滨,范玉顺,吴澄.工作流技术综述[J].软件学
报,2000,11(7):899-907.
[7]薛华成.管理信息系统[M].北京:清华大学出版社,
1993.
[8] 王安慧,孙长银.管理信息系统会签管理模块的设计与
应用[J].三峡大学学报(自然科学版),2001,23(5):
454-457.
[9] 范玉顺.工作流管理技术基础[M].北京:清华大学出
版社,2001.
[10]叶小路,钱真坤.基于Activiti5的水司OA系统设计与
实现[J].软件导刊(教育技术),2013,12(6):93-95.
[1 1]Alexander Grosskopf,Gero Decker,Mathias Weske.The
Process Business Process Modeling Using BPMN[M].
Meghan-Kifer Press,2009.
[12]冯天佑,梁立宇,李成华,等.基于Activiti工作流引擎技
术的电力行业业务流程管理系统[J].信息通信,2013
(8):57-59.
[13]Chen W.Enterprise information management system based
on J2EE and MVC mode[C]//Proceedings of the 9th In—
ternational Symposium on Linear Drives for Industry Appli—
cations.2014.3:427_433.
『14]孙卫琴.精通Struts:基于MVC的Java Web设计与开发
『M].北京:电子工业出版社,2004.
版权声明:本文标题:工作流系统中会签功能的设计与实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1711065599a586600.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论