2016-07-04 9 views
1

特定の順序でルールを適用する方法はありますか?作業項目フィールドでルールを順序付ける方法

私は2つの特定の値が別のフィールドから選択されている場合のみはいいいえを提供したい... 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ルールを上に移動し、「yyy」または「xxx」の値のいずれかを選択しても、他のフィールド。

どこかにキャッシュするか、インテリジェントまたはsthにしようとしています。

ルールを自分の注文に強制する/回避するにはどうすればよいですか?

答えて

1

ルールは、通常、リストされた順序で処理されます。ただし、WHEN *,DEFAULTおよびCOPY要素を使用すると、追加の動作が適用されることがあります。

フィールドに複数のルールを適用するときに、ルールがどのように評価されるかを知ることができます。 ルールの評価方法は完全に決定的ではありません。このセクションでは、WHEN *,DEFAULTおよびCOPYのルールを使用している場合の予想される動作と対話について説明します。

以下の手順は、TFSが実行する対話と作業項目フォームのユーザーによる正しい操作を示しています。ステップ1,8、および13のみがユーザによって実行される。

のVisual Studio、チームエクスプローラー、チームWebアクセス、またはチームエクスプローラEverywhere─として1.FromのTeam Foundationclient─such、ユーザーが新しい 作業項目を作成するか、既存の作業項目を編集します。

2.フィールドのデフォルト値を入力します。すべてのフィールドについて、WHEN *ルールの外にあるDEFAULTルールを使用します。

3.フィールド値をコピーします。すべてのフィールドについて、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操作を実行します。

関連する問題