• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Dlin
V2EX  ›  程序员

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

  •  
  •   Dlin · May 5, 2023 · 2433 views
    This topic created in 1104 days ago, the information mentioned may be changed or developed.

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

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

    4 replies    2023-05-06 16:42:33 +08:00
    Dlin
        1
    Dlin  
    OP
       May 5, 2023
    走了一遍源码,发现 /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
       May 5, 2023
    但是还有没有其他坑就不得而知了,不知道官方为何不保留历史。
    Sum0l
        3
    Sum0l  
       May 6, 2023
    你为什么不提 issue ,这里能找到 commiter 还是咋滴
    Dlin
        4
    Dlin  
    OP
       May 6, 2023
    @Sum0l 说的是,但是我自己解决了,就不提了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5614 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 07:34 · PVG 15:34 · LAX 00:34 · JFK 03:34
    ♥ Do have faith in what you're doing.