如何在工作项字段中订购规则

时间:2016-07-04 13:28:38

标签: tfs tfs2015 workitem tfs-process-template

有没有办法按特定顺序应用规则?

如果从另一个字段中选择了两个特定值,我想提供YesNo ...我的XML规则如下所示:

  <WHEN field="xxx.yyy.FoundInVersion" value="xxx">
    <ALLOWEXISTINGVALUE />
    <ALLOWEDVALUES not="[project]\xxx" expanditems="true">
      <LISTITEM value="No" />
      <LISTITEM value="Yes" />
    </ALLOWEDVALUES>
  </WHEN>
  <WHEN field="xxx.yyy.FoundInVersion" value="yyy">
    <ALLOWEXISTINGVALUE />
    <ALLOWEDVALUES not="[project]\xxx" expanditems="true">
      <LISTITEM value="No" />
      <LISTITEM value="Yes" />
    </ALLOWEDVALUES>
  </WHEN>
  <ALLOWEDVALUES not="[project]\MigrationAccounts" expanditems="true">
    <LISTITEM value="No" />
  </ALLOWEDVALUES>

这很有效。如果两个WHEN中的任何一个是正确的,则允许是和否。

但TFS以某种方式自动(在不同/目标实例上)将最后一个ALLOWEDVALUES规则移到顶部,并且只允许和选择否,即使我选择其中一个值&#34; yyy&#34;或&#34; xxx&#34;在另一个领域。

它似乎在某个地方缓存,或者试图变得聪明或者......

如何强制/解决规则到我自己的订单?

1 个答案:

答案 0 :(得分:1)

规则通常按照列出的顺序进行处理。但是,当您使用 WHEN * DEFAULT COPY 元素时,可能会应用其他行为。

您可以了解在将多个规则应用于字段时如何评估规则。 如何评估规则并非完全确定性。本节介绍使用 WHEN * DEFAULT 和<时的预期行为和互动strong> COPY 规则。

以下步骤以正确的顺序显示TFS执行的交互以及工作项表单的用户。用户仅执行步骤1,8和13。

  

1.从Team Foundation客户端(如Visual Studio,团队资源管理器,Team Web Access或Team Explorer Everywhere),用户创建一个新的   工作项目或编辑现有工作项目。

     

2.填写字段默认值。对于所有字段,请使用WHEN *规则之外的任何DEFAULT规则。

     

3.Copy字段值。对于所有字段,请使用WHEN *子句之外的任何COPY规则。

     

4.对于WHEN规则匹配的所有字段,首先执行DEFAULT,然后再执行COPY规则。

     

5.对于WHENNOT规则匹配的所有字段,首先执行DEFAULT,然后再执行COPY规则。

     

TFS始终在WHENNOT规则之前处理WHEN规则。

     

6.对于自步骤1以来已更改其值且包含WHENCHANGED规则的所有字段,首先执行DEFAULT,然后执行COPY规则   内部。

     

7.允许用户开始编辑。

     

8.用户更改字段值,然后从字段中移动焦点。

     

9.为该字段提供与新值匹配的任何WHEN规则。

     

10.为该字段提供与新值匹配的任何WHENNOT规则。

     

11.为该字段添加与新值匹配的任何WHENCHANGED规则。

     

12.恢复用户的编辑能力。

     

13.用户将更改保存到数据库中。

     

14.对于所有字段,执行直接或间接在WHEN或WHENNOT下为字段定义的SERVERDEFAULT操作   规则。