Utilisation des conditions <WHEN>, <WHENNOT> et <WHENCHANGED>
Mise à jour : novembre 2007
Vous pouvez définir les règles exécutées de manière conditionnelle à l'aide des éléments WHEN, WHENNOT, WHENCHANGED et WHENNOTCHANGED . Ces règles définissent les éléments qui sont exécutés lorsque la clause définie est True. 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é. L'élément suivant est un exemple simple de la clause WHEN :
<FIELD . . . >
<WHEN field="refname" 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 Noms de références des champs.
Remarque : |
---|
L'attribut value ne respecte pas la casse. Par conséquent, si le champ stocke 'YYY', les correspondances incluent la valeur = "yyy" ou "YYY". |
Exemples
Liste de sélection dépendante
L'exemple suivant montre une liste de sélection dépendante dans laquelle les valeurs autorisées pour le type de problème sont limitées, en fonction de la valeur 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>
Champs obligatoires
L'exemple suivant affiche une modification dans les champs obligatoires. Dans ce scénario, lorsqu'un bogue est rapporté par un client, un niveau de gravité du client doit être entrée. Si le bogue n'a pas été rapporté par un client, la gravité du client n'est pas obligatoire.
WHEN
<WHEN>
Exemple
<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>
Condition Tout ce qui figure dans cet élément est applicable tant que le champ Customer Reported a la valeur true.
WHENNOT
<WHENNOT>
Exemple
<WHENNOT field="refname" value="yyy">
</WHENNOT>
Condition Tout ce qui figure dans cet élément est applicable tant que le champ refname n'a pas la valeur yyy.
WHENCHANGED
<WHENCHANGED>
Exemple
<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>
Condition Tout ce qui figure dans cet élément est applicable lorsque le champ refname a été modifié par l'utilisateur.
WHENNOTCHANGED
<WHENNOTCHANGED>
Exemple
<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>
Condition Tout ce qui figure dans cet élément est applicable tant que le champ refname n'a pas été modifié.