Activiti教程(一)初识

【1】初识activiti

1.1. 工作流与工作流引擎
工作流工作流(workflow)就是工作流程的计算模型,将部分或者全部的工作流程、逻辑让计算机帮你来处理,实现自动化

工作流引擎是指workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。

1.2. BPMN2.0规范
BPMN --业务流程模型与符号。
BPMN是一套流程建模的标准,主要目标是被所有业务用户容易理解的符号,支持从创建流程轮廓的业务分析到这些流程的最终实现,知道最终用户的管理监控。

通俗一点其实就是一套规范,画流程模型的规范。流程模型包括:流程图、协作图、编排图、会话图

【2】activiti概述
Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进行流程调度。其核心是基于 Java 的超快速、超稳定的 BPMN2.0 流程引擎,强调流程服务的可嵌入性和可扩展性,同时更加强调面向业务人员。
Activiti 流程引擎重点关注在系统开发的易用性和轻量性上。每一项 BPM 业务功能 Activiti 流程引擎都以服务的形式提供给开发人员。通过使用这些服务,开发人员能够构建出功能丰富、轻便且高效的 BPM 应用程序。

【3】activiti的使用
准备
activiti整合eclipse插件

插件生成的流程定义图例

图片.png

一般会生成两个文件,一个png图片,一个bpmn文件

2017-08-30_171521.png

activiti资源包

1)      database:里面存放的是Activiti使用到的数据库信息的sql文件
2)      docs:毫无疑问,api文档是也。
3)      libs:使用Activiti所需要的所有的jar包和源文件。
4)      wars:官方给我们提供的示例Demo,通过使用Demo可以更加快速的了解Activiti。
Activiti教程(一)初识_第1张图片
图片.png

创建activiti数据库(23张表)-方式一,执行sql文件
工作流框架底层需要有数据库支持,activiti5.13版本对应23张表,执行database目录下的一下三个sql文件即可创建

图片.png
Activiti教程(一)初识_第2张图片
图片.png

表分类:

1)ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。

2)ACT_RU_*: 'RU'表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。

3)ACT_ID_*: 'ID'表示identity。 这些表包含身份信息,比如用户,组等等。

4)ACT_HI_*: 'HI'表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。

5)ACT_GE_*: 通用数据, 用于不同场景下。

创建activiti数据库(23张表)-方式二 代码方式
第一步:创建java工程,导入jar包
这里jar包可以在activiti的案例中获取,将wars文件下的案例解压即可,另外记得添加mysql引擎包

第二步:添加配置(activit-context.xml)


    
    
    
        
        
        
        
        
    

    
    
        
    

Activiti教程(一)初识_第3张图片
图片.png

第三步:创建流程引擎对象,自动建表

Activiti教程(一)初识_第4张图片
图片.png

第四步:提供流程,部署流程
这里的流程既是bpmn和png文件
就是将流程定义规则保存到数据库

Activiti教程(一)初识_第5张图片
图片.png
public class ActivitiAPITest {
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

    /**
     * 部署流程定义
     *      方式一:加载单个的流程定义文件 
     *      方式二:加载zip文件
     * 
     * 执行部署流程定义,程序会操作以下三张表
     *      act_re_deployment(部署表)
     *      act_re_procdef(流程定义表)
     *      act_ge_bytearray(二进制表)
     * @throws FileNotFoundException 
     */
    @Test
    public void test1() throws FileNotFoundException {
        //创建部署构建器对象
        DeploymentBuilder deploymentBuilder = processEngine.getRepositoryService().createDeployment();

        // 方式一:加载单个的流程定义文件
//       deploymentBuilder.addClasspathResource("qjlc.bpmn");
//       deploymentBuilder.addClasspathResource("qjlc.png");
//       Deployment deployment = deploymentBuilder.deploy();
//       
//       System.out.println(deployment.getId());

         //将zip文件转换为输入流
        ZipInputStream zipInputStream = new ZipInputStream(this.getClass().getClassLoader().getResourceAsStream("process.zip"));
        // 方式二:加载zip文件
        //ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(new File("d:\\process.zip")));
        deploymentBuilder.addZipInputStream(zipInputStream );
        Deployment deployment = deploymentBuilder.deploy();
        
        System.out.println(deployment.getId());
    }
}

你可能感兴趣的:(Activiti教程(一)初识)