Activiti7 绑定业务主键以及流程定义 流程实例的挂起和激活

绑定业务主键businessKey

复制代码
/**
     * 绑定业务主键
     */
    @Test
    public void bindingBusinessKey() {
        // 获取RuntimeService
        RuntimeService runtimeService = defaultProcessEngine.getRuntimeService();

        // 启动流程实例并绑定业务主键
        ProcessInstance holiday = runtimeService.startProcessInstanceByKey("holiday", "1001");

        // 输出业务主键信息
        System.out.println("业务主键:" + holiday.getBusinessKey());
    }
复制代码
流程定义的挂起和激活,流程定义一旦挂起,该定义下的所有流程实例都将无法提交
复制代码
/**
     * 流程定义的全部挂起和激活
     */
    @Test
    public void suspendOrActivateProcessDefinition() {

        // 获取RepositoryService
        RepositoryService repositoryService = defaultProcessEngine.getRepositoryService();

        // 查询唯一的流程定义
        ProcessDefinition holiday = repositoryService.createProcessDefinitionQuery().processDefinitionKey("holiday").singleResult();

        // 查看是否激活
        boolean suspended = holiday.isSuspended();

        String processDefinitionId = holiday.getId();

        if (suspended) {
            // 如果没激活 就激活
            repositoryService.activateProcessDefinitionById(processDefinitionId, true, null);
            System.out.println("流程定义:" + processDefinitionId + "激活");
        } else {
            // 如果激活 就挂起
            repositoryService.suspendProcessDefinitionById(processDefinitionId, true, null);
            System.out.println("流程定义:" + processDefinitionId + "挂起");
        }


    }
复制代码
单个流程实例挂起操作,单个流程实例的挂起并不会影响其他流程实例的提交和执行
复制代码
/**
     * 单个流程实例挂起操作
     */
    @Test
    public void suspendOrActiveProcessInstance(){

        // 启动的流程实例ID
        String processInstanceId = "17501";

        // 获取RuntimeService
        RuntimeService runtimeService = defaultProcessEngine.getRuntimeService();

        // 查询流程实例
        ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();

        boolean suspended = processInstance.isSuspended();

        if(suspended){
            runtimeService.activateProcessInstanceById(processInstanceId);
            System.out.println("流程实例:"+processInstanceId+"激活");
        }else{
            runtimeService.suspendProcessInstanceById(processInstanceId);
            System.out.println("流程实例:"+processInstanceId+"挂起");
        }

    }
复制代码

作者:彼岸舞

时间:2020\09\04

内容关于:Activiti工作流

本文来源于网络,只做技术分享,一概不负任何责任



posted @   彼岸舞  阅读(889)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示