Zuweisen bedingter Werte und Regeln

Mithilfe der Elemente WHEN, WHENNOT, WHENCHANGED und WHENNOTCHANGED können Sie Regeln definieren, die bedingt ausgeführt werden.Sie definieren mithilfe dieser Regeln, welche Elemente ausgeführt werden, wenn die definierte Klausel den Wert True hat.Sie können Bedingungen definieren, die darauf basieren, welcher Wert einem bestimmten Feld zugewiesen wird oder ob ein Benutzer ein bestimmtes Feld ändert.Beispielsweise können Sie eine abhängige Auswahlliste erstellen, um eine höhere Sicherheit zu gewährleisten oder benutzerdefiniertes Verhalten bereitzustellen.

Feldbedingungen sind zusätzliche Elemente, die Sie in einem FIELD (Definition)-Element oder im FIELD (Workflow)-Element auflisten.Weitere Informationen zu diesen Elementen finden Sie unter FIELD (Definition)-Element sowie unter FIELD (Workflow)-Element.

Der folgende Code enthält ein einfaches Beispiel für die WHEN-Klausel:

<FIELD . . . >

    <WHEN field="referenceName" value="yyy">

</FIELD>

Durch diese Klausel wird festgelegt, dass der gesamte Code innerhalb dieses FIELD-Elements anwendbar ist, solange das Feld refname über den Wert "yyy" verfügt.Das Feld muss einem gültigen Feldverweisnamen entsprechen.Weitere Informationen finden Sie unter Benennungskonventionen für Arbeitsaufgabenverfolgungs-Objekte.

HinweisHinweis

Beim Wertattribut wird keine Groß-/Kleinschreibung berücksichtigt.Wenn das Feld "refname" den Wert "YYY" enthält, führt daher sowohl der Wert "yyy" als auch der Wert "YYY" zu einer Übereinstimmung.

In diesem Thema

  • Syntaxstruktur für bedingte Elemente

  • Definieren eines abhängigen Pflichtfelds

  • Definieren einer bedingten Auswahlliste

  • Definieren eines Felds, wenn der Benutzer ein anderes Feld ändert (WHENCHANGED)

  • Definieren eines Feldwerts auf der Grundlage, dass ein Benutzer ein Feld nicht ändert (WHENNOTCHANGED)

Syntaxstruktur für bedingte Elemente

In der folgenden Tabelle werden bedingte Regeln beschrieben, die Sie als untergeordnete Elemente des FIELD (Definition)-Elements oder des FIELD (Workflow)-Elements angeben können.Von diesen Elementen werden folgende Attribute akzeptiert:

  • field: Eine Zeichenfolge zum Beschreiben des Felds.Muss zwischen 1 und 255 Zeichen enthalten.

  • value: Wenn das angegebene Feld diesen Wert enthält, werden die Regeln in den Elementen WHEN und WHENNOT auf das aktuelle Feld angewendet.

Element

Syntax

Beschreibung

WHEN

<WHEN field="fieldReferenceName" value="value">
    <ALLOWEDVALUES> . . . </ALLOWEDVALUES>
    <ALLOWEXISTINGVALUE> . . . <ALLOWEXISTINGVALUE>
    <CANNOTLOSEVALUE> . . . </CANNOTLOSEVALUE>
    <COPY> . . . </COPY>
    <DEFAULT> . . . </DEFAULT>
    <EMPTY> . . . </EMPTY>
    <FROZEN> . . . </FROZEN>
    <MATCH> . . . </MATCH>
    <NOTSAMEAS> . . . </NOTSAMEAS>
    <PROHIBITEDVALUES> . . . </PROHIBITEDVALUES>
    <READONLY> . . . </READONLY>
    <REQUIRED> . . . </REQUIRED>
    <SERVERDEFAULT> . . . </SERVERDEFAULT>        
    <SUGGESTEDVALUES> . . . </SUGGESTEDVALUES>
    <VALIDUSER> . . . </VALIDUSER>
</WHEN>

Legt mindestens eine Regel fest, die auf das aktuelle Feld angewendet wird, wenn ein anderes Feld einen bestimmten Wert enthält.Mit dem übergeordneten Element wird das aktuelle Feld definiert.

Wenn das angegebene Feld den angegebenen Wert enthält, werden die Regeln in diesem Element auf das aktuelle Feld angewendet.

WHENNOT

<WHENNOT field="fieldReferenceName" value="value">
    <ALLOWEDVALUES> . . . </ALLOWEDVALUES>
    <ALLOWEXISTINGVALUE> . . . <ALLOWEXISTINGVALUE>
    <CANNOTLOSEVALUE> . . . </CANNOTLOSEVALUE>
    <COPY> . . . </COPY>
    <DEFAULT> . . . </DEFAULT>
    <EMPTY> . . . </EMPTY>
    <FROZEN> . . . </FROZEN>
    <MATCH> . . . </MATCH>
    <NOTSAMEAS> . . . </NOTSAMEAS>
    <PROHIBITEDVALUES> . . . </PROHIBITEDVALUES>
    <READONLY> . . . </READONLY>
    <REQUIRED> . . . </REQUIRED>
    <SERVERDEFAULT> . . . </SERVERDEFAULT>        
    <SUGGESTEDVALUES> . . . </SUGGESTEDVALUES>
    <VALIDUSER> . . . </VALIDUSER>
</WHENNOT>

Dient zum Festlegen einer Bedingung, anhand derer Regeln auf das aktuelle Feld angewendet werden.Die Regeln gelten für das aktuelle Feld, wenn sich der Wert eines anderen Felds ändert.Mit dem übergeordneten Element wird das aktuelle Feld definiert.

Wenn das angegebene Feld nicht den angegebenen Wert enthält, werden die Regeln in diesem Element auf das aktuelle Feld angewendet.

WHENCHANGED

<WHENCHANGED field="fieldReferenceName" >
    <ALLOWEDVALUES> . . . </ALLOWEDVALUES>
    <ALLOWEXISTINGVALUE> . . . <ALLOWEXISTINGVALUE>
    <CANNOTLOSEVALUE> . . . </CANNOTLOSEVALUE>
    <COPY> . . . </COPY>
    <DEFAULT> . . . </DEFAULT>
    <EMPTY> . . . </EMPTY>
    <FROZEN> . . . </FROZEN>
    <MATCH> . . . </MATCH>
    <NOTSAMEAS> . . . </NOTSAMEAS>
    <PROHIBITEDVALUES> . . . </PROHIBITEDVALUES>
    <READONLY> . . . </READONLY>
    <REQUIRED> . . . </REQUIRED>
    <SERVERDEFAULT> . . . </SERVERDEFAULT>        
    <SUGGESTEDVALUES> . . . </SUGGESTEDVALUES>
    <VALIDUSER> . . . </VALIDUSER>      
</WHENCHANGED>

Dient zum Festlegen einer Bedingung, anhand derer Regeln auf das aktuelle Feld angewendet werden.Die Regeln gelten für das aktuelle Feld, wenn sich der Wert eines anderen Felds bei der Revision einer Arbeitsaufgabe ändert.Mit dem übergeordneten Element wird das aktuelle Feld definiert.

WHENNOTCHANGED

<WHENNOTCHANGED field="fieldReferenceName">
    <ALLOWEDVALUES> . . . </ALLOWEDVALUES>
    <ALLOWEXISTINGVALUE> . . . <ALLOWEXISTINGVALUE>
    <CANNOTLOSEVALUE> . . . </CANNOTLOSEVALUE>
    <COPY> . . . </COPY>
    <DEFAULT> . . . </DEFAULT>
    <EMPTY> . . . </EMPTY>
    <FROZEN> . . . </FROZEN>
    <MATCH> . . . </MATCH>
    <NOTSAMEAS> . . . </NOTSAMEAS>
    <PROHIBITEDVALUES> . . . </PROHIBITEDVALUES>
    <READONLY> . . . </READONLY>
    <REQUIRED> . . . </REQUIRED>
    <SERVERDEFAULT> . . . </SERVERDEFAULT>        
    <SUGGESTEDVALUES> . . . </SUGGESTEDVALUES>
    <VALIDUSER> . . . </VALIDUSER>
</WHENNOTCHANGED>

Dient zum Festlegen einer Bedingung, anhand derer Regeln auf das aktuelle Feld angewendet werden.Die Regeln gelten für das aktuelle Feld, wenn sich der Wert eines anderen Felds bei der Revision einer Arbeitsaufgabe nicht ändert.Mit dem übergeordneten Element wird das aktuelle Feld definiert.

In der folgenden Tabelle wird beschrieben, wie die einzelnen optionalen, bedingungsbasierten Regeln auf das übergeordnete Feld angewendet werden, wenn bedingte Klausel erfüllt ist, die Sie mithilfe eines Elements WHEN, WHENNOT, WHENCHANGED oder WHENNOTCHANGED angeben.Weitere Informationen finden Sie unter Festlegen von Bedingungen für ein Arbeitsaufgabenfeld.

Element

Beschreibung

ALLOWEDVALUES

Das übergeordnete Feld muss einen Wert aus der angegebenen Liste mit Werten besitzen.

ALLOWEXISTINGVALUE

Der bereits vorhandene Wert des übergeordneten Felds ist zulässig, auch wenn er gegen andere Regeln verstößt.Dieses Element wird nicht angewendet, wenn der Wert des übergeordneten Felds geändert wird.

CANNOTLOSEVALUE

Die Benutzer können den Wert des übergeordneten Felds in NULL ändern, aber nicht auf einen anderen Wert festlegen.

COPY

Der Wert eines dritten Felds wird automatisch in das übergeordnete Feld kopiert.Das dritte Feld wird im COPY-Element angegeben.

DEFAULT

Mit diesem Element wird der Standardwert des übergeordneten Felds angegeben.

EMPTY

Das übergeordnete Feld darf keinen Wert enthalten.

FROZEN

Das übergeordnete Feld ist fixiert.Der Wert eines fixierten Felds kann zu NULL geändert, aber nicht auf einen anderen Wert festgelegt werden.

MATCH

Der Wert des übergeordneten Felds muss dem Muster entsprechen, das Sie angeben.

NOTSAMEAS

Der Wert des übergeordneten Felds darf nicht dem Wert eines dritten Felds entsprechen.Das dritte Feld wird im NOTSAMEAS-Element angegeben.

PROHIBITEDVALUES

Das übergeordnete Feld darf keine Werte aus der Aufzählungsliste enthalten.

READONLY

Das übergeordnete Feld ist schreibgeschützt.

REQUIRED

Das übergeordnete Feld muss einen Wert enthalten, der nicht NULL ist.

SERVERDEFAULT

Das aktuelle Feld erhält seinen Wert von der angegebenen Serverkomponente.Gültige Serverkomponenten sind clock (Uhrzeit, zu der eine Arbeitsaufgabe aktualisiert wird) und currentuser (die Identität des Benutzers, der die Arbeitsaufgabe aktualisiert hat).

SUGGESTEDVALUES

Die Aufzählungsliste enthält vorgeschlagene Werte für das übergeordnete Feld.

VALIDUSER

Das übergeordnete Feld kann nur von den Benutzern, die Sie angeben, geändert werden.

Zurück nach oben

Definieren eines abhängigen Pflichtfelds

Sie können angeben, dass ein Feld nur erforderlich ist, wenn ein anderes Feld einen bestimmten Wert enthält.Wenn im folgenden Beispiel ein Kunde einen Fehler meldet, muss ein Schweregrad eingegeben werden.Wenn der Fehler nicht von einem Kunden gemeldet wurde, ist kein kundenspezifischer Schweregrad erforderlich.

<FIELD refname="MyCorp.Severity" name="Customer Severity" type="String">
    <ALLOWEDVALUES>
        <LISTITEM value="Blocking" />
        <LISTITEM value="Major" />
        <LISTITEM value="Minor" />
    </ALLOWEDVALUES>
    <WHEN field="MyCorp.CustomerReported" value="true">
        <REQUIRED />
    </WHEN>
</FIELD>

Definieren einer bedingten Auswahlliste

Im folgenden Beispiel wird eine bedingte Auswahlliste gezeigt, in der die zulässigen Werte für das Feld "Problem Type" abhängig davon eingeschränkt werden, ob der Wert des Felds "ProblemCharacteristic" auf "Documentation" festgelegt wird.

<FIELD refname="MyCorp.ProblemType" name="Problem Type" type="String">
    <WHEN field="MyCorp.ProblemCharacteristic" value="Documentation">
        <ALLOWEDVALUES>
            <LISTITEM value="Spelling Error" />
            <LISTITEM value="Bad Format" />
            <LISTITEM value="Missing Info" />
        </ALLOWEDVALUES>
    </WHEN>
</FIELD>

Definieren eines Felds, wenn der Benutzer ein anderes Feld ändert (WHENCHANGED)

Wenn ein Benutzer im folgenden Beispiel den Wert des Felds "MyCorp.State" ändert, wird dem Feld "MyCorp.StateDate" auf das aktuelle Datum und die Uhrzeit der Serveruhr festgelegt.

<FIELD refname="MyCorp.StateDate" name="Date Of Last State Change" type="DateTime">
    <WHENCHANGED field="MyCorp.State">
        <COPY from="clock" />
    </WHENCHANGED>
</FIELD>

Wenn ein Benutzer im folgenden Beispiel den Wert des Felds "MyCorp.State" ändert, wird der Wert des Felds "MyCorp.Status" gelöscht.

<!-- Clear the status field whenever someone changes the state -->
<FIELD refname="MyCorp.Status" name="Status" type="String">
    <WHENCHANGED field="MyCorp.State">
        <COPY from="value" value="">
    </WHENCHANGED>
</FIELD>

Definieren eines Feldwerts auf der Grundlage, dass ein Benutzer ein Feld nicht ändert (WHENNOTCHANGED)

Wenn ein Benutzer im folgenden Beispiel den Wert des Felds "MyCorp.State" nicht ändert, wird das Feld "MyCorp.StateDate" schreibgeschützt.

<FIELD refname="MyCorp.StateDate" name="Date Of Last State Change" type="DateTime">
<!-- Make the StateDate field read-only when the State field is not changed -->
    <WHENNOTCHANGED field="MyCorp.State">
        <READONLY />
    </WHENNOTCHANGED>
</FIELD>

Siehe auch

Konzepte

XML-Elementreferenz für FIELD

Weitere Ressourcen

Festlegen von Bedingungen für ein Arbeitsaufgabenfeld

Arbeiten mit Feldregeln