我创建了一个使用boundaryevent来表示某个操作已经完成的图。
<boundaryEvent id="boundarysignal1" name="cancel" attachedToRef="subprocess3" cancelActivity="true">
<signalEventDefinition signalRef="cancelApplication"></signalEventDefinition>
</boundaryEvent>
一切正常,但在一个时刻(我还没有捕捉到它),进程失去了绑定到事件,所以我不能使用流,这与boundaryevent有关。发现在运行时activiti在act\u ru\u event\u subscr表中创建记录,该表保存对存储流程示例数据的act\u hi\u procint表中相应记录的事件订阅。同时,我看到进程没有关闭并且处于活动状态,相应的endfield列为null。
下一个代码不返回任何内容,因为事件未绑定:
final List<Execution> executionList =runtimeService.createExecutionQuery().processVariableValueEquals("VAR_NAME","VAR_VALUE").signalEventSubscriptionName(SIGNAL_CANCEL_PROCESS).list();
同时,进程处于活动状态,下一个结果是成功:
final List<ProcessInstance> instances = runtimeService.createProcessInstanceQuery().variableValueEquals("VAR_NAME","VAR_VALUE").active().list();
boundaryevent与进程分离的原因是什么?
环境:springboot 1.3.2;活动5.19.0.2
act\ ru\事件\ subscr表(工作示例):
act\ U hi\ U procinst表格(工作示例):
act\ ru\事件\ subscr表格(非工作示例,表格为空):
act\ U hi\ U procinst表格(非工作示例):
过程定义图:
子流程1、2、3:
1条答案
按热度按时间pzfprimi1#
这里提到了一种可能性:
https://community.alfresco.com/docs/doc-4591
发行说明-activiti-版本5.20.0
...
部署新的进程定义版本时,信号和边界事件订阅将丢失
...
这是我们升级到5.20的主要原因