动态发布流程

    @APIDesc("动态发布流程")
    @PostMapping("/dynamic/deploy/process")
    public RspBase<Map<String, Object>> dynamicDeployProcess(@RequestPart MultipartFile file) throws IOException {
        Deployment deployment = repositoryService.createDeployment()
                .addInputStream(file.getOriginalFilename(), file.getInputStream())
                .deploy();
        Map<String, Object> map = new HashMap<>();
        map.put("deploymentId", deployment.getId());
        map.put("deploymentName", deployment.getName());
        map.put("deploymentKey", deployment.getKey());
        return new RspBase<Map<String, Object>>().setCode(200).setMsg("动态发布流程成功").setData(map);
    }

获取当前部署的流程

可以看到只有一个流程。

发布一个新的流程

1.创建一个新的流程文件,并将此文件上传至动态部署接口。

例如:创建了一个流程定义Key为RequestLeaveApplyDynamicDeploy,名为请事假审批流程测试动态发布的流程。

将其上传至动态部署接口:

2.获取系统中的流程定义,可以看到新增的流程。

删除流程

通过deleteDeployment(String deploymentId, boolean cascade)方法删除部署的流程,其中第二个参数可选是否级联删除对应的流程实例,历史流程以及任务。

源码注释:Deletes the given deployment and cascade deletion to process instances, history process instances and jobs.

    @APIDesc("删除流程")
    @GetMapping("/dynamic/remove/process")
    public RspBase<Map<String, Object>> dynamicDeployProcess(@RequestParam String processKey) {
        repositoryService.deleteDeployment(processKey, true);
        return new RspBase<Map<String, Object>>().setCode(200).setMsg("删除流程成功").setData(null);
    }

将动态发布的流程删除。

查询后可看到动态发布的流程已经被删除了。

作者:yuanfun  创建时间:2025-01-08 16:15
最后编辑:yuanfun  更新时间:2025-01-16 13:51