Azure DevOps自定义规则操作可用字段的驱动因素及写入问题咨询
问题解答
核心原因:不是权限问题,是字段的系统属性限制
Resolved Date是Azure DevOps自带的系统只读字段,默认只有系统触发的特定动作(比如将工作项状态切换为官方定义的「Resolved」类状态)才能自动填充该字段。自定义规则里的「使用当前时间设置...的值」这类写入操作,会自动过滤掉所有只读字段,所以你看不到它;而「从...复制值」属于读取类操作,只是列出可读取的字段,所以能看到,但实际上也无法通过这个操作往Resolved Date里写入值。
实现需求的两种方案
方案一:调整工作流状态的类别映射(推荐)
把「testing」状态配置为工作流中的「Resolved」类别状态,这样系统会自动在状态变更时填充Resolved Date:
- 进入项目设置 → 工作项类型 → 选中「User Story」 → 打开工作流编辑器
- 找到「testing」状态,点击编辑,将其「类别」设置为「Resolved」
- 保存工作流后,当用户故事切换到testing状态时,系统会自动把Resolved Date设为当前时间,无需自定义规则
方案二:用自定义字段替代(如果无法修改状态类别)
如果不能调整testing状态的类别,可以新建一个自定义日期字段(比如命名为「Custom Resolved Date」),然后在自定义规则里用「使用当前时间设置...的值」操作填充这个自定义字段,后续查询或报表可以用这个字段替代原Resolved Date。
额外说明
自定义规则里的字段可见性和用户权限无关,完全由字段的系统属性(是否为只读)决定。哪怕你有工作项的完全编辑权限,也没法通过自定义规则写入系统只读字段,这类字段的赋值逻辑由Azure DevOps系统本身管控。
内容的提问来源于stack exchange,提问作者Christian Thompson
相关产品推荐
相关产品推荐

