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

Azure DevOps卡片样式:为重新激活的工单设置颜色标识

问题描述

我们团队使用Azure DevOps卡片样式标识延迟任务,目前存在一个问题:当任务从Active状态转为New/Closed状态,再重新回到Active状态时,卡片颜色会被清除,颜色倒计时也会重置。我们希望能识别那些曾被激活、关闭后重新打开的卡片,而无需为所有从New状态转入Active状态的任务设置颜色。

当前使用的样式规则如下:

  • Activated Date <= @Today - 5
  • Work Item Type = Task
  • State = Active

此前尝试过几种替代方案,但都存在问题:

  • 用Changed Date替代Activated Date:在工单中添加评论时计数器会重置
  • 用Closed Date:卡片回到Active状态时颜色会清除
  • 用Start Date:每次状态变更(包括转为Closed状态时)计数器都会重置,无法保留Closed前Active状态的累计计数
可行解决方案

方法1:新增自定义字段记录「首次激活时间」

这是最稳定可靠的方案,具体步骤:

  1. 进入Azure DevOps项目设置,为Task类型新增一个日期类型的自定义字段,例如命名为First Activated Date
  2. 创建工作项规则:当任务从非Active状态转为Active状态时,若First Activated Date为空,则将当前时间赋值给该字段;若字段已有值,则保持不变
  3. 修改卡片样式规则,将原规则中的Activated Date替换为First Activated Date,即:
    • First Activated Date <= @Today - 5
    • Work Item Type = Task
    • State = Active
      通过这种方式,无论任务被关闭后重新打开多少次,首次激活的时间都不会改变,倒计时会基于首次激活时间持续累计。

方法2:利用工作项历史记录构建查询(无需新增字段)

如果不想新增自定义字段,可以通过查询工作项的状态变更历史来筛选目标任务:

  1. 创建新的工作项查询,设置以下筛选条件:
    • Work Item Type = Task
    • State = Active
    • 存在至少一次状态变更记录:State从非Active变为Active,且该变更的时间<= @Today -5
  2. 将这个查询关联到卡片样式的规则中

注:这种方法需要依赖Azure DevOps的历史记录查询能力,部分场景下可能需要使用WIQL(工作项查询语言)编写查询,示例语句如下:

SELECT [System.Id], [System.Title], [System.State]
FROM WorkItems
WHERE
  [System.WorkItemType] = 'Task'
  AND [System.State] = 'Active'
  AND EXISTS (
    SELECT *
    FROM WorkItemHistory
    WHERE
      [System.FieldName] = 'System.State'
      AND [System.OldValue] <> 'Active'
      AND [System.NewValue] = 'Active'
      AND [System.ChangedDate] <= @Today - 5
  )

方法3:借助自动化工具实现逻辑(Power Automate/Azure Functions)

如果需要更灵活的逻辑控制,可以使用自动化工具:

  • 用Power Automate监听工作项的状态变更事件
  • 当任务首次被激活时,将激活时间存入自定义字段或添加特定标签
  • 后续任务状态变更时,不修改该激活时间,确保倒计时始终基于首次激活时间计算

内容的提问来源于stack exchange,提问作者Awie Swart

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 05:55:17