Partager via


Assignation des valeurs et des 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 lorsque 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 sélection 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 Élément FIELD (Définition) et Élément FIELD (Workflow).

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 lorsque l'utilisateur modifie un autre champ (WHENCHANGED)

  • Définition d'une valeur de champ lorsqu'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 : lorsque 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 actuel.

Lorsque 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 lorsque la valeur d'un autre champ change. L'élément parent définit le champ actuel.

Lorsque 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 lorsque 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 actuel.

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 lorsque 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 actuel.

Le tableau suivant décrit l'application de chaque règle conditionnelle facultative au champ parent lorsque la clause conditionnelle spécifiée via un élément WHEN, WHENNOT, WHENCHANGED ou WHENNOTCHANGED a pour valeur True. Pour plus d'informations, consultez Définition de conditions sur 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é. Lorsqu'un champ est figé, vous pouvez remplacer sa valeur uniquement par une valeur NULL ; aucune 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 non null.

SERVERDEFAULT

Le champ parent utilise la valeur issue du composant serveur spécifié. Les composants serveur valides sont horloge, qui est l'heure de mise à jour de l'élément de travail, et utilisateuractuel, 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 lorsqu'un autre champ contient une valeur spécifique. Dans l'exemple suivant, lorsqu'un client rapporte un bogue, un niveau de gravité du client doit être spécifié. Si le bogue n'a pas été rapporté par un client, la 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, lorsque 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 lorsque l'utilisateur modifie un autre champ (WHENCHANGED)

Dans l'exemple suivant, lorsqu'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, lorsqu'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 lorsqu'un utilisateur ne modifie pas un champ (WHENNOTCHANGED)

Dans l'exemple suivant, lorsqu'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

Concepts

Référence de tous les éléments XML FIELD

Autres ressources

Définition de conditions sur un champ d'élément de travail

Utilisation de règles de champs

Historique des modifications

Date

Historique

Motif

Janvier 2011

La structure de la syntaxe de tous les éléments conditionnels a été ajoutée et le contenu a été réorganisé pour mettre en évidence les exemples.

Améliorations apportées aux informations.