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

如何识别Azure DevOps中各流程使用的工作项字段?

解决Azure DevOps流程与工作项字段关联的方法

1. 关联流程与字段的核心API调用逻辑

字段是绑定到流程下的**工作项类型(WIT)**上的,所以需要通过流程→工作项类型→字段的层级来获取关联关系:

  • 获取指定流程的所有工作项类型
    使用API:

    GET https://dev.azure.com/{organization}/_apis/work/processes/{processId}/workitemtypes?api-version=7.1-preview.2
    

    其中{processId}可从你之前调用的流程列表API结果中获取。

  • 获取单个工作项类型的绑定字段
    针对每个返回的工作项类型,调用API拿到其关联的所有字段:

    GET https://dev.azure.com/{organization}/_apis/work/processes/{processId}/workitemtypes/{witRefName}/fields?api-version=7.1-preview.2
    

    witRefName是工作项类型的引用名称(例如Microsoft.VSTS.WorkItemTypes.UserStory),返回结果会包含该工作项类型下启用的字段,以及字段的可见性、必填性等配置。

2. 识别未使用字段的两种方式

方式一:对比全局字段与流程绑定字段

将全局字段列表(从/_apis/wit/fields获取)和所有流程下的工作项类型字段做对比,未出现在任何流程绑定字段中的字段,即为未被流程配置使用的字段。

方式二:结合工作项实例数据验证

有些字段可能被流程配置但从未实际使用,可通过WIQL查询验证:
构造查询语句检查字段是否有实际数据:

SELECT [System.Id], {FieldRefName} FROM WorkItems WHERE {FieldRefName} IS NOT NULL

调用API执行查询:

POST https://dev.azure.com/{organization}/{project}/_apis/wit/wiql?api-version=7.1-preview.2

如果某个字段在所有项目的工作项中都无数据,基本可以判定为未被实际使用。

3. 批量操作简化方案

如果手动调用API效率低,可使用Azure DevOps CLI批量处理:

  • 登录并配置默认组织:
    az login
    az devops configure --defaults organization=https://dev.azure.com/{organization}
    
  • 批量获取流程及对应字段:
    # 获取所有流程ID
    az devops process list --output table
    # 获取指定流程的工作项类型
    az devops process work-item-type list --process-id {processId}
    # 获取指定工作项类型的字段
    az devops process work-item-type field list --process-id {processId} --work-item-type-name "用户故事"
    

4. 清理注意事项

  • 系统默认字段(如System.Id、System.Title)是所有流程的基础依赖,禁止删除。
  • 自定义字段若既无流程绑定也无工作项数据,可直接删除;若有历史数据但当前未被使用,建议先归档再删除,避免影响历史报表查询。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 18:04:52