Activiti5工作流实战-4
2019独角兽企业重金招聘Python工程师标准>>>
1:核心API
1.1:ProcessEngine
说明:
1) 在Activiti中最核心的类,其他的类都是由他而来。
2) 产生方式:
在前面看到了两种创建ProcessEngine(流程引擎)的方式,而这里要简化很多,调用ProcessEngines的getDefaultProceeEngine方法时会自动加载classpath下名为activiti.cfg.xml文件。
3) 可以产生RepositoryService
4) 可以产生RuntimeService
5) 可以产生TaskService
各个Service的作用:
RepositoryService 管理流程定义
RuntimeService 执行管理,包括启动、推进、删除流程实例等操作
TaskService 任务管理
HistoryService 历史管理(执行完的数据的管理)
IdentityService 组织机构管理
FormService 一个可选服务,任务表单管理
ManagerService
1.2:RepositoryService
是Activiti的仓库服务类。所谓的仓库指流程定义文档的两个文件:bpmn文件和流程图片。
1) 产生方式
2) 可以产生DeploymentBuilder,用来定义流程部署的相关参数
3) 删除流程定义
1.3:RuntimeService
是activiti的流程执行服务类。可以从这个服务类中获取很多关于流程执行相关的信息。
1.4:TaskService
是activiti的任务服务类。可以从这个类中获取任务的信息。
1.5:HistoryService
是activiti的查询历史信息的类。在一个流程执行完成后,这个对象为我们提供查询历史信息。
1.6:ProcessDefinition
流程定义类。可以从这里获得资源文件等。
1.7:ProcessInstance
代表流程定义的执行实例。如范冰冰请了一天的假,她就必须发出一个流程实例的申请。一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。流程实例就表示一个流程从开始到结束的最大的流程分支,即一个流程中流程实例只有一个。
1.8:Execution
Activiti用这个对象去描述流程执行的每一个节点。在没有并发的情况下,Execution就是同ProcessInstance。流程按照流程定义的规则执行一次的过程,就可以表示执行对象Execution。
如图为ProcessInstance的源代码:
从源代码中可以看出ProcessInstance就是Execution。但在现实意义上有所区别:
在单线流程中,如上图的贷款流程,ProcessInstance与Execution是一致的。
这个例子有一个特点:wire money(汇钱)和archive(存档)是并发执行的。 这个时候,总线路代表ProcessInstance,而分线路中每个活动代表Execution。
总结:
* 一个流程中,执行对象可以存在多个,但是流程实例只能有一个。
* 当流程按照规则只执行一次的时候,那么流程实例就是执行对象。
bpmn.xml文件的配置相关
<userTask id="usertask3" name="User Task" activiti:assignee="${assignee}">
<multiInstanceLoopCharacteristics isSequential="false" activiti:collection="assigneeList" activiti:elementVariable="assignee"><loopCardinality>2</loopCardinality>
<completionCondition>${nrOfCompletedInstances/nrOfInstances >= 0.25}</completionCondition>
</multiInstanceLoopCharacteristics>
</userTask>
1.activiti:candidateUsers="shareniu1,shareniu2,shareniu3,shareniu4" 这个节点可以4个人审核。
2.<loopCardinality>2</loopCardinality> 循环2次结束。
3.<multiInstanceLoopCharacteristics isSequential="true"> 串行并行的配置。
4.activiti:candidateUsers="shareniu1,shareniu2,shareniu3,shareniu4" 这个节点可以4个人审核。
5.<loopCardinality>2</loopCardinality> 循环2次结束。
6.<multiInstanceLoopCharacteristics isSequential="true"> 串行并行的配置。ture是串
7.<completionCondition>${nrOfCompletedInstances/nrOfInstances >= 0.25}</completionCondition> 完成条件的配置。表示超过1/4人完成则通过
这里我们还可以得出一个结论:
如果使用串行方式操作nrOfActiveInstances 变量始终是1,因为并行的时候才会去+1操作。
转载于:https://my.oschina.net/githubhty/blog/703939
Activiti5工作流实战-4相关推荐
- 项目视频讲解_基于Activiti5工作流实战企业协同OA办公系统教程
百度网盘地址:http://pan.baidu.com/s/11TiP5 分享一套Adam老师的教程,名为<基于Activiti5工作流实战企业协同OA办公系统(spring-data-jpa. ...
- Activiti工作流视频教程-基于Activiti5工作流实战企业协同OA办公系统
Activiti工作流视频教程-基于Activiti5工作流实战企业协同OA办公系统(spring-data-jpa.uur前台组件) 一.Activiti工作流视频教程课程内容简介 在工作流方面,使 ...
- 基于Activiti5工作流实战企业协同OA办公系统(spring-data-jpa、uur前台组件)
课程讲师:Adam 课程分类:Java 适合人群:中级 课时数量:51课时 更新程度:完毕 用到技术:Activiti.Spring-data-jpa.uur 涉及项目:协同OA办公系统 链接: ht ...
- 视频教程-SharePoint 工作流实战教程-其他
SharePoint 工作流实战教程 大家好,我是霖雨,从2010年开始致力于SharePoint相关的技术研究,精通SharePoint环境搭建.实施.开发.运维.排错等相关技术,从2014年至今连 ...
- Activiti工作流实战-2
2019独角兽企业重金招聘Python工程师标准>>> 两个基础知识: 工作流引擎 ProcessEngine对象,这是Activiti工作的核心.负责生成流程运行时的各种实例及数 ...
- 手摸手系列之SpringBoot+Vue整合snakeflow工作流实战
前言 技术栈: SpringBoot: 2.3.5.RELEASE Vue: 2.6.10 snakerflow: 2.5.1 最近做集团内部的悦通关平台项目,台账管理的付款申请模块需要用到工作流审批 ...
- Flowable工作流实战快速入门(一)
文章目录 1. 工作流入门介绍 1.1 什么是工作流? 1.2 工作流的原理 1.3 BPM 1.4 BPMN 1.5 Activiti 还是flowable? 2. flowable入门helloW ...
- 工作流实战之Activiti7
文章目录 楔子 Activiti 介绍 Activiti 官网 BPMN 建模语言 Activiti 使用步骤 引入依赖 添加配置 日志配置 Activiti 配置 初始化数据库表 新建数据库 act ...
- 工作流实战_14_flowable_已办任务列表查询
项目地址:https://gitee.com/lwj/flowable.git 分支flowable-base 视频讲解地址 https://space.bilibili.com/485524575/ ...
最新文章
- 既之前的基础,先写个简单的PHP 与数据库 的数据交流
- ARP欺骗 ---网络执法官(转载)
- containerd和docker技术的比较
- (转)yi_meng linux 下 ifcfg-eth0 配置 以及ifconfig、ifup、ifdown区别
- Markdown——编辑器语法——背景色
- ffmpeg对amr格式编解码
- 【Qt教程】2.6 - Qt5 自定义控件封装
- JAVA:hotspot 虚拟机的server和client模式
- grpc python 负载均衡_Ambassador 0.52 新特性:会话亲和性、负载均衡控制、gRPC-Web
- 远程协同TeamViewer
- 北斗卫星导航系统BDS的星座和信号
- 英语4级的分数如何计算机,英语四级分数怎么计算
- [全新大碟]周杰倫 - 魔杰座
- js下载文件 阿星小栈
- ubuntu apt-get安装或卸载软件时出现了python-minimal等错误问题的解决方法
- 大数据行业前景如何?有什么岗位?什么要求?一次讲清楚
- 陈景润定理对筛法理论的重要贡献
- ESP-BOX LVGL ask_wdt: Task watchdog got triggered问题 物联网
- python股票分析系统代码_Python 代码学习,用于股票分析
- K-Means聚类分析广告投放效果的改进(数据标准化、最佳K值的确定)
热门文章
- 达索系统成立“大土木工程达索系统BIM技术推进联盟”深化应用、共享经验
- AngularJS中的表单验证机制
- Android 设置 横屏 竖屏
- 使用记事本编写xml文件保存出现异常原因
- 思科路由器端口映射配置实例
- Struts学习笔记总结
- 在行进中开火 Fire and Motion By Joel Spolsky
- hive linux进程数,控制Hive MAP个数详解
- java 类复制构造方法_java面向对象入门(3)-java构造方法
- (1)vmware安装ubuntu13.10之后无法进入桌面;(2)ubuntu13.10无法显示eclipse的下拉菜单...