Activiti6总结

Activiti版本

<dependency>
	<groupId>org.activiti</groupId>
	<artifactId>activiti-engine</artifactId>
	<version>6.0.0</version>
</dependency>

监听相关

Activiti常用API

  • 配置API
    ProcessEngineConfiguration activiti 基本配置,可以配置数据源,监听等
    ProcessEngineConfiguration 里面可以配置各种东西和初始化,具体看源码
    ProcessEngines.getDefaultProcessEngine() 默认配置

  • 各种服务API
    1.RepositoryService 流程部署以及流程定义相关的服务
    repositoryService.createDeployment().addClasspathResource("").deploy() 流程的部署
    repositoryService.validateProcess() 验证bpmn
    repositoryService.activateProcessDefinitionByKey() 激活流程(流程删除的时候可能会用到)
    repositoryService.suspendProcessDefinitionById() suspend流程(流程删除的时候可能会用到)

    2.RuntimeService 运行时候的服务
    runtimeService.startProcessInstance 流程的启动
    runtimeService.setVariable()设置全局参数
    runtimeService.getVariable()获取全局参数

    3.TaskService 任务的服务
    taskService.complete() 任务的完成
    taskService.setVariable()设置全局变量
    taskService.getVariable()获取全局变量

    4.其他服务
    IdentityService 用户权限相关的服务
    HistoryService 历史数据的服务

serviceTask执行

一般有三种方式,常见的是采用delegateExpression方式
JavaDelegate需要实现这个类,在这个类里面执行execute·方法,实现具体的业务操作,设置,获取参数等

流程元素API

  • FlowElementxml里面各种组件的基类,可以用于更改xml配置
  • UserTask手工任务,userTask.setCandidateGroups()对任务 添加候选权限
  • 流程相关
    1.ProcessDefinition流程定义
    2.ProcessInstance流程实例
    3.Execution执行流
    一个Process Instance(流程实例)是一个ProcessDefinition(流程定义)的执行;一个Process Instance(流程实例)可以有许多同时执行的步骤(concurrent executions)

其他比较有用的类

DelegateInterceptor CommandInterceptor这两个类可以用于类似AOP的功能

activiti XML

查看activiti-npmn-converter-6.0.jar包下的两个schema定义:
bpmn schema:BPMN20.XSD
activiti6扩展的定义:actitivi-bpmn-extensions-6.0.xsd

数据库

参考 重点是查看下面几张表
ACT_RE_DEPLOYMENT、ACT_RE_PROCDEF、ACT_RU_EXECUTION、ACT_RU_TASK、ACT_RU_VARIABLE ACT_HI_PROCINST、ACT_HI_TASKINST、ACT_HI_ACTINST、ACT_HI_VARINST、ACT_HI_DETAIL

采坑记录

1.execution.setTransientVariable() Bug,https://github.com/Activiti/Activiti/commit/29e3052f1a5afb2867a3cbee0910167e4f8c6806

转载请注明:这不是一只猫的博客 » 点击阅读原文

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦