activiti问题解决--获取流程中变量时org.activi

2019-03-06  本文已影响0人  我有一只喵喵

activiti问题解决--获取流程中变量时org.activiti.engine.ActivitiObjectNotFoundException: execution 90005 doesn't

一、问题描述

1、流程定义
  <process id="myProcess" name="My process" isExecutable="true">
    <startEvent id="startevent1" name="Start"></startEvent>
    <serviceTask id="cf_serviceTask" name="Service Task" activiti:expression="${counter+1}" activiti:resultVariableName="counter">
      <multiInstanceLoopCharacteristics isSequential="true">
        <loopCardinality>${loop}</loopCardinality>
      </multiInstanceLoopCharacteristics>
    </serviceTask>
    <sequenceFlow id="flow1" sourceRef="startevent1" targetRef="cf_serviceTask"></sequenceFlow>
    <endEvent id="endevent1" name="End"></endEvent>
    <sequenceFlow id="flow2" sourceRef="cf_serviceTask" targetRef="endevent1"></sequenceFlow>
  </process>
2、问题发生场景

开启3个serviceTask实例,利用中间变量counter进行运算操作并且将结果给counter,之后再程序中获取counter变量时,发生org.activiti.engine.ActivitiObjectNotFoundException: execution 90005 doesn'

二、问题分析

再流程中这些中间变量都统一存储在act_ru_variable表中,这些中间变量在流程运行过程中产生,在流程结束之后清除

四、问题解决

由于按照上述流程定义,serviceTask结束之后意味着整个流程已经结束,对应该流程实例在act_ru_variable表中的数据也已经被清除,所以在流程结束之后时获取中间变量则会报此类错误。

上一篇下一篇

猜你喜欢

热点阅读