欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 科技论文 > 计算机论文

基于JBPM的公文流转系统的设计与实现

时间:2011-04-24  作者:秩名
jdbc:mysql://localhost:3306/jbpm

 

 

 

true

false

 

其中的参数参照实际应用进行修改。

完成上述两个步骤,基本上就完成了jbpm持久化向平台的整合。

(2)与Spring框架整合

Jppm与Spring整合的一个重要工具是Spring-Jbpmmodule插件,通过这个插件,可以轻松的实现二者的整合。

首先修改Spring的配置文件,由于Spring支持多SessionFactory以及多数据源,因此可以很容易实现二者的整合,只需要建立一个Spring配置文件jbpm-pring-cfg.xml,,代码如下:

 

class='org.springframework.orm.hibernate3.LocalSessionFactoryBean'>

 

classpath:hibernate.cfg.xml

 

 

 

 

class='org.springframework.orm.hibernate3.HibernateTransactionManager'>

 

 

 

 

 

通过上述配置,基本上实现了Jbpm向Spring整合。

(3)webApp

向Struts2整合不能够通过配置来实现,因为目前jbpm的web控制台采用的是JSF技术框架,故jbpm的web应用需要通过移植来实现。

综上所述,jBPM与Struts2/Spring/Hibernate的集成就完成了,一个公文流转系统框架搭建起来了。论文大全。

4实现一个公文流转系统

4.1流程需求报销流程的需求如下:员工在登录系统后,可以填写报销单据,完成后该报销单据将会被流程送到该员工据在的部门主管进行审批。主要审批结果可能有两个,一个是不同意,流程直接结束,一个是同意流程判断报销金额,如果金额大于1000,那么流程将其送达总经理审批,否则流程就将报销单送到财务人员那里,财务人员直接处理后流程结束。如果送达总经理,总经理审批也比较简单,如果同意送达财务处,否则流程结束。

4.3设计流程报销的重点是流程,所以就不再设计业务表。我们约定只能有两个用户可以登录,他们分别是:user1/user1、user2/user2(用户名/密码)。user1对应的部门经理为manager1/manager1,user2对应的部门经理为manager2/manager2。总经理只有一个,就是supermanager/supermanager。财务也只有一个:cashier/cashier。

把任务实例分配给部门经理时,需要对前面提交报销的人进行判断。如果申请人为user1,那么就选择manager1作为审批的部门经理;否则选择manager2作为部门经理。这个任务实例的参与者分配采用Handler的方式。Handler类的代码见代码清单4-1。

packagetest.assignment;

importorg.jbpm.graph.exe.ExecutionContext;

importtest.Constants;

publicclass ManagerAssignment implements AssignmentHandler,Constants {

public void assign(Assignable assignable,ExecutionContext executionContext)

throws Exception { //从当前流程实例上下文当中取出当前报销人

Stringissueperson=executionContext.getContextInstance().getVariable(this.ISSUE_PERSON).toString();

if(issueperson.equals('user1')){

//当报销人为user1时,部门经理为manager1

assignable.setActorId('manager1');

}else{

//当报销人为其它人时,部门经理为manager2

assignable.setActorId('manager2');

}

}

}

在代码清单4-1当中,我们使用了一个名为Constants的接口来存储常用变量。

报销审批完成后,还需要有一种机制通知报销人。为简单起见,这里直接在控制台打印一条消息来说明报销结果。负责打印的Action类如代码清单4-2所示。

 

package test.action;

 

importorg.jbpm.context.exe.ContextInstance;

importorg.jbpm.graph.def.ActionHandler;

importorg.jbpm.graph.exe.ExecutionContext;

importtest.Constants;

publicclass NotifyPaymentAction implements ActionHandler,Constants

publicvoid execute(ExecutionContext executionContext) throws Exception {

//获取流程上下文对象

ContextInstancect=executionContext.getContextInstance();

//从当前流程实例上下文当中取出当前报销人

Stringissueperson=ct.getVariable(this.ISSUE_PERSON).toString();

booleanresult=false;

if(managerApproveResult.equals(this.APPROVE_RESULT_OK)){

StringmoneyCount=ct.getVariable(this.MONEY_COUNT).toString();

if(Integer.parseInt(moneyCount)>1000){

System.out.println('亲爱的 '+issueperson+' 你的报销审批已通过');

}else{

System.out.println('亲爱的 '+issueperson+' ,很遗憾,你的报销审批被否决!');

}

executionContext.getToken().signal();

}

实际流程应用中,可以利用jBPM中的Node节点通知任务参与者,或者加一个Node节点,通过为该节点添加Handler类来将流程处理结果插入到业务表中,参与者再通过查看业务表了解流程处理情况。论文大全。

用配置好的JBPM流程设计器的Eclipcs打开jbpm-web-test工程,在里面新建一个processes目录用来存放流程设计文件。根据对流程的描述,可以画出如图2-1所示的流程图。

图2-1创建报销流程模版

5小结

为了文章的简洁清晰 ,在论述的时候我删掉了很多额外描述,重点描述了如何将JBPM工作流引擎集成到J2EE平台下的整合好的S2SH开源框架来实现一个公文流转系统,尽管公文流转系统实现起来有些复杂, 但是只要抓住它的本质就不难理解了 。


参考文献:

[1].孙瑞志,史美林. 工作流异常处理的形式描述[J]计算机研究与发展, 2003,(03) . 57 - 68.

[2].万良君,怀进鹏. 面向工作流系统的生态组织模型研究[J]北京航空航天大学学报, 2004,(08) . 2-3.

[3].赵璇. 基于分布式工作流的OA系统[D]浙江大学, 2002 . 40- 42

[4].陆剑江. Lotus Notes在办公自动化系统开发中的应用研究[D]苏州大学, 2001 .

[5].蒋海彦,鄂明成,习中革. 基于Web的表单工作流系统设计与实现[J]北方交通大学学报, 2004,(04) .

[6].胡皓. 从自组织理论看进化的一般内部根据[J]东疆学刊, 2002,(02) .

[7].陆元军. 面向制造企业供应链管理系统集成平台中的工作流管理系统研究[D]浙江大学, 2002 .

[8].李薪. 管理信息系统的技术研究与设计[D]西安电子科技大学, 2001 .

 

查看相关论文专题
加入收藏  打印本文
上一篇论文:基于GSM的远程多气体监测系统(图文)
下一篇论文:基于LabVIEW的振动信号采集与分析系统的开发
科技论文分类
科技小论文 数学建模论文
数学论文 节能减排论文
数学小论文 低碳生活论文
物理论文 建筑工程论文
网站设计论文 农业论文
图书情报 环境保护论文
计算机论文 化学论文
机电一体化论文 生物论文
网络安全论文 机械论文
水利论文 地质论文
交通论文
相关计算机论文
最新计算机论文
读者推荐的计算机论文