1.RepositoryService-定义
- 管理流程定义文件xml及静态资源的服务
- 对特定流程的暂停和激活
- 流程定义启动权限管理
- 部署文件构造器DeploymentBuilder
- 部署文件查询器DeploymentQuery
- 流程定义文件查询对象ProcessDefinitionQuery
- 流程部署文件对象Deployment
- 流程定义文件对象ProcessDefinition
- 流程定义的Java格式BpmnModel
Repository Service-功能
@Test
public void testRepository() {
RepositoryService repositoryService = activitiRule.getRepositoryService();
DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
deploymentBuilder.name("test deploy resource")
.addClasspathResource("my-process.xml");
Deployment deploy = deploymentBuilder.deploy();
// deploy完成以后,部署对象及流程定义资源文件都会部署到数据库里面
LOGGER.info("deploy = {}",deploy);
DeploymentQuery deploymentQuery = repositoryService.createDeploymentQuery();
Deployment deployment = deploymentQuery.deploymentId(deploy.getId()).singleResult();
// 流程定义的查询对象
List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery()
.deploymentId(deployment.getId())
.listPage(0, 100);
for (ProcessDefinition processDefinition : processDefinitions) {
LOGGER.info("processDefinition ={},version = {},key = {} , id = {}",processDefinition,
processDefinition.getVersion(),
processDefinition.getKey(),
processDefinition.getId());
}
2.RuntimeService-流程运行控制服务
- 启动流程及对流程数据的控制
- 流程实例(ProcessInstance)与执行流(Execution)查询
- RuntimeService启动流程及变量管理
- 启动流程的常用方式(id,key,message)
- 启动流程可选参数(businesskey(业务的唯一标识参数订单号,或物流单号,多用户的标志),变量variables的设置或获取,流程实例级别的,执行流级别的),tenantId)
- 流程实例与执行流:流程实例(ProcessInstance)表示一次工作流业务的数据实体
- 执行流(Execution)表示流程实例中具体的执行路径
- 流程实例接口继承与执行流
流程触发
- 使用trigger触发ReceiveTask节点
- 触发信号捕获事件signalEventReceived
- 触发消息捕获事件messageEventReceived
流程触发trigger
流程触发signalEventReceived
消息触发流程触发messageEventReceived
3.任务管理服务-TaskService
- 对用户任务(UserTask)管理和流程的控制
- 设置用户任务(UserTask)的权限信息(拥有者,候选人,办理人)
- 针对用户任务添加任务附件,任务评论和事件记录
TaskService对Task管理与流程控制 - Task对象的创建,删除
- 查询Task,并驱动Task节点完成执行
- Task相关参数变量(variable)设置
TaskService设置Task权限信息 - 候选用户(candidateUser)和候选组(candidateGroup)
- 指定拥有人(Owner)和办理人(Assignee)
- 通过claim设置办理人
TaskService设置Task附加信息 - 任务附件(Attachment)创建与查询
- 任务评论(Comment)创建与查询
- 事件记录(Event)创建与查询
IdentityService
- 管理用户(User)
- 管理用户组(Group)
- 用户与用户组的关系(Membership)
HistoryService
- 管理流程实例结束后的历史数据
- 构建历史数据的查询对象
- 根据流程实例Id删除流程历史数据
HistoryService历史数据实体
HistoryService构建历史查询对象 - create[历史数据实体]Query
- createNative[历史数据实体]Query允许传入原始的sql语句进行查询
- createProcessInstanceHistoryLogQuery 只能查出一个流程实例的对象,只能查出一条数据,但是包含这个流程实例所有其他的数据。包括TaskActivi等信息
HistoryService删除历史操作
- deleteHistoricProcessInstance删除流程实例所有相关的数据
- deleteHistoricTaskInstance删除Task实例,相关的变量,
其他管理服务
- 管理服务ManagementService
- 动态流程定义服务DynamicBpmnService(不应该通过代码的方式对业务流程进行修改)
ManagementService
- Job任务管理(Job类型的移动或者删除操作)
- 数据库相关通用操作(查一下数据库有多少张表,获取表达mataDate数据,自定义sql的查询)
- 执行流程引擎命令(Command)的方法
Job任务查询
数据库相关操作 - 查询表结构元数据(TableMetaData)
- 通用表查询(TablePageQuery)
- 执行自定义的sql查询(executeCustomSql)
异常策略
ActivitiException