flowable BUG及修复方式(6.4.2)

14 篇文章 2 订阅
12 篇文章 6 订阅

1. 修复历史记录表 不会设置assignee 及 owner 字段值。

问题描述: 历史记录表记录数据时,assignee 及 owner 字段值 为空!

解决方案: 手动设置对应字段值

 HistoryManager historyManager = Context.getProcessEngineConfiguration().getHistoryManager();
 taskEntity.setAssignee(userTaskAssignee);
 taskEntity.setOwner(userTaskAssignee);
 historyManager.recordTaskInfoChange(taskEntity, taskEntity.getProcessInstanceId());

2. BpmnModel 数据串了(不推荐 直接复制一个模板,然后修改)

问题描述: 即 A流程的 BpmnModel 拿到了 B流程的BpmnModel

解决方案:

不要通过以下方式获取BpmnModel
BpmnModel bpmnModel = repositoryService.getBpmnModel(flowableNodeQueryDTO.getApply().getDefinitionId());

使用以下方式获取BpmnModel

/**
 * todo: 通过流程定义拿流程模型
 *
 * @author : zhoulin.zhu
 */
public class GetProcessInstanceBpmnModelByDefIdCmd implements Command<BpmnModel>,Serializable {

    private static final long serialVersionUID = -2234685368826280017L;

    private String processDefinitionId;

    public GetProcessInstanceBpmnModelByDefIdCmd(String processDefinitionId) {
        this.processDefinitionId = processDefinitionId;
    }

    @Override
    public BpmnModel execute(CommandContext commandContext) {

        DeploymentManager deploymentManager = CommandContextUtil.getProcessEngineConfiguration().getDeploymentManager();
        ProcessDefinitionEntity originalProcessDefinitionEntity = CommandContextUtil.getProcessDefinitionEntityManager(commandContext).findById(processDefinitionId);
        DeploymentEntity deploymentEntity = deploymentManager.getDeploymentEntityManager().findById( originalProcessDefinitionEntity.getDeploymentId());
        BpmnModel bpmnModel = createBpmnModel(commandContext, originalProcessDefinitionEntity, deploymentEntity);
        return bpmnModel;
    }

    protected BpmnModel createBpmnModel(CommandContext commandContext, ProcessDefinitionEntity originalProcessDefinitionEntity, DeploymentEntity newDeploymentEntity) {
        ResourceEntity originalBpmnResource = CommandContextUtil.getResourceEntityManager(commandContext)
                .findResourceByDeploymentIdAndResourceName(originalProcessDefinitionEntity.getDeploymentId(), originalProcessDefinitionEntity.getResourceName());
        BpmnModel bpmnModel = new BpmnXMLConverter().convertToBpmnModel(new BytesStreamSource(originalBpmnResource.getBytes()), false, false);
        //updateBpmnProcess(commandContext, process, bpmnModel, originalProcessDefinitionEntity, newDeploymentEntity);
        return bpmnModel;
    }
}


	//	推荐使用以下方式获取
        BpmnModel bpmnModel = processEngine.getManagementService().executeCommand(new GetProcessInstanceBpmnModelByDefIdCmd(flowableNodeQueryDTO.getApply().getDefinitionId()));

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风中思絮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值