首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

绑定业务主键businessKey

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

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

        // 输出业务主键信息
        System.out.println("业务主键:" + holiday.getBusinessKey());
    }
代码语言:javascript
复制
流程定义的挂起和激活,流程定义一旦挂起,该定义下的所有流程实例都将无法提交
代码语言:javascript
复制
/**
     * 流程定义的全部挂起和激活
     */
    @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 + "挂起");
        }


    }
代码语言:javascript
复制
单个流程实例挂起操作,单个流程实例的挂起并不会影响其他流程实例的提交和执行
代码语言:javascript
复制
/**
     * 单个流程实例挂起操作
     */
    @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工作流

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

下一篇
举报
领券