我们先来看看 Activiti和 工作流引擎?
为什么要用工作流引擎?
所谓工作流引擎是指workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。工作流引擎包括流程的节点管理、流向管理、流程样例管理等重要功能。
简单来说,就是为了统一管理流程业务。
想想看,如果要设计一个流程的程序,通常需要在数据库中存各种状态值,比如一个订单程序,要标记订单是未付款、已付款、已出库等等状态,而这些各种各样的状态参杂在程序中,逻辑自然就变得复杂了。而将这些状态对应流程里的一个个步骤,交由流程引擎去管理,这样不仅简化了业务逻辑代码,而且,还有很强的扩展性。
ActivitI介绍
ActivitI是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss jBPM的项目架构师,它特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。
Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准,包括支持对象管理组(OMG),面对新技术的机遇,诸如互操作性和云架构,提供技术实现。
由于 Activiti最大的优点就是免费开源,小项目中应用简单的串行并行流转基本能满足需求。现在很多开发人员会选择它。
Activti的学习价值比较高,是工作流入门的好教材,可以学习里面好的代码风格和思路。但是要拿Activiti做到中国式的企业级应用门槛和难度很高。想用Activiti来做企业应用,其实还需要做大量的开发封装。
XJR快速开发平台的工作流是整合activity工作流引擎的图形化流程设计器,通过可视化配置界面。基于B/S结构,纯浏览器应用,只需要拖拽组件,拼接流程,就能实现各层的审批。
XJR快速开发平台技术选型: 使用目前流行的多种web技术,包括springboot, JPA,Druid, Activiti,Lombok,swagger,poi,WebSocket,Jquery,BootStrap, maven,Jenkins 等等,支持多种数据库MySQL, Oracle, sqlserver等。 分层设计:使用分层设计,分为dao,service,Controller,view层,层次清楚,低耦合,高内聚。 安全考虑:严格遵循了web安全的规范,前后台双重验证,参数编码传输,密码md5加密存储,shiro权限验证,从根本上避免了SQL注入,XSS攻击,CSRF攻击等常见的web攻击手段。
在OA办公系统中,每个人都会用的请假流程,我们拿请假申请流程来举例,看看如何利用XJR快速开发平台进行可视化设计流程?建立工作流程前我们需要先通过XJR快速开发平台的可视化表单设计先设计出请假表单。前面有文章详细介绍过了,在这里不详细讲解了。demo: https://www.xjrsoft.com/
一、 点击后台工作流程→流程设计
二、用流程设计器画出请假流程图,XJR快速开发平台的流程设计器是整合activtity开发,采用可视化编辑工作流引擎,辅助研发人员设计专业的流程功能,像我这种只会办公软件的人都可轻易上手,节约学习成本,提高工作效率。
请假流程:申请人提交请假表单,先是主管、经理审批再由人事、副总审批。主管、经理审批后如果请假天数超过大于或者等于3天则需要副总审批后再人事最后审批,请假天数小于3天,则人事最后审批。流程结束。
三、流程设计权限设置。
四、审批人的添加设置
五、将已建立好的请假表单挂在流程上。
六、请假的流程图--流转条件设置。这里以请例为例,流转条件是请假天数。
通过XJR开发人员对Activiti大量的改造后用于做中国式的企业级应用就简单快速实用了。其可视化的流程设计器快速实现公司业务流程,既能实现OA办公系统内部工作流之间的数据整合,如借款与报销、预算与决算等,又能实现OA办公系统工作流与其他业务系统之间的数据整合,如HR、ERP、CRM等。
具体应用有以下方面:
1.关键业务流程:订单、报价处理、采购处理、合同审核、客户电话处理、供应链管理等。
2.行政管理类:出差申请、加班申请、请假申请、用车申请、各种办公用品申请、购买申请、日报周报等凡是原来手工流转处理的行政表单。
3.人事管理类:员工培训安排、绩效考评、职位变动处理、员工档案信息管理等。
4.财务相关类:付款请求、应收款处理、日常报销处理、出差报销、预算和计划申请等。
5.客户服务类:客户信息管理、客户投诉、请求处理、售后服务管理等。
6.特殊 服务类:ISO系列对应流程、质量管理对应流程、产品数据信息管理、贸易公司报关处理、物流公司货物跟踪处理等各种通过表单逐步手工流转完成的任务均可应用工作流软件自动规范地实施。