配置状态属性

通过状态属性,用户可以查看工件在其生命周期中所处的位置,以及将工件升级到新的状态。例如,您可以为包含以下值(即状态)的缺陷工件类型配置状态属性:

状态属性的每个值(各个状态)都具有一个或多个转变规则。转变规则用于确定在当前状态下,用户可向属性分配的新状态。例如,转变规则可允许用户将缺陷的状态从“新的”更改为“未决”,但不能从“新的”更改为“已验证”。

当用户查看具有状态属性的工件时,状态属性显示在说明当前状态的下拉列表中。下拉列表中所包含的选项则取决于当前状态和用户角色。例如,用户可以按以下方式处理工件的增强申请:

  1. 任何人都可以创建增强申请。
  2. 工件的初始状态为“新的”。
  3. 当增强申请为“新的”时,只有产品经理或开发经理才能将状态更改为“已排期”。
  4. 开发人员、开发经理或产品经理均可以将状态从“已排期”更改为“完成”。

每个状态属性都适用于整个域,且均具有三个组件:

一个状态属性只能与一个工件类型相关联。所有使用该属性的工件类型都必须共享相同的状态模型、角色关联、活动状态和状态顺序。

注意:如果您是从工件转变(用于 3.5 版之前的 CollabNet)迁移而来,则其中的部分转变可能不符合这些规则。在这种情况下,如果您查看或编辑工件类型,项目跟踪工具将发出警告:“警告:此工件类型具有多个状态属性。这是从以前的产品版本迁移的结果。一个工件类型具有多个状态属性不是建议的使用方式,这在将来的版本中将不受支持。”

关于状态属性和用户角色

您可以配置状态属性,使只具有特定角色的用户才能查看特定的状态。例如,您可以定义以下内容:

多角色用户将继承所有特定角色能够进行的转变,但不包括默认转变。

关于状态模型

您可以为不同的用户角色定义不同的状态模型。状态模型由一个或多个转变规则组成。例如,假设您希望产品开发人员能够重新打开需要进一步处理的缺陷,但又不想让他们验证缺陷(因为验证是质量控制人员的职责),则可以将以下状态模型分配给开发人员角色:

源状态 新的 打开 已修复 已验证 已关闭 已关闭-重复 已关闭-不予更正 重新打开
初始状态
X
 
 
 
 
 
 
 
新的
 
X
 
 
 
X
X
 
打开
 
 
X
 
 
X
X
 
已修复
 
 
 
 
 
 
 
X
已验证
 
 
 
 
 
 
 
X
已关闭
 
 
 
 
 
 
 
X
已关闭-重复
 
 
 
 
 
 
 
X
已关闭-不予更正
 
 
 
 
 
 
 
X
重新打开
 
 
X
 
 
X
X
 

如果您希望质量控制人员能够引起或验证缺陷,但又不希望关闭这些缺陷,则可以将以下状态模型分配给质量控制角色:

源状态 新的 打开 已修复 已验证 已关闭 已关闭-重复 已关闭-不予更正 重新打开
初始状态
X
 
 
 
 
 
 
 
新的
 
X
 
 
 
 
 
 
打开
 
 
 
 
 
 
 
 
已修复
 
 
 
X
 
 
 
X
已验证
 
 
 
 
 
 
 
X
已关闭
 
 
 
 
 
 
 
X
已关闭-重复
 
 
 
 
 
 
 
X
已关闭-不予更正
 
 
 
 
 
 
 
X
重新打开
 
 
 
 
 
 
 
 

全局级别和项目级别状态属性

不允许将全局级别(“管理”选项卡)中某些配置状态属性的方法用于项目级别(“项目”选项卡)的状态属性配置。您仅能在全局级别上定义、激活和停用状态属性。在全局级别上,您可以锁定角色与状态模型之间的关联,以阻止在项目级别下编辑关联。

角色的默认状态模型是在全局级别定义的状态模型。通过将项目级别的状态模型与该角色相关联,您可以覆盖默认状态模型。在全局级别和项目级别上,您都可以将用户角色与特定的状态模型相关联。

对于未在全局级别上锁定的状态属性,您可以在项目级别上进行以下操作:

在项目级别下,您不能进行以下操作:

关于将列表属性转换为状态属性

可以在单选和多选列表属性与状态属性之间进行相互转换,如下所示:

关于依赖关系规则中的状态属性

状态属性可以是属性依赖关系规则中的条件。状态属性作为一项条件时,可以使用它的值(例如,“未决”)。

状态属性不能作为属性依赖关系规则的目标。

状态属性不能作为条件操作规则或选项过滤器的依赖属性目标。状态属性规范声明状态属性为有效的规则条件或源,不能将其作为目标。此限制的原因是,当基于角色的状态模型与依赖属性功能的规则交叉时,缺乏正确行为的指南。

关于状态属性和工件转变

在 3.5 版之前的 CollabNet 中,工件转变用于满足状态属性的要求。如果您使用了工件转变,则在使用 3.5 或更高版本时,必须将这些转变迁移到状态属性。迁移过程可以将数据转换为与状态属性兼容的形式。

添加和更改状态属性

以下各节描述如何创建、修改、复制、锁定和删除状态属性,以及如何将不同的用户角色关联到不同的状态转变模型。

当您创建新状态或编辑状态模型时,所做的更改将会立即出现在使用该状态属性的所有工件类型和项目中。

创建新的状态属性

  1. 请以域管理员的身份登录到 CollabNet,然后单击“管理”选项卡。
  2. 在左边的导航窗格中单击“项目跟踪工具”>“工件属性”。
  3. 在“全局属性”页面的底部,单击“创建新的”按钮。
  4. 在“创建新的全局属性”页面上,从“类型”下拉列表中选择“状态”,输入名称和描述,然后单击“继续”。
  5. 在“编辑全局属性”页面上,滚动到页面底部,在“状态名称字段中添加第一个状态。
  6. 单击“保存并继续”。
  7. 如果需要,请重复步骤 5 和 6。
    注意:若要调整状态值在用户项目页面的下拉列表中的显示顺序,请在每个状态右侧的“列表序列”列的下拉数字列表中选择数字顺序。

创建或编辑全局状态模型

  1. 单击“管理”选项卡,然后在左边的导航窗格中单击“项目跟踪工具”>“工件属性”,再单击状态属性的链接。
  2. 在“编辑全局属性”页面上,单击“状态转变选项卡。
  3. 若要创建新模型,请滚动到该页面的底部,然后单击“添加”。
    若要修改现有模型,请从“选择状态模型”下拉列表中选择该模型。
    如果您是首次创建状态模型,则所创建的模型将会成为默认模型。
  4. 在“属性状态转变”表中,审查第一行,然后单击您希望在新建工件时用户可以使用的选项。
    若要将默认初始状态分配给状态属性,请在“属性状态转变”表的“初始创建”行中,仅选择一个状态。您可以将多个转变状态分配给前述的一个状态。例如,对于缺陷工件类型,您也许希望初始状态始终为“新的”。在“新的”状态下,如果您希望用户能够从“未决”和“已关闭 - 不予更正”状态中选择,必须在该行中选中这些复选框,同时取消选中其它复选框。
  5. 请审查表中后面的行,并选择状态模型中对其它状态也可用的选项。
  6. 单击“保存更改”。

将状态属性与全局工件类型相关联

  1. 请按照创建新的状态属性中的描述,创建一个新的全局状态属性。
  2. 单击“管理”选项卡,然后在左边的导航窗格中单击“项目跟踪工具”>“工件类型”,再单击全局工件类型的链接。
  3. 在“编辑全局工件类型”页面的“属性组”部分中,单击“添加”。
    随即出现名为“新属性组”的链接。
  4. 单击该新属性组的链接,输入名称和描述,然后单击“保存”。
  5. 在此组的“属性”部分,单击“添加”。
  6. 单击要添加到此组中的状态属性的复选框,再单击“添加”,然后单击“完成”。
  7. 在“编辑全局工件类型”页面的“属性组”部分中,单击“保存”。
    注意: 此更改不会自动应用于局部(项目级别)工件。若要在局部级别上更新该工件,请删除该工件并将其重新添加到项目中。

编辑项目级状态模型

  1. 点击“项目”选项卡,并单击使用项目跟踪工具的项目的链接。
  2. 在左边的导航窗格中,单击“项目跟踪工具”>“管理工件类型”,然后单击包含状态属性的工件的链接。
  3. 单击包含状态属性的属性组名称。
  4. 单击该状态属性的链接。
  5. 单击“状态转变”选项卡。
  6. 若要创建新模型,请滚动到该页面的底部,然后单击“添加”。
    若要修改现有模型,请从“选择状态模型X”下拉列表中选择该模型。
    如果您是首次创建状态模型,则所创建的模型将会成为默认模型。
    注意:如果您从全局级别上定义的下拉列表中选择状态模型,它将为只读。
  7. 在“属性状态转变”表中,审查第一行,然后单击您希望在新建工件时用户可以使用的选项。
    若要将默认初始状态分配给状态属性,请在“属性状态转变”表的“初始创建”行中,仅选择一个状态。您可以将多个转变状态分配给前述的一个状态。例如,对于缺陷工件类型,您也许希望初始状态始终为“新的”。在“新的”状态下,如果您希望用户能够从“未决”和“已关闭 - 不予更正”状态中选择,必须在该行中选中这些复选框,同时取消选中其它复选框。
  8. 请审查表中后面的行,并选择状态模型中对其它状态也可用的选项。
  9. 单击“保存更改”。

在全局级别上将角色与状态模型相关联

  1. 请单击“管理”选项卡,然后在左边的导航窗格中单击“项目跟踪工具”>“工件属性”,再单击状态属性的链接。
  2. 在“编辑全局属性”页面上,单击“角色选项卡。
  3. 在特定角色名称旁边的下拉列表中,选择要与该角色相对应的状态模型。
  4. 单击“保存更改”。

注意:锁定的角色为只读的。

在项目级别上将角色与状态模型相关联

  1. 单击“项目”选项卡,并单击使用项目跟踪工具的项目的链接。
  2. 在左边的导航窗格中,单击“项目跟踪工具”>“管理工件类型”,然后单击包含状态属性的工件的链接。
  3. 单击包含状态属性的属性组名称。
  4. 单击该状态属性的链接。
  5. 单击“角色”选项卡。
  6. 在特定角色名称旁边的下拉列表中,选择要与该角色相对应的状态模型。
  7. 单击“保存更改”。

复制状态属性(仅适用于全局级别)

  1. 单击“管理”选项卡,然后在左边的导航窗格中单击“项目跟踪工具”>“工件属性”。
  2. 单击状态属性旁边的复选框,然后滚动到页面的底部,再单击“复制所选”。

锁定状态属性

在“管理”选项卡上,您可以锁定状态属性、单个状态和角色关联,如下所示:

由于项目无法修改全局定义的状态模型,因此不存在状态模型的显式锁定机制。您必须在项目内创建一个特定于项目的状态模型。

锁定一个或多个状态

  1. 单击“管理”选项卡,再单击“项目跟踪工具”>“工件类型”,然后单击具有该状态属性的工件链接。
  2. 单击包含该状态属性的属性组链接。
  3. 单击该状态属性的链接。
  4. 在“工件类型属性编辑器”页面中,请确保已选中“状态”子选项卡。
  5. 单击要锁定的状态旁边的复选框。
  6. 点击“保存”。

锁定与状态模型关联的角色

  1. 单击“管理”选项卡,再单击“项目跟踪工具”>“工件类型”,然后单击具有该状态属性的工件链接。
  2. 单击包含该状态属性的属性组链接。
  3. 单击该状态属性的链接。
  4. 在“工件类型属性编辑器”页面中,请确保已选中“状态转变”子选项卡。
  5. 单击要锁定的角色旁边的复选框。
  6. 点击“保存”。

删除状态属性和状态模型

您可以删除全局级别和项目级别的状态模型。如果未为角色定义全局状态模型关联,则会将状态属性的默认状态模型分配给该角色。删除状态模型后,其影响如下所示:

从状态属性关联的工件类型中删除该状态属性

  1. 单击“管理”选项卡,再单击“项目跟踪工具”>“工件类型”,然后单击具有该状态属性的工件链接。
  2. 单击包含该状态属性的属性组链接。
  3. 在“全局属性组”页面中,单击与该状态属性相对应的“选择”列中的复选框。
  4. 单击“删除所选”。

从属性列表中删除状态属性

  1. 单击“管理”选项卡。
  2. 单击“项目跟踪工具”>“工件属性”。
  3. 单击状态属性的链接。
  4. 在“全局属性组”页面的“属性信息”部分中,单击“删除”复选框,然后单击“更新”。

从状态属性中删除状态

  1. 单击“管理”选项卡。
  2. 单击“项目跟踪工具”>“工件属性”。
  3. 单击状态属性的链接。
  4. 从“全局属性组”页面的“属性状态”中,单击对应于特定状态的“删除”复选框,再单击“保存更改”。

迁移 3.5 版之前版本的属性转变

在 CollabNet 3.5 版之前的版本中,管理员可以使用项目跟踪工具,将单选项的列表类型属性配置为使用转变规则。转变规则允许管理员进行以下操作:

在 CollabNet 3.5 安装中,属性转变不再适用于全局级别或项目级别的工件类型。转变规则被状态属性和属性依赖关系所代替。同时还提供了一个用于迁移属性转变的流程。有关详细信息,请与您的 CollabNet 支持代表联系。

您只能为一个工件类型添加一个状态属性。但是,在 3.5 版之前的数据中,一个工件可能与多个属性转变相关联。在迁移之前,您应该尽量确保一个属性转变只与一个工件相关联。