示例自定义规则方案

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

本文提供了自定义规则定义的示例。 所有自定义规则都是为工作项类型定义的。 为继承和本地 XML 进程模型提供了示例。

在添加自定义规则之前,请阅读规则和规则评估,并将规则添加到工作项类型(继承过程)。

定义依赖的必填字段

仅当另一个字段包含特定值时,才能指定字段是必需的。 在以下示例中,当客户报告问题时,自定义 “客户报告 ”字段设置为 True“严重性 ”字段将变为必填字段。 如果客户未报告此问题,则不需要“严重性字段的值。

自定义规则的屏幕截图,用于在客户 REported 字段=true 时要求严重性。

清除依赖字段的值

以下示例演示如何定义自定义规则,以便在对开始日期进行更改时清除故事点的值

自定义规则的屏幕截图,用于清除开始日期更改时故事点的值。

设置依赖字段值

以下示例说明如何根据为自定义字段“Tee-Shirt Size”字段选择的值来映射 Size 字段的值

Tee 恤大小选取列表由四个值组成:小X-Large。 当“Tee 恤大小”字段更改为特定值时,将定义四个自定义规则来分配“大小”字段。 为了简化使用,Tee 恤尺寸默认值为 Small

“Tee 恤大小”字段的“编辑字段”对话框

“Tee 恤大小”字段的“编辑字段”对话框的屏幕截图。

自定义规则

自定义规则的屏幕截图,用于在 Tee-Shirt Size 设置为 Small 时设置 Size 值。

四个自定义规则

设置 Tee-Shirt Size 时设置 Size 值的四个自定义规则的屏幕截图。

状态更改时需要字段值

以下示例演示如何在任务工作流状态更改为“活动”时需要“剩余工时”域的规范。

将状态更改为“活动”时需要剩余工时自定义规则的屏幕截图。

关闭状态时清除字段的值

若要在关闭任务时自动清除 剩余工时 字段,请定义一个自定义规则,如下所示。

将状态更改为“已关闭”时所需的剩余工时自定义规则的屏幕截图。

限制组创建工作项

一个自定义规则,用于限制转换为 工作项类型的“建议 ”状态类别,从而有效地禁止创建该类型的工作项。 通过将规则应用于特定组,可以有效地禁止该组创建该类型的工作项。

以下自定义规则限制项目团队创建工作项,因为 “建议 ”状态类别映射到 “新建 ”工作流状态。

自定义规则的屏幕截图,用于限制组创建工作项。

限制组修改工作项

对于继承过程,可以通过在区域路径上设置组的拒绝权限来阻止用户修改工作项。 对于本地 XML 进程,可以对阻止其在任何状态下保存工作项的组的每个工作流状态施加限制。

无法定义限制特定类型的工作项修改的自定义规则。 只能按状态指定限制。 如果用户不更改状态,则他们可以修改其他字段,除非对组进行所有字段都是只读的。

相反,如果要限制一组用户修改任何类型的选择工作项,可以将这些工作项分配给区域路径。 定义安全组,然后为该组编辑工作项设置限制,如下图所示。 若要了解详细信息,请参阅 设置工作跟踪的权限和访问权限、创建子节点和修改区域路径下的工作项

用于限制工作项修改的区域路径的“权限”对话框的屏幕截图。

限制状态转换

对于继承的进程,会自动定义任意到任意状态转换。 这样,用户就可以将工作流状态从新状态提升到完成状态,但如果需要,也可以向后移动。 定义自定义规则以限制转换时,请记住,如果用户在更新工作流时犯了错误,他们可能无法更正它。 例如,他们可以通过将工作项卡移动到看板的后续阶段来更新状态,但不能将其移回。

提示

请考虑限制某些用户(而不是所有用户)的状态转换。 这样,如果用户犯了错误,他们可以要求另一个团队成员重置状态值以绕过限制。

在定义状态转换规则之前,请查看 规则和规则评估、自动生成的规则 以及 工作流状态和状态类别在积压工作和板中的使用方式。

限制对已关闭工作项的修改

根据业务流程,你可能希望阻止用户继续修改或更新已关闭或已完成的工作项。 可以将规则添加到工作项类型,以防止用户重新打开关闭的工作项。

对于继承的进程,可以添加限制状态转换的规则。 例如,以下规则限制从关闭到其他两个状态(“新建”和“活动”)的转换。

注意

A work item state moved from ... 条件适用于 Azure DevOps Server 2020 及更高版本。

自定义规则,当前用户不是组的成员,禁止从“已关闭”转换到“新建”或“活动”状态

注意

根据指定的规则操作, 可能会禁用工作项窗体上的“保存 ”按钮,或者在受限用户尝试修改工作项时显示错误消息。

隐藏或限制基于用户或组的字段修改

选择或Current user is a member of group...Current user is not a member of group...时,可以隐藏字段、只读字段或使字段是必需的。

例如,以下条件指示“理由”字段对于不属于 Fabrikam Fiber\Voice 组的成员隐藏。

自定义规则,当前用户不是组的成员,隐藏对齐字段

注意

工作项要遵守适用于它们的规则。 基于用户或组成员身份的条件规则会缓存在 Web 浏览器中。 如果你发现自己被限制更新某个工作项,可能是受制于以下规则之一。 如果你认为遇到的问题并不适用,请参阅工作项表单 IndexDB 缓存问题

限制基于用户或组的选择字段修改

可以自定义工作项类型,以限制谁可以修改工作项类型的特定字段。

注意

对于 Azure DevOps Server 2019 和早期版本,只能基于具有本地 XML 进程模型的用户或组限制工作项的修改。

使用以下两个条件之一,可以为安全组的用户或不是安全组成员的用户选择字段。

  • current user is a member of a group...
  • current user is not a member of a group...

提示

若要避免可能出现的规则评估问题,请指定 Azure DevOps 安全组,而不是 Microsoft Entra ID 或 Active Directory 安全组。 若要了解详细信息,请参阅 默认规则和规则引擎

例如,可以为选择用户或组设置 “标题 ”或“ 状态 ”字段 只读

例如, “用户故事”工作项类型的“优先级 ”字段对于 Fabrikam Fiber\Voice 组的成员变为只读。 当此组的用户打开用户情景时,他们无法更改“优先级”字段中的值。

自定义规则,当前用户不是组的成员,使优先级字段为只读