Utilizzo delle condizioni <WHEN>, <WHENNOT> e <WHENCHANGED>
Aggiornamento: novembre 2007
È possibile definire regole da eseguire in modo condizionale utilizzando gli elementi WHEN, WHENNOT, WHENCHANGED e WHENNOTCHANGED. Queste regole indicano gli elementi eseguiti quando la clausola definita è True. Ad esempio, è possibile creare un elenco di selezione dipendente per fornire sicurezza dettagliata o un comportamento personalizzato. Di seguito viene riportato un esempio molto semplice di clausola WHEN:
<FIELD . . . >
<WHEN field="refname" value="yyy">
</FIELD>
Questa clausola indica che tutti gli elementi presenti all'interno dell'elemento FIELD sono applicabili se il campo refname dispone del valore "yyy". Il campo deve essere rappresentato da un nome di riferimento di campo valido. Per ulteriori informazioni, vedere Nomi di riferimento di campo.
Nota: |
---|
L'attributo del valore non tiene conto delle maiuscole e delle minuscole. Di conseguenza, se il nome di riferimento del campo contiene "YYY", le corrispondenze includono il valore "yyy" o "YYY". |
Esempi
Elenco di selezione dipendente
Nell'esempio riportato di seguito viene mostrato un elenco di selezione dipendente in cui i valori consentiti per Problem Type sono limitati, sulla base del valore relativo a 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>
Campi obbligatori
Nell'esempio riportato di seguito è mostrata una modifica nei campi obbligatori. In questo scenario, quando un cliente riferisce della presenza di un bug, è necessario inserire una gravità per il cliente. Se il cliente non riferisce della presenza di bug, la gravità non è necessaria.
WHEN
<WHEN>
Esempio
<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>
Condizione Tutti gli elementi presenti in questo elemento sono applicabili se il campo Customer Reported dispone di un valore e questo valore è true.
WHENNOT
<WHENNOT>
Esempio
<WHENNOT field="refname" value="yyy">
</WHENNOT>
Condizione Tutti gli elementi presenti in questo elemento sono applicabili se il campo refname dispone di un valore ma il valore non è yyy.
WHENCHANGED
<WHENCHANGED>
Esempio
<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>
Condizione Tutti gli elementi presenti in questo elemento sono applicabili quando il campo refname è stato modificato dall'utente.
WHENNOTCHANGED
<WHENNOTCHANGED>
Esempio
<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>
Condizione È possibile applicare tutti gli elementi presenti in questo elemento a condizione che il campo refname non sia stato modificato.