微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SpringBoot - 活动 - 获取 ProcessVariables

如何解决SpringBoot - 活动 - 获取 ProcessVariables

我有这段代码

    List<ProcessInstance> instances =
                    processEngine.getRuntimeService().createProcessInstanceQuery().processInstanceId(processInstanceId).list();

instances.forEach(this::listProcessInstance);

    private void listProcessInstance (ProcessInstance processInstance) {
    
                log.info("<-------------- ProcessInstance ---------------> {} ",processInstance);
                log.info(String.valueOf(processInstance.getProcessVariables()));
                log.info("<-------------- ProcessInstance --------------->");
    
    
        }

其中 ProcessVariables 为 null,但在 tabla 上有信息:

select * from ACT_RU_VARIABLE where PROC_INST_ID_ = 76759;

解决方法

出于性能原因,默认查询不返回流程变量。您必须明确告诉查询包含变量:

 List<ProcessInstance> instances = processEngine.getRuntimeService().createProcessInstanceQuery().processInstanceId(processInstanceId).includeProcessVariables().list();
,

试试下面的代码片段,

ProcessInstanceQuery processInstanceQuery = runtimeService.createProcessInstanceQuery().processInstanceIds(processInstanceIds);
  
    List<ProcessInstance> processInstances = processInstanceQuery.list();
  
    for (ProcessInstance processInstance : processInstances) {
      log.info(processInstance.getId());
      log.info(processInstance.getProcessVariables());
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。