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

Azure DevOps规则设置:按Severity自动配置截止日期求助

解决Azure DevOps规则中@Today + N日期计算的报错问题

我之前配置Azure DevOps规则时也踩过一模一样的坑!你用的@Today +28是Work Item查询里的语法,但规则引擎根本不认这套,所以才会抛出VS402809的错误。别慌,换用Azure DevOps规则专属的表达式语法就能搞定,具体方案如下:

方法1:给规则的「设置字段值」用日期计算表达式

这是最直接的解决方案,能针对不同Severity配置不同的天数偏移:

  1. 打开项目的Project Settings → Boards → Process,找到你要修改的工作项类型(比如Bug、User Story)。
  2. 进入该类型的Rules标签,点击New rule新建规则。
  3. 先设置触发条件:比如「当Severity字段被设置为Critical」(你可以给每个Severity值单独建规则,或者用分支条件一次性处理所有情况)。
  4. 添加动作:选择Set field value,目标字段选「截止日期」,然后一定要点击Use a value from an expression(别直接在文本框里输入内容)。
  5. 在表达式框里输入对应的日期计算:
    • 如果是基于规则触发时的当前时间加28天:addDays(utcNow(), 28)
    • 如果是基于工作项的创建日期加28天:addDays(createdDate(), 28)
    • 要是需要区分Severity等级,比如Critical加7天、High加14天,你可以用多分支的iif表达式:
      iif(eq(field('Severity'), 'Critical'), addDays(utcNow(),7), iif(eq(field('Severity'), 'High'), addDays(utcNow(),14), addDays(utcNow(),28)))
      
  6. 保存规则后,测试一下:修改Severity值,看看截止日期是不是自动按预期生成了。

方法2:用计算字段实现全局自动计算

如果你的截止日期完全由Severity决定,也可以创建一个自定义的计算字段:

  1. 在Process设置的工作项类型页面,进入Fields标签,点击Add custom field。
  2. 字段类型选DateTime,勾选「This is a calculated field」。
  3. 在计算表达式里写好逻辑,比如:
    iif(eq(field('Severity'), 'Critical'), addDays(utcNow(),7), iif(eq(field('Severity'), 'High'), addDays(utcNow(),14), addDays(utcNow(),28)))
    
  4. 把这个计算字段添加到工作项的布局里,或者直接替换原有的截止日期字段(如果允许的话),这样只要Severity变化,截止日期就会自动更新。

几个关键提醒

  • 规则里的表达式用的是Azure DevOps的Workflow Functions,常用的日期函数有:
    • utcNow():获取当前UTC时间
    • createdDate():获取工作项的创建时间
    • addDays(date, days):给指定日期加N天
    • addWorkDays(date, workDays):只加工作日(自动排除周末和设定的节假日)
  • 千万别再把查询里的@Today语法用到规则里了,这俩是完全不同的语法体系!

内容的提问来源于stack exchange,提问作者C. Molendijk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 22:17:35