我用 camunda 建模器创建了以下 BPMN。
一切正常。
- 启动进程(使用processVariable someVar == null)
- 完成用户任务 A
- eventsubcription等待条件满足变为活动状态
- 将processVariable someVar设置为非空值
- 用户任务 B变为活动状态
- 完成用户任务 B
- 进程结束
我的问题是关于中间的事件:等待条件满足。此事件检查 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,我无法检索名称。
我错过了什么吗?