一、流程绘制与导入

百度啥的找了好多bpmn绘制工具,都不尽如人意,大多数都不能编辑网关出口的跳转条件,最后还是选择了activiti官方的那个绘图的app。。。

啥都好,就是线不能弯,很难受。(后来开发的时候惊讶地发现了方法,虽然感觉操作不是很友好)

要是有好用的希望大家能够推荐一下~

下面Old Version选择6.x Download,下载完成后是一个zip包,解压后把里面的activiti-app.war丢到tomcat下面启动就行,这边使用tomcat8.5.49,该war包需要java1.8。

(这边用idea直接起war包好像会遇到一系列问题,主要是contentPath会变,所以还是直接丢到tomcat下面吧)。

1、

启动后访问:http://localhost:8080/activiti-app/#/会跳转到登录页,默认账号:admin/test即可,登陆后界面如下,选择第一个:

2、

然后选择Create Process

3、

新建页面如下:

Model name为流程名称(可重复)

Model key为流程Key,实际调用中使用的即为该key,似乎key可以相同,但是后面创建的会有版本号的概念,会自动+1

4、

画图就完事了,绘图规则可以自行了解bpmn

5、

保存后选择下载,放入工程目录/resources/processes下,修改后缀为bpmn,其实应该是可以直接解析bpmn20.xml文件的来着,具体的还在学习~

启动项目出现:The following process definition files will be deployed: [***.bpmn]即说明流程部署成功。

二、如何开始一个流程

我们以上图的流程为例,这边先提几个关键的service类

2.1 服务接口

1、TaskService

在流程进行过程中,每个节点的操作方法,经常用的比如:查询处于“领导审批”这个节点的任务,完成这个任务等等。

2、RuntimeService

流程相关服务,基本的功能例如:开始一个实例流程等等。

3、RepositoryService

流程部署相关的服务

4、HistoryService

历史流程相关的服务

2.2 开始流程

如上所说,开始流程我们需要用到RuntimeService这个类。

直接上代码:

@PostMapping(value = "/start")

@ResponseBody

@ApiOperation(value= "启动某个流程")publicString start(@RequestParam String instanceKey) {//map中放入该流程需要的业务数据

Map map = new HashMap<>();

map.put("createUser", "Test");

map.put("createTime", 1576206360000L);

ProcessInstance instance=runtimeService.startProcessInstanceByKey(instanceKey, map);returninstance.getId();

}

调用runtimeService.startProcessInstanceByKey(),根据部署的流程key来启动一个流程,RuntimeService里面也有很多根据其他标识启动流程的方法,具体还需要研究。

其中instanceKey对应项目启动时日志中部署的流程key,也就是bpmn文件中该行的id。

根据方法返回的id观察数据库,可以发现很多表里面都会新建以该id为主键的数据,该条id也可以用来标识一条流程实例。

2.3 查询流程

流程的最基础的查询也需要用到RuntimeService这个类:

@PostMapping(value = "/list")

@ResponseBody

@ApiOperation(value= "查询某个流程实例")public Listlist(@RequestParam String definitionKey) {//创建查询条件

ProcessInstanceQuery processInstanceQuery =runtimeService.createProcessInstanceQuery();//根据流程实例key来查询,即查询该流程有多少个正在进行的实例

List runningList =processInstanceQuery.processDefinitionKey(definitionKey).list();//返回实例的id,这边需要包装成自己需要的业务数据返回

List ids = new ArrayList<>();

runningList.forEach(list->ids.add(list.getId()));returnids;

}

这边是根据2.2中的key来查询实例,实际观察该类里面的方法,可以发现很多的其他查询条件。

这边如果直接返回List会报懒加载的一些错误,所以还是自己封装一遍比较好,里面不需要的字段也比较多。

activiti前端画图转化_记Activiti入门使用-2 流程绘制、导入及开始一个流程相关推荐

  1. activiti前端画图转化_用于Activiti前端显示流程图的插件

    因为现在做一个基于Activit的工作流OA,在设计过程中需要显示用户设计出来的流程图. 所以需要使用一个流程图插件,可以用来加载流程,也可以直接通过拖拽的方式设计流程. 思来想去,搜索了很多插件,最 ...

  2. activiti前端画图转化_activiti在线画流程图

    springboot2.2 activiti6.0 activiti-modeler 5.22.0 注明:版本不一样会导致报错 效果图 代码分享: 链接:https://pan.baidu.com/s ...

  3. uel表达式 字符串截取_(4)activiti工作流引擎之uel表达式

    有了前面几章,我们肯定有一定的困惑,activiti如何与实际业务整合,比如一条采购单,如何跟一个流程实例互相关联起来? 这里就需要使用到activiti启动流程实例时设置一个流程实例的busines ...

  4. activiti api文档_【白银人机】Activiti 工作流从入门到入土:完整 hello world 大比拼(API 结合实例讲解)...

    点击上方"好好学java",选择"置顶"公众号 重磅资源.干货,第一时间送达 重磅推荐  ① 纯福利 | 公众号资源大汇总,一年才一次! ② 重磅!!2018年 ...

  5. activiti jsp 流程设计器_「Activiti精品 悟纤出品」Activiti插件来助你一臂之力 - 第327篇...

    ​ 相关历史文章(阅读本文前,您可能需要先看下之前的系列 ) 国内最全的Spring Boot系列之三 2020上半年发文汇总「值得收藏」 程序CPU占用率飙升,如何定位线程的堆栈信息?「超详细,值得 ...

  6. 《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门

    文章目录 1. 工作流简述 1.1.工作流是什么 1.2.哪些行业需要工作流 1.3.工作流系统的使用 2.常见的工作流框架 3.Activti的历史简介 4.重要的名词解释 4.1.工作流引擎 4. ...

  7. 整理前端综合笔记_从入门到入坟

    文章为个人整合的笔记,并无商业用途 JS 基础语法操作符等 Var关键字 – typeof操作符 – undefined - null - boolean number - string - symb ...

  8. java代码制作activiti会签_工作流 activiti 自定义下一审批人和多人会签的简单实现...

    1.动态指定下一审批人 在这里我使用的是监听器模式 首先看整体的流程图 在需要动态指定审批人的节点上添加一个任务监听器 这是已经添加好的监听器 选择create  然后将需要使用的监听器路径写上. j ...

  9. Activiti第二篇【管理流程定义、执行任务和流程实例、流程变量】

    tags: Activiti 上篇Activiti只是一个快速入门案例,这篇就讲定义.部署.查看任务等等的一些细节[涉及到的数据库表.对象等等]... 管理流程定义 管理流程定义主要涉及到以下的4张表 ...

最新文章

  1. 小程序生成网址链接,网址链接跳转小程序
  2. 前后端分离的思考与实践(三)
  3. 几款LED灯带作为反向电流感应测试
  4. Trie的C++实现及HDU1251,hdu1671
  5. 代码演示:先来后到的特例、优劣、源码分析
  6. lua C++ wrapper
  7. 犯人释放的C语言程序,C语言的自动关机程序和一个用来整人的小程序
  8. C++ primer 第12章 12.3 使用标准库:文本查询程序
  9. 「面试」美团肝了我30+问题
  10. 协议处理程序初始化失败_域间路由协议的内容有哪些 域间路由协议的内容介绍【详解】...
  11. 基于JAVA+SpringMVC+Mybatis+MYSQL的课堂考勤系统
  12. L2-006 树的遍历(建树)
  13. SWOT分析》思维导图,帮助你做好企业优势劣势分析图
  14. rf扫描枪_RF枪_RF手持扫描枪_RF手持机
  15. 考研如何设置桌面倒计时,便签设置桌面倒计时方法
  16. Excel转PDF,Excel行数过多导致PDF折行、换行显示
  17. html 样式 tab键 空格,设置Visual Studio2013的TAB键为4个空格
  18. [官方文档翻译:kind]HOME
  19. 系列创业家陈丕宏:互联网创业的五大定律
  20. 网络工程EWM筛选试题

热门文章

  1. backlog配置_TCP/IP协议中backlog参数
  2. python 查询sqlserver 视图_SQL Server 2017 数据库教与学(教学大纲,含Python+SQL Server案例)...
  3. C++ istringstream重新绑定和处理另一个字符串
  4. OpenCV学习笔记(十八):凸包,最小包围区域算子:convexHull(),minAreaRect(),minEnclosingTriangle(),minEnclosingCircle()
  5. 消息中间件 --- Kafka快速入门
  6. 用python控制键盘_【python黑科技-pyautogui】教你用python控制滑鼠与键盘
  7. linux命令date的功能,Linux 命令date
  8. oracle 如何 更改 ref cursor 结果集,oracle – 如何从anther调用一个存储过程并修改返回的refcursor?...
  9. STM32F103使用内部Flash保存参数
  10. 砥志研思SVM(一) 最优间隔分类器问题(上):硬间隔SVM