Activiti流程实例管理

1、启动流程

 /**
  * 1 启动流程
  * 当流程到达一个节点时,会在act_ru_execution表中产生1条数据
  * 如果当前节点是用户任务节点,这时会在act_ru_task表中产生1条数据(任务的办理人,任务的创建时间)
  */
 @Test
 public void startProcess() throws Exception {
  /**
   * v1 myProcess:2:604
   * v2 myProcess:3:704
   */
//     runtimeService.startProcessInstanceById(processDefinitionId)
  // 通过流程定义的key启动流程,会启动版本最高的流程
  ProcessInstance pi = runtimeService.startProcessInstanceByKey("LeaveFlow");
  System.out.println("pid:" + pi.getId() +",activitiId:" + pi.getActivityId());
 }

2、查看流程状态

 public void queryProcessState() throws Exception {
  String processInstanceId="1401";
  // 通过流程实例ID查询流程实例
  ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
  if(pi!=null){
   System.out.println("当前流程在:" + pi.getActivityId());
  }else{
   System.out.println("流程已结束!!");
  }
 }

3、查看公有任务

 public void queryCommonTask() throws Exception {
  // 创建任务查询对象
  TaskQuery taskQuery = taskService.createTaskQuery();
  // 配置查询对象
  String candidateUser="张三";
  taskQuery
   // 过滤条件
   .taskCandidateUser(candidateUser)
   // 分页条件
//     .listPage(firstResult, maxResults)
   // 排序条件
   .orderByTaskCreateTime().desc();
  // 执行查询
  List<Task> tasks = taskQuery.list();
  System.out.println("======================【"+candidateUser+"】的公共任务列表=================");
  for (Task task : tasks) {
   System.out.print("id:"+task.getId()+",");
   System.out.print("name:"+task.getName()+",");
   System.out.print("createTime:"+task.getCreateTime()+",");
   System.out.println("assignee:"+task.getAssignee());
  }
 }

4、查看私有任务

 public void queryPersonalTask() throws Exception {
  // 创建任务查询对象
  TaskQuery taskQuery = taskService.createTaskQuery();
  // 配置查询对象
//     String assignee="user";
  String assignee="李四";
  taskQuery
   // 过滤条件
   .taskAssignee(assignee)
   // 分页条件
//     .listPage(firstResult, maxResults)
   // 排序条件
   .orderByTaskCreateTime().desc();
  // 执行查询
  List<Task> tasks = taskQuery.list();
  System.out.println("======================【"+assignee+"】的代办任务列表=================");
  for (Task task : tasks) {
   System.out.print("id:"+task.getId()+",");
   System.out.print("name:"+task.getName()+",");
   System.out.print("createTime:"+task.getCreateTime()+",");
   System.out.println("assignee:"+task.getAssignee());
  }
 }

5、认领任务

 public void takeTask() throws Exception {
  // claim 认领
  String taskId="1404";
  String userId="李四";
  // 让指定userId的用户认领指定taskId的任务
  taskService.claim(taskId, userId);
  System.out.println("认领操作完毕!!");
 }

6、办理任务

public void complete() throws Exception {
  String taskId = "1602";
  // 完成任务
  taskService.complete(taskId );
 }

Activiti流程实例管理

时间: 2024-10-19 01:53:21

Activiti流程实例管理的相关文章

BOS项目 第11天(activiti工作流第三天,流程实例管理、项目中的用户和角色同步到activiti的用户和组表、设计物流配送流程、启动物流配送流程、组任务操作(查询、拾取)、个人任务操作(查询、办理))

BOS项目笔记 第11天 今天内容安排: 1.流程实例管理(查询.查看运行状态) 2.将bos系统中的用户和角色同步到activiti的用户和组表 3.设计物流配送流程 4.启动物流配送流程 5.组任务操作(查询.拾取) 6.个人任务操作(查询.办理) 1. 流程实例管理 1.1 查询流程实例列表 第一步:创建一个流程实例管理Action,提供list方法,查询流程实例列表数据 第二步:配置struts.xml 第三步:提供processinstance.jsp页面,展示列表数据 <s:iter

工作流学习——Activiti流程实例、任务管理四步曲

一.前言 上一篇文章中我们将Activiti流程定义管理的知识进行了介绍,这篇文章我们继续Activiti流程实例和任务管理的学习. 二.正文 流程实例(ProcessInstance ) 流程实例(ProcessInstance)和上一篇文章中流程定义(ProcessDefinition)的关系,与类和实例对象的关系有点像,ProcessDefinition是整个流程步骤的说明而ProcessInstance就是指流程定义从开始到结束的那个最大的执行路线. 执行对象(Execution) 提到

jbpm流程发布以及流程实例管理

> 一.流程部署 1.流程引擎获取 ProcessEngine processEngine = new Configuration() .setResource("my-own-configuration-file.xml") .buildProcessEngine(); 实际开发中我们一般通过spring配置文件通过相关方法获取. 2.根据流程引擎获取相应地webservice服务. RepositoryService repositoryService = processEn

工作流学习——Activiti流程定义管理三步曲

一.前言 在上一篇文章我们通过一个小demo对Activiti进行了宏观的介绍,让大家对Activiti有了整体的认识,这篇文章我们来学习具体的流程定义管理的CRUD. 二.正文 流程定义是什么 ProcessDefinition(流程定义)就是一个流程的步骤说明,比如我们接下来要说的这个流程,申请人王三发起提交申请,李四作为部门经理进行审批,审批完成后,此申请到达下一级总经理王五,进行审批.就这么整个流程说明其实就是流程定义,不过在Activiti中整个流程定义是以helloworld.bpm

工作流学习——Activiti流程定义管理三步曲 (zhuan)

http://blog.csdn.net/zwk626542417/article/details/46602419 **************************************************************** 一.前言 在上一篇文章我们通过一个小demo对Activiti进行了宏观的介绍,让大家对Activiti有了整体的认识,这篇文章我们来学习具体的流程定义管理的CRUD. 二.正文 流程定义是什么 ProcessDefinition(流程定义)就是一个流

activiti 7 + springboot2(八) Activiti流程实例动态设置assignee执行人

(一)activiti流程图用流程变量设置节点执行人 Activiti 使用 UEL 表达式, UEL 是 java EE6 规范的一部分, UEL(Unified Expression Language)即统一表达式语言, activiti 支持两个 UEL 表达式: UEL-value 和 UEL-method. <!--UEL-value: user1 是一个流程变量 --> <userTask activiti:assignee="${user1}$" act

框架 day57 BOS项目练习(流程定义/实例管理,bos用户角色同步activiti用户表组表)

BOS项目笔记第11天 内容: 1.提供新的json文件,修改系统菜单(加入工作流的菜单) 2.流程定义管理(查询.部署流程.查看png流程图片) 3.流程实例管理(查询.查看运行状态) 4.将bos系统中的用户数据和角色数据同步到activiti的用户表和组表 1.    提供新的json文件,修改系统菜单(加入工作流的菜单) 2.    流程定义管理 第一步:创建一个ProcessDefinitionAction,提供list方法,并注入流程引擎对象  查询 @Controller @Sco

BOS项目 第10天(activiti工作流第二天,流程变量、组任务、排他网关、spring整合activiti、项目中实现流程定义管理)

BOS项目笔记 第10天 今天内容安排: 1.流程变量(设置.获取) 2.组任务(候选人.候选组) 3.排他网关使用 4.spring整合activiti 5.将activiti应用到bos项目中 6.在bos项目中实现流程定义管理(部署.查询.查看png.删除) 1. 流程变量 1.1 设置流程变量的方式 l 方式一:启动流程实例时设置 l 方式二:办理任务时设置 l 方式三:使用RuntimeService的set方法设置 l 方式四:使用TaskService的set方法设置 注意:如果设

Java开源Saas开发框架+Activiti流程管理=JSAAS

<h2>1.SAAS云应用场景</h2> SAAS云应用近几年来越来越火,这得益于国内云计算的基础设施的发展,如以前我们开发应用所需要的硬件计算资源.平台的操作系统.互联网IP.带宽及域名等,均可以非常有效解决了,企业建设应用或平台,不再需要考虑如何购买这些资源,我们仅需要通过在阿里或腾讯那里购买到这种云服务器即可,这些资源的使用及付费已经做到像交水费及电费那样简单.而现在唯一需要考虑的是在这些云计算资源上如何构建我们需要的企业<strong>应用</strong