You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Camunda新手求助:如何在表达式中访问extensionElements?

Camunda中用表达式访问extensionElements的方法

作为Camunda新手,要像访问processInstanceId、formKey那样用表达式获取extensionElements,得先明确你要访问的是哪个BPMN元素的扩展属性(流程定义、用户任务、服务任务等),以下是具体实现方式:

1. 访问流程定义级的extensionElements

EL表达式写法

获取所有扩展元素:

${processDefinition.extensionElements.elements}

如果要筛选指定名称的camunda:Property(比如名称为customAppKey):

${processDefinition.extensionElements.elements.![value when name == 'customAppKey'][0]}

FEEL表达式写法

筛选指定名称的扩展属性:

processDefinition.extensionElements.elements -> filter(item, item.name == "customAppKey")[1].value

2. 访问当前用户任务的extensionElements

EL表达式写法

获取当前任务的所有扩展元素:

${task.extensionElements.elements}

筛选指定名称的任务扩展属性:

${task.extensionElements.elements.![value when name == 'taskPriority'][0]}

FEEL表达式写法

task.extensionElements.elements -> filter(item, item.name == "taskPriority")[1].value

3. 访问当前执行活动的extensionElements

如果是在执行监听器、服务任务等场景下,要获取当前活动(比如服务任务)的extensionElements:

EL表达式写法

${execution.currentActivity.extensionElements.elements}

同样可以筛选指定属性:

${execution.currentActivity.extensionElements.elements.![value when name == 'serviceConfig'][0]}

注意事项

  • 如果你用的是自定义BPMN扩展元素(非camunda:Property),需要通过元素的localName来筛选,比如获取自定义元素MyCustomExtension的config属性:
    ${processDefinition.extensionElements.elements.![@config when localName == 'MyCustomExtension'][0]}
    
  • 表达式返回的是集合,[0]或[1](FEEL中索引从1开始)用于取第一个匹配的元素,确保你的扩展元素名称唯一,避免取错值。

内容的提问来源于stack exchange,提问作者Amir133

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 05:55:16