Camunda相关知识

900 阅读3分钟

一、相关服务接口

RepositoryService  操作流程定义
RuntimeService  操作流程实例
TaskService  操作任务
IdentityService  操作用户或者组
HistoryService : 查询历史表相关数据
AuthorizationService : 授权相关服务
FormService : 操作流程表单
ManagementService : 执行cmd以及job相关服务
CaseService : CMMN相关操作
FilterService : 过滤相关服务
ExternalTaskService : 外部任务相关服务
DecisionService : DMN相关服务

二、相关概念

  • 流程定义流程实例:二者就像Java中的类与new的对象的关系,对象是类的实例,类是对象的模板。
  • 流程定义key:标识一类流程定义,流程定义带有版本功能,而流程定义id才代表具体的流程定义。
  • 流程定义Id: 具有唯一性,同一个流程定义有不同版本,他们的流程定义Key相同,但是流程定义id不同。
  • 流程实例Id:代表具体的某条流程实例,具有唯一性。
  • **任务:**任务是直接对应人的,每个节点上会有多个任务,但是每个任务只会对应一个处理人。
  • **会签:**指同一个审批节点设置多个人,如ABC三人,三人会同时收到审批,需全部同意之后,审批才可到下一审批节点。
  • **或签:**指同一个审批节点设置多个人,如ABC三人,三人会同时收到审批,只要其中任意一人审批即可到下一审批节点。

三、监听器

执行监听器:ExecutionListener

在流程实例执行的过程中触发某个事件时,执行监听器允许你去执行额外的java代码或者对指定的表达式求值。

属性值有:start 【启动时触发】、end【结束时触发】

任务监听器:TaskListener

属性值有:create【创建任务时触发】、assignment【任务指定负责人触发】、complete:【任务完成后触发】、delete:【任务删除前触发】

四、Camunda Modeler

就是用来画流程图的,我们需要这个来生成对应的xml文件,后面方便测试流程引擎

下载地址:流程设计器

五、会签

一个流程节点可以有一个至多个任务,也称之为工作项。如果是多个任务则称这个节点为会签

会签执行的顺序

  1. **串行会签:**串行会签也叫顺序会签,指按照提交流程处理人的次序user1、user2、user3依次接收待办任务,并按顺序处理流程。
  2. **并行会签:**指user1、user2、user3同时接收到流程待办任务,并行处理。

会签通过的规则

  1. 全部通过:会签人全部审批通过表决后,会签通过。
  2. 按数量通过:达到一定数量的通过表决后,会签通过。
  3. 按比例通过:达到一定比例的通过表决后,会签通过。
  4. 一票通过:只要有一个表决通过的,会签通过。
  5. 一票否决:只要有一个表决时否定的,会签不通过。

主要参数

  • loop cardinality:循环基数。可选项。可以直接填整数,表示会签的人数。
  • Collection:集合。可选项。会签人数的集合,通常为list,和loop cardinality二选一。
  • Element variable:元素变量。选择Collection时必选,为collection集合每次遍历的元素。
  • Completion condition:完成条件。可选。比如设置一个人完成后会签结束,那么其他人的代办任务都会消失。
  • nrOfActiviteInstances:当前活动的实例数量,即还没有完成的实例数量
  • loopCounter :循环计数器,办理人在列表中的索引
  • nrOfInstances:会签中总共的实例数
  • nrOfCompletedInstances:已经完成的实例数量

​两种方式二选一:

条件**${nrOfInstances == nrOfCompletedInstances}**表示所有人员审批完成后该节点结束。

条件**${ nrOfCompletedInstances == 1}**表示一个人完成审批后该节点结束。

使用Collection后,会根据userList的size来创建Task。

下一篇我们发布流程定义,发起流程实例,实际操作一下。