前言:本站为你精心整理了Activiti中小企业论文范文,希望能为你的创作提供参考价值,我们的客服老师可以帮助你提供个性化的参考范文,欢迎咨询。
一理论研究
1自定义建模
activitimodeler是基于开源Signavioweb流程编辑器的一个定制版本,提供了对BPMN2.0图形化的规范支持,建模后的流程以json格式进行存储。用户只需要了解业务流程就可以轻松地建立出复杂的工作流程。
1.1动态表单
与业务流程相关的信息有两种方式:一种包含在自身的流程变量中,另一种是通过流程变量引用的外部信息。Activiti允许存储复杂的Java对象作为流程变量,如序列化对象、XML文档等。用户都是在启动流程和完成用户任务时与流程进行交互的。而表单需要在前台解析显示之后才能与用户进行交互。表单所需要显示的属性可以通过表单服务获取。为了能够使前台显示表单变得容易,将流程定义中包含的对流程变量对象存储到Map中,然后在前台使用JSTL和EL对Map内容根据类型不同循环遍历展示。通过获取前台请求的参数,所有被提交的属性都将会作为流程变量存储在数据库中。这意味着在一个表单中新添加一个简单的字段,也会被作为一个新的变量存储。通过表单服务可以从数据库中取出表单属性并交付给前台显示。
1.2外置表单
该种方式常用于基于工作流平台开发的方式,开发人员只需要把表单内容配置好保存到.form文件中即可,然后配置每个节点需要的表单名称,实际运行时通过引擎提供的API读取任务对应的表单内容进行输出。此种方式对于在经常添加新流程的需求较为适用,可以快速新流程,把流程设计出来之后再设计表单,最后将两者进行关联。
1.3普通表单
普通表单是最灵活的一种方式,常应用在业务较为复杂的系统中。普通表单的特点是把表单的内容单独存放在一个文件中,存放方式也有两种:一种是把整个流程涉及到的表单放在一个文件,然后根据处理的环节的不同,根据环节名称匹配显示;另一种是每个任务对应一个处理页面,提交任务时根据任务的ID动态指定表单页面。
2模型部署
通过一个压缩文件(Zip、Bar)部署业模型,也可以通过一个独立资源(例如bpmn、xml等)构建部署,部署过程中要注意编码格式,防止出现乱码情况。
3模型热迁移
一个企业在流程模型建立运行一段时间后,业务规则发生变化,需要再添加一个流程节点,此时先修改模型,然后部署,部署成功后,将原有流程中未完结的流程通过迁移的方式,可以迁移到新的流程模型上。在迁移过程中,需要修改Activiti的运行表,将流程任务表中的流程定义ID修改为新的流程定义ID,同时修改运行流程表中的流程定义ID,修改运行时定时任务数据表和运行时流程人员与节点关联表,最后修改历史流程实例表。通过拦截器对原有任务的修改,可以实现未完成的流程热迁移功能。
4核心功能
4.1会签
会签表示同一个任务节点需要多人协同处理,在配置过程中,可以选择并行处理也可以选择顺序处理。处理过程中可以设置处理通过率,如果设置为60%,则审批通过率大于等于该数时即可流转到下一节点。会签符合中小企业的具体办公情况,具有一定的应用场景。
4.2加减签
在某一会签节点,也存在一种特殊的情况,即在审批过程中,需要新加入审批成员或者减少审批成员,此为加减签功能。其中加减签过程,不会改变原有配置。加减签过程中需要修改循环次数,集合人员ID等相关信息。
4.3指派
流程在流转过程中,如果任务处理人有事不能处理时,管理员可以通过指派功能将任务强制性的指派给某人进行处理。指派过程中需要注意业务规则以及人员的组织结构关系。
4.4任务提醒方式
可以设置任务的提醒时刻,Activiti支持邮件方式提醒。
4.5任务驳回
任务审批过程中,如果审批者任务申请者条件不符合,不能继续流转,可以选择驳回到申请人,由申请人重新修改后再次提交。
4.6
可以分为转派和协助两种方式。转派类似于指派,区别是转派是由任务处理人发起的行为,任务处理人将任务转派给其他人处理,其他人处理后任务会继续向下一个节点流转。协助处理是把任务转给其他人处理,其他人处理之后,任务会回到原任务处理人的代办事项下,而不是继续流转到下一个节点。
二实例验证
基于上面的分析,给出了基于Activiti引擎实现工作流开发的通用方案。本文以JavaEE平台进行设计开发,数据库使用mysql数据库。以请假流程为示例,通过对请假流程的建模、设计、开发、测试,来演示Activiti是如何快速构建企业工作流程的。
1系统设计
首先是管理员登录后,建立工作流模型图,在建模过程中,需要设置节点的处理人变量及表单字段。生成模型后对模型进行部署,此过程也可以是对原有模型进行修改并重新部署。模型部署成功后,需要根据具体业务情况对节点处理人进行配置。都配置完成后,应用程序可以调用工作流引擎接口实现流程的启动、表单数据的读取以及任务的提交处理与驳回处理等。由于activiti集成了Modeler模型编辑界面,所以在Modeler中即可快速建立流程图。本文采用内置表单方式,即在建模过程中,将表单内容在节点图标中设置完成。
2系统实现
建立好模型之后,需要对模型进行部署,部署成功之后就可以正常使用流程了。申请人启动流程后即可看到设计过程中内置表单的内容字段。填写表单提交后流程即可正常流转。通过如下代码即可取到表单内的内容并显示到前台页面。提交任务时通过如下代码即可完成任务的提交,流转到下一环节。
3结果分析
通过如上的框架设计,如果企业中需要添加或修改流程,只需建立新的模型或者修改原有模型并重新部署即可。对于新建立部署的模型,可以直接进行使用;对于修改的模型,部署后还需要对原有模型的流程进行迁移即可。采用上述设计的解决方案,可以明显地提高工作效率,降低维护成本。通过Loadrunner对该流程进行了压力测试,结果显示性能良好,与其他工作流引擎比较具有一定的优势。
三结语
本文对基于Activiti的工作流引擎在企业中的实际应用作了深入研究,给出了完整快速地建立工作流模型的解决方案,结合员工请假流程的例子,首先建立员工请假流程模型,即UML活动图,然后对建立的模型进行部署,部署成功后该流程即可以正常使用。但是对于复杂流程的迁移还存在问题,比如迁移后的流程图显示不准确等。下一步的工作是深入完善工作流框架的设计,使该框架具有更广泛的适用性和应用性。
作者:任铭亮杨之垚高永祥单位:河南新飞金信计算机有限公司