次の方法で共有


<WHEN*>、<DEFAULT>、および <COPY> の各規則の使用

更新 : 2007 年 11 月

このセクションでは、<DEFAULT>、<COPY>、および <WHEN*> の各規則を使用するときに予期される動作とやり取りについて説明します。以下の手順は、Team Foundation Server と、作業項目フォームのユーザーが行うやり取りを、適切な順序で示します。ユーザーが実行する手順は、1、8、および 13 のみです。

  1. ユーザーは、Visual Studio のユーザー インターフェイスを使用して、新しい作業項目の作成や既存の作業項目の編集を行うための操作を行います。

  2. フィールドの既定値を補完します。すべてのフィールドに対し、<WHEN*> 規則の範囲外の <DEFAULT> 規則がある場合は適用します。

  3. フィールド値をコピーします。すべてのフィールドに対し、<WHEN*> 句の範囲外の <COPY> 規則がある場合は適用します。

  4. 一致する <WHEN> 規則があるすべてのフィールドに対し、その中の <DEFAULT> 規則と <COPY> 規則を順に適用します。

  5. 一致する <WHENNOT> 規則があるすべてのフィールドに対し、その中の <DEFAULT> 規則と <COPY> 規則を順に適用します。

    ms194946.alert_note(ja-jp,VS.90).gifメモ :

    Team Foundation Server は常に <WHEN> 規則を <WHENNOT> 規則より前に処理します。

  6. 手順 1 以降に値が変更され、かつ <WHENCHANGED> 規則があるすべてのフィールドに対し、その中の <DEFAULT> 規則と <COPY> 規則を順に適用します。

  7. ユーザーが編集を開始できるようにします。

  8. ユーザーがフィールド値を変更し、そのフィールド以外にフォーカスを移動します。

  9. そのフィールドに対する <WHEN> 規則があり、新しい値に一致する場合は、その規則を発生させます。

  10. そのフィールドに対する <WHENNOT> 規則があり、新しい値に一致する場合は、その規則を発生させます。

  11. そのフィールドに対する <WHENCHANGED> 規則があり、新しい値に一致する場合は、その規則を発生させます。

  12. ユーザーが編集できる状態に戻します。

  13. ユーザーは、データベースに変更を保存する操作を行います。

  14. すべてのフィールドについて、そのフィールドに対して直接定義されているか、または <WHEN> 規則か <WHENNOT> 規則の下で間接的に定義されている、<SERVERDEFAULT> の操作を実行します。

キーストロークの処理

ユーザーがグラフィカル ユーザー インターフェイスを使用して作業項目フォームを編集するときには、フィールドに対してキーストロークが入力されるたびに新しい値が設定されます。したがって、<WHEN*> 規則の必要条件が満たされるたびに、予測不可能なタイミングで <WHEN*> 規則が発生します。

次の XML の例では、Status フィールドに「Approved Again」と入力すると、SubStatus は空になります。ユーザーが、"Approved" の "e" の文字を入力したとたんに、<WHEN*> 規則が発生するからです。最終的に意図していた値は "Approve" でないにもかかわらずです。したがって、条件付きの規則を使用するときには、注意深い配慮が必要です。

<FIELD refname="MyCorp.SubStatus" />
<WHEN field="MyCorp.Status" value="Approve" >
<EMPTY />
</WHEN>
</FIELD>

参照

概念

使用できるフィールドの規則

<WHEN>、<WHENNOT>、および <WHENCHANGED> 条件の使用