您的位置:首页 > 其它

activiti工作流08-processDefinition的CRUD2

2016-09-13 16:07 337 查看
注:流程定义不可修改,可通过每一次启动最新版本的流程定义来达到修改的目的

/**

     * 查询最新版本的流程定义,可利用map集合的key相同则覆盖值的特性

     *

     * Map<String, ProcessDefinition>

     * map的key,流程定义的key

     * map的value,流程定义本身对象

     */

    public void testGetHigestVersion(){

        Map<String, ProcessDefinition> map=new LinkedHashMap<String, ProcessDefinition>();

        //根据版本升序查询

        List<ProcessDefinition> pList=processEngine.getRepositoryService()

                        .createProcessDefinitionQuery()

                        .orderByProcessDefinitionVersion().asc()

                        .list();

        

        if(pList!=null&&pList.size()>0){

            for (ProcessDefinition processDefinition : pList) {

                map.put(processDefinition.getKey(), processDefinition);

            }

        }

        

        Set<String> set=map.keySet();

        Iterator<String> it=set.iterator();

        while(it.hasNext()){

            String key=it.next();

            ProcessDefinition p=map.get(key);

            

            System.out.println("流程定义的key:"+key);

            System.out.println("流程定义的最高版本:"+p.getVersion());

        }

    }

    

    /**

     * 删除指定的key的所有的流程定义

     */

    public void testDeleteAllProcDefByKey(){

        String processDefinitionKey="helloWorld";

        //通过key找到所有的流程定义

        List<ProcessDefinition> pList=processEngine.getRepositoryService()

                        .createProcessDefinitionQuery()

                        .processDefinitionKey(processDefinitionKey)

                        .list();

        

        //貌似这样也可以获取一个流程定义的最新版本

        System.out.println(processEngine.getRepositoryService()

                .createProcessDefinitionQuery()

                .processDefinitionKey(processDefinitionKey)

                .latestVersion());

        

        if(pList!=null&&pList.size()>0){

            

            for (ProcessDefinition processDefinition : pList) {

                String deploymentId=processDefinition.getDeploymentId();

                processEngine.getRepositoryService().deleteDeployment(deploymentId,true);

            }

            

        }

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: