Verwenden der <WHEN>-, <WHENNOT>- und <WHENCHANGED>-Bedingungen

Aktualisiert: November 2007

Mithilfe der Elemente WHEN, WHENNOT, WHENCHANGED und WHENNOTCHANGED können Sie Regeln definieren, die bedingt ausgeführt werden. Durch diese Regeln wird definiert, welche Elemente ausgeführt werden, wenn die definierte Klausel den Wert True hat. Beispielsweise können Sie eine abhängige Auswahlliste erstellen, um eine höhere Sicherheit zu gewährleisten oder benutzerdefiniertes Verhalten bereitzustellen. Im Folgenden ein einfaches Beispiel für die WHEN-Klausel:

<FIELD . . . >

    <WHEN field="refname" 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 Feldverweisnamen.

Hinweis:

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.

Beispiele

Abhängige Auswahlliste

Das folgende Beispiel veranschaulicht eine abhängige Auswahlliste, in der die zulässigen Werte für Problem Type basierend auf dem Wert von ProblemCharacteristic eingeschränkt sind:

<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>

Pflichtfelder

Durch das folgende Beispiel wird eine Änderung in Pflichtfeldern veranschaulicht. Wenn in diesem Szenario von einem Kunden ein Fehler gemeldet wird, muss dem Kunden ein Schweregrad zugeordnet werden. Wenn der Fehler nicht von einem Kunden gemeldet wurde, ist kein kundenspezifischer Schweregrad erforderlich.

WHEN

<WHEN>

Beispiel

<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>

Bedingung   Der gesamte Code innerhalb dieses Elements ist anwendbar, solange das Feld Customer Reported über einen Wert verfügt und dieser Wert true lautet.

WHENNOT

<WHENNOT>

Beispiel

<WHENNOT field="refname" value="yyy">
</WHENNOT>

Bedingung   Der gesamte Code innerhalb dieses Elements ist anwendbar, solange das Feld refname über einen Wert verfügt und dieser Wert nicht yyy lautet.

WHENCHANGED

<WHENCHANGED>

Beispiel

<FIELD refname="MyCorp.StateDate" name="Date Of Last State Change" type="DateTime">
    <WHENCHANGED field="MyCorp.State">
        <COPY from="clock" />
    </WHENCHANGED>
</FIELD>
<!-- 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>

Bedingung   Der gesamte Code innerhalb dieses Elements ist anwendbar, wenn das Feld refname vom Benutzer geändert wurde.

WHENNOTCHANGED

<WHENNOTCHANGED>

Beispiel

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

Bedingung   Innerhalb dieses Elements ist alles anwendbar, solange das Feld refname nicht geändert wurde.

Siehe auch

Konzepte

Verfügbare Feldregeln