为什么IntermediateThrowEvent的eventName总是为null?

时间:2018-07-11 19:06:49

标签: camunda camunda-modeler

我已经使用camunda建模器创建了以下BPMN。

enter image description here

一切正常。

  1. 启动流程(使用processVariable someVar == null)
  2. 完成用户任务A
  3. 事件订阅等待条件满足生效
  4. 将processVariable someVar 设置为非空值
  5. 用户任务B 处于活动状态
  6. 完成用户任务B
  7. 过程结束

我的问题是关于中间的事件:等待直到条件满足。 此事件检查processVariable。如果processVariable为!= null,则过程继续到用户任务B

在BPMN xml文件中,此部分已定义

<bpmn:intermediateCatchEvent id="IntermediateThrowEvent_1f8yyme" name="wait until condition is met">
      <bpmn:incoming>SequenceFlow_01qic24</bpmn:incoming>
      <bpmn:outgoing>SequenceFlow_0g3ju49</bpmn:outgoing>
      <bpmn:conditionalEventDefinition>
        <bpmn:condition xsi:type="bpmn:tFormalExpression">${someVar != null}</bpmn:condition>
      </bpmn:conditionalEventDefinition>
</bpmn:intermediateCatchEvent>

我在bpmn:intermediateCatchEvent元素上明确定义了一个名称。该名称在camundo建模器中也可见。

但是,当我在第3步中查询EventSubscriptions时,确实得到了EventSubscription,但是eventName为null。

我将这段代码用于EventSubscriptions检索

runtimeService.createEventSubscriptionQuery()
  .processInstanceId(processInstance.getProcessInstanceId())
  .list();

此外,检查数据库表act_ru_event_subscr还会显示一个空列event_name _

我需要这个名称,因为我想让用户可以使用流程的“当前”活动。 对于诸如用户任务之类的活动,这没有问题,但是对于中间事件,我无法检索该名称。

我想念什么吗?

0 个答案:

没有答案