有没有办法按特定顺序应用规则?
如果从另一个字段中选择了两个特定值,我想提供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;在另一个领域。
它似乎在某个地方缓存,或者试图变得聪明或者......
如何强制/解决规则到我自己的订单?
答案 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操作 规则。