流程引擎大坑啊,用的 flowable, ChangeActivityStateBuilder#moveActivityIdToParentActivityId 会丢失历史数据

2023-05-05 14:21:31 +08:00
 Dlin

如题,org.flowable.engine.runtime.ChangeActivityStateBuilder#moveActivityIdToParentActivityId 会丢失历史数据,用的 callActivity ,从子流程中往外跳,当前这个 callActivity 的整个记录都会被删掉。这咋搞,如果直接操作主流程使用 moveActivityIdTo 历史记录不会丢失,但是 callActivity 的流程变量不会映射到主流程。

想问问各位有遇到过么,有什么解决办法没(除了手动记录)

1157 次点击
所在节点    程序员
4 条回复
Dlin
2023-05-05 16:31:15 +08:00
走了一遍源码,发现 /Users/dlin/.m2/repository/org/flowable/flowable-engine/6.8.0/flowable-engine-6.8.0-sources.jar!/org/flowable/engine/impl/persistence/entity/ExecutionEntityManagerImpl.java:545 处的

if (deleteHistory) {
getHistoryManager().recordProcessInstanceDeleted(execution.getId(), execution.getProcessDefinitionId(), execution.getTenantId());
}

会判断是否删除历史,于是重写了参数 deleteHistory 的传值 DefaultDynamicStateManager#safeDeleteSubProcessInstance

目前可以保留历史了
Dlin
2023-05-05 16:35:02 +08:00
但是还有没有其他坑就不得而知了,不知道官方为何不保留历史。
Sum0l
2023-05-06 12:51:52 +08:00
你为什么不提 issue ,这里能找到 commiter 还是咋滴
Dlin
2023-05-06 16:42:33 +08:00
@Sum0l 说的是,但是我自己解决了,就不提了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/937543

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX