Partager via


Assigner les valeurs et les règles conditionnelles

Vous pouvez définir des règles exécutées de manière conditionnelle à l'aide des éléments WHEN, WHENNOT, WHENCHANGED et WHENNOTCHANGED. Vous utilisez ces règles pour définir les éléments qui sont exécutés quand la clause définie est True. Vous pouvez définir des conditions en fonction de la valeur assignée à un champ spécifique ou si un utilisateur modifie un champ donné. Par exemple, vous pouvez créer une liste de choix dépendante pour fournir une sécurité détaillée ou un comportement personnalisé.

Les conditions de champ sont des éléments supplémentaires répertoriés dans un élément FIELD (définition) ou dans l'élément FIELD (flux de travail). Pour plus d'informations sur ces éléments, consultez Référence des éléments FIELD (Définition) et Informations de référence sur l'élément FIELD (flux de travail).

Le code suivant est un exemple simple de la clause WHEN :

<FIELD . . . >

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

</FIELD>

Cette clause signifie que tout ce qui figure dans cet élément FIELD est applicable tant que le champ refname a la valeur "yyy". Le champ doit être un nom de référence de champ valide. Pour plus d'informations, consultez Conventions d'affectation de noms pour les objets de suivi des éléments de travail.

Notes

L'attribut value ne respecte pas la casse.Par conséquent, si le nom de référence du champ contient "YYY", les correspondances incluent les valeurs "yyy" et "YYY".

Dans cette rubrique

  • Structure de la syntaxe des éléments conditionnels

  • Définition d'un champ obligatoire dépendant

  • Définition d'une liste de choix conditionnelle

  • Définition d'un champ quand l'utilisateur modifie un autre champ (WHENCHANGED)

  • Définition d'une valeur de champ quand un utilisateur ne modifie pas un champ (WHENNOTCHANGED)

Structure de la syntaxe des éléments conditionnels

Le tableau suivant décrit les règles conditionnelles que vous pouvez spécifier comme éléments enfants de l'élément FIELD (définition) ou FIELD (flux de travail). Ces éléments acceptent un ou plusieurs des attributs suivants :

  • field : chaîne qui décrit le champ. Doit contenir entre 1 et 255 caractères.

  • value : quand le champ spécifié comporte cette valeur, les règles indiquées dans les éléments WHEN et WHENNOT sont appliquées au champ actuel.

Élément

Syntaxe

Description

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>

Spécifie une ou plusieurs règles à appliquer au champ actuel lorsqu'un autre champ a une valeur spécifique. L'élément parent définit le champ actif.

Quand le champ spécifié comporte la valeur indiquée, les règles dans cet élément sont appliquées au champ actuel.

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>

Spécifie une condition qui détermine l'application d'une ou de plusieurs règles au champ actuel. Les règles s'appliquent au champ actuel quand la valeur d'un autre champ change. L'élément parent définit le champ actif.

Quand le champ spécifié ne comporte pas la valeur indiquée, les règles dans cet élément sont appliquées au champ actuel.

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>

Spécifie une condition qui détermine l'application d'une ou de plusieurs règles au champ actuel. Les règles s'appliquent au champ actuel quand la valeur d'un autre champ est modifiée dans la révision d'un élément de travail. L'élément parent définit le champ actif.

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>

Spécifie une condition qui détermine l'application d'une ou de plusieurs règles au champ actuel. Les règles s'appliquent au champ actuel quand la valeur d'un autre champ n'est pas modifiée dans la révision d'un élément de travail. L'élément parent définit le champ actif.

Le tableau suivant décrit l'application de chaque règle conditionnelle facultative au champ parent quand la clause conditionnelle spécifiée via un élément WHEN, WHENNOT, WHENCHANGED ou WHENNOTCHANGED a la valeur True. Pour plus d'informations, consultez Appliquer une règle à un champ d'élément de travail.

Élément

Description

ALLOWEDVALUES

Le champ parent doit contenir une valeur qui provient de la liste de valeurs spécifiée.

ALLOWEXISTINGVALUE

La valeur du champ parent qui existe déjà sera autorisée, même si elle ne respecte pas d'autres règles. Cet élément ne s'applique pas si la valeur du champ parent est modifiée.

CANNOTLOSEVALUE

Les utilisateurs peuvent remplacer la valeur du champ parent uniquement par une valeur NULL ; aucune autre valeur de remplacement n'est autorisée.

COPY

La valeur d'un troisième champ est copiée automatiquement dans le champ parent. Vous spécifiez le troisième champ dans l'élément COPY.

DEFAULT

Cet élément spécifie la valeur par défaut du champ parent.

EMPTY

Le champ parent ne doit pas contenir de valeur.

FROZEN

Le champ parent est figé. Quand un champ est figé, vous pouvez remplacer sa valeur uniquement par une valeur NULL ; aucune autre valeur de remplacement n'est autorisée.

MATCH

La valeur du champ parent doit correspondre au modèle spécifié.

NOTSAMEAS

La valeur du champ parent ne peut pas correspondre à la valeur d'un troisième champ. Vous spécifiez le troisième champ dans l'élément NOTSAMEAS.

PROHIBITEDVALUES

Le champ parent ne peut pas contenir de valeurs provenant de la liste énumérée.

READONLY

Le champ parent est accessible en lecture seule.

REQUIRED

Le champ parent doit contenir une valeur autre que NULL.

SERVERDEFAULT

Le champ parent utilise la valeur issue du composant serveur spécifié. Les composants serveur valides sont clock, qui est l'heure de mise à jour de l'élément de travail, et currentuser, qui est l'identité de l'utilisateur ayant mis à jour l'élément de travail.

SUGGESTEDVALUES

La liste énumérée contient des valeurs suggérées pour le champ parent.

VALIDUSER

Seuls les utilisateurs spécifiés peuvent modifier le champ parent.

Retour au début

Définition d'un champ obligatoire dépendant

Vous pouvez spécifier qu'un champ est obligatoire uniquement quand un autre champ contient une valeur spécifique. Dans l'exemple suivant, quand un client signale un bogue, un niveau de gravité du client doit être spécifié. Si le bogue n'a pas été signalé par un client, le niveau de gravité du client n'est pas obligatoire.

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

Définition d'une liste de choix conditionnelle

L'exemple suivant illustre une liste de choix conditionnelle dans laquelle les valeurs autorisées pour le champ Problem Type sont limitées, selon que le champ ProblemCharacteristic a la valeur Documentation.

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

Définition d'un champ quand l'utilisateur modifie un autre champ (WHENCHANGED)

Dans l'exemple suivant, quand un utilisateur modifie la valeur du champ MyCorp.State, le champ MyCorp.StateDate prend comme valeur la date et l'heure actuelles de l'horloge du serveur.

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

Dans l'exemple suivant, quand un utilisateur modifie la valeur du champ MyCorp.State, la valeur contenue dans le champ MyCorp.Status est effacée.

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

Définition d'une valeur de champ quand un utilisateur ne modifie pas un champ (WHENNOTCHANGED)

Dans l'exemple suivant, quand un utilisateur ne modifie pas la valeur du champ MyCorp.State, le champ MyCorp.StateDate passe en lecture seule.

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

Voir aussi

Autres ressources

Appliquer une règle à un champ d'élément de travail

Appliquer une règle à un champ d'élément de travail