基于JBPM工作流引擎的OA系统

基于JBPM工作流引擎的OA系统

基于JBPM工作流引擎的OA系统

摘要:伴随着办公系统的转型换代,OA系统成为企业中不可或缺的存在。该文介绍了OA系统以及该系统结构设计,对SSH框架在OA系统中的工作原理进行具体的分析,并示例了基础功能系统管理和系统权限的实现思路以及相关代码,实现了核心功能审批流转。

关键词:OA;JBPM;SSH;工作流

中图分类号:TP317.1 文献标识码:A

文章编号:1009-3044(2020)27-0095-02

开放科学(资源服务)标识码(OSID):

1 背景

OA系统面向企业日常管理和运行,是企业人员工作必备的应用系统,它协调组织多层次多组织设备及人员完成办公业务,提高信息工作的效率和质量。伴随着信息自动化技术的不断发展,办公自动化影响着生活的各个方面[1]。

本文对系统管理、论坛管理以及审批流转功能进行设计和实现。其中系统的管理功能主要实现了对系统中的员工,部门,岗位三个模块的基本信息的增加、删除、修改、查询操作。系统权限功能初始化由系统管理员进行分配相应的权限。

2 工作流

工作流(WorkFlow)是将工作流程中的组织逻辑和相关规则,在计算机中表示并对其实施计算的模型。工作流的目标如:1)业务目标的实现;2)自动化在多个不同参与者时间授权传递任务、信息、文档等[2]。

当前常用的工作流框架有:开源JAVA工作流引擎JFlow、工作流管理系统JBPM、Storm的实时流式计算框架JStorm等。

3 系统设计

3.1 功能设计

此系统功能结构主要可包含三个部分系统管理、论坛功能、审批流转功能。

3.1.1系统管理模块

该模块是对员工基本信息的操作,其中部门、职位、使用客户是本系统的基本对象。对系统用户信息、权限、业务等各方面进行管理和操作,各个部门组织和各个岗位的信息的修改通过树状进结构化进行展示。权限的分配是通过系统管理员的统一分配。

3.1.2 论坛管理模块

论坛管理模块可分为查看主题和板块管理两个部分,其中查看主題的主要实现了用户通过界面获取实时的消息,实现用户的信息交流。板块管理包含的内容有删除、修改、新建等操作,有利于实现用户的资源共享。

3.1.3 审批流转模块

审批流转模块是本次系统开发最为核心的一个模块,实现业务申请的填写、提交、审批,用户可以在线申请相应的表单,进行填写、提交。相对应的分管领导可以审批对应的申请,实现对业务的控制和管理[3]。

3.2 系统框架设计

本系统采用B/S(浏览器/服务器)架构使用JBPM与由Spring、Struts2、Hibernate整合而成的SSH框架结合进行开发。系统整体分为表示层,业务层,持久层[4]。

在表示层中,通过JSP页面来实现系统与用户的交互,Struts2负责处理交互产生的请求(Request)与传送响应(Re-sponse),并根据核心配置文件(Struts2-config.xml)的配置,将控制层接收到的请求根据不同参数分发到相应的Action中处理,实现整合数据的目标。

业务层中,核心管理服务组件的Spring IoC容器负责向模型层(Model)组件和模型访问协作对象(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的一致性,达到层次分离效果。

持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果,减小了层与层之间的相互影响。

4 系统实现

4.1系统管理

以本系统为例,管理部分主要实现对部门、员工,岗位的管理操作,并封装对数据库的操作。设计BaseDao接口与实现类BaseDaolmpl,并使各个实体的Dao接口继承BaseDao接口.Dao的实现类继承DaoImpIBase。这样提高了代码复用率,并且使代码更加简洁。在DaoImpIBase类中,通过反射获取泛型的真实类型,类图如图1所示。

4.2 系统权限

4.2.1 权限分配

权限分配的实现使用JQuery的TreeView插件,创建一个多层次的由复选框构成的权限树。在需要分配权限的时候,只要选中权限名之前的复选框即可。为使分配权限功能更加方便和符合逻辑,它具有以下特点:

1)选中一个权限时,应同时选中所有直系上级的权限。

2)取消一个权限时,应同时取消他所有的下级权限(所有子孙权限)。

3)取消同级的所有权限时,就同时取消他们的上一级权限。

4.2.2 使用权限

权限的本质是使用某功能的许可,而本系统中功能的最小粒度就是URL链接,因此功能的使用许可就是URL的访问许可。在显示超链接之前,需要系统进行判断,当前登录用户是否拥有访问该URL的权限。

4.3 审批流转

审批流转是OA系统中不可缺少的一部分,其核心依赖于JBPM其作用是管理和控制业务的流程,提高企业单位内部运作的效率。

JBPM (Java Business Process Management),是基于java的业务流程管理系统。JBPM是相当流行的一款开源工作流引擎,引擎底层基于Active Diagram模型。

本系统完成审批流转功能需要两个步骤分别是定义工作流与管理与执行工作流。其中工作流程的定义是根据需求进行内部流程定义,也可以借助辅助工具生成。

4.3.1 定义工作流

本系统实现的过程中定义工作流主要使用流程设计器来实现,在开发工具Eclipse中安装GPD插件后可以通过拖动组件的方式来定义工作流通过XML文件进行工作流的定义,PNG图片显示具体流程细节,如图2所示。 使用GPD插件定义工作流之后,将插件生成的XML文件和PNG图片打包成ZIP格式的压缩文件来部署工作流。

4.3.2 管理与执行工作流

管理流程是指管理流程定义,执行流程是指执行流程实例,流程定义与流程实例的关系类似于面向对象编程中的类与对象关系,一份流程定义可以生成多个流程实例。

在JBPM中如果要管理与执行工作流,只需要通过调用不同Service的API就可以达到与JBPM进行交互的效果,API功能表如表1所示。

系统中所使用的管理流程的操作主要分为:

1)部署流程定义。

2)查询所有的流程定义。

3)删除流程定义。

4)获取部署时的某文件的资源。

5 结束语

OA系统的应用己经普及,具有节约成本、高效办公、信息资源整合等特点,该类系统的开发是以工作流技术为核心的应用。

本系统使用Struts2+Hibernate+Spring作为开发架构,系统具备低耦合,易维护,层次清晰的特点。与工作流相关的核心功能则由JBPM进行开发,在处理工作流相关的业务时非常方便,并且在设计流程时还可以进行图形化的操作。该系统具有节约成本、高效辦公、信息整合、资源共享等特点,对企事业单位办公具有一定的实用价值。

参考文献:

[1]曲毅,郑妍.联通办公自动化系统及协同OA办公系统的设计与实现[J].黑龙江科学,2014,5(7): 260.

[2]高亮,刘旸,宗传玉,等.基于SSH2与JBPM的OA系统应用研究[J].微处理机,2011,32(4): 38-40,45.

[3]韦付芝,姚凯学.基于JBPM工作流引擎的OA系统的设计与实现[J].电子世界,2017(17): 128-129.

[4]罗生敏,左国超.基于J2EE技术构建WEB OA系统[J].大理学院学报,2010,9(10): 98-100.

【通联编辑:谢媛媛】

作者简介:吴俊(1998-),男,湖南汨罗人,学士,研究方向为数据仓库、工作流;蔡嘉兴(1998-),男,湖南株洲人,本科在读,研究方向为人脸识别技术、软件开发技术;黎明(1974-),男,通信作者,湖南永州人,高级工程师,硕士,研究方向为机器学习、数据挖掘。

本文来自投稿,不代表多笔记立场,如若转载,请注明出处:https://www.duobiji.com/155649.html

版权归原作者所有,如有侵权、虚假错误信息或任何问题,请及时联系我们,我们将在第一时间删除或更正。

W 导出为基于JBPM工作流引擎的OA系统.doc文档