聂竹青 陈智明 周湘超 陈义明
工作流技术能建模组织内部各种工作流程,实现自动或半自动的流转,记录任务操作,提高组织工作效率和质量。作者针对有多家分公司的大型评估公司的业务需要,定义了实现各种功能的工作流并详细描述了其中的报告审核和签名归档工作流。并以评估报告审核、报告签章入库和财务报表审核流程为实例,设计了一种基于主流SSH框架的、层次分明、有良好扩展性和维护性的工作流管理系统。
近20年以来,随着我国经济的发展,在评估行业内形成了一些大型的资产评估公司,这些公司除了自身技术实力雄厚,拥有大量的高水平评估人才外,还在各地设立了一些分公司,以充分发挥自己的技术优势。为了确保评估质量,规范收费管理,这些公司迫切需要规范评估报告审核、签字归档和收费审核等业务流程,同时提高公司工作效率和竞争实力。
本文基于JBPM(Java Business Process Management)工作流技术对大型评估机构分公司管理系统进行了研究和设计。
工作流起源于生产组织和办公自动化领域。它针对日常工作中具有固定程序的活动,将它们分解成定义良好的任务、角色,按照一定的规则和过程执行这些任务并对他们进行监控,从而提高办事效率、降低生产成本、提高企业生产管理水平和竞争力。
工作流管理联盟(WfMC Workflow Management Coalition)给出的工作流定义是:工作流是一类能够完全或部分自动执行的业务过程,它根据一系列过程规则,使文档、信息或任务能够在不同的执行角色之间进行传递与执行。[1]
工作流管理系统是一个软件系统,它完成工作流的定义和管理,并按照预先定义好的工作流逻辑自动推进工作流实例的执行。WfMC在1994年11月发布了工作流管理系统的参考模型,如图1所示。[2]其中,“工作流执行服务”是工作流管理系统的核心部件,是模型中最重要的组成部分,它的功能包括创建、管理流程定义,创建、管理和执行流程实例,它可能包含有多个分布式工作的工作流引擎。工作流执行服务通过提供工作流定义交换、工作流客户端应用、被调用的原因、工作流系统互操作和系统监控和管理五大接口实现和各种应用程序的交互。
图1 工作流参考模型
根据任务项的传递机制不同,工作流管理系统可以分为三种类型:
(1)基于文件的工作流管理系统:采用共享文件的方式完成任务项的传递;
(2)基于消息的工作流管理系统:通过用户的电子邮件系统传递文档信息;
(3)基于Web的工作流管理系统:通过WWW实现任务间的协作。
JBPM是JBoss组织创建的一个灵活、易扩展的工作流管理系统框架。它的业务逻辑定义没有采用目前的一些规范,如WfMC的XPDL、BPML、ebXML等,而是采用了它自己定义的JPDL(JBoss Process Definition Language)。JBPM基于UML活动图模型,结合了状态机以及Petri Net等技术,不但提供了Event-Action机制来满足活动扩展处理的需要,还提供了可扩展的Task及分配机制,来满足复杂人工活动的处理。[3]JBPM已被广泛应用于各行业办公自动化系统的开发。[4-8]
JBPM使用目前Java领域最流行的一种数据持久层解决方案Hibernate来管理它的数据库。通过Hibernate,JBPM将数据的管理职能分离出去,自己专注于商务逻辑的处理。它将流程定义封装成流程档案(process archives),传送到JPDL流程引擎加以执行。JPDL流程引擎负责遍历流程图、执行定义的动作、维持流程状态,并且记录所有流程事件。JBPM工作流组件结构如图2所示。
JBPM开发工作流系统的一般步骤如下:(1)选定所用数据库。JBPM工作流系统需要有流程数据库来存储所定义的流程以及应用数据库存储应用程序数据;(2)定义工作流。在eclipse中使用JPDL流程图形设计器设计流程,自动生成processdeflnition.xml文件;(3)生成java流程归档文件。使用Ant create.pde生成pde包的工作目录,将processdinination.xml文件和其它需要的文件复制到其目录下,使用ant build.precess.archives生成格式为jar的pde包;(4)修改数据库连接设置。在src/config/jbpm.properties中设置数据库连接信息,将数据库的JDBC驱动放在pde工作目录的lib目录下;(5)部署到数据库。执行命令Ant deploy.process.archives,将上一步生成的pde部署到数据库;(6)利用JBPM API函数开发相应的工作流程。
一般而言,设有多个分公司的大型评估公司工作流管理系统模块结构如图3所示。
通知发布:总公司的重要文件,通知各分公司负责人;各分公司的申请报告、重要合同、文件等图文资料,投标资料等发给总公司。
资料共享:总公司的报告模版、标准、档案资料要求、培训资料、行业动态等资料能让各分公司共享;分公司将各地的地方文件,如基准地价,房地产指导价格,市场调研报告等上传到总公司。
报告审核:系统的核心工作流,涉及到分公司评估师、分公司经理和总公司经理等角色。第三部分有详细的流程设计描述。
图2 JBPM工作流系统组件结构
图3 评估管理系统模块结构
报告签名入库:系统的另一核心工作流,主要功能是在报告审核通过后,由总公司秘书发起,分公司评估师、分公司经理和总公司经理参与电子签名,最后由秘书为报告加入二维码和条形码后归档入库。
防伪归档:该模块自动生成包含总公司官网链接和报告编号的二维码,加入报告文档的适当位置,客户可以手机扫描二维码,确认二维码内容后直接连接官网查询报告信息的方式判别评估报告的真伪。
收费审核:系统的又一核心流程,由分公司财务发起,经分公司经理和总公司经理审核通过后结束流程,如果不通过则驳回流程。该模块主要根据评估面积、评估价格来判别评估收费的合理性。
收费统计:总公司和分公司经理及财务按时间段和报告类别查询和统计评估收费,提供一定的决策支持。
讨论交流:整个公司进行技术交流的模块,以发帖和回帖的方式进行。
系统的用户角色包括总公司经理、总公司秘书、分公司经理、分公司评估师和分公司财务。
由于JBPM工作流框架可以将传统基于纸质文档的业务流程电子化,记录每个流程各个任务节点的操作历史,有效提高工作流执行的效率和质量,所以笔者尽量将系统功能以工作流的方式实现。系统主要有报告审核、报告签名归档和收费审核三大核心工作流,由于收费审核和报告审核的流程基本相同,本部分仅详细描述报告审核和报告签名归档的设计。
报告审核流程如图4所示,分公司评估师首先从系统获取报告编号,评估报告的编号具有唯一性,由年份+分公司拼音缩写+分公司报告序号组成,如2014GZ001表示2014年广州分公司第一份报告编号。然后上传报告,启动审核流程,成为分公司经理的待办事项。分公司经理审核报告,若审核通过,则流转到总公司经理,否则驳回,由分公司评估师修正。总公司经理审核待办事项,通过的则交给秘书,流程结束,否则驳回给分公司经理。已流经任务结点的用户可以查看工作流的流转情况,了解工作流审批进展。数据库保存报告流转审核历史,可以查询报告审核细节。
图4 报告审核工作流
报告电子签名及归档流程如图5所示。该流程在报告审核流程之后,由秘书发起,经过分公司评估师、分公司经理和总公司经理逐级电子签名,最后由秘书生成包含防伪查询链接信息的二维码,并插入到报告的适当位置,归档入库。
系统采用典型的B/S架构,基于MVC(model view controller)模式分为表示层、应用层和数据层,总体架构如图6所示。表示层基于JSP技术构建用户界面,使用JSP和Struts标签库方便数据的输入和展示,支持多种客户端平台的标准HTTP访问。应用层运行在Apache开源Web容器TomCat上,包含Web控制、业务处理和数据访问三部分。Web控制部分使用Struts2框架,采用拦截器机制处理用户请求,使业务逻辑控制器与Servlet API 完全脱离开来。业务处理部分采用轻量级Spring框架,使用控制反转(IOC)和依赖注入技术动态创建各种bean对象,基于面向切面编程(AOP)技术很方便地插入功能模块。其中,Service层用来为action提供业务逻辑操作和控制事务属性,DAO层用于数据库的各种操作,JBPM用于处理所有与流程相关的数据操作。数据访问部分由Hibernate框架实现,完成MySQL关系型数据模型和业务层对象模型之间的映射。这种分层、松耦合的软件架构使系统具有极好的可扩展性和维护性。
图5 报告签名归档工作流
图6 系统软件结构图[9]
工作流技术能建模组织内部各种工作流程,实现自动或半自动的流转,记录任务操作,提高组织工作效率和质量。本文针对有许多分公司的大型评估公司的业务需要,定义了实现各种功能的工作流并详细描述了其中的报告审核和签名归档工作流,设计了一种基于主流SSH框架的、层次分明、有良好扩展性和维护性的工作流管理系统。
[1]范玉顺,罗海滨. 工作流管理技术基础. Vol. 4. 2001: 清华大学出版社.
[2]Hollingsworth, D.. The workf l ow reference model[J]. 1995.
[3]胡奇. JBPM4工作流应用开发指南. 2011: 电子工业出版社.
[4]段雪丽, 妊妤,曹静. 基于JBPM的高校办公自动化系统的设计与实现[J]. 邢台职业技术学院学报, 2012. 29(3): p. 96-100.
[5]鲁宛生,刘婷婷,王林生. JBPM工作流在企业请假流程中的应用[J]. 电子商务, 2013(4): p. 70-71.
[6]潘强. 基于JBPM的公文审批系统的设计与开发[J]. 电脑知识与技术, 2011. 07(32): p. 7913-7914.
[7]汪会财, et al..基于JBPM的电力调度培训考试可视化流程管理系统[J]. 电力自动化设备, 2012. 32(6): p. 107-110.
[8]吴蕾. 基于JBPM工作流技术的医院内部报销审批系统[J]. 医学信息学杂志, 2012. 33(6): p. 28-32.
[9]许爱军. JBPM工作流管理系统的研究与实现[J]. 计算机技术与发展, 2013(12): p. 100-104,108.