activiti学习--05流程实例:部署流程定义+部署流程定义+查询当前人的个人任务+完成我的任务
2017-09-05 22:53
615 查看
流程实例的一些表
部署流程定义
启动流程实例
影响的表
ACT_RE_PROCDEF:流程定义表
ACT_RU_TASK(只有节点为UserTask该表才会有数据):正在执行的任务表
ACT_RU_EXECUTION:正在执行的执行对象表
ACT_HI_PROCINST:流程实例历史表
ACT_HI_TASKINST(只有节点为UserTask该表才会有数据):任务历史表
ACT_HI_ACTINST:所有活动的历史表
注意:PROC_INST_ID_为流程实例id
查询当前人的个人任务
完成我的任务
影响的表:
Execution 执行对象 按流程定义的规则执行一次的过程. 对应的表: act_ru_execution: 正在执行的信息 act_hi_procinst:已经执行完的历史流程实例信息 act_hi_actinst:存放历史所有完成的活动 ProcessInstance 流程实例 特指流程从开始到结束的那个最大的执行分支,一个执行的流程中,流程实例只有1个。 注意 (1)如果是单例流程,执行对象ID就是流程实例ID (2)如果一个流程有分支和聚合,那么执行对象ID和流程实例ID就不相同 (3)一个流程中,流程实例只有1个,执行对象可以存在多个。 Task 任务 执行到某任务环节时生成的任务信息。 对应的表: act_ru_task:正在执行的任务信息 act_hi_taskinst:已经执行完的历史任务信息
部署流程定义
/**部署流程定义*/ @Test public void deploymentProcessDefinition1(){ InputStream inputStreamBpmn = this.getClass().getResourceAsStream("askForLeave.bpmn"); InputStream inputStreamPng = this.getClass().getResourceAsStream("askForLeave.png"); Deployment deployment = processEngine.getRepositoryService()// 与流程定义和部署对象相关的Service .createDeployment()// 创建一个部署对象 .name("请假申请流程定义")// 添加部署的名称 .addInputStream("askForLeave.bpmn", inputStreamBpmn) .addInputStream("askForLeave.png", inputStreamPng) .deploy();// 完成部署 System.out.println("部署ID:"+deployment.getId()); System.out.println("部署名称:"+deployment.getName()); System.out.println("部署时间:"+deployment.getDeploymentTime()); // 输出: // 部署ID:1301 // 部署名称:请假申请流程定义 // 部署时间:Tue Sep 05 22:02:46 CST 2017 }
启动流程实例
@Test public void startProcessInstance(){ //流程定义的key.,key对应helloworld.bpmn文件中id的属性值,使用key值启动,默认是按照最新版本的流程定义启动 String processDefinitionKey = "askForLeave"; ProcessInstance pi = processEngine.getRuntimeService()//与正在执行的流程实例和执行对象相关的Service .startProcessInstanceByKey(processDefinitionKey);//使用流程定义的key启动流程实例, System.out.println("流程实例ID:"+pi.getId());// System.out.println("流程定义ID:"+pi.getProcessDefinitionId());// // 输出: // 流程实例ID:1401 // 流程定义ID:askForLeave:8:1304 }
影响的表
ACT_RE_PROCDEF:流程定义表
ACT_RU_TASK(只有节点为UserTask该表才会有数据):正在执行的任务表
ACT_RU_EXECUTION:正在执行的执行对象表
ACT_HI_PROCINST:流程实例历史表
ACT_HI_TASKINST(只有节点为UserTask该表才会有数据):任务历史表
ACT_HI_ACTINST:所有活动的历史表
注意:PROC_INST_ID_为流程实例id
查询当前人的个人任务
/**查询当前人的个人任务*/ @Test public void findMyPersonalTask(){ String assignee = "小黄"; List<Task> list = processEngine.getTaskService()//与正在执行的任务管理相关的Service .createTaskQuery()//创建任务查询对象 /**查询条件(where部分)*/ .taskAssignee(assignee)//指定个人任务查询,指定办理人 // .taskCandidateUser(candidateUser)//组任务的办理人查询 // .processDefinitionId(processDefinitionId)//使用流程定义ID查询 // .processInstanceId(processInstanceId)//使用流程实例ID查询 // .executionId(executionId)//使用执行对象ID查询 /**排序*/ .orderByTaskCreateTime().asc()//使用创建时间的升序排列 /**返回结果集*/ // .singleResult()//返回惟一结果集 // .count()//返回结果集的数量 // .listPage(firstResult, maxResults);//分页查询 .list();//返回列表 if(list!=null && list.size()>0){ System.out.println("--关联表: ACT_RU_TASK----"); for(Task task:list){ System.out.println("--------"+task.getAssignee()+"任务:"+task.getName()+"-----------------"); System.out.println("任务ID:"+task.getId()); System.out.println("任务名称:"+task.getName()); System.out.println("任务的创建时间:"+task.getCreateTime()); System.out.println("任务的办理人:"+task.getAssignee()); System.out.println("流程实例ID:"+task.getProcessInstanceId()); System.out.println("执行对象ID:"+task.getExecutionId()); System.out.println("流程定义ID:"+task.getProcessDefinitionId()); } } } 输出: --关联表: ACT_RU_TASK---- --------小黄任务:请假申请----------------- 任务ID:1404 任务名称:请假申请 任务的创建时间:Tue Sep 05 22:09:10 CST 2017 任务的办理人:小黄 流程实例ID:1401 执行对象ID:1401 流程定义ID:askForLeave:8:1304
完成我的任务
/**完成我的任务*/ @Test public void completeMyPersonalTask(){ //任务ID String taskId = "1404"; processEngine.getTaskService()//与正在执行的任务管理相关的Service .complete(taskId); System.out.println("完成任务:任务ID:"+taskId); // 输出: // 完成任务:任务ID:1404 }
影响的表:
ACT_HI_ACTINST:所有活动的历史表 有变化 ACT_HI_TASKINST(只有节点为UserTask该表才会有数据):任务历史表 小黄记录:结束时间变为有数据 添加陈经理的任务记录 ACT_HI_PROCINST:流程实例历史表 没有变化 ACT_RU_EXECUTION:正在执行的执行对象表 act_id 改变(下一节点的id) ACT_RU_TASK(只有节点为UserTask该表才会有数据):正在执行的任务表 名称和代理人变了(变为下一人任务节点的名称和代理人)
相关文章推荐
- 工作流activiti-03数据查询(流程定义 流程实例 代办任务) 以及个人小练习
- activiti学习--05流程实例:查询流程状态+查询历史任务+查询历史流程实例
- activiti自定义流程之Spring整合activiti-modeler实例(八):完成个人任务
- activiti流程设计 完成任务 查询个人任务 创建23张表
- activiti学习--04流程定义:流程定义组成+部署流程定义+查询流程定义+删除流程定义+删除流程定义+查询最新版本的流程定+查询最新版本的流程定义
- 【入门篇】Activiti查询指定流程定义下已完成的流程实例
- activiti自定义流程之Spring整合activiti-modeler5.16实例(八):完成个人任务
- activiti自定义流程之Spring整合activiti-modeler实例(八):完成个人任务
- 【入门篇】Activiti查询指定流程定义下指定流程实例下历史任务
- JBPM4.4:执行流程实例(启动、向后一步、查询任务、拾取任务、完成任务、设置获取流程变量)
- activiti自定义流程之Spring整合activiti-modeler实例(四):部署流程定义
- activiti自定义流程之Spring整合activiti-modeler实例(四):部署流程定义
- 文章标题JBPM4.4:执行流程实例(启动、向后一步、查询任务、拾取任务、完成任务、设置获取流程变量)
- activiti自定义流程之Spring整合activiti-modeler5.16实例(九):历史任务查询
- 普元 EOS Platform 7.6 流程实例完成后,调用queryPersonFinishedWorkItems4SDO查询不到已完成的任务
- 工作流学习——Activiti流程实例、任务管理四步曲 (zhuan)
- activiti 部署流程定义(InputStream) 流程变量设置 及获取流程变量、查询流程变量历史表
- 工作流学习——Activiti流程实例、任务管理四步曲
- activiti自定义流程之Spring整合activiti-modeler实例(九):历史任务查询
- 工作流学习——Activiti流程实例、任务管理四步曲