Activiti引擎简介及接口部署

一、什么是Activiti引擎

  • Activiti引擎构成

Activiti Engine
作为最核心的模块,提供针对BPMN 2.0规范的解析、执行、创建、管理(任务、流程实例)、查询历史记录并根据结果生成报表。

Activiti Modeler :
是模型设计器,其并非由Activiti公司所开发,而是由业界认可的Signavio公司赠送的(Signavio e原本是收费的产品,现在被免费授权给Activiti用户使用)。适用于业务人员把需求转换为规范流程定义。

Activiti Designer:
功能和Activiti Modeler类似,同样提供了基于BPMN 2.0规范的可视化设计功能,但是目前还没有完全支持BPMN规范的定义。适用于开发人员,可以把业务需求人员用Signavio设计的流程定义(XML格式)导入到Designer中,从而让开发人员将其进一步加工成为可以运行的流程定义。

Activiti Explorer:
可以用来管理仓库、用户、组,启动流程、任务办理等。此组件使用REST风格API,提供一个基础的设计模型。如果业务简单,也可以直接使用无需开发。还可以作为后台管理员的流程、任务管理系统使用。

Activiti REST:
提供Restful风格的服务,允许客户端以JSON的方式与引擎的REST API交互,通用的协议具有跨平台、跨语言的特性。

  • Activiti对象图

1. ProcessEngine

说明:

  1. 在Activiti中最核心的类,其他的类都是由他而来。
  2. 产生方式:   

在前面看到了两种创建ProcessEngine(流程引擎)的方式,而这里要简化很多,调用ProcessEngines的getDefaultProceeEngine方法时会自动加载classpath下名为activiti.cfg.xml文件。

  1. 可以产生RepositoryService
  2. 可以产生RuntimeService

2. 各个Service的作用:

RepositoryService

管理流程定义

RuntimeService

执行管理,包括启动、推进、删除流程实例等操作

TaskService

任务管理

HistoryService

历史管理(执行完的数据的管理)

IdentityService

组织机构管理

FormService

一个可选服务,任务表单管理

ManagerService

 

1). RepositoryService

是Activiti的仓库服务类。所谓的仓库指流程定义文档的两个文件:bpmn文件和流程图片。

  1. 产生方式

 RepositoryService repositoryService = processEngine.getRepositoryService();

  1. 可以产生DeploymentBuilder,用来定义流程部署的相关参数

        DeploymentBuilder builder = repositoryService.createDeployment();

  1. 删除流程定义

        repositoryService.deleteDeployment(deploymentId);

2)RuntimeService

是activiti的流程执行服务类。可以从这个服务类中获取很多关于流程执行相关的信息。

3)TaskService

是activiti的任务服务类。可以从这个类中获取任务的信息。

3)HistoryService

是activiti的查询历史信息的类。在一个流程执行完成后,这个对象为我们提供查询历史信息。

4)ProcessDefinition

流程定义类。可以从这里获得资源文件等。

5)ProcessInstance

代表流程定义的执行实例。如范冰冰请了一天的假,她就必须发出一个流程实例的申请。一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。流程实例就表示一个流程从开始到结束的最大的流程分支,即一个流程中流程实例只有一个。

5)Execution

    Activiti用这个对象去描述流程执行的每一个节点。在没有并发的情况下,Execution就是同ProcessInstance。流程按照流程定义的规则执行一次的过程,就可以表示执行对象Execution。

总结:

* 一个流程中,执行对象可以存在多个,但是流程实例只能有一个。

* 当流程按照规则只执行一次的时候,那么流程实例就是执行对象。

 

二、Activiti引擎的接口使用

  • restful api调用
  1. 创建流程文件loadtest.bpmn20.xml(后缀必须为.bpmn20.xml,.zip,.bar)
  2. 创建一个新的部署,通过上传已设计好的流程xml文件

Post /activiti-rest/service/repository/deployments?tenantId=20001

    3. 激活实例,如果已激活则不用执行此操作

PUT http://localhost:8080/activiti-rest/service/runtime/process-instances/loadapp%3A1%3A2543

    4. 创建流程实例

Post  /activiti-rest/service/runtime/process-instances

      请求体中只能使用processDefinitionIdprocessDefinitionKeymessage三者之一。参数businessKeyvariablestenantId都是可选的。 注意忽略变量作用域,流程变量总是local。其中:

TenantId只能与processDefinitionKeymessage一起使用!

 

有三种请求方式:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值