zoukankan      html  css  js  c++  java
  • 05流程图和流程定义的操作

    一、流程定义的删除(根据部署ID删除)

    1、RepositoryService.deleteDeployment(部署ID)

    使用此方法时,当此流程没有流程实例时,会将三个表中的信息都删除。
    当有流程实例时,则删除不成功。

    2、RepositoryService.deleteDeployment(部署ID,cascade)

    中间方法,cascade的值为布尔类型的值。
    当cascade的值为true时,无论有没有流程实例在引用此流程定义,都会将三个表中的信息都删除。
    当cascade的值为false时,有流程实例在引用此流程定义,则删除不成功。

    3、RepositoryService.deleteDeploymentCascade(部署ID)

    无论有没有流程实例在引用此流程定义,都会将三个表中的信息都删除。
    三张表分别是:
     

    二、流程定义的修改

    Activiti没有提供修改流程定义信息的接口,在修改原有的流程图之后,需要重新部署,只要key不变,此流程图的版本号会+1。
    也就是说,在修改了流程图之后,只有重新部署,修改的流程才会生效。

    三、查询最新版本的流程定义(用于流程发起) 黎美顺我爱你ლ(′◉❥◉`ლ)

    1、首先将当前key的所有流程按照版本号进行升序查询。
    2、将查询得出的list进行遍历保存到map集合当中(特点是map的键唯一),遍历结束,map保存的就是最新版本的流程定义
    3、将map进行遍历
        public void findNewProDef() {
            //将流程定义按照版本号升序查询
            RepositoryService repositoryService = processEngine.getRepositoryService();
            List<ProcessDefinition> processDefinitions = repositoryService
                    .createProcessDefinitionQuery().orderByProcessDefinitionVersion().asc().list();
            HashMap<String,ProcessDefinition> map = new HashMap<String,ProcessDefinition>();
            //将流程定义保存到map当中
            for(ProcessDefinition pd:processDefinitions) {
                map.put(pd.getKey(), pd);
            }
            //遍历map则可以得到所有最新的流程定义
            Collection<ProcessDefinition> newpd = map.values();
            for(ProcessDefinition pd:newpd) {
                System.out.println(pd.getId());
            }
        }

    四、查询流程图(根据流程定义的ID去查)

     
     
     



  • 相关阅读:
    利用itextsharp.dll 导出pdf格式文件
    Oracle 连接失去联系、链接空闲例程
    Log4net用法
    oracle 用户锁定(ORA28000:the account is locked)的解锁方法:
    智能提示框设计 仿携程
    利用System.Net.Mail 的SmtpClient发送邮件
    CTE实现嵌套递归
    读入excel中的数据到数据库中
    项目发布遇见的问题的整理
    JavaScript substring() 方法
  • 原文地址:https://www.cnblogs.com/Guorisy/p/12099241.html
Copyright © 2011-2022 走看看