回顾一下以前使用过的activiti工作流;下载工作流引擎和下载插件就不说了,这个百度上很多。
安装遇到的问题:
说一下再下载插件中容易遇到的几个问题以及解决的方案;自己电脑上安装的有java ide的有myeclipse 8.5,eclipse 3.7中文版32位和eclipse 4.2 64位。首先是使用mycelipse安装activiti工作流,发现居然没有这个Ide居然没有自带安装插件的功能,过段换eclipse 3.7结果安装途中报了一个错误,具体的名字忘了,反正好像是缺少3个架包,去下载了一下,发现还是不行,最后没办法就重新安装了一个eclipse4.2,建议不管遇到什么问题,只要安装一个4.0以上的版本基本上都可以;在eclipse里面点击一下Help 然后再点击Instartall new 这个时候出来下图所示,安照步骤来安装就好了;
Activiti的定义和背景介绍:
Activiti 作为一个遵从 Apache 许可的工作流和业务流程管理开源平台,其核心是基于 Java 的超快速、超稳定的 BPMN 2.0 流程引擎,强调流程服务的可嵌入性和可扩展性,同时更加强调面向业务人员。本文主要介绍 Activiti 的背景和基础知识,包括 Activiti 结构、基本服务和功能简介,开发环境的搭建以及主要功能的代码示例。
核心原理:
1 流程定义:流程图。定义流程的各种节点,每个节点的详细信息(名字,唯一标示,参与者或者叫处理人),流程流转的信息(节点的from和节点的to),流程流转的条件信息。工作流所做的事情,就是在流程当中定义好相关的业务逻辑,这些业务逻辑主要用来处理流程的流转。
2 待办:待处理。等待处理的任务。针对具体的人,针对具体的一条流程。
3 流程实例:每一个流程都会有一个对应的流程实例,在业务表中需要保存这个流程实例的信息,流程实例是唯一的,通过这个流程实例,可以得到具体的业务信息和流程的信息然。
4.流程办理:我们可以根据得到的流程实例来取办理这个流程,是让他继续往下走,还是退回整改;
4 历史信息:已办。
先在Controller里面去创建Service实例,然后在我们对用户添加修改方法里面,执行相应的操作方法;
数据库表名说明:
Activiti工作流总共包含23张数据表,所有的表名默认以“ACT_”开头。 并且表名的第二部分用两个字母表明表的用例,而这个用例也基本上跟Service API匹配。
1. ACT_GE_* : “GE”代表“General”(通用),用在各种情况下;
2. ACT_HI_* : “HI”代表“History”(历史),这些表中保存的都是历史数 据,比如执行过的流程实例、变量、任务,等等。Activit默认提供了4种历史级别: Ø none: 不保存任何历史记录,可以提高系统性能; Ø activity:保存所有的流程实例、任务、活动信息; Ø audit:也是Activiti的默认级别,保存所有的流程实例、任务、活动、表单属性; Ø full: 最完整的历史记录,除了包含audit级别的信息之外还能保存详细,例如:流程变量。 对于几种级别根据对功能的要求选择,如果需要日后跟踪详细可以开启full。
3.ACT_ID_* : “ID”代表“Identity”(身份),这些表中保存的都是身份 信息,如用户和组以及两者之间的关系。如果Activiti被集成在某一系统当中的话,这些表可以不用,可以直接使用现有系统中的用户或组信息;
4.ACT_RE_* : “RE”代表“Repository”(仓库),这些表中保存一些 ‘静 态’信息,如流程定义和流程资源(如图片、规则等);
5. ACT_RU_* : “RU”代表“Runtime”(运行时),这些表中保存一些流程实 例、用户任务、变量等的运行时数据。Activiti只保存流程实例在执行过程中的运行时数据,并且当流程结束后会立即移除这些数据,这是为了保证运行时表尽量的小并运行的足够快;
流程图详解:
上图以一个简单的请假流程来说明此流程图;首先我们要给这个流程图配置一个ID和name,这样当我们发起请求以后可以去对应一个具体的流程实例。然后会画一个流程的发起人,给他一个ID和name,接着再赋予它一个流程发起人的值。这里可以传入一个具体的用户id,也可以传入一个变量。发起流程之后,会由部门领导先进行审批,同样也要给部门领导赋予ID和name,然后会给他赋予具体的值。
第一个值是说我们可以传入变量,第二个是我们可以传入用户,第三个是我们可以传入一个用户组;部门领导审批的途中会接受到你传过来的一个boolean值,来决定是继续往下走,交给人力资源部审批,还是退回整改。比如说张三发起了一个流程要请假,然后他请10天假,部门领导肯定会觉得太长了,不行,我拿到一个false说要你退回整改,你该了一下说请3天假吧,部门领导说这个可以接受,然后传入一个true,接着由人力资源审批,同理,人力资源也可以同意,或不同意,不同意那么张三又得重新申请,继续走流程;如果同意了,那么就决定是否给你发一封邮件通知你,还是当面告诉你,最后你请假提前回来了,那么得去做一个销假得过程;