So werden Regeln ausgewertet
Sie können einen Eindruck davon gewinnen, wie Regeln ausgewertet werden, wenn Sie mehrere Regeln auf ein Feld anwenden.Wie Regeln ausgewertet werden, ist nicht vollkommen deterministisch.In diesem Abschnitt werden das erwartete Verhalten und die Interaktionen beschrieben, die im Zusammenhang mit den Regeln <WHEN*>, <DEFAULT> und <COPY> auftreten.
In den folgenden Schritten sind die Interaktionen, die von Team Foundation Server und vom Benutzer eines Arbeitsaufgabenformulars ausgeführt werden, in der ordnungsgemäßen Reihenfolge aufgeführt.Nur die Schritte 1, 8 und 13 werden vom Benutzer ausgeführt.
Über die Visual Studio-Benutzeroberfläche können Benutzer eine neue Arbeitsaufgabe erstellen oder eine vorhandene Arbeitsaufgabe bearbeiten.
Feldstandardwerte eingeben.Für alle Felder beliebige <DEFAULT>-Regeln verwenden, die außerhalb von <WHEN*>-Regeln liegen.
Feldwerte kopieren.Für alle Felder beliebige <COPY>-Regeln verwenden, die außerhalb von <WHEN*>-Klauseln liegen.
Für alle Felder mit einer übereinstimmenden <WHEN>-Regel zuerst die <DEFAULT>-Regeln und dann die inneren <COPY>-Regeln ausführen.
Für alle Felder mit einer übereinstimmenden <WHENNOT>-Regel zuerst die <DEFAULT>-Regeln und dann die inneren <COPY>-Regeln ausführen.
Hinweis Der Team Foundation Server verarbeitet <WHEN>-Regeln immer vor <WHENNOT>-Regeln.
Für alle Felder, deren Werte seit Schritt 1 geändert wurden und die <WHENCHANGED>-Regeln enthalten, zuerst die <DEFAULT>-Regeln und dann die inneren <COPY>-Regeln ausführen.
Den Benutzer mit der Bearbeitung beginnen lassen.
Der Benutzer ändert einen Feldwert und verschiebt den Fokus dann aus dem Feld.
Beliebige mit dem neuen Wert übereinstimmende <WHEN>-Regeln für dieses Feld auslösen.
Beliebige mit dem neuen Wert übereinstimmende <WHENNOT>-Regeln für dieses Feld auslösen.
Beliebige, mit dem neuen Wert übereinstimmende <WHENCHANGED>-Regeln für dieses Feld auslösen.
Dem Benutzer erneut die Möglichkeit zur Bearbeitung geben.
Der Benutzer speichert die Änderungen an der Datenbank.
Für alle Felder <SERVERDEFAULT>-Vorgänge ausführen, die unter einer <WHEN>-Regel oder einer <WHENNOT>-Regel direkt oder indirekt für das Feld definiert sind.
Verarbeiten von Tastatureingaben
Wenn ein Benutzer ein Arbeitsaufgabenformular über die grafische Benutzeroberfläche ändert, wird bei jeder Tastatureingabe für ein Feld ein neuer Wert festgelegt.Das bedeutet, dass <WHEN*>-Regeln unerwartet auftreten können, sobald Vorbedingungen der Regel erfüllt sind.
Im folgenden XML-Beispiel wird der Inhalt von SubStatus gelöscht, während Sie "Approved Again" in das Statusfeld eingeben. Dies liegt daran, dass die <WHEN*>-Regel auftritt, sobald der Benutzer den im Wort Approved enthaltenen Buchstaben "e" eingibt. Dies gilt auch, wenn der endgültige Wert nicht "Approve" lautet.Aus diesem Grund ist bei der Anwendung bedingter Regeln stets große Vorsicht angebracht.
<FIELD refname="MyCorp.SubStatus" />
<WHEN field="MyCorp.Status" value="Approve" >
<EMPTY />
</WHEN>
</FIELD>