1.简介
1.1工作流:工作的一个流程,事务发展的一个业务过程
1.2工作流系统:具有工作流的系统。 如果一个系统具备流程的自动化管理功能,这个系统就可以成为工作流系统,在计算机的帮助下,能够实现流程的自动化控制,就成为工作流
1.3工作流引擎:为实现在自动化控制,Activiti引擎就产生了
Activiti 是一个新兴的基于 Apache 许可的支持 BPMN 2.0 标准的开源 BPM 产品。它是一个轻量级,可嵌入的 BPM 引擎,并且提供了功能丰富的开发和流程设计工具。Activiti 其核心是 BPMN 2.0 的流程引擎。BPMN 是目前被各 BPM 厂商广泛接受的 BPM 标准,全称为 BusinessProcess Model and Notation,由 OMG 组织进行维护,2011 年 1 月份发布了其 2.0 的正式版。BPMN 2.0 对比于第一个版本,其最重要的变化在于其定义了流程的元模型和执行语义,即它自己解决了存储、交换和执行的问题。这代表着 BPMN 2.0 流程定义模型不仅仅可以在任何兼容 BPMN 2.0 的引擎中执行,而且也可以在图形编辑器间交换。作为一个标准,BPMN 2.0 统一了工作流社区。
作用:实现流程自动化处理
2.实现
2.1代码实现
流程自动化管理可以通过编码实现,举一个我之前做的一个系统的一个例子
开发人员发一个项目的开始协商-师傅审核-项目经理审核-总经理审核
开发人员-协商的状态:1此协商编辑完成
师傅审核-协商的状态:2师傅同意,3师傅拒绝
项目经理审核-协商的状态:4项目经理同意,5项目经理拒绝
总经理审核-协商的状态:6总经理同意,7总经理拒绝
协商的状态:1编辑完成-2师傅同意-4项目经理同意-6总经理同意
此时,通过一系列的审批,实现了一个工作从底层流到高层的过程,这个过程就是通过代码实现的工作流,整个过程就是通过对协商的一个字段的修改来不断推进工作的进程,整个审批形成了一条链,比如师傅同意之后,状态变成了2,项目经理找所有状态为2的协商同意改为4,总经理找所有状态为4的协商改为6,层层递进。
但是这样写就有一个问题,比如组织结构中,我不要师傅参与审核了,那么项目经理审核的时候就需要找状态为1的项目,那么就需要修改代码了,此时我们就需要引用工作流引擎-Activiti7,来解决这个问题
2.2 Activiti引擎原理
2.2.1关键点:节点和表单的信息转换
1.先将流程图画好
2.将流程图的每个节点的数据读取并放入表中
3.读取表中的第一条记录,处理并删除
2.2.2实现这个自动化过程
1.业务流程图要规范化,要遵守一套标准2.这个业务流程图本质上是一个xml文件,这样就可以存入我们所要的数据
3.读取业务流程图的过程就是解析xml文件的过程
4.读取一个业务流程图中的节点就相当于解析一个xml结构,进一步将数据插入到mysql的表中,形成一条记录
5.将所有的节点都读取并存入mysql表中
6.后面只要读取Mysql表中的记录就可以了,读一条记录就相当于读一个节点
7.业务流程的推进,后面就转换为表中数据,并且处理数据,结束时这一行数据就可以删除
2.2.3底层技术
xml+dom4j+mysql+jdbc
3.适用
3.1 适用行业
消费品行业,制造业,电信服务业,银证险等金融服务业,物流服务业,物业服务业,物业管理,大中型进出口贸易公司,政府事业机构,研究院所及教育服务业等,特别是大的跨国企业和集团公司
3.2 应用业务
关键业务流程:订单、报价处理、合同审核、客户电话处理、供应链管理等
行政管理类:出差申请、加班申请、请假申请、用车申请、各种办公用品申请、购买申请、日报、周报等凡是原来手工流转处理的行政表单。
人事管理类:员工培训安排、绩效考评、职位变动处理、员工档案信息管理等。财务相关类:付款请求、应收款处理、日常报销处理、出差报销、预算和计划申请等。
客户服务类:客户信息管理、客户投诉、请求处理、售后服务管理等
特殊服务类:ISO 系列对应流程、质量管理对应流程、产品数据信息管理、贸易公司报关处理、物流公司货物跟踪处理等各种通过表单逐步手工流转完成的任务均可应用工作流软件自动规范地实施