荼蘼_ 2024-03-20 20:49 采纳率: 66.7%
浏览 183

flowable 6.8 审批流完成后状态没有正确更新

使用的是芋道的flowable 6.8,流程正常发起审批,审批完成后,bpm_process_instance_ext表内的流程状态没有更新,但是bpm_task_ext表的数据已经被更新了。代码之前运行一直正常,就突然这样。我分析是不是结束节点配置啥的有问题。有咩有遇到过的兄弟,然后能给指一条明路啊T-T

  • 写回答

3条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-03-20 20:49
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题描述: 在使用芋道的flowable 6.8版本进行流程审批时,发现审批完成后,bpm_process_instance_ext表内的流程状态没有被更新,而bpm_task_ext表的数据已经被更新了。而且之前的代码一直运行正常,突然出现了这个问题。作者分析认为可能是结束节点配置有问题,想请教有经验的开发者提供解决方案。 解决方案:
    1. 检查流程定义文件 流程定义文件是流程开始前定义的,包含流程的各个节点,包括开始节点和结束节点。首先需要确认结束节点的配置是否正确,是否与之前正常运行的流程相同。 代码案例:
    <endEvent id="endevent1" name="结束"></endEvent>
    
    1. 检查流程监听器配置 流程监听器可以监听整个流程的各个事件,包括流程开始、节点开始、节点完成等事件,确认监听器是否正确配置,是否能正常触发流程完成事件。 代码案例:
    public class ProcessCompleteListener implements ExecutionListener {
        public void notify(DelegateExecution execution) {
            String processInstanceId = execution.getProcessInstanceId();
            // 更新业务数据
            // ...
        }
    }
    
    1. 检查数据库配置 除了流程配置问题以外,还需要确认数据库配置是否正确。由于数据在提交时可能存在延迟,需要在流程完成时检查数据库中对应的记录是否已经更新。 代码案例:
    ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
    if (processInstance == null) {
        // 更新数据库记录
        // ...
    }
    

    综上,通过对结束节点、监听器、数据库配置进行检查,可以解决流程审批后状态未更新的问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月20日