activiti常用api
来源:互联网 发布:阿里云短信授权书 编辑:程序博客网 时间:2024/06/05 04:32
表详细注释:
act_hi_actinst #活动历史表,记录所有活动。活动包括任务,所以此表中不仅记录了任务,还记录了流程执行过程的其它活动,比如开始事件、结束事件。
ACT_ID_->流程节点的id
ACT_NAME_->流程节点的名字
DURATION->流程开始到结束的时间
act_hi_procinst #流程实例历史表。流程实例启动,会在此表插入一条记录,流程实例运行完成记录也不会删除
act_hi_varinst #历史流程变量表
act_re_deployment #流程定义部署表,记录流程部署信息
act_re_procdef #流程定义表,记录流程定义信息
注:一个部署有多个定义
act_ru_identitylink #任务参与者,记录当前参与任务的用户或组.当前任务如果设置了候选人,会向该表插入候选人记录,有几个候选就插入几个.对应的还有一张 历史表act_hi_identitylink,向act_ru_identitylink插入记录的同时也会向历史表插入记录。任务完成
act_ru_execution #流程实例执行表,记录当前流程实例的执行情况。一个流程实例运行完成,此表中与流程实例相关的记录删除。
act_ru_task #任务执行表,记录当前执行的任务。说明:启动流程实例,流程当前执行到第一个任务结点,此表会插入一条记录表示当前任务的执行情况,如果任务 完成则记录删除。由于该任务当前是组任务,所有assignee为空,当拾取任务后该字段就是拾取用户的id
act_ru_variable #当前执行流程变量表
部署流程:
Deployment deploy = repositoryService.createDeployment().addInputStream(bpmn, imputBpmn).addInputStream(bpmn1,imputBpmn1).deploy();System.out.println("部署ID:"+deploy.getId());
查询部署的流程定义:
List<ProcessDefinition> list =
repositoryService.createProcessDefinitionQuery()
.processDefinitionKey(processDefinitionKey)
.orderByProcessDefinitionVersion().desc().list();//按照版本排序
for (ProcessDefinition processDefinition : list) {
System.out.println("------------------------");
************System.out.println("流程部署id:" + processDefinition.getDeploymentId());
System.out.println("流程定义id:" + processDefinition.getId());
System.out.println("流程定义名称:" + processDefinition.getName());
System.out.println("流程定义key:" + processDefinition.getKey());
System.out.println("流程定义版本:" + processDefinition.getVersion());
}
删除流程部署:
repositoryService.deleteDeployment(deploymentId);
开启流程实例:
//单流程流程实例和流程执行实例相同,对于并发的,流程实例只有一个,流程执行实例有多个
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(key);
System.out.println("流程活动节点:"+processInstance.getActivityId());
System.out.println("流程定义KEY:"+processInstance.getProcessDefinitionId());
System.out.println("流程实例ID:"+processInstance.getProcessInstanceId());
System.out.println("流程执行实例ID:"+processInstance.getId());
启动流程时设置任务发起人
identityService.setAuthenticatedUserId(userId);
查询正在运行的流程实例:
ProcessInstanceQuery processInstanceKey = runtimeService.createProcessInstanceQuery().processDefinitionKey("myProcess");
List<ProcessInstance> list = processDefinitionKey.list();
for (ProcessInstance processInstance : list) {
System.out.println("流程活动节点:"+processInstance.getActivityId());
System.out.println("流程定义KEY:"+processInstance.getProcessDefinitionId());
System.out.println("流程实例ID:"+processInstance.getProcessInstanceId());
System.out.println("流程执行实例ID:"+processInstance.getId());
System.out.println("该实例是否执行完成:" + processInstance.isEnded());
System.out.println("是否暂停:" + processInstance.isSuspended());
}
流程的挂起和激活
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processDefinitionId).singleResult();
//是否暂停
boolean suspend = processDefinition.isSuspended();
if(suspend){
//如果暂停则激活,这里将流程定义下的所有流程实例全部激活
repositoryService.activateProcessDefinitionById(processDefinitionId, true, null);
System.out.println("流程定义:"+processDefinitionId+"激活");
}else{
//如果激活则挂起,这里将流程定义下的所有流程实例全部挂起
repositoryService.suspendProcessDefinitionById(processDefinitionId, true, null);
System.out.println("流程定义:"+processDefinitionId+"挂起");
}
}
单个流程实例挂起
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
boolean suspend = processInstance.isSuspended();
if(suspend){
//如果暂停则激活
runtimeService.activateProcessInstanceById(processInstanceId);
System.out.println("流程实例:"+processInstanceId+"激活");
}else{
//如果激活则挂起
runtimeService.suspendProcessInstanceById(processInstanceId);
System.out.println("流程实例:"+processInstanceId+"挂起");
}
}
查询所有的未完成的任务:
List<Task> list = taskService.createTaskQuery().processDefinitionKey("myProcess")//
//.taskAssignee(assignee)//只查询该任务负责人的任务
.list();
for (Task task : list) {
System.out.println("流程实例id:" + task.getProcessInstanceId());
System.out.println("任务id:" + task.getId());
System.out.println("任务负责人:" + task.getAssignee());
System.out.println("任务名称:" + task.getName());
}
全局--在启动流程实例时设置流程变量
Map<String, Object> variables = new HashMap<String, Object>();
//设置流程变量assignee
variables.put("assignee", "张三");
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey, variables);
全局--办理任务设置流程变量
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("assignee", "张三");
taskService.complete(taskId, variables);
局部--办理任务设置流程变量
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("assignee", "张三");
// 设置local变量,作用域为该任务
taskService.setVariablesLocal(tasked, variables);
taskService.complete(taskId);
查询已经结束的流程
List<HistoricProcessInstance> list = historyService.createHistoricProcessInstanceQuery().processDefinitionKey(processDefinitionKey)
.finished().list();//只查询已结束的流程
for (HistoricProcessInstance historicProcessInstance : list) {
System.out.println("流程定义id:"+ historicProcessInstance.getProcessDefinitionId());
System.out.println("流程实例id:" + historicProcessInstance.getId());
System.out.println("开始时间:" + historicProcessInstance.getStartTime());
System.out.println("结束时间:" + historicProcessInstance.getEndTime());
System.out.println("持续时长:"+ historicProcessInstance.getDurationInMillis());
}
查询流程历史任务
List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery().processDefinitionKey(processDefinitionKey)
.processInstanceId("")//指定流程实例id
//.taskAssignee("")//只查询某个的历史任务
.list();
//遍历历史任务
for(HistoricTaskInstance historicTaskInstance:list){
System.out.println("任务id:"+historicTaskInstance.getId());
System.out.println("任务标识:"+historicTaskInstance.getTaskDefinitionKey());
System.out.println("任务名称:"+historicTaskInstance.getName());
System.out.println("任务负责人:"+historicTaskInstance.getAssignee());
System.out.println("任务开始时间:"+historicTaskInstance.getStartTime());
System.out.println("任务结束时间:"+historicTaskInstance.getEndTime());
System.out.println("持续时长:"+historicTaskInstance.getDurationInMillis());
}
添加组信息
if(identityService.createGroupQuery().groupId("10").singleResult()==null){
GroupEntity groupEntity = new GroupEntity();
groupEntity.setId("10");
groupEntity.setName("员工");
identityService.saveGroup(groupEntity);
}
if(identityService.createGroupQuery().groupId("11").singleResult()==null){
GroupEntity groupEntity = new GroupEntity();
groupEntity.setId("11");
groupEntity.setName("部门经理");
identityService.saveGroup(groupEntity);
}
添加人员信息
if(identityService.createUserQuery().userId("zhangsan").singleResult()==null){
UserEntity userEntity = new UserEntity();
userEntity.setId("zhangsan");
userEntity.setFirstName("张三");
userEntity.setLastName("");
identityService.saveUser(userEntity);
}
if(identityService.createUserQuery().userId("lisi").singleResult()==null){
UserEntity userEntity = new UserEntity();
userEntity.setId("lisi");
userEntity.setFirstName("李四");
userEntity.setLastName("");
identityService.saveUser(userEntity);
}
添加用户和组的关系
identityService.deleteMembership("zhangsan", "10");
identityService.createMembership("zhangsan", "10");
identityService.deleteMembership("lisi", "11");
identityService.createMembership("lisi", "11");
- 【activiti】常用API
- activiti工作流常用api
- activiti工作流常用api
- activiti常用api
- Activiti 核心API 简介
- Activiti核心API
- activiti 核心api
- Activiti用户指南之Activiti的API
- Activiti工作流(3):activiti核心API
- 【Activiti笔记】工作流-Activiti核心API介绍
- activiti常用函数分类
- Activiti 常用操作方法大全
- 使用activiti相关API步骤
- Activiti工作流引擎核心API
- 3.activiti工作流-核心API
- Java Activiti(5)--核心API
- Activiti常用表结构 --002
- Activiti入门教程六(详解Activiti中的查询API)
- 对组件的引用(refs)react
- Codeforces Round #401 (Div. 2) A. Shell Game
- Python中with的用法
- C语言提高-第9讲: 函数的嵌套调用(编制sin函数表)
- Tpshop商城短信接口开发
- activiti常用api
- javascript正则表达式
- xml中TabLayout的配置
- Android
- html angular自定义过滤器,指定所需要替换的文字
- 使用Vbox 搭建centos7 11.2.0.4 RAC
- 移动端摄像头
- angular实现httpget请求
- Python实战1——address_book.py