zoukankan      html  css  js  c++  java
  • Activiti工作流笔记(4)

    Activiti工作流启动流程

    /**
     * 启动流程
     *
     */
    public class ActivitiTest2 {
    	
    	RepositoryService repositoryService;
    	
    	RuntimeService runtimeService;
    
    	@Before
    	public void setUp() throws Exception {
    		//获取流程引擎,配置文件必须命名为activiti.cfg.xml
    		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    		//获取流程定义
    		repositoryService = processEngine.getRepositoryService();
    		
    		runtimeService = processEngine.getRuntimeService();
    	}
        
        /**
         * 启动流程
         * select * from act_ru_execution;-- 运行时流程执行实例表
         * select * from act_hi_procinst;-- 历史流程实例表
         * select * from act_ru_task;-- 运行时任务节点表
         * select * from act_hi_taskinst;-- 历史任务实例表
         * select * from act_hi_actinst;-- 历史节点表
         */
        @Test  
        public void startProcess(){
        	//根据流程定义的key,如果相同定义有多个,那么启动最高版本那个
        	//runtimeService.startProcessInstanceByKey("activiti_leave");
        	//启动其他版本,需要根据流程定义的id来启动
        	ProcessInstance processInstance =  runtimeService.startProcessInstanceById("activiti_leave:2:504");
        	System.out.println("流程实例ID:" + processInstance.getId());
        	System.out.println("正在活动的流程节点ID:" + processInstance.getActivityId());
        	System.out.println("流程定义ID:" + processInstance.getProcessDefinitionId());    
        }
        
        /**
         * 查询流程实例
         */
        @Test
        public void queryProcessInstance() {
        	//创建流程实例查询对象
        	ProcessInstanceQuery processInstanceQuery =  runtimeService.createProcessInstanceQuery();
    		List<ProcessInstance> processInstanceList = processInstanceQuery
    				.processDefinitionKey("activiti_leave")//根据流程定义的key(activiti_leave)来查询
    				.orderByProcessDefinitionKey()//根据流程定义的key排序
    				.desc()//倒序排序
    				.list();
    		for (ProcessInstance processInstance : processInstanceList) {
    			System.out.println("流程实例ID:" + processInstance.getId());
    	    	System.out.println("正在活动的流程节点ID:" + processInstance.getActivityId());
    	    	System.out.println("流程定义ID:" + processInstance.getProcessDefinitionId());
    		}
    		
    		//processInstanceQuery.singleResult(); //如果能确定查询的结果只有一条,可以使用这个查询单个流程实例。多个结果情况就会报错
        }
        
    }
    
  • 相关阅读:
    姐姐的vue(1)
    LeetCode 64. Minimum Path Sum 20170515
    LeetCode 56. 56. Merge Intervals 20170508
    LeetCode 26. Remove Duplicates from Sorted Array
    LeetCode 24. Swap Nodes in Pairs 20170424
    LeetCode 19. Remove Nth Node From End of List 20170417
    LeetCode No.9 Palindrome Number 20170410
    LeetCode No.8. String to Integer (atoi) 2017/4/10(补上一周)
    LeetCode No.7 Reverse Integer 2017/3/27
    LeetCode No.4 Median of Two Sorted Arrays 20170319
  • 原文地址:https://www.cnblogs.com/chengx/p/6423390.html
Copyright © 2011-2022 走看看