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

如何在Polarion中检索枚举及枚举选项的全部信息(含描述)?

如何在Polarion中检索枚举及枚举选项的全部信息(含描述)?

我完全懂你现在的困扰——试了好几种方法,要么拿到的不是枚举本身的选项,要么只能获取那些已经被工作项使用过的枚举选项描述。其实要拿到枚举的所有选项(包括每个选项的描述)是有正确路径的,咱们来一步步解决:

正确的实现方式:结合CustomFieldsService与Enumeration工厂

你之前尝试过CustomFieldsService但没往下深挖,其实可以通过它拿到自定义字段绑定的枚举ID,再用这个ID去获取完整的枚举对象,这样就能拿到所有选项的信息了。

这里给你一段可直接复用的Velocity代码示例:

#set($projectId = $page.getReference().projectId())
#set($contextId = $trackerService.getContextId($projectId))
#set($customFieldsService = $trackerService.getDataService().getCustomFieldsService())

# 先获取目标自定义字段
#set($customField = $customFieldsService.getCustomField("myEnum", "WorkItem", $contextId))
# 拿到该字段绑定的枚举ID
#set($enumId = $customField.getEnumerationId())
# 获取对应类型的枚举工厂(WorkItem类型的枚举用@WorkItems)
#set($enumFactory = $trackerService.getDataService().getEnumerationObjectFactories().get("@WorkItems"))
# 通过枚举ID和项目上下文获取完整的枚举对象
#set($enumeration = $enumFactory.getEnumeration($enumId, $contextId))

# 遍历输出所有枚举选项的信息
#foreach($option in $enumeration.getAllOptions())
- 选项ID:`$option.getId()`,显示名称:`$option.getName()`,描述:`$option.getDescription()`
#end

为什么之前的方法没生效?

  • 你直接硬编码"processes-enum.xml"去获取枚举,这种方式容易拿错对象(比如拿到了关联的应用实例而非枚举本身),而通过自定义字段动态获取枚举ID才是通用且准确的方式。
  • 你通过工作项自定义字段获取描述的方式,只能拿到该工作项已选中的选项,自然看不到未被使用的枚举选项。

小提示

如果是系统级全局枚举,可以把contextId换成全局上下文ID;如果是项目级自定义枚举,一定要用对应项目的contextId,否则可能获取不到正确的枚举定义。

备注:内容来源于stack exchange,提问作者christof

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 12:13:08