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相关推荐

  1. 项目视频讲解_基于Activiti5工作流实战企业协同OA办公系统教程

    百度网盘地址:http://pan.baidu.com/s/11TiP5 分享一套Adam老师的教程,名为<基于Activiti5工作流实战企业协同OA办公系统(spring-data-jpa. ...

  2. Activiti工作流视频教程-基于Activiti5工作流实战企业协同OA办公系统

    Activiti工作流视频教程-基于Activiti5工作流实战企业协同OA办公系统(spring-data-jpa.uur前台组件) 一.Activiti工作流视频教程课程内容简介 在工作流方面,使 ...

  3. 基于Activiti5工作流实战企业协同OA办公系统(spring-data-jpa、uur前台组件)

    课程讲师:Adam 课程分类:Java 适合人群:中级 课时数量:51课时 更新程度:完毕 用到技术:Activiti.Spring-data-jpa.uur 涉及项目:协同OA办公系统 链接: ht ...

  4. 视频教程-SharePoint 工作流实战教程-其他

    SharePoint 工作流实战教程 大家好,我是霖雨,从2010年开始致力于SharePoint相关的技术研究,精通SharePoint环境搭建.实施.开发.运维.排错等相关技术,从2014年至今连 ...

  5. Activiti工作流实战-2

    2019独角兽企业重金招聘Python工程师标准>>> 两个基础知识: 工作流引擎  ProcessEngine对象,这是Activiti工作的核心.负责生成流程运行时的各种实例及数 ...

  6. 手摸手系列之SpringBoot+Vue整合snakeflow工作流实战

    前言 技术栈: SpringBoot: 2.3.5.RELEASE Vue: 2.6.10 snakerflow: 2.5.1 最近做集团内部的悦通关平台项目,台账管理的付款申请模块需要用到工作流审批 ...

  7. Flowable工作流实战快速入门(一)

    文章目录 1. 工作流入门介绍 1.1 什么是工作流? 1.2 工作流的原理 1.3 BPM 1.4 BPMN 1.5 Activiti 还是flowable? 2. flowable入门helloW ...

  8. 工作流实战之Activiti7

    文章目录 楔子 Activiti 介绍 Activiti 官网 BPMN 建模语言 Activiti 使用步骤 引入依赖 添加配置 日志配置 Activiti 配置 初始化数据库表 新建数据库 act ...

  9. 工作流实战_14_flowable_已办任务列表查询

    项目地址:https://gitee.com/lwj/flowable.git 分支flowable-base 视频讲解地址 https://space.bilibili.com/485524575/ ...

最新文章

  1. 既之前的基础,先写个简单的PHP 与数据库 的数据交流
  2. ARP欺骗 ---网络执法官(转载)
  3. containerd和docker技术的比较
  4. (转)yi_meng linux 下 ifcfg-eth0 配置 以及ifconfig、ifup、ifdown区别
  5. Markdown——编辑器语法——背景色
  6. ffmpeg对amr格式编解码
  7. 【Qt教程】2.6 - Qt5 自定义控件封装
  8. JAVA:hotspot 虚拟机的server和client模式
  9. grpc python 负载均衡_Ambassador 0.52 新特性:会话亲和性、负载均衡控制、gRPC-Web
  10. 远程协同TeamViewer
  11. 北斗卫星导航系统BDS的星座和信号
  12. 英语4级的分数如何计算机,英语四级分数怎么计算
  13. [全新大碟]周杰倫 - 魔杰座
  14. js下载文件 阿星小栈
  15. ubuntu apt-get安装或卸载软件时出现了python-minimal等错误问题的解决方法
  16. 大数据行业前景如何?有什么岗位?什么要求?一次讲清楚
  17. 陈景润定理对筛法理论的重要贡献
  18. ESP-BOX LVGL ask_wdt: Task watchdog got triggered问题 物联网
  19. python股票分析系统代码_Python 代码学习,用于股票分析
  20. K-Means聚类分析广告投放效果的改进(数据标准化、最佳K值的确定)

热门文章

  1. 达索系统成立“大土木工程达索系统BIM技术推进联盟”深化应用、共享经验
  2. AngularJS中的表单验证机制
  3. Android 设置 横屏 竖屏
  4. 使用记事本编写xml文件保存出现异常原因
  5. 思科路由器端口映射配置实例
  6. Struts学习笔记总结
  7. 在行进中开火 Fire and Motion By Joel Spolsky
  8. hive linux进程数,控制Hive MAP个数详解
  9. java 类复制构造方法_java面向对象入门(3)-java构造方法
  10. (1)vmware安装ubuntu13.10之后无法进入桌面;(2)ubuntu13.10无法显示eclipse的下拉菜单...