Compartir a través de


Utilizar las condiciones de los elementos <WHEN>, <WHENNOT> y <WHENCHANGED>

Actualización: noviembre 2007

Puede definir reglas que se ejecutan condicionalmente utilizando los elementos WHEN, WHENNOT, WHENCHANGED y WHENNOTCHANGED. Estas reglas definen qué elementos se ejecutan cuando la cláusula definida es True. Por ejemplo, puede crear una lista de selección dependiente para proporcionar seguridad detallada o comportamientos personalizados. A continuación se muestra un ejemplo sencillo de la cláusula WHEN:

<FIELD . . . >

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

</FIELD>

Esta cláusula significa que todo lo que esté dentro del elemento FIELD es aplicable siempre que el campo refname tenga el valor "yyy". El campo debe ser un nombre de referencia de campo válido. Para obtener más información, vea Nombres de referencia de campos.

Nota:

El atributo value no distingue entre mayúsculas y minúsculas. Por consiguiente, si el campo refname contiene 'YYY', las coincidencias pueden incluir el valor = "yyy" o "YYY".

Ejemplos

Lista de selección dependiente

En el ejemplo siguiente se muestra una lista de selección dependiente en la que se limitan los valores permitidos para el tipo Problema, basándose en el valor de ProblemCharacteristic:

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

Campos necesarios

En el ejemplo siguiente se muestra un cambio en los campos necesarios. En este escenario, cuando un cliente informa de un error, se debe especificar la gravedad que le atribuye el cliente. Si no es un cliente el que informa del error, no se requiere.

WHEN

<WHEN>

Ejemplo

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

Condición  Todo lo que esté dentro de este elemento es aplicable siempre que el campo Customer Reported tenga un valor y ese valor sea true.

WHENNOT

<WHENNOT>

Ejemplo

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

Condición  Todo lo que esté dentro de este elemento es aplicable siempre que el campo refname tenga un valor y ese valor no sea yyy.

WHENCHANGED

<WHENCHANGED>

Ejemplo

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

Condición   Todo lo que esté dentro de este elemento es aplicable si el usuario ha modificado el campo refname.

WHENNOTCHANGED

<WHENNOTCHANGED>

Ejemplo

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

Condición   Cualquier contenido de este elemento es aplicable con tal de que no se haya cambiado el campo refname.

Vea también

Conceptos

Reglas de campo disponibles