activiti常用api

原创 2017年10月13日 18:28:23

表详细注释:
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

上一篇简单记录了工作流的概念,以及对Activiti5进行了简单介绍,生成了23张数据库表。 这一篇记录下Activiti的几个核心API。 引擎API(图例) 一. ProcessEngine ...

Activiti 核心API 简介

1、ProcessEngine说明: 1) 在Activiti中最核心的类,其他的类都是由他而来。 2) 产生方式: ProcessEngine processEngine=Process...

activiti入门2流程引擎的API和服务基础

RepositoryService : 管理和控制发布包和流程定义(包含了一个流程每个环节的结构和行为)的操作 除此之外,服务可以 查询引擎中的发布包和流程定义。 暂停或激活发布包,对应全部和特定流程...

使用activiti相关API步骤

关于activiti这里就不作介绍了,网上资料也是大把,这里只是把之前在印象笔记上面记录的东西搬运过来。 1.创建核心引擎对象processEngine   2.通过引擎对象获取...

Activiti入门——环境搭建和核心API简介

相关文章: 《》 本章内容,主要讲解Activiti框架环境的搭建,能够使用Activiti的API创建23张数据库表,正式开始Activiti之旅。 在前一章,介绍了Activitie核心的数据...

3.activiti工作流-核心API

1:ProcessEngine说明: 1)在Activiti中最核心的类,其他的类都是由他而来。 2)产生方式: 在前面看到了两种创建ProcessEngine(流程引擎)的方式,而这里要简化很多...

Activiti学习资料(组件,API,部署)

Activiti 组件介绍 activiti 项目由三种类型的组件组成, 分别是: 专用工具 (Dedicated Tools) 、 存储内容(St 具 ored Content) 、协作工(C...

Activiti流程引擎的API和服务

常用的7个activiti服务ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();RuntimeService...

JAVAWEB开发之工作流详解(一)——Activiti的环境搭建、插件安装、核心API

工作流的概念 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个...

JAVAWEB开发之工作流详解(二)——Activiti核心API的使用(流程定义和流程实例的管理、流程变量、监听器...)以及与Spring的集成

管理流程定义 设计流程定义文档 bpmn文件 设置方式可以直接使用插件图形化界面进行设置 为某任务节点指定任务执行者 保存后的BPMN文件可以使用XML编辑器打开 BPMN 2...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)