zoukankan      html  css  js  c++  java
  • 工作流Activiti5流程变量 任务变量 setVariables 跟 setVariablesLocal区别

    工作流Activiti5流程变量 任务变量 setVariables 和 setVariablesLocal区别 

    因为网上的资料比较少。结合源码把相关API写下来。

    设置流程级别变量:

    runtimeService.startProcessInstanceById(
                        template.getTemplateId(), variables);

    runtimeService.setVariables(executionId, variables);

    taskService.complete(String.valueOf(taskId), variables); //流程变量  这个开始我以为是设置任务变量 看了一下源码才发现是流程级别的

    设置任务级别变量:

    taskService.setVariable(String.valueOf(taskId), "va", "2"); //任务级别 变量

    变量表:

    select * from act_hi_varinst 

    setVariables 和 setVariablesLocal区别?

    可以简单认为,variable都是针对processInstance的。

    local可能是针对某个execution分支的,也可能针对task的。

    这里就要谈一下变量的作用域,变量肯定是依附于某个流程里的概念而存在的,所以才能在流程流转过程中使用这些变量。

    默认的变量都是流程实例级别的,也就是说,分支execution和task都可以读取到对应processInstance里的变量。

    与之相对的就是local变量,简单来说就不是processInstance范围的变量,如何区分global和local呢?差别就是local的作用范围小,如果是分支execution的local变量,就只能在execution分支生存期使用。

    比如并发分支结束了,变量也就没了

    比如task结束了,变量也就没了。

    local变量的好处是,可以在每个分支使用同名的变量,互相之间不受影响,会签multi-instance就是通过local局部变量实现的。

  • 相关阅读:
    HTTP && 缓存
    querySelector $() getElementBy区别
    Canvas 雾玻璃
    Github page
    Browserify
    关于布局和结构
    how to install flash
    kali update can’t found win7 loader
    arp spoofing
    How To Set Up Port Forwarding in Linux
  • 原文地址:https://www.cnblogs.com/haore147/p/5213453.html
Copyright © 2011-2022 走看看