什么是工作流?

  就是通过计算机对业务流程进行自动化处理,实现多个参与者按照预定义的流程去自动执行业务流程

什么是Activiti?

  Activiti是一个工作流引擎,开源的架构,基于BPMN2.0标准进行流程定义,他的前身是JBPM

  Activiti通常是要嵌入到业务系统开发使用

如何使用Activiti开发?

  第一步:

    环境包括:jar包和数据库(25张表)

    业务系统通过Spring和Activiti整合进行开发

  第二步:

    使用Activiti提供的流程设计器(IDEA或者Eclipse actBPMN插件)工具进行流程定义

    流程定义生成两个文件:.bpmn和.png(不是必须的)

  第三步:

    将流程定义文件部署到activiti数据库

    select * from act_re_deployment #流程定义部署表

    一次部署插入一条记录,记录流程定义的部署信息

    select * from act_re_procdef #流程定义表

    一次部署流程定义信息,如果一次部署两个流程定义,插入两条记录

    建议:一次只部署一个流程定义,这样act_re_depolyment和act_re_procdef一对一关系

    常用两个方法:

      单个文件部署和zip部署

      建议单个文件部署

  

  第四步:

    启动一个流程实例

    业务系统就可以按照流程定义去执行业务流程,执行前需要启动一个流程实例

    根据流程定义来启动一个流程实例

    指定一个流程定义的key启动一个流程实例,activiti根据Key找最新版本的流程定义

    指定一个流程定义的ID启动一个流程实例

    

    启动一个流程实例需要指定 businessKey(业务标识),businessKey是Activiti和业务系统整合时的桥梁

    比如:请假流程,businessKey就是请假单ID

    启动一个流程实例还可以指定流程变量,流程变量一般使用全局变量(生命周期是整个流程实例,流程实例结束,变量消失)

  

  第五步:

    查询待办任务

    查询个人任务:使用taskService,根据assignee查询用户的待办任务

    查询组任务:使用taskService,根据candidateUser查询候选用户当前的待办组任务

  第六步:

    办理任务

    办理个人任务:调用taskService的complete方法完成任务

    办理组任务:如果是组任务,需要先拾取任务,调用taskService的claim方法拾取任务,拾取任务之后组任务变成个人任务(该任务就有负责人了)

  网关:

    排他网关:任务执行后的分支,经过排他网关的分支只有一条

    并行网关:任务执行后,可以多条分支,多条分支总会汇聚,汇聚完成,并行网关结束

    包含网关:是排他网关和并行网关的结合体

作者:彼岸舞

时间:2020\09\08

内容关于:Activiti工作流

本文来源于网络,只做技术分享,一概不负任何责任

Activiti7 学习总结的更多相关文章

  1. Springboot2.1.x配置Activiti7单独数据源问题

    Springboot2.1.x配置Activiti7单独数据源问题 简介 最近基于最新的Activiti7配置了SpringBoot2. 简单上手使用了一番.发现市面上解决Activiti7的教程很少 ...

  2. Activiti7工作流+SpringBoot

    文章目录 一. Activiti相关概念 1. Activiti介绍 2. 核心类 2.1 ProcessEngine 2.2 服务(Service)类 2.2.1 TaskService 2.2.2 ...

  3. Activiti7新的API介绍

    一.Activiti7 的组成部分 Activiti Core 作为Activiti 的核心部分,Activiti Cloud 主要是利用云服务来实现分布式业务流程开发. 二.Activiti 新的 ...

  4. activiti工作流入门学习

    工作流一般在OA系统用的比较多,当然,只要有流程审批的地方都会用到,activiti只是开源的工作流中比较流行的一个,还有其他的开源的工作流,这里学习activiti工作流:前面部分是关于activi ...

  5. activiti学习笔记一

    activiti学习笔记 在讲activiti之前我们必须先了解一下什么是工作流,什么是工作流引擎. 在我们的日常工作中,我们会碰到很多流程化的东西,什么是流程化呢,其实通俗来讲就是有一系列固定的步骤 ...

  6. activiti7 导出bpmn文件

    最近在学习springboot+activiti7整合,想做一个导出bpmn文件的功能,查了相关资料,最后没有实现.最后查看了一下代码 找到了方法 如下所示 @GetMapping("exp ...

  7. Activiti7 入门篇

    1.  工作流 简单地来讲,工作流就是在计算机的协助下实现流程的自动化控制.目前,笔者熟知的主流的框架有:Camunda .Flowable .Activiti .jBPM.还有我们国产的盘古BPM. ...

  8. 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代

    2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...

  9. Angular2学习笔记(1)

    Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...

随机推荐

  1. Python面向对象编程扑克牌发牌程序,另含大量Python代码!

    1. 题目 编写程序, 4名牌手打牌,计算机随机将52张牌(不含大小鬼)发给4名牌手,在屏幕上显示每位牌手的牌. 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不 ...

  2. 有用的20个Python代码段

    Python是一种非BS编程语言.设计简单和易读性是它广受欢迎的两大原因.正如Python的宗旨:美丽胜于丑陋,显式胜于隐式. 记住一些帮助提高编码设计的常用小诀窍是有用的.在必要时刻,这些小诀窍能够 ...

  3. 利用mybatis的Generator的插件生成代码

    1 在resources文件夹下创建generatorConfig.xml文件来做相关配置 <?xml version="1.0" encoding="UTF-8& ...

  4. 17、Java 三大特性之 多态

    知识点:多态的概念.java中多态的使用(方法重载和重写.子类对象的多态性) .多态使用的好处 1.什么是多态? 所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程 ...

  5. JS学习第七天

    从js-bom入门到放弃 window常用属性: document 返回该窗口内装载的HTML文档 location 返回该窗口装载的HTML文档的URL screen 返回当前浏览者屏幕对象 his ...

  6. 静态代理和动态代理(jdk/cglib)详解

    1.静态代理模式 代理模式上,基本上有Subject角色,RealSubject角色,Proxy角色.其中:Subject角色负责定义RealSubject和Proxy角色应该实现的接口:RealSu ...

  7. super与this的区别,更进一步的区别!——Java学习

    文章目录 this与super的含义 前言 例证 this super 总结 this与super的含义 在Java中,this有两层含义: 指示隐式参数的引用(就是当前对象的引用) 调用该类的其他构 ...

  8. Mybatis 和 Solon 勾搭在一起,也是个漂亮组合

    故事相关的源码 https://gitee.com/noear/solon_demo/tree/master/demo08.solon_mybatis 故事开讲 Solon 是Java世界里一个新的极 ...

  9. Android studio 在项目里配置签名 + cmd命令安装apk在测试机

    一.在项目里配置签名 搜索百度里有很多可视化操作在项目里配置签名,但是对于已经有签名的旧项目来说,用语句是最方便的. 方法: 第一步:把签名文件放到项目中,和build.gradle的同一级目录下.当 ...

  10. 实战开发,使用 Spring Session 与 Spring security 完成网站登录改造!!

    上次小黑在文章中介绍了四种分布式一致性 Session 的实现方式,在这四种中最常用的就是后端集中存储方案,这样即使 web 应用重启或者扩容,Session 都没有丢失的风险. 今天我们就使用这种方 ...