什么是工作流?

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

什么是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. JS 动画笔记

    动画实现原理     核心原理:通过定时器setInterval()不断地移动盒子的位置 缓动动画原理     缓动的核心算法~~~~~~~~~~(目标值-现在的位置)/10     停止的条件是~~ ...

  2. 关于import android.support.v4.app.ContextCompat;找不到contextcompat的解决方法

    android迁移到了androidx,那么相关库的import就有问题了,需要转变为androidx的,这里比如 import android.support.v4.app.ContextCompa ...

  3. 【模式识别与机器学习】——PART2 机器学习——统计学习基础——Regularized Linear Regression

    来源:https://www.cnblogs.com/jianxinzhou/p/4083921.html 1. The Problem of Overfitting (1) 还是来看预测房价的这个例 ...

  4. 构造函数原型constructor

    对象原型(__proto__)和构造函数原型对象(prototype)里面都有一个属性constructor,constructor我们称为构造函数,因为它指向的是构造函数本身. constructo ...

  5. C#LeetCode刷题-哈希表

    哈希表篇 # 题名 刷题 通过率 难度 1 两数之和 C#LeetCode刷题之#1-两数之和(Two Sum) 42.8% 简单 3 无重复字符的最长子串   24.2% 中等 18 四数之和   ...

  6. 01从DataGrid中导入到Excel

    01网络上有很多导出数据到Excel的方法,我在网上找到了一种比较简单实用的方法(参考了网友的方法) string fileName = ""; Microsoft.Win32.S ...

  7. 看DLI服务4核心如何提升云服务自动化运维

    摘要:今天我们来说说DLI是如何实现监控告警来提升整体运维能力,从而为客户更好的提供Serverless的DLI. DLI是支持多模引擎的Serverless大数据计算服务,免运维也是其作为Serve ...

  8. 【算法•日更•第三十一期】KMP算法

    ▎前言 这次要讲的HMP算法KMP算法很简单,是用于处理字符串的,之前一直以为很难,其实也不过如此(说白了就是优化一下暴力). ▎处理的问题 通常处理的问题是这样的:给定两个字符串s1和s2,其中s1 ...

  9. Mybatis 中判断参数长度

    <if test="params.length()!=2">

  10. ucore学习

    1.启动操作系统的bootloader,用于了解操作系统启动前的状态和要做的准备工作,了解运行操作系统的硬件支持,操作系统如何加载到内存中,理解两类中断--"外设中断"," ...