zoukankan      html  css  js  c++  java
  • org.activiti.engine.ActivitiException: Query return 2 results instead of max 1,activiti工作流出现问题

    我们的流程一般与业务关联,流程绑定业务code,出现问题的原因是当前业务code关联了不止一个流程,比如审批流程A,审批流程B,那么,我们下一次执行流程的时候,传入一个code,无法确定走哪一个流程图,所以显示

    org.activiti.engine.ActivitiException: Query return 2 results instead of max 1,

    不符合逻辑的,一个业务code按理说只可以走入一个流程,只有流程走完后,才可以用code绑定下一个流程

    问题出现开始流程的处理上面

     public ProcessInstance getProcessInstanceByCode(String code) {
            //流程实例
            ProcessInstance processInstance = runtimeService
                    .createProcessInstanceQuery()//创建查询
                    .processInstanceBusinessKey(code)//根据业务ID查询
                    .singleResult();//获得唯一一条数据
            return processInstance;
        }
    

      正常我们获取流程id是这样的,我们需要在开始下一个流程时候进行判断-》当前业务code有没有走完的流程

    public List<ProcessInstance> getAllProcessInstanceByCode(String code) {
            //流程实例
            //创建查询
            //根据业务ID查询
            ProcessInstanceQuery processInstanceQuery = runtimeService.createProcessInstanceQuery().processInstanceBusinessKey(code);
            //获得code对应所有流程
            List<ProcessInstance> processInstanceList = processInstanceQuery.list();
            return processInstanceList;
        }
    

    获取当前业务code对应的所有流程,判读返回集合是否为空集合,List<ProcessInstance> list,如果list是空的,说明没有关联其他流程,可以开始一个新流程绑定当前code ,否则需要走完code绑定的其他流程才可以哦

  • 相关阅读:
    在C#程序中模拟发送键盘按键消息
    C# UDPCLIENT多线程实例
    【转】WINFORM下FTP客户端的实现
    抓取屏幕或窗体并保存成图片
    c# 判断窗体已打开则显示为焦点
    【转】C#中dataGridView用法实例分析
    【转】VC6控件小记
    .Net部署二三事之一——如何为VS安装文件MSI制作更新补丁MSP
    [转]C#串口serialPort操作
    VS向IIS发布C#或VB应用程序
  • 原文地址:https://www.cnblogs.com/doudou2018/p/11353038.html
Copyright © 2011-2022 走看看