文章目录

  • 1 摘要
  • 2 流程绘制
    • 2.1 流程绘制
    • 2.2 指定代理人
    • 2.3 保存与导出
    • 2.4 流程图配置文件
  • 3 推荐参考资料
  • 4 Github 源码


1 摘要

BPMN 的全称是: Business Process Model and Nation,直译为:业务流程建模与标注,俗称流程图。本文将介绍使用 Activiti 官方的 web 工具绘制简易流程图。

2 流程绘制

2.1 流程绘制

一个流程,必须包含一个开始事件,一个结束事件,中间由具体的流程事件组成

流程示例:

学生请假流程:

2.2 指定代理人

每一个流程节点需要指定一个代理人,即流程执行到某个任务,需要有指定的用户来进行审批

指定代理人的方式有3种:

第一种: 固定代理人,如上图

第二种: 使用 UEL 表达式动态设置代理人

第三种,使用监听器实现动态设置代理人



2.3 保存与导出

流程图绘制完成之后即可保存模板

此时流程配置是保存在数据库中,查看流程列表,选中刚配置好的流程图,查看详情并导出

导出的文件为 xml 格式,将其改为 bpmn 格式,然后复制到 Activiti 项目中

2.4 流程图配置文件

上边介绍了3中设置代理人的方式,每一种生成的 bpmn 文件如下:

第一种,固定代理人:

./activiti-workflow/src/main/resources/processes/student_leave.bpmn
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/processdef"><process id="student_leave" name="student_leave" isExecutable="true"><startEvent id="startEvent1" name="开始"></startEvent><userTask id="sid-8D6861B2-9FE9-4909-B091-73F2B6400764" name="学生" activiti:assignee="张三"><extensionElements><modeler:initiator-can-complete xmlns:modeler="http://activiti.com/modeler"><![CDATA[false]]></modeler:initiator-can-complete></extensionElements></userTask><userTask id="sid-436168A2-4968-4D3F-9A33-51776F9733FE" name="班主任" activiti:assignee="李四"><extensionElements><modeler:initiator-can-complete xmlns:modeler="http://activiti.com/modeler"><![CDATA[false]]></modeler:initiator-can-complete></extensionElements></userTask><endEvent id="sid-EA98BD32-1A93-4AF2-A374-7DF39A33ABAA" name="结束"></endEvent><sequenceFlow id="sid-385279BD-97C2-44BC-9A9E-84179F795459" sourceRef="startEvent1" targetRef="sid-8D6861B2-9FE9-4909-B091-73F2B6400764"></sequenceFlow><sequenceFlow id="sid-6B7E69AB-52AA-4CD8-BF45-CD76E6CC7CEC" name="提交申请" sourceRef="sid-8D6861B2-9FE9-4909-B091-73F2B6400764" targetRef="sid-436168A2-4968-4D3F-9A33-51776F9733FE"></sequenceFlow><sequenceFlow id="sid-2A3D7AD7-E0F8-42ED-A521-A22E42F5B8CA" name="同意" sourceRef="sid-436168A2-4968-4D3F-9A33-51776F9733FE" targetRef="sid-EA98BD32-1A93-4AF2-A374-7DF39A33ABAA"></sequenceFlow></process></definitions>

第二种,使用 UEL 表达式设置代理人

./activiti-workflow/src/main/resources/processes/student_leave_2.bpmn
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/processdef"><process id="student_leave_2" name="student_leave_2" isExecutable="true"><startEvent id="startEvent1" name="开始"></startEvent><userTask id="sid-486A7692-35E4-476A-94EF-3566C01B8F39" name="学生申请" activiti:assignee="${student}"><extensionElements><modeler:initiator-can-complete xmlns:modeler="http://activiti.com/modeler"><![CDATA[false]]></modeler:initiator-can-complete></extensionElements></userTask><userTask id="sid-23DCF2CD-D1E0-4B66-9853-352B2E505782" name="班主任审批" activiti:assignee="${teacher}"><extensionElements><modeler:initiator-can-complete xmlns:modeler="http://activiti.com/modeler"><![CDATA[false]]></modeler:initiator-can-complete></extensionElements></userTask><endEvent id="sid-52FDCD77-D54C-4340-B624-93B92D941E77" name="结束"></endEvent><sequenceFlow id="sid-96C3385F-899C-4149-B695-CEF25F5213CB" sourceRef="startEvent1" targetRef="sid-486A7692-35E4-476A-94EF-3566C01B8F39"></sequenceFlow><sequenceFlow id="sid-5602EE93-61DC-4326-80A6-C76661889900" name="提交申请" sourceRef="sid-486A7692-35E4-476A-94EF-3566C01B8F39" targetRef="sid-23DCF2CD-D1E0-4B66-9853-352B2E505782"></sequenceFlow><sequenceFlow id="sid-EABF7DE5-1A32-4EFF-9627-9B5AB70D5E8A" name="同意" sourceRef="sid-23DCF2CD-D1E0-4B66-9853-352B2E505782" targetRef="sid-52FDCD77-D54C-4340-B624-93B92D941E77"></sequenceFlow></process></definitions>

第三种,使用监听器动态设置代理人

./activiti-workflow/src/main/resources/processes/student_leave_3.bpmn
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/processdef"><process id="student_leave_3" name="student_leave_3" isExecutable="true"><startEvent id="startEvent1" name="开始"></startEvent><userTask id="sid-569880EE-EF90-4CA2-BF03-8CE45BADD383" name="学生申请"><extensionElements><activiti:taskListener event="create" class="com.ljq.demo.springboot.activiti.listener.TaskListenerImpl"></activiti:taskListener></extensionElements></userTask><userTask id="sid-38242A27-92B1-4225-BE1E-1BEF001C6323" name="班主任审批"><extensionElements><activiti:taskListener event="create" class="com.ljq.demo.springboot.activiti.listener.TaskListenerImpl"></activiti:taskListener></extensionElements></userTask><endEvent id="sid-D4A37973-6FD9-4797-8F76-4741F1CED489" name="结束"></endEvent><sequenceFlow id="sid-66EACD0C-9A58-4D52-8CB8-B910D78A248B" sourceRef="startEvent1" targetRef="sid-569880EE-EF90-4CA2-BF03-8CE45BADD383"></sequenceFlow><sequenceFlow id="sid-C45AB0DF-5784-4DED-B73C-DDBD104962D2" name="批准" sourceRef="sid-38242A27-92B1-4225-BE1E-1BEF001C6323" targetRef="sid-D4A37973-6FD9-4797-8F76-4741F1CED489"></sequenceFlow><sequenceFlow id="sid-B9CE8749-BE0E-4669-A079-E97444983341" name="提交申请" sourceRef="sid-569880EE-EF90-4CA2-BF03-8CE45BADD383" targetRef="sid-38242A27-92B1-4225-BE1E-1BEF001C6323"></sequenceFlow></process></definitions>

一个简单的流程图至此已经绘制完成,如何启动流程,将在后边的博客讲解

3 推荐参考资料

【官方文档】Activiti User Guide

Activiti工作流实战开发

Activiti第一篇【介绍、配置开发环境、快速入门】

4 Github 源码

Gtihub 源码地址 : https://github.com/Flying9001/springBootDemo

个人公众号:404Code,分享半个互联网人的技术与思考,感兴趣的可以关注.

绘制一个 Activiti BPMN 流程图相关推荐

  1. Activiti bpmn流程图设计工具 分享

    1.前言 由于最近在学习java的activiti工作流框架,本人使用是IDEA,但是idea的actibpmn 在新版idea中不支持,且bug多,使用体验也不好,其他的选择就是单独安装一个ecli ...

  2. java中bpmn流程图_Java学习之BPMN知识以及Activiti的流程部署

    BPMN的介绍 Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准,包括支持对象管理组(OMG),面对新技术的机遇,诸如互操作性和 ...

  3. 学习笔记之-Activiti7工作流引擎,概述,环境搭建,类关系图,使用Activiti BPMN visualizer,流程变量,组任务 网关,Activiti整合Spring SpringBoot

    本篇学习笔记是观看黑马程序员Activiti7视频而得 Activiti7 一.工作流介绍 1.1 概念 工作流(Workflow),就是通过计算机对业务流程自动化执行管理.它主要解决的是" ...

  4. Activiti基础02:手把手带你来创建一个Activiti工作流

    更多Java从0-1的笔记均在专栏中- Activiti基础01:从认识Activiti7开始,到环境配置 一.Activiti入门 在本章内容中,我们来创建一个Activiti工作流,并启动这个流程 ...

  5. Activiti 自定义流程图颜色

    Activiti 自定义流程图颜色 流程图执行的为绿色,待执行为红色. 绘制流程图 package org.jeecg.common.config;/*** activiti6流程图绘制** @aut ...

  6. 【idea中Activiti BPMN visualizer插件和Camunda Modeler工作流设计器的简单使用】

    1.Idea中的工作流插件Activiti BPMN visualizer Activiti插件actiBPM在新版的idea 2020及以上版本中已经不支持,Activiti BPMN visual ...

  7. activiti bpmn 安装不上_小猿圈之Eclipse安装Activiti插件(流程设计器)

    学习java的朋友们,想必一定会接触到eclipse,那怎么在eclipse下安装activiti呢,小猿圈今天带你学习一下,希望大家看后可以学会. 一.安装步骤: 1,打开Eclipse的 Help ...

  8. 推荐一个在线创作流程图、思维导图软件—ProcessOn

    转载自 推荐一个在线创作流程图.思维导图软件-ProcessOn 最近要画流程图,破解了半天Visio2016没搞定,2016的估计都被封了,Visio收费又过贵,又不想折腾低版本的破解,所以找了个在 ...

  9. 游戏策划入门(5)——开始绘制系统的结构流程图

    开始绘制系统的结构流程 在完成了游戏的主框架后,你自己脑子里面应该非常清楚你的游戏是什么样子了.那么,怎么保证别人能够知道你的想法呢?详细的说明文档是一种办法,可是大量的文字信息只会让程序人员不断的打 ...

最新文章

  1. 【题解】P1508 Likecloud-吃、吃、吃(简单DP)
  2. 浏览器数据库IndexedDB介绍
  3. Linux 自定义命令
  4. PHP JSON数组与对象的理解
  5. 地牢房间迷宫走廊生成(二),Python实现洪水法、完美迷宫
  6. git安装步骤_详解linux安装git的方法步骤(超实用)
  7. 转专业有什么要求吗?
  8. Java获取函数参数名称
  9. Java URLEncoder 和 URLDecoder 对中文进行编码和解码
  10. 使用MSHTML解析HTML页面
  11. Kali下TheFatRat工具的安装教程
  12. JPEG中Huffman解码实例讲解
  13. [安卓手机安装Apk ] 安卓手机通过数据线在电脑下载本地的Apk应用
  14. 移动电影院为小众精品影片提供更广大的生存空间
  15. 开源中Web开发的各种资源
  16. 殷国辉老师 银行行长经营管理专家
  17. SMBLoris windows拒绝服务漏洞
  18. 玩转可视化图表之矩形树图
  19. 2021年高处安装、维护、拆除考试报名及高处安装、维护、拆除模拟考试题库
  20. python3-opencv库(4)--图片像素运算,利用加权叠加调节图像对比度和亮度

热门文章

  1. C#的TimeSpan通用操作
  2. Linux异步回调架构的实现
  3. leetcode中等之176.第二高的薪水
  4. 百度指数邀请序列号_百度男星人气榜,李现第六,王一博第二,榜首王者归来...
  5. 【增值税发票识别 OCR】如何实现自动化发票管理
  6. 风控建模七:拒绝推断
  7. 上市公司章程设置反收购条款研究
  8. python爬去百度搜索结果_python爬虫获取百度搜索结果的简单示例
  9. Java 9 揭秘(4. 模块依赖)
  10. 如何从数据库中筛选出达成指定里程碑节点的项目_【译】如何写出一份优秀的软件设计文档...