springboot与flowable(7):流程变量

作者 : admin 本文共1495个字,预计阅读时间需要4分钟 发布时间: 2024-06-16 共1人阅读

 一、启动时添加流程变量

        拿第一个流程图举例,创建一个新的流程定义。

@Test
    void contextLoads() {
        DeploymentBuilder deployment = repositoryService.createDeployment();
        deployment.addClasspathResource("process01/FirstFlow.bpmn20.xml");
        deployment.name("流程变量演示");
        Deployment deploy = deployment.deploy();
        System.out.println("deploy.getId() = " + deploy.getId());
    }

        查看流程定义。

springboot与flowable(7):流程变量插图

        启动时为流程添加全局变量。

    /**
     * 发起流程
     */
    @Test
    public void startProcess() {
        String id = "FirstFlow:2:1aaa5203-2aed-11ef-b004-644ed7087863";
        // 在启动流程实例时为流程添加全局变量
        Map variables = new HashMap();
        variables.put("var1", "test1");
        variables.put("var2", "test2");
        variables.put("var3", "test3");
        // 根据流程定义ID启动流程
        ProcessInstance processInstance = runtimeService.startProcessInstanceById(id, variables);
    }

        在act_ru_variable表中可以看到添加的变量信息。

springboot与flowable(7):流程变量插图(1)

        根据执行实例ID获取流程变量

    /**
     * 获取定义的流程变量
     */
    @Test
    void getVariables() {
        // 通过执行实例ID获取,ID可以在act_ru_variable表中查看到
        String executionId = "f1d7ec2c-2aed-11ef-9790-644ed7087863";
        Map variables = runtimeService.getVariables(executionId);
        System.out.println(variables);
        // 也可以通过taskService获取
        // taskService.getVariables(taskId);
    }

springboot与flowable(7):流程变量插图(2)

二、启动后添加流程变量

    /**
     * 在流程启动后添加流程变量
     */
    @Test
    void setVariables() {
        // 通过执行实例ID获取,ID可以在act_ru_variable表中查看到
        String executionId = "f1d7ec2c-2aed-11ef-9790-644ed7087863";
        runtimeService.setVariable(executionId, "var4", "test4");
        // 添加局部变量
        runtimeService.setVariableLocal(executionId, "varLocal5", "test5");
        // 也可以通过taskService添加
        // taskService.setVariable();
    }

        查看添加结果

springboot与flowable(7):流程变量插图(3)

        当流程审批结束所有的变量将全部移除。

springboot与flowable(7):流程变量插图(4)

三、局部变量

  • taskService添加的局部变量,只作用于当前节点,当前节点审批后,数据会消失。
  • runtimeService添加的局部变量,作用于当前执行实例I,当出现不同的执行分支时,数据将消失。

四、历史变量

        在act_hi_varinst表中查看到所有使用过的流程变量。

springboot与flowable(7):流程变量插图(5)

本站无任何商业行为
个人在线分享 » springboot与flowable(7):流程变量
E-->