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

Azure DevOps脚本添加工作项为PBI子项失败,显示为Successor关系

问题原因及修复方法

问题原因

你脚本里用的System.LinkTypes.Dependency-Forward是依赖关系的正向链接,默认显示为“Successor(后继)”,和父/子对应的**层级(Hierarchy)**链接类型完全无关。仅靠attributes.name设置"Child"改不了链接类型的本质,所以关系会显示成Successor。

修复方法

要建立PBI(父)和目标工作项(子)的层级关系,必须把链接类型换成System.LinkTypes.Hierarchy-Forward,同时保留attributes.name为"Child"即可。

修改后的核心脚本片段:

# Define the JSON body for the PATCH request
$jsonBody = @(
    @{
        op = "test"
        path = "/rev"
        value = 46
    },
    @{
        op= "add"
        path= "/relations/-"
        value= @{
          rel= "System.LinkTypes.Hierarchy-Forward"
          url= "https://dev.azure.com/$organization/$projectName/_apis/wit/workItems/16170"
          attributes= @{
              isLocked = $false
              name = "Child"
          }
        }
    }
)

额外提示

脚本里硬编码的rev值(46)存在并发风险:如果目标PBI在脚本执行前被其他操作修改过,这个修订号会失效,导致test操作失败。建议先通过GET请求获取当前PBI的修订号,再动态填入test的value中,示例代码如下:

# 获取当前工作项的修订号
$getWorkItemUrl = "$organizationUrl/$projectName/_apis/wit/workitems/$workItemId?api-version=7.0&fields=System.Rev"
$currentWorkItem = Invoke-RestMethod -Uri $getWorkItemUrl -Headers $headers -Method Get
$currentRev = $currentWorkItem.fields.'System.Rev'

# 后续在jsonBody的test操作中使用$currentRev
$jsonBody = @(
    @{
        op = "test"
        path = "/rev"
        value = $currentRev
    },
    # ... 其他操作
)

内容的提问来源于stack exchange,提问作者Minh Nguyễn Lê

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 18:05:33