配置属性之间的依赖关系

您可以配置项目跟踪工具中的工件,以便当用户指定属性的值或具有特定角色时,将影响其它的属性。例如,在包含缺陷工件类型的项目中,您可能希望用户在输入新的缺陷时始终输入“优先级”属性的值。同样,如果用户选择组件属性,您可能希望过滤“子组件”、“版本”和“目标里程碑”属性,以使用户只能选择与此组件相关的选项。

某些属性控制其它属性的行为的功能称为属性依赖关系。属性依赖关系规则定义一个源属性值对一个或多个目标属性值的影响。例如,假设您定义了一个具有以下属性的缺陷工件类型:

属性名 可能的值
状态 新的、未决、代码更改、已验证
解决方法 无、已修复、重复、已关闭、重新打开

您可以将这些属性的规则定义如下:

如果
状态 = 新的 解决方法 = 无、重复或已关闭
状态 = 未决 解决方法 = 无、重复或已关闭
状态 = 代码更改 解决方法 = 已修复
状态 = 已验证 解决方法 = 已关闭或重新打开

您可以定义引用项目级别的特定用户的属性依赖关系规则。无法在全局(管理)级别创建引用特定用户的规则。

属性依赖关系规则具有两种类型:

关于执行操作的依赖关系规则

在基于操作的规则中,您可配置输入条件和根据输入条件要执行的一个或多个操作。每项操作可设置属性的值或要求用户提供属性的值。

基于操作的依赖关系规则具有以下基本结构:

如果属性 A = 值 B 并且/或者用户角色 = 值 C,则执行 X、Y 和 Z

输入条件(规则的“如果”部分)最多由一个用户角色和一个属性组成。示例:

如果优先级 = 高并且用户角色 = 开发人员
如果目标版本 = 3.5
如果用户角色 = 项目所有者

规则的操作部分可以为以下两者之一:

关于设置值的操作

基于操作的依赖关系规则根据输入条件属性的值更改目标属性的值。例如,假设您为缺陷工件类型创建下面的规则:

如果状态 = 代码更改,则决议 = 已修复

此规则指示如果用户将缺陷的状态更改为“代码更改”,则“决议”字段将自动设置为值“已修复”。

关于要求提供属性的操作

您可以定义一项规则,该规则要求用户设置目标属性的值,即,如果用户在 A 中设置值,则他或她将被要求设置 B 的值。例如,假设您创建下面的规则:

如果优先级 = P1,则受派者 = 必需的并且要修复的版本 = 必需的

如果用户将缺陷优先级设置为 P1,则此规则要求用户提供“要修复的版本”字段的值。再例如,如果用户为开发人员并且将优先级设置为高,则下面的规则将要求用户提供注释:

如果优先级 = 高并且用户角色 = 开发人员,则注释 = 必需的

关于使用属性选项过滤器的规则

您可以定义属性依赖关系规则,在该规则中源属性的值决定用户可用的目标属性值。这被称为属性选项过滤器。例如,假设一个缺陷工件具有以下属性:

属性名 可能的值
严重性 低、中、高
抄送 Alice、Bob、Tom、Dave 和 Tina

您可以编写如下的选项过滤器规则:

如果
严重性 = 低 抄送 = Alice
严重性 = 中 抄送 = Alice 和 Bob
严重性 = 高 抄送 = Alice、Bob、Tom、Dave 和 Tina

此类型的规则中的源和目标必须都为具有一个或多个活动选项的单选或多选列表属性。

属性依赖关系规则的计算

加载工件后,将计算以下属性依赖关系规则:

提交工件时,将计算以下属性依赖关系规则:

编辑保存的工件时,将计算以下规则:

关于依赖关系规则的继承

除非项目所有者已停用工件类型的全局规则,否则项目将自动使用该全局规则。如果全局管理员锁定了某项规则,则无法停用该规则。

如果全局规则将属性作为目标使用,则此属性不可在本地项目中作为目标使用。

开始规则定义

开始创建新规则的路径取决于分配给您的角色。

开始属性依赖关系规则(项目所有者)

  1. 单击“项目”选项卡,然后单击项目的链接。
  2. 单击左侧导航窗格中的“项目跟踪工具”链接。
  3. 单击左侧导航窗格中的“管理工件类型”。
  4. 单击工件类型的链接,您要创建该工件类型的依赖关系规则。
  5. 在页面底部的“属性依赖关系规则”部分中,单击“添加”。
    将显示“创建新项目规则”页面。

开始属性依赖关系规则(域管理员)

  1. 单击“管理”选项卡。
  2. 单击导航窗格中的“工件类型”链接。
  3. 单击工件的链接。
  4. 在页面底部的“属性依赖关系规则”部分中,单击“添加”。
    将显示“创建新规则”页面。

创建基于操作的依赖关系规则

基于操作的依赖关系规则执行以下操作之一:

创建新的基于操作的规则的输入条件

  1. 按照开始规则定义中的描述,开始一项新规则。
    将显示“创建新规则”页面。
  2. 选择“基于操作的依赖关系”规则,然后单击“继续”。
  3. 提供名称和描述。
  4. 单击对应于构成输入条件的角色和属性特性的单选按钮:

    条目字段 描述
    条件角色

    特定角色”- 如果您是域管理员,则它可以是您已添加到此项目的任何用户角色。(在单击左侧导航窗格中的“角色”链接后出现的“管理”选项卡上可定义用户角色。)将用户作为项目成员添加后,会分配给用户一个或多个角色。

    任何角色”- 所有用户都适合此条件。例如,选定“任何角色”和“任何属性”的规则等价于“始终”。

    待确定”- 您将稍后设置此值。注意,如果您指定设置一个特定条件角色,并稍后将其删除,则设置将自动更改为“待确定”。

    条件属性

    特定属性”- 条件属性中仅允许工件类型中包括的单选列表属性、多选列表属性和状态属性。如果此列表为空,则在依赖关系规则中已使用所有可用的属性,或此工件类型中没有适当的属性。在上述任一种情况下,请选择该工件类型,然后添加列表或状态属性,并将它们在属性组中分组。此列表中将出现新的属性。

    任何属性”- 无论选择何种属性,此条件都将计算为 True。例如,定义为适用于“任何角色”和“任何属性”的规则等效于“始终”。

    待确定”- 与“条件角色”的相应部分相同。


    如果“任何角色”或“任何属性”下拉列表中没有显示角色或属性,您必须将它们添加到此工件类型中,然后创建规则。
    注意:除非还选中“特定角色”单选按钮,否则在角色或属性列表框中单击将不会产生任何效果。
  5. 单击“继续”。
  6. 如果您选择了特定属性,请转到下一步。
    如果您选择将“任何属性”或“待确定”作为条件属性,将出现确认页面。
    在该页的底部,“操作”部分说明尚未配置任何操作。若要配置操作,请参见创建依赖关系规则的“设置值”操作创建依赖关系规则的“设置为必需”操作
  7. 如果选择了特定属性,将显示一个页面,使您可以为此属性选择一个或多个值。
    例如,对于名为“状态”的属性,您可以选择值“新的”,以指示当用户将“状态”的值设置为“新的”时,将执行操作(待定义)。
  8. 点击“继续”。
    信息“规则已保存”将出现在该页的顶部。在该页的底部,“操作”部分将说明尚未为此规则配置任何操作。
  9. 若要配置操作,请参见创建依赖关系规则的“设置值”操作创建依赖关系规则的“设置为必需”操作

创建基于操作的依赖关系规则的“设置值”操作

  1. 按照开始规则定义中的描述,开始一项新规则。
  2. 创建此规则的新的输入条件
    将显示此依赖关系规则的摘要。在该页的底部,“操作”部分将说明尚未配置任何操作。
  3. 单击“添加”。
  4. 在“添加项目条件操作”页面(项目所有者)或“添加条件操作”页面(域管理员)上,选择“设置值”并单击“继续”。
    将显示包含“目标属性”部分的页面。
  5. 选择以下选项之一:
    • 特定”- 您准备选择目标属性。
      如果选择列表中没有出现任何属性,请将属性添加到此工件类型中,并创建一个包含工件的属性组。这些属性必须是单选或多选列表类型。
    • 待确定”- 您将稍后选择目标属性。
      如果您指定一个目标属性,并稍后将其删除,则此操作的设置将自动更改为“待确定”。
  6. 点击“继续”。
    如果您选择了“待确定”,请转到步骤 10。
    如果您选择了特定属性,则该页将被刷新以显示“目标值”部分。
  7. 如果目标是选择列表属性,请转到步骤 8。
    如果目标是输入类型属性,请输入要为目标属性设置的值,然后选择以下选项之一:
    • 设置为默认值”- 如果没有提供其它的值,则设置此值。
    • 替换现有的值”- 无论是否提供其它值,都将设置此值。
  8. 如果目标是选择列表属性,您必须指示要分配哪些可能的值。
    您可以从下拉列表中选取,或者如果目标属性值是用户列表,您将可以:
    1. 单击“编辑用户”按钮。
    2. 在“添加用户”页面上,单击“编辑用户”。
    3. 选中要添加用户名称旁边的复选框。
    4. 单击“添加选定用户至受派者列表”。
    5. 单击“完成”。
  9. 在“行为”部分,指定将对目标值执行的操作:
    • 添加到列表中。
    • 设置为默认值。
    • 替换用户提供的任何现有值。
  10. 单击“完成”。
    将显示一条信息:“已保存您的操作”。在该页的底部,将显示此操作的摘要。“有效性”字段指示此操作是否完成,以及是否可以验证此操作。如果此操作有效且条件也有效,则规则有效。如果规则的任何部分不完整或无效,则规则无效。
  11. 您可以继续添加操作或单击“完成”以返回到“工件类型”页面。

创建基于操作的依赖关系规则的“设置为必需的”操作

  1. 按照开始规则定义中的描述,开始一项新规则。
  2. 按照创建新的基于操作的规则的输入条件中的描述,创建一项新的输入条件。
    将显示依赖关系规则的摘要。
    在该页的底部,将显示“操作”部分。
  3. 若要将操作添加到此规则,请单击“添加”。
  4. 在“添加条件操作”页面中,选择“设置为必需的”,并单击“继续”。
    将显示“添加条件操作 - 必需的属性”页面。
  5. 在该页底部的“目标属性”部分,选择满足输入条件时用户必须设置的一个或多个属性。
    注意,您可以选择多个属性。目标属性可以是输入属性、用户属性或这两种属性。
  6. 单击“完成”。
    将显示完整的规则。
  7. 单击“完成”。
    将显示“工件类型”页面。在该页的底部,将显示您刚创建的规则的摘要。如果规则的所有部分都完整且有效,则该规则有效。如果规则的任何部分无效,则该规则无效。
  8. 您可以继续添加操作或单击“完成”以返回到“工件类型”页面。

向同一条件属性的不同值分配同一目标属性

创建基于操作的依赖关系规则时,会将目标属性和条件属性的值关联起来。关联此目标属性后,它将被锁定为仅服从该规则。这意味着,在创建其它依赖关系规则时可以再次使用相同的目标属性,但前提是条件属性相同且具有不同的条件值。例如,您可以创建下表中给出的两条规则:

类型/名称 规则 1 规则 2
条件属性 组件 组件
条件属性值 组件 1 组件 2
目标属性 分配给 分配给
目标值 Alice Tom

查找基于操作的规则

查找规则的步骤取决于您的项目角色。

查找您要编辑的规则(项目所有者)

  1. 单击“项目”选项卡,然后单击项目的链接。
  2. 选择左侧导航窗格中的“项目跟踪工具”链接。
  3. 单击左侧导航窗格中的“管理工件类型”。
  4. 单击工件类型的链接,该工件类型包含您要查找的规则。
  5. 在该页底部的“属性依赖关系规则”部分,单击您要编辑的规则的链接。
    将显示该规则的摘要页面。

查找您要编辑的规则(其他管理员)

  1. 如果您是一位具有访问“管理”选项卡权限的管理员,请单击“管理”选项卡。
  2. 在左侧导航窗格中,单击“项目跟踪工具”链接集中的“工件类型”链接。
  3. 单击工件类型的链接,该工件类型包含您要查找的规则。
  4. 在该页底部的“属性依赖关系规则”部分,单击您要编辑的规则的链接。
    将显示该规则的摘要页面。

编辑和删除基于操作的规则

您可以修改和删除基于操作的规则。

编辑规则

  1. 按照查找基于操作的规则中的描述,查找规则。
  2. 在规则的摘要页面中,您可以编辑“名称”和“描述”。
  3. 若要编辑输入条件,请单击“编辑条件”按钮。
  4. 若要编辑操作,请单击操作的“摘要”链接。
  5. 单击“完成”。

删除规则

  1. 按照查找基于操作的规则中的描述,查找规则。
  2. 在“选择”列中,单击规则的复选框。
  3. 单击“删除所选”。
  4. 单击“完成”。

创建基于属性选项过滤器的规则

以下段落描述了如何创建基于属性选项过滤器的规则。

开始一项基于属性选项过滤器的规则

  1. 按照开始规则定义中的描述,开始一项新规则。
  2. 在“创建新项目规则”页面中,选择“属性选项过滤器”。
  3. 单击“继续”。
    将显示“添加选项过滤器”页面。
  4. 提供此规则的“名称”和“描述”。
  5. 选择源和目标属性。
    如果“源属性”下拉列表中未显示任何属性,您需要将列表类型的属性添加到工件中。您可以在多个选项过滤器中使用源属性。但是,用作目标时,一个属性只能使用一次。如果“目标属性”下拉列表中缺少一项属性,则它可能已经在规则中使用。
  6. 单击“保存”。
    将显示摘要页面,此页面显示规则组件。现在,您可以定义源属性值和目标属性值之间的关联。这些关联就是属性选项过滤器。

创建属性选项过滤器

  1. 按照开始基于属性选项过滤器的规则中的描述,创建规则的基本组件。
  2. 在此规则的摘要页面的“关联”部分,单击“编辑关联”。
    将出现“为选定的选项添加关联”页面。此页面显示源属性的值的列表。
  3. 在关联列表中,单击值的单选按钮,您要定义该值的选项过滤器。
  4. 单击“编辑所选”。
  5. 在该页的“创建新关联”部分中,选择要在用户将源选项设置为此值时显示的目标属性选项。
    例如,假设您已将“状态”选定为源属性,且该源属性值为“新的”。您可以选择名为“解决方法”的目标属性,并且将用户把“状态”的值设置为“新的”时显示的“解决方法”值限制为“无”或“不予更正”。
  6. 点击“保存”。
  7. 重复步骤 3-6 直到您已创建所需数量的关联。
  8. 完成操作后,请单击“完成”。
    将显示摘要页面,此页面显示规则组件。
  9. 如果此规则是完整的,请单击“完成”。
    将出现工件的主要页面。该页底部的“属性依赖关系规则”部分中将显示规则的摘要。
    注意:如果此依赖属性规则的所有部分完整且有效,则此规则有效。如果此规则的任何部分无效,则整个规则都无效。

编辑基于属性选项过滤器的规则

您可以修改或删除基于属性选项过滤器的规则

编辑规则

  1. 查找规则
  2. 在依赖属性的列表中,单击该规则的链接。
    将出现该规则的摘要页面。
  3. 在摘要页面中,输入新的“名称”和“描述”,并单击“保存”。
  4. 若要更改属于此规则的属性,请在该页的“属性”部分中,单击“编辑”按钮。
  5. 若要更改目标属性中哪些值与源值相关联,请在该页的“关联”部分中,单击“编辑关联”。
  6. 当您完成操作后,请单击“完成”。

删除规则

  1. 删除基于属性选项过滤器的规则与删除基于操作的规则相同。请按照编辑和删除基于操作的规则中的步骤操作。