springboot与flowable(7):流程变量

 一、启动时添加流程变量

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

@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());
    }

        查看流程定义。

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

    /**
     * 发起流程
     */
    @Test
    public void startProcess() {
        String id = "FirstFlow:2:1aaa5203-2aed-11ef-b004-644ed7087863";
        // 在启动流程实例时为流程添加全局变量
        Map<String, Object> 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表中可以看到添加的变量信息。

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

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

二、启动后添加流程变量

    /**
     * 在流程启动后添加流程变量
     */
    @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();
    }

        查看添加结果

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

三、局部变量

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

四、历史变量

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

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-16 17:18:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-16 17:18:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-16 17:18:04       87 阅读
  4. Python语言-面向对象

    2024-06-16 17:18:04       96 阅读

热门阅读

  1. Web前端教学实录:深入剖析前端技术的奥秘

    2024-06-16 17:18:04       29 阅读
  2. Vue3 中 setup 函数与 script setup 用法总结

    2024-06-16 17:18:04       25 阅读
  3. 蓝桥杯十五届国赛模拟题1答案

    2024-06-16 17:18:04       24 阅读
  4. GenericObjectPool对象池化的介绍与用法

    2024-06-16 17:18:04       23 阅读
  5. Mysql的增、删、查、改

    2024-06-16 17:18:04       23 阅读
  6. Milvus向量数据库

    2024-06-16 17:18:04       44 阅读
  7. Android获取CPU的使用率

    2024-06-16 17:18:04       36 阅读
  8. HTML DOM 对象

    2024-06-16 17:18:04       32 阅读
  9. web前端信息卡:深入探索与实用指南

    2024-06-16 17:18:04       35 阅读
  10. python07

    2024-06-16 17:18:04       28 阅读
  11. 访问api是如何使用的

    2024-06-16 17:18:04       27 阅读
  12. 搭建Python虚拟环境(五):Pyenv

    2024-06-16 17:18:04       32 阅读
  13. springboot读取配置时,读取到了系统环境变量

    2024-06-16 17:18:04       31 阅读
  14. CompletableFuture方法介绍及代码示例

    2024-06-16 17:18:04       35 阅读