Azure DevOps修改父工作项Target Date后能否自动更新子项Go-Live Date
该需求完全可以实现,以下是两种可落地的实现方案指引:
方案1:内置工作项规则(无代码方案,优先推荐)
- 适用场景:Azure DevOps Services(云版本)、Azure DevOps Server 2020及以上本地版本
- 操作步骤:
- 进入对应项目的项目设置,找到「工作」板块下的「流程」配置入口
- 选择项目正在使用的继承流程,找到父工作项对应的工作项类型(如Epic、Feature或自定义父类型)
- 切换到「规则」标签页,点击「新建规则」
- 配置触发条件:选择
工作项已更新+Target Date字段已更改 - 配置执行动作:选择
更新相关子工作项的字段,关联关系选择「子级」,目标字段选择Go-Live Date,值设置为公式@ParentTargetDate + 3(部分版本支持直接选择字段偏移计算,指定偏移天数为3即可) - 保存规则后即可测试生效
注意:如果Go-Live Date是自定义字段,需要先确保该字段已添加到所有子工作项的类型定义中,规则才能正常识别匹配。
方案2:Web Hook + 自定义脚本(全版本适配,灵活性高)
如果内置规则不满足需求(比如有额外过滤逻辑、使用旧版本本地DevOps Server),可使用该方案:
- 操作步骤:
- 进入项目设置的「服务挂钩」页面,新建订阅,选择触发事件为
工作项已更新,过滤条件设置为「工作项类型为指定父类型」且「Target Date字段发生变更」 - 配置Web Hook回调地址为你部署自定义脚本的服务地址
- 自定义脚本核心逻辑:
- 接收Web Hook推送的父工作项变更事件,解析得到父工作项ID、更新后的Target Date值
- 调用Azure DevOps REST API查询该父工作项下关联的所有子工作项ID
- 计算目标Go-Live Date = 父Target Date + 3天
- 批量调用工作项更新API,将所有子工作项的Go-Live Date字段更新为计算后的值
- 进入项目设置的「服务挂钩」页面,新建订阅,选择触发事件为
核心API调用参考:
查询关联子工作项:GET https://dev.azure.com/{组织名}/{项目名}/_apis/wit/workitems/{父ID}?$expand=relations&api-version=7.1-preview.3
批量更新工作项:PATCH https://dev.azure.com/{组织名}/{项目名}/_apis/wit/workitemsbatch?api-version=7.1-preview.1
内容的提问来源于stack exchange,提问作者bskumar4u
相关产品推荐
相关产品推荐

