Activiti 学习笔记十:开始活动节点(判断流程是否结束及查询历史)
2016-09-11 10:47
1191 查看
一、流程图
二、演示代码
package jiankunking.start; import java.io.InputStream; import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngines; import org.activiti.engine.history.HistoricProcessInstance; import org.activiti.engine.repository.Deployment; import org.activiti.engine.runtime.ProcessInstance; import org.junit.Test; public class StartTest { ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); /**部署流程定义(从inputStream)*/ @Test public void deploymentProcessDefinition_inputStream(){ InputStream inputStreamBpmn = this.getClass().getResourceAsStream("start.bpmn"); InputStream inputStreamPng = this.getClass().getResourceAsStream("start.png"); Deployment deployment = processEngine.getRepositoryService()//与流程定义和部署对象相关的Service .createDeployment()//创建一个部署对象 .name("开始活动")//添加部署的名称 .addInputStream("start.bpmn", inputStreamBpmn)// .addInputStream("start.png", inputStreamPng)// .deploy();//完成部署 System.out.println("部署ID:"+deployment.getId());// System.out.println("部署名称:"+deployment.getName());// } /**启动流程实例+判断流程是否结束+查询历史*/ @Test public void startProcessInstance(){ //流程定义的key String processDefinitionKey = "start"; ProcessInstance pi = processEngine.getRuntimeService()//与正在执行的流程实例和执行对象相关的Service .startProcessInstanceByKey(processDefinitionKey);//使用流程定义的key启动流程实例,key对应helloworld.bpmn文件中id的属性值,使用key值启动,默认是按照最新版本的流程定义启动 System.out.println("流程实例ID:"+pi.getId());//流程实例ID 101 System.out.println("流程定义ID:"+pi.getProcessDefinitionId());//流程定义ID helloworld:1:4 /**判断流程是否结束,查询正在执行的执行对象表*/ ProcessInstance rpi = processEngine.getRuntimeService()// .createProcessInstanceQuery()//创建流程实例查询对象 .processInstanceId(pi.getId()) .singleResult(); //说明流程实例结束了 if(rpi==null){ /**查询历史,获取流程的相关信息*/ HistoricProcessInstance hpi = processEngine.getHistoryService()// .createHistoricProcessInstanceQuery()// .processInstanceId(pi.getId())//使用流程实例ID查询 .singleResult(); System.out.println(hpi.getId()+" "+hpi.getStartTime()+" "+hpi.getEndTime()+" "+hpi.getDurationInMillis()); } } }
三、小结
1):结束节点没有出口2):其他节点有一个或多个出口。
如果有一个出口,则代表是一个单线流程;
如果有多个出口,则代表是开启并发流程。
演示demo下载:http://download.csdn.net/detail/xunzaosiyecao/9627473
相关文章推荐
- Activiti 学习笔记十:开始活动节点(判断流程是否结束及查询历史)
- activiti学习资料(获取节点类型,判断是否为开始结束节点)
- 判断流程开始节点是否能连通到结束节点
- Activiti 学习笔记六:流程执行历史记录
- Activiti学习笔记11 — 判断节点的使用
- Activiti 学习笔记六:流程执行历史记录
- 判断流程实例状态、历史流程实例查询、历史活动查询
- (七)Activiti之历史活动查询和历史任务查询和流程状态查询
- activiti学习--05流程实例:查询流程状态+查询历史任务+查询历史流程实例
- activiti学习--06流程变量:流程变量+变量的类型+流程变量api+设置流程变量1或2+查询流程变量的历史表
- ExtJS学习之判断开始时间是否早于结束时间
- cocos2d-html5学习笔记(七)--Action 讲了action判断是否结束,然后调用回调函数
- vbs学习笔记1——判断文件和文件夹是否存在
- 树莓派学习笔记——Python SQLite查询历史温度
- mysql--SQL编程(关于mysql中的日期,实例,判断生日是否为闰年) 学习笔记2.1
- Activiti学习笔记四 流程定义的管理(一)
- Activiti学习笔记五 流程定义的管理(二)
- IOS学习笔记11-如何判断推送开关是否打开
- Activiti学习资料(流程活动自动与手工触发执行)
- [C++学习笔记] 链表应用1判断一个集和是否为另一个集合的子集