【问题标题】:How to get extension property on camunda process engine using java如何使用 java 在 camunda 流程引擎上获取扩展属性
【发布时间】:2023-03-11 06:56:01
【问题描述】:

我的 camunda 流程模型中有几个流程。我想按照数字顺序对它们进行排序,因此我在每个进程中添加了一个变量,我称之为“process_order”,并给它们一个代表顺序的数字(1 是第一优先级,2 是第二优先级等),如图所示下图。

在 BPMN 文件中是这样的:

所以我想知道如何使用 Java 获取扩展属性?

感谢您的回复:)

【问题讨论】:

标签: java camunda camunda-modeler


【解决方案1】:

您希望何时/从何处读取该属性?

此处的模型 API 文档是否回答了您的问题? https://docs.camunda.org/manual/latest/user-guide/model-api/bpmn-model-api/extension-elements/

如果您需要从执行中读取信息:

ServiceTask serviceTask = (ServiceTask) execution.getBpmnModelElementInstance();

CamundaProperties camProperties = serviceTask.getExtensionElements().getElementsQuery().filterByType(CamundaProperties.class).singleResult(); 

    for (CamundaProperty camProperty : camProperties.getCamundaProperties()) 
        {
          String name = camProperty.getCamundaName();
          String value = camProperty.getCamundaValue();
        }

【讨论】:

    【解决方案2】:

    如下图所示添加一个java类作为监听器。

    Java 类应该实现 org.camunda.bpm.engine.delegate.JavaDelegate。

    在overriden方法中,可以通过

    execution.getVariable("变量名")

    Camunda Process Listener Image

    【讨论】:

    • 我不认为它像你说的那样有效。我已经尝试过了,它没有得到它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 2016-01-15
    • 1970-01-01
    相关资源
    最近更新 更多