美文网首页
流程引擎Camunda开发记录(四)—表ACT_RU_VARIA

流程引擎Camunda开发记录(四)—表ACT_RU_VARIA

作者: _花 | 来源:发表于2022-03-25 19:12 被阅读0次

    ACT_RU_VARIABLE 流程运行时变量表

    例如:请假流程中有请假天数、请假原因等一些参数都为流程变量的范围。
    流程变量的作用域范围是流程实例。也就是说各个流程实例的流程变量是不相互影响的。流程实例结束完成以后流程变量还保存在数据库中。

    一、表结构

    表结构.png

    二、相关方法

    1、添加流程变量的方法
    1)在启动流程实例时

    //2、在启动流程实例时,添加变量
        @Test
        public void startProcessInstanceByKey() throws Exception {
            String processDefinitionKey = "baoxiaoFlow";
            Map<String, Object> variable = new HashMap<String, Object>();
            variable.put("amount", "300元");
            variable.put("reason", "出差");
            ProcessInstance processInstance = processEngine.getRuntimeService().startProcessInstanceByKey(processDefinitionKey, variable);
            System.out.println("processInstance.getId()===" + processInstance.getId());
            System.out.println("processInstance.getProcessDefinitionId()===" + processInstance.getProcessDefinitionId());
        }
    

    2)在办理任务时

        //2.2、在办理任务时,添加变量
        @Test
        public void dealProcessTask() throws Exception {
            String taskId = "42511";  //项目经理审批
            Map<String, Object> variable = new HashMap<String, Object>();
            variable.put("amount", "300元");
            variable.put("reason", "出差");
            processEngine.getTaskService().complete(taskId, variable);
        }
    

    3)使用runtimeService的方法设置

    getRuntimeService().setVariable(processInstanceId, variableName, value);
    

    4)使用TaskService的方法设置

    getTaskService().setVariables(taskId, variable);
    

    2、获取流程变量
    1)使用RuntimeService的方法获取

        @Test
        public void getVariableByRuntime() throws Exception {
            String taskId = "47504";
            Task task = processEngine.getTaskService().createTaskQuery().taskId(taskId).singleResult();
            //获得流程实例id
            String processInstanceId = task.getProcessInstanceId();
            Map<String, Object> variables = processEngine.getRuntimeService().getVariables(processInstanceId);
            for (Map.Entry<String, Object> entry : variables.entrySet()) {
                System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
            }
    
            Object value = processEngine.getRuntimeService().getVariable(processInstanceId, "user");
            System.out.println("Value = " + value);
        }
    

    2)使用TaskService的方法获取

    //2.4、使用runtimeService添加变量
       @Test
       public void getVariableByTask() throws Exception {
           String taskId = "47504";  //项目经理审批
           Map<String, Object> variables = processEngine.getTaskService().getVariables(taskId);
           for (Map.Entry<String, Object> entry : variables.entrySet()) {
               System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
           }
       }
    

    act_ru_execution 流程运行时表

    新启动的流程,观察ACT_RU_EXECUTION表中:

    PARENT_ID_字段有值为执行实例,流程实例为NULL;

    ACT_ID_字段有值为执行实例,流程实例为NULL;

    IS_ACTIVE_字段为0为流程实例,为1为执行实例。

    一、表结构

    ID_ | varchar(64) | | 主键

    REV_ | int(11) | NULL | 版本

    ROOT_PROC_INST_ID_ | varchar(64) | NULL | 流程实例根ID

    PROC_INST_ID_ | varchar(64) | NULL | 流程实例ID

    BUSINESS_KEY_ | varchar(255) | NULL | 业务KEY

    PARENT_ID_ | varchar(64) | NULL | 流程父实例ID

    PROC_DEF_ID_ | varchar(64) | NULL | 流程定义ID

    SUPER_EXEC_ | varchar(64) | NULL | 父流程实例对应的执行

    SUPER_CASE_EXEC_ | varchar(64) | NULL | 父案例实例对应的执行

    CASE_INST_ID_ | varchar(64) | NULL | 案例实例ID

    ACT_ID_ | varchar(255) | NULL | 节点ID

    ACT_INST_ID_ | varchar(64) | NULL | 节点实例ID

    IS_ACTIVE_ | tinyint(4) | NULL | 是否激活

    IS_CONCURRENT_ | tinyint(4) | NULL | 是否并行

    IS_SCOPE_ | tinyint(4) | NULL | 是否多实例范围

    IS_EVENT_SCOPE_ | tinyint(4) | NULL | 是否事件多实例范围

    SUSPENSION_STATE_ | int(11) | NULL | 挂起状态

    CACHED_ENT_STATE_ | int(11) | NULL | 缓存状态

    SEQUENCE_COUNTER_ | bigint(20) | NULL | 序列计数器

    TENANT_ID_ | varchar(64) | NULL | 租户ID
    参考:
    链接表单
    https://blog.csdn.net/weixin_40004659/article/details/111746861
    Camunda流程引擎有48张表解释https://www.cnblogs.com/mzhou19860730/articles/15866947.html

    相关文章

      网友评论

          本文标题:流程引擎Camunda开发记录(四)—表ACT_RU_VARIA

          本文链接:https://www.haomeiwen.com/subject/vwizdrtx.html