activiti前端画图转化_记Activiti入门使用-2 流程绘制、导入及开始一个流程
一、流程绘制与导入
百度啥的找了好多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 流程绘制、导入及开始一个流程相关推荐
- activiti前端画图转化_用于Activiti前端显示流程图的插件
因为现在做一个基于Activit的工作流OA,在设计过程中需要显示用户设计出来的流程图. 所以需要使用一个流程图插件,可以用来加载流程,也可以直接通过拖拽的方式设计流程. 思来想去,搜索了很多插件,最 ...
- activiti前端画图转化_activiti在线画流程图
springboot2.2 activiti6.0 activiti-modeler 5.22.0 注明:版本不一样会导致报错 效果图 代码分享: 链接:https://pan.baidu.com/s ...
- uel表达式 字符串截取_(4)activiti工作流引擎之uel表达式
有了前面几章,我们肯定有一定的困惑,activiti如何与实际业务整合,比如一条采购单,如何跟一个流程实例互相关联起来? 这里就需要使用到activiti启动流程实例时设置一个流程实例的busines ...
- activiti api文档_【白银人机】Activiti 工作流从入门到入土:完整 hello world 大比拼(API 结合实例讲解)...
点击上方"好好学java",选择"置顶"公众号 重磅资源.干货,第一时间送达 重磅推荐 ① 纯福利 | 公众号资源大汇总,一年才一次! ② 重磅!!2018年 ...
- activiti jsp 流程设计器_「Activiti精品 悟纤出品」Activiti插件来助你一臂之力 - 第327篇...
相关历史文章(阅读本文前,您可能需要先看下之前的系列 ) 国内最全的Spring Boot系列之三 2020上半年发文汇总「值得收藏」 程序CPU占用率飙升,如何定位线程的堆栈信息?「超详细,值得 ...
- 《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门
文章目录 1. 工作流简述 1.1.工作流是什么 1.2.哪些行业需要工作流 1.3.工作流系统的使用 2.常见的工作流框架 3.Activti的历史简介 4.重要的名词解释 4.1.工作流引擎 4. ...
- 整理前端综合笔记_从入门到入坟
文章为个人整合的笔记,并无商业用途 JS 基础语法操作符等 Var关键字 – typeof操作符 – undefined - null - boolean number - string - symb ...
- java代码制作activiti会签_工作流 activiti 自定义下一审批人和多人会签的简单实现...
1.动态指定下一审批人 在这里我使用的是监听器模式 首先看整体的流程图 在需要动态指定审批人的节点上添加一个任务监听器 这是已经添加好的监听器 选择create 然后将需要使用的监听器路径写上. j ...
- Activiti第二篇【管理流程定义、执行任务和流程实例、流程变量】
tags: Activiti 上篇Activiti只是一个快速入门案例,这篇就讲定义.部署.查看任务等等的一些细节[涉及到的数据库表.对象等等]... 管理流程定义 管理流程定义主要涉及到以下的4张表 ...
最新文章
- 小程序生成网址链接,网址链接跳转小程序
- 前后端分离的思考与实践(三)
- 几款LED灯带作为反向电流感应测试
- Trie的C++实现及HDU1251,hdu1671
- 代码演示:先来后到的特例、优劣、源码分析
- lua C++ wrapper
- 犯人释放的C语言程序,C语言的自动关机程序和一个用来整人的小程序
- C++ primer 第12章 12.3 使用标准库:文本查询程序
- 「面试」美团肝了我30+问题
- 协议处理程序初始化失败_域间路由协议的内容有哪些 域间路由协议的内容介绍【详解】...
- 基于JAVA+SpringMVC+Mybatis+MYSQL的课堂考勤系统
- L2-006 树的遍历(建树)
- SWOT分析》思维导图,帮助你做好企业优势劣势分析图
- rf扫描枪_RF枪_RF手持扫描枪_RF手持机
- 考研如何设置桌面倒计时,便签设置桌面倒计时方法
- Excel转PDF,Excel行数过多导致PDF折行、换行显示
- html 样式 tab键 空格,设置Visual Studio2013的TAB键为4个空格
- [官方文档翻译:kind]HOME
- 系列创业家陈丕宏:互联网创业的五大定律
- 网络工程EWM筛选试题
热门文章
- backlog配置_TCP/IP协议中backlog参数
- python 查询sqlserver 视图_SQL Server 2017 数据库教与学(教学大纲,含Python+SQL Server案例)...
- C++ istringstream重新绑定和处理另一个字符串
- OpenCV学习笔记(十八):凸包,最小包围区域算子:convexHull(),minAreaRect(),minEnclosingTriangle(),minEnclosingCircle()
- 消息中间件 --- Kafka快速入门
- 用python控制键盘_【python黑科技-pyautogui】教你用python控制滑鼠与键盘
- linux命令date的功能,Linux 命令date
- oracle 如何 更改 ref cursor 结果集,oracle – 如何从anther调用一个存储过程并修改返回的refcursor?...
- STM32F103使用内部Flash保存参数
- 砥志研思SVM(一) 最优间隔分类器问题(上):硬间隔SVM