Activiti版本
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>6.0.0</version>
</dependency>
监听相关
- ActivitiEventListener
activiti中全局监听,可以监听各种activiti事件类型 - TaskListener
对userTask中的监听 - executionListener
可以对工作流中的每一个组件进行监听
Activiti常用API
- 配置API
ProcessEngineConfigurationactiviti 基本配置,可以配置数据源,监听等
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


