可配置的业务流程动态管理系统应用研究

2019-09-12 06:20杨朔许锦才金凤飞古卫明
计算机时代 2019年8期
关键词:业务流程

杨朔 许锦才 金凤飞 古卫明

摘  要: Activiti是一个轻量级的工作流和业务流程管理(BPM)平台,作为面向企业业务的开源框架,可运行在任何Java应用程序、云服务器上。ExtJS是一种主要用于创建前端用户界面的ajax框架。PageOffice是协助用户在线编辑Word、Excel、PowerPoint文档和Word/Excel模板的一种解决方案。文章研究了基于Activiti的可配置业务流程动态管理系统,该系统作为工作流开发基础平台,不仅适用于各种行业领域的业务流程管理软件,还可以通过动态配置工作流程适应不同的业务环境。

关键词: Activiti; ExtJS; PageOffice; 业务流程; 动态配置

中图分类号:TP317.1          文献标志码:A     文章编号:1006-8228(2019)08-07-03

Abstract: Activiti is a lightweight workflow and business process management (BPM) platform that acts as an open source framework for enterprise business and runs on any Java application or cloud server. ExtJS is a front-end ajax framework mainly used to create front-end user interfaces. PageOffice is a solution to help users realize online editing of Word, Excel, PowerPoint documents and Word/Excel templates dynamically. This paper uses Activiti, ExtJS and PageOffice to design a configurable business process dynamic management framework, which is the basic platform for workflow development. The framework is not only suitable for developing software systems with business processes in any industry field, it is also possible to adapt to different business environments through a dynamic configuration of workflow.

Key words: Activiti; ExtJS; PageOffice; business process; dynamic configuration

0 引言

企业信息化建设工作流技术不断发展,给企业带来便利,同时也给业务流程管理带来新的挑战:①针对企业的业务流程多样化,需应对外部环境变化或流程执行过程中的一些意外情况,因此需提高工作流应用平台的宽容度;②工作流应用平台需要更好的结合Web技术,以扩展其应用范围和灵活性;③工作流應用平台需要适应各种不同的应用领域[1]。为解决上述问题,本文对工作流技术、Web技术、数据采集技术、通讯技术等进行研究,实现一个基于Activiti的可配置的业务流程动态管理系统。

1 Activiti介绍

Activiti作为wfmc标准的开源工作流引擎,包括RepositoryService、RuntimeService、TaskService等服务。该引擎提供了启动流程、查询流程实例、设置获取流程实例变量、对流程部署,流程定义和流程实例的存取服务等服务[2]。在实际的信息化应用通过整合Acfiviti,使得流程业务系统的耦合降低、系统的结构清晰、业务流程管理更加便捷和易操作化。

为实现一个基于Activiti的可配置业务流程动态管理框架,结合Activiti工作流引擎具备的特性,根据业务流程和最终报文的需要,将报文的内容分解到可定制流程的各个步骤中。

在定义业务流程的过程中,业务类(BusinessEntity)上可定义流程步骤相关的业务规则(BusinessRules),从而在采集、填报、审核等界面View操作时,能给予智能化提示和校验。

在流转过程中,根据流程实例的BusinessKey获取业务实例(BusinessInstance),根据流程实例当前任务(TaskInstance)获取应使用的View,将BusinessInstance绑定到View上展现数据,同时Activiti在流程流转过程中,会保留所有历史流程步骤以及每个历史流程步骤运行时的变量,从而使流程痕迹可查。

2 ExtJS介绍

ExtJS作为一种用于创建前端用户界面的Ajax框架,其可用于开发富客户端的AJAX应用。因此,可将ExtJS用在.Net、Java、PHP等各种开发语言开发的应用中,在开发中ExtJS能够实现自动生成行号,支持checkbox全选,动态选择显示指定列等功能,并且可以编辑grid、添加新行、删除一或多行、提示多行数据,甚至支持excel导出[3]。

本文所实现框架通过ExtJS定制每个流程步骤(UserTask)涉及的界面(View),通过Activiti提供的FormKey属性在流程步骤上定义每个流程步骤使用View与View的单对单或单对多组合,最后利用ExtJS对View进行渲染。

3 PageOffice介绍

PageOffice作为一款协助用户在线编辑的服务器控件,其具有Word/Excel模板动态填充的功能。PageOffice为软件开发者构建了一套简洁高效、统一的Office对象接口,能够无缝支持doc、docx、xls、xlsx、ppt、pptx等流行Office文件格式。同时,PageOffice作为一种在线编辑的解决方案,不仅支持跨浏览器部署,实现完全由服务器端代码调用,还具有独创的文档并发编辑控制机制、独创的Word、Excel在线表单输入模式和强大的代码调试功能[4]。

因此在流程实例流转过程中,PageOffice可根据模板动态生成报文以供审核,在流程结束后,由模板生成终稿。

4 功能介绍

本文所研究的系统采用Activiti、ExtJS和PageOffice技术,研发集成使用流程定义工具,主要有四大功能模块。①任务模块:人员若为办理人,则可以通过该模块查看该用户在流程实例中的待办任务、或拾取该组任务;同时该模块还关联控制台涉及的功能,控制台不仅允许创建一个独立且没有关联任何流程实例的任务,还允许查看子任务的工作及其关联的不同角色的用户。②流程模块:该模块可显示部署的流程定义列表,同时利用该模块可以配置和启动一个流程实例。③报表模块: 该模块支持生成报表和显示之前保存历史的结果数据。查看报表这一节可以获取更多的信息。④管理模块: 该模块仅当登录用户具有超级管理员权限才可见。可用于管理Activiti的流程引擎、管理用于和组、执行和查看停止的jobs、查看数据库和部署新的流程定义等高权限操作。

4.1 任务管理功能

该模块为用户办理的任务的统一管理模块,具有以下五个功能,其样式如图2所示。

⑴ Inbox:显示登录用户需要办理的所有任务列表。

⑵ My tasks:显示登录用户任务拥有者的任务列表。当创建一个独立的任务,可以自动化操作该任务。

⑶ Queued:显示不用的任务列表,并且登录用户在该组中。这里的所有任务都必须在取后才能够完成。

⑷ Involved:显示登录用户被参与的任务(即不是办理人和任务拥有者)。

⑸ Archived归档包含已经完成的(历史的)任务。

4.2 流程模块

实际工作流的应用中,关联最紧密的就是流程部分,具体的流程配置和部署都由该功能模块进行制作,流程具有以下功能:

⑴ 编辑模型

点击模型工作区的编辑按钮,会打开Modeler。 屏幕左侧是BPMN元素工具面板,也可使用Activiti的扩展组件即可在需要时把新元素拖拽到画布中。图3中选中了一个用户任务,可以填写用户任务的属性,比如分配,表单属性和持续时间。

⑵ 元素定义[5]

① Start Events:开始事件用来指明流程在哪里开始。开始事件的类型定义了流程如何启动,在本文所研究的內容中,开始事件被设置为捕获事件,即这些事件都是(一直)等待着,直到对应的触发时机出现。

② Activities:用户任务用来设置必须由人员完成的工作。当流程执行到用户任务,会创建一个新任务,并把这个新任务加入到群组的任务列表中。

③ Gateways:网关用来控制流程的流向(或像BPMN 2.0里描述的那样,流程的tokens。)其中排他网关显示成一个普通网关(比如菱形图形), 内部是一个“X”图标,表示异或(XOR)语义。这里注意,没有内部图标的网关,默认为排他网关; 并行网关显示成一个普通网关(菱形)内部是一个“加号”图标, 表示“与(AND)”语义;基于事件网关和其他BPMN网关一样显示成一个菱形, 内部包含指定图标。

④ Boundary Events:边界事件都为捕获事件,它会附在一个环节上。这意味着,当节点运行时,事件会监听对应的触发类型。当事件被捕获,节点就会中断,同时执行事件的后续连线。

⑤ Intermediate Catching Events:定时中间事件作为一个监听器。当执行到达捕获事件节点,就会启动一个定时器。当定时器触发(比如,一段时间之后),流程就会沿着定时中间事件的外出节点继续执行。

⑥ End Events:结束事件表示(子)流程(分支)结束,结束事件同样为触发事件。即当流程达到结束事件,会触发一个结果,该结果的类型为通过事件的内部黑色图标表示。

4.3 报表模块

报表功能可将用户填报的页面通过word、excel等形式归纳展示。当前,该报表选项卡会显示2个子选项卡:①生成报表,显示系统中已知的报表列表,允许运行生成的报表;②保存报表,显示之前保存的所有报表列表。但该选项仅显示当前用户保存的报表,并不能看见其他用户保存的报表。

4.4 管理模块

在管理功能中,只有当登录用户为权限组admin中的成员时,该功能才会显示。点击Manage图标按钮,提供以下选项列表。

数据库:在数据库中显示Activiti有关内容.以解决配置流程或者排除故障等遇到的问题。

部署:显示当前流程引擎的部署,并且可以看见部署的内容(流程定义、流程图、业务规则等),同时该功能也支持上传新的部署,即从自己的计算机中选择一个业务文档或一个BPMN20.XML文件,或将文件拖拽到指定的区域即可部署一个新的业务流程。

作业:该功能显示当前的作业(定时器,等等)的信息,并且用户可以手动执行他们(如在截止时间之前触发定时器)。

5 结论

本文结合Activiti、ExtJS和PageOffice技术对可配置的业务流程动态管理系统进行了研究,该系统利用图形化配置各个流程与操作,使业务流程呈现出更多的变化和动态的特点,以满足客户需求的多样化和业务需求的多变性,同时图形化的操作可以为开发人员减少业务工作流程配置和维护的代码。此外,该系统利用移动端信息采集技术以满足用户对便携式移动设备的需求。未来的研究工作,将重新对本文应用的Acitivi、ExtJS、PageOffice框架做进一步开发和扩展,使得系统更贴合动态业务流程的应用场景。

参考文献(References):

[1]  陈学诗. 工作流技术在企业信息系统中的定制应用[D]. 东南大学硕士学位论文,2010.12.

[2] 黄莺. 基于REST的Activiti流程子系统研究与实现[J]. 通讯世界,2015.24 (228):329-330

[3] 董俊. 基于发布订阅模式的中间件设计与实现[D]. 上海交通大学硕士学位论文,2014.5.

[4] 于霄汉. 海带养殖育苗监测系统的设计与实现[D]. 山东农业大学硕士学位论文,2015.9.

[5] 郭煜昆. 基于工作流的可定制政务系统的设计与实现[D]. 西安电子科技大学硕士学位论文,2016.5.

猜你喜欢
业务流程
航天企业基于信息化的业务流程体系构建方法研究
ERP系统在企业财务管理和业务流程管理中的应用
高速公路智慧收费系统业务流程探讨
RPA机器人助业务流程智能化
STK业务流程优化的探究
企业财务管理、业务流程管理中整合ERP之探索
互联网+背景下物流公司的业务流程再造
建设项目全过程造价管理咨询服务的业务流程分析
基于财务业务流程再造的ERP信息系统构建探析
浅述供电局营销业务流程优化