V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Dlin
V2EX  ›  程序员

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

  •  
  •   Dlin · 358 天前 · 1127 次点击
    这是一个创建于 358 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    4 条回复    2023-05-06 16:42:33 +08:00
    Dlin
        1
    Dlin  
    OP
       357 天前
    走了一遍源码,发现 /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
        2
    Dlin  
    OP
       357 天前
    但是还有没有其他坑就不得而知了,不知道官方为何不保留历史。
    Sum0l
        3
    Sum0l  
       357 天前
    你为什么不提 issue ,这里能找到 commiter 还是咋滴
    Dlin
        4
    Dlin  
    OP
       356 天前
    @Sum0l 说的是,但是我自己解决了,就不提了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2821 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 06:24 · PVG 14:24 · LAX 23:24 · JFK 02:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.