当前位置: 首页 > 知识库问答 >
问题:

如何在CAMUNDA-BPM中检索过程变量?

司寇烨伟
2023-03-14

在阅读(https://docs.camunda.org/manual/7.5/user-guide/process-engine/variables/)时,我不知道如何检索变量?

目前,我正在努力找出如何访问以前设置的过程变量。我尝试的是:

我有一个简单的bpmn流程,其中有start事件、1个服务任务和end事件,我通过传递2个变量(a&B)来启动我的流程,我的服务任务实现如下java类:

public class Addition implements JavaDelegate {

    public void execute(DelegateExecution exe) throws Exception {

        System.out.println("Inside calculator again");

        Integer x = (Integer) exe.getVariable("a");
        Integer y = (Integer) exe.getVariable("b");
        int add = x+y;
        System.out.println("Addition of two number is"+add);
        exe.setVariable("add",add);
}
public void sayHello(ProcessEngine processEngine)
{
    Map<String,Object> variables = new HashMap<String, Object>();
    variables.put("a", 3);
    variables.put("b", 5);
    ProcessInstance instance=  processEngine.getRuntimeService().startProcessInstanceByKey("Process_3", variables);
}

有没有我可以使用的Java API,或者有没有其他的方法?

共有1个答案

席嘉祯
2023-03-14

如果要获取所有历史变量实例,请使用HistoricVariableInstanceQuery中的List方法。

例如

List<HistoricVariableInstance> variables = processEngine.getHistoryService().createHistoricVariableInstanceQuery.list();

如果希望获得具有给定名称的特定变量,可以使用方法variableName(String)

List<HistoricVariableInstance> variables = processEngine.getHistoryService().createHistoricVariableInstanceQuery().variableName("myVar").list();
 List<HistoricVariableInstance> variables = processEngine.getHistoryService().createHistoricVariableInstanceQuery().processInstanceId(processInstance.getId()).variableName("myVar").list();
 类似资料:
  • Camunda BPM 是一个灵活的工作流和过程自动化框架,它的核心是一个在Java虚拟机内部运行的原生BPMN 2.0流程引擎,因此它可以嵌入到任何Java应用程序或运行时容器中。Camunda BPM与Java EE 6集成,并可以与Spring Framework完美匹配。 Camunda BPM平台还提供了一套丰富的、围绕BPM生命周期的组件: 流程实现和执行组件:camunda engi

  • 我是Camunda的新手,没有找到任何教程或参考来解释如何实现以下目标: 当开始一个过程时,我希望用户在发票中添加任意数量的项目。在下一个用户任务中,所有这些项目及其数量都应该打印给批准数据的人。 我还不知道如何在一个过程和它的变量之间建立1:n的关系。我需要为每个项目启动子流程吗?或者我必须使用自定义Java对象吗?如果是这样,我如何从任务列表中将表单元素映射到这样的对象?

  • 如何将Angular 8与camunda BPM工具集成?我试图将camunda bpm工具与我的angular应用程序集成,但如何归档我不明白,所以你能指导我吗

  • 我安装了camunda-bpm-wildfly-7.2.0,它附带了一个部署的camunda-example-invoice-7.2.0.war。在task-list(我不是指task-form)中,显示了处理变量(例如,发票金额、发票号码等),例如分配批准人任务或批准发票任务。

  • 我使用camunda BPM流程引擎,认为理解一些概念很重要。目前,我有点纠结于流程执行和可变范围的概念。 为了理解流程执行过程中发生的事情,我设计了以下演示流程,并用相同的颜色标记了同一执行过程中的活动。我可以这样做,因为我在每个活动中调试了执行id。 大部分我都明白。令我惊讶的是,一个输入参数打开了一个新的执行(任务1.3)。感谢迈耶丹对此的澄清。 有人能解释吗? 我理解这一点的主要动机是它对

  • 我想在独占网关检查processInstance是否存在。我可以检查processInstance的值是否设置为null。