Activiti学习第一章——概念



 

1、什么是Activiti

 (1)工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现。

(2)工作流管理系统(Workflow Management System, WfMS)是一个软件系统,它完成工作量的定义和管理,并按照在系统中预先定义好的工作流逻辑进行工作流实例的执行。工作流管理系统不是企业的业务系统,而是为企业的业务系统的运行提供了一个软件的支撑环境。

(3)常见的工作流框架有Activity、JBPM、OSWorkFlow、WorkFlow。现在使用activiti5.16版学习。

(4)工作流框架底层需要有数据库提供支持,activiti5.18版本,有24张表。JBPM4.4框架有18张表。JBPM底层使用hibernate操作数据库。Activiti框架底层使用的mybatis操作数据库。




2、使用Activiti基本过程

定义流程(流程模型设计) -> 部署流程定义(部署到实施的项目中) -> 启动流程实例->获取组任务1->办理个人任务1->获取组任务2->办理个人任务2.。。。。。->结束

组任务与个人任务区别:

组任务是多个用户都可以完成的任务。没有组任务直接办理个人任务;

有组任务需先通过拾取将组任务变成个人任务, 然后再办理。



 

以请假为例说明ctiviti工作流程

第一步将该请假业务流程部署到activiti系统,当系统将该业务流程部署启动时,则业务流程开始,即张三提出一次请假申请业务流程开始了,activiti在部署该业务流程时候,会自动记录该流程中所有任务及当前处理到那个任务状态。(相比于传统的处理方式,activiti将状态自动保存到数据库里面了,不需要用户去设计数据库表字段status来标识业务流程当前状态)。传统方式如果需要去取当前业务状态,则自己封装api从业务service层到数据库Dao向数据库取得status字段值,即当前业务流程状态。那么activiti里面该如何获取当前业务流程状态呢?activiti中封装了一系列API(核心的都有几十上百个,几乎常用的业务场景全部已经封装好了),可以去获取当前业务流程的状态。在传统的方法中,如果一个状态改变,需要流转到下一个状态,需要编码人员,写代码判断状态去流转。而在activiti中,它灵活的事件机制能够自动高效的推动业务流转

 

 

3、Activiti各种服务:

 RepositoryService:流程仓库Service,用于管理流程仓库,如部署、删除、读取流程资源。

 IdentifyService:身份Service,管理和查询用户、组之间的关系。

 RuntimeService:运行时Service,管理所有正在运行状态的流程实例、任务等。

TaskService:任务Service,用于管理、查询任务,如签收、办理、指派等。

 FormService:表单Service,用于读取和流程、任务相关的表单数据。

 HistoryService:历史Service,可以查询所有历史数据。

ManagementService:引擎管理Service,和具体业务无关,主要是可以查询引擎配置、数据库、作业等。

猜你喜欢

转载自lqllinda01.iteye.com/blog/2416051