硅谷杂志:基于JBPM的文件审批系统的设计 |
2012-10-29 17:34 作者:郑丽 曹莎莎 来源:硅谷网 HV: 编辑: 【搜索试试】
|
|
【硅谷网10月29日讯】据《科技与生活》杂志2012年第16期刊文称,OA应用中公文等文件审批是一项常用的功能。就是通过工作流技术的使用,流程能够脱离系统之外定义,提出一种基于Jbpm和Struts+Spring+Hibernate的文件审批系统体系结构,对该系统作相应的分析和设计。该系统结构的实现具有良好的可移植性、可延展性和可维护性。
0引言
以前的公文采用人工传递的形式,效率低,出错率高。而工作流这一概念来源于工业自动化线,目前技术成熟,是指在利用数字化的方式自主定义业务流程模板,实现企业业务流程的模型化,网络化及共享性,避免了“信息孤岛”,这个业务过程的计算机化体现,利用业务流程模型在客户端模拟整个公文的流转过程。
工作流在OA中应用比较多。在中国很多事业单位,政府机关,学校的行政部门,人事部门,财务部门的日常处理中对公文的处理。流转使用频繁,要求较高,这是具有中国特色的。现在慢慢延伸到大量的企业。而且扩展到休假,报销,会议等领域。由于这样可以提高工作效率,增强各个部门的协同工作能力,提高业务的可控性,避免人为的错误,缩短业务周期,真正实现无纸化办公,知识管理。
工作流的关键技术是流程的建模,她是工作流的灵魂,包含2方面的内容,一是流程建模语言,它是工作流的灵魂,建模语言的建模能力的强弱至关重要,二是建模工具,以可视化的方式建立流程,再分析研究。最终达到整合规范流程,同时也能精确查出流程中不合理的元素,也可对流程正确的规划重组。
1工作流引擎技术
本文采用JBPM,可以管理流程,组织编排流程,灵活的延展流程,通过JBPM创建的工作流可以协调客户端的工作人员,应用程序和server。而且可以像使用java库一样容易。JBOSSJBPM可配置为任何数据库。并可以部署到任何的应用型server。JBPM拥有三种流程定义的语言JPDL,PAGEFLOW和BPEL,通过Hibernate数据持久化层,轻量级的,能达到低投入高效果,Hibernate为现今Java领域最流行数据持久层解决方案。采用BeanStruts作表现层架构,优势在于基于表单的事件驱动方式。
2流程定义
基本的流程定义是由图和节点构成的,并且在文件processdefinition.xml中定义。每个节点都有一个基本的类型,可以是状态(state)、决策(decision)、分支(fork)和联合(join)。每个节点都有一套离开转换,可给离开节点的转换命名来加以区分。
这是一个简单的流程,由开始状态、结束状态与一个s状态点组成,对应的processdefinition.xml文件如下:
<!--流程定义-->
<process-definition>
<!--开始状态节点-->
<start-state>
<transitionto=’s’/>
</start-state>
<!--状态节点s-->
<statename=’s’>
<transitionto=’end’/>
</state>
<!--状态结束节点-->
<end-statename=’end’>
</process-definition>
代码中定义的流程包括3个状态节点:开始状态、状态s和结束状态。开始状态中定义了一个默认转换让流程转到状态s。同样,状态s中也定义了默认转换让流程转到结束状态。依照此流程定义一级审批流程、二级审批流程、三级审批流程和四级审批流程。
3流程动作处理器
1)审批通过处理器FinishAction类
publicclassFinishActionimplementsActionHandler{
privatestaticfinallongserialID=1L;
publicvoidexecute(ExecutionContextcontext)throwsException{
ProcessInstanceprocInstance=context.getContextInstance().getProcessInstance();
Transitiontrans=context.getTransition();
Nodenode1=transition.getTo();
ArticleServiceservice=(ArticleService)BeanFactory.getBean("articleService");
Listlist1=articleService.getArticlesByPdInstance(processInstance.getId());
if(list1!=null){
for(intj=0;i<list1.size();j++){
Articlearticle1=(Article)list1.get(j);
if(article1.getState()!=null&&article1.getState().intValue()==Article.PUBLISH){
article1.setAuditState(node1.getName());
service.modArticle(article);}}}}
2)审批未通过类NoFinishAction
3)审批不同意类NoagreeAction
4)审批同意YesagreeAction
4系统设计
整个应用程序遵循传统模式三层架构,从上到下层次为表现层、模型层,业务层,业务层在访问持久层的同时还要访问工作流层,这种架构实现简单,但是业务层工作量大。负担重。持久化层,直接使用hibernate来实现。对业务逻辑中的代码不需要变动.模型层通过Spring框架来实现。封装持久层和工作流层在业务层里。用于中小企业。整体架构如图:
5结论
本文介绍了设计开发了一个文件审批系统使用工作流技术可提高复用性和维护性,工作流使用当前流行的JBPM软件,遵循传统的三层架构实现文件的审批系统,由于传统架构的缺点,只适合中小系统。需要在实际应用中发现问题。
|
|
|
|
【对“硅谷杂志:基于JBPM的文件审批系统的设计”发布评论】 |
版权及免责声明:
① 本网站部分投稿来源于“网友”,涉及投资、理财、消费等内容,请亲们反复甄别,切勿轻信。本网站部分由赞助商提供的内容属于【广告】性质,仅供阅读,不构成具体实施建议,请谨慎对待。据此操作,风险自担。
② 内容来源注明“硅谷网”及其相关称谓的文字、图片和音视频,版权均属本网站所有,任何媒体、网站或个人需经本网站许可方可复制或转载,并在使用时必须注明来源【硅谷网】或对应来源,违者本网站将依法追究责任。
③ 注明来源为各大报纸、杂志、网站及其他媒体的文章,文章原作者享有著作权,本网站转载其他媒体稿件是为传播更多的信息,并不代表赞同其观点和对其真实性负责,本网站不承担此类稿件侵权行为的连带责任。
④ 本网站不对非自身发布内容的真实性、合法性、准确性作担保。若硅谷网因为自身和转载内容,涉及到侵权、违法等问题,请有关单位或个人速与本网站取得联系(联系电话:01057255600),我们将第一时间核实处理。
|
|
|
|