2

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

在此处输入图像描述

一切正常。

  1. 启动进程(使用processVariable someVar == null)
  2. 完成用户任务 A
  3. eventsubcription等待条件满足变为活动状态
  4. processVariable someVar设置为非空值
  5. 用户任务 B变为活动状态
  6. 完成用户任务 B
  7. 进程结束

我的问题是关于中间的事件:等待条件满足。此事件检查 processVariable。如果 processVariable 为 != null,则进程继续执行usertask 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 为空。

我正在使用此代码进行 EventSubscriptions 检索

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

此外,检查数据库表 act_ru_event_subscr 也会显示一个空列 event_name_

我需要这个名称,因为我想让用户可以使用进程的“当前”活动。对于诸如 usertasks 之类的活动,这没有问题,但对于 intermediateEvents,我无法检索名称。

我错过了什么吗?

4

0 回答 0