Assegnare valori e regole condizionali
È possibile definire regole da eseguire in base a determinate condizioni usando gli elementi WHEN, WHENNOT, WHENCHANGED e WHENNOTCHANGED. Queste regole vengono usate per definire quali elementi sono eseguiti quando la clausola definita è True. È possibile definire condizioni basate sul valore assegnato a un campo specifico o sul fatto che un utente modifichi o meno un campo specifico. Ad esempio, è possibile creare un elenco di selezione dipendente per fornire sicurezza dettagliata o un comportamento personalizzato.
Le condizioni di campo sono elementi aggiuntivi elencati all'interno di un elemento FIELD (definizione) o FIELD (flusso di lavoro). Per altre informazioni su questi elementi, vedere Riferimento all'elemento FIELD (Definizione) e Elemento FIELD (Flusso di lavoro).
Il seguente codice è un esempio semplice della clausola WHEN:
<FIELD . . . >
<WHEN field="referenceName" value="yyy">
</FIELD>
Questa clausola indica che tutti gli elementi presenti all'interno dell'elemento FIELD sono applicabili se nel campo refname è presente il valore "yyy". Il campo deve essere rappresentato da un nome di riferimento di campo valido. Per altre informazioni, vedere Convenzioni di denominazione per oggetti di rilevamento di elementi di lavoro.
Nota
Per l'attributo del valore non è prevista la distinzione tra maiuscole e minuscole.Di conseguenza, se il nome di riferimento del campo contiene "YYY", le corrispondenze includono i valori "yyy" e "YYY".
Contenuto dell'argomento
Struttura della sintassi per gli elementi condizionali
Definizione di un campo obbligatorio dipendente
Definizione di un elenco di selezione condizionale
Definizione di un campo quando l'utente modifica un altro campo (WHENCHANGED)
Definizione di un valore di campo basato sulla mancata modifica di un campo da parte di un utente (WHENNOTCHANGED)
Struttura della sintassi per gli elementi condizionali
Nella tabella seguente vengono descritte le regole condizionali che è possibile specificare come elementi figlio dell'elemento FIELD (definizione) o dell'elemento FIELD (flusso di lavoro). Questi elementi accettano uno o più degli attributi seguenti:
field: stringa che descrive il campo. Deve contenere da 1 a 255 caratteri.
value: quando il campo specificato ha questo valore, le regole negli elementi WHEN e WHENNOT vengono applicate al campo corrente.
Elemento |
Sintassi |
Descrizione |
---|---|---|
WHEN |
|
Specifica una o più regole da applicare al campo corrente quando un altro campo ha un valore specifico. L'elemento padre definisce il campo corrente. Quando viene definito il valore del campo specificato, le regole in questo elemento vengono applicate al campo corrente. |
WHENNOT |
|
Specifica una condizione in base alla quale vengono applicate una o più regole al campo corrente. Le regole vengono applicate al campo corrente al variare del valore di un altro campo. L'elemento padre definisce il campo corrente. Quando il campo specificato non contiene il valore specificato, le regole contenute in questo elemento vengono applicate al campo corrente. |
WHENCHANGED |
|
Specifica una condizione in base alla quale vengono applicate una o più regole al campo corrente. Le regole vengono applicate al campo corrente quando il valore di un altro campo è stato modificato nella revisione di un elemento di lavoro. L'elemento padre definisce il campo corrente. |
WHENNOTCHANGED |
|
Specifica una condizione in base alla quale vengono applicate una o più regole al campo corrente. Le regole vengono applicate al campo corrente quando il valore di un altro campo non è stato modificato nella revisione di un elemento di lavoro. L'elemento padre definisce il campo corrente. |
Nella tabella seguente viene descritto in che modo ciascuna regola facoltativa basata su una condizione viene applicata al campo padre quando la clausola condizionale specificata tramite un elemento WHEN, WHENNOT, WHENCHANGED o WHENNOTCHANGED è true. Per altre informazioni, vedere Applicare una regola a un campo elemento di lavoro.
Elemento |
Descrizione |
---|---|
Il campo padre deve avere un valore che proviene dall'elenco di valori specificato. |
|
Il valore del campo padre già esistente sarà consentito anche se viola altre regole. Questo elemento non è applicabile se il valore del campo padre viene modificato. |
|
Gli utenti possono modificare il valore del campo padre in NULL, ma non possono impostarlo su nessun altro valore. |
|
Il valore di un terzo campo viene copiato automaticamente nel campo padre. Specificare il terzo campo nell'elemento COPY. |
|
Questo elemento specifica il valore predefinito del campo padre. |
|
Il campo padre non deve contenere un valore. |
|
Il campo padre è bloccato. Quando un campo è bloccato, è possibile modificarne il valore in NULL, ma non è possibile impostarlo su nessun altro valore. |
|
Il valore del campo padre deve corrispondere al modello specificato. |
|
Il valore del campo padre non deve corrispondere al valore di un terzo campo. Specificare il terzo campo nell'elemento NOTSAMEAS. |
|
Il campo padre non può contenere alcun valore dell'elenco enumerato. |
|
Il campo padre è di sola lettura. |
|
Il campo padre deve contenere un valore diverso da NULL. |
|
Il campo padre prende il valore dal componente server specificato. I componenti server validi sono clock, che indica l’orario in cui l’elemento di lavoro viene aggiornato, e currentuser, che indica l'identità dell'utente che ha aggiornato l'elemento di lavoro. |
|
L'elenco enumerato contiene i valori suggeriti per il campo padre. |
|
Solo gli utenti specificati possono modificare il campo padre. |
Torna all'inizio
Definizione di un campo obbligatorio dipendente
È possibile specificare che un campo è obbligatorio solo quando un altro campo contiene un valore specifico. Nell'esempio seguente, quando un cliente riferisce la presenza di un bug, è necessario specificare un valore di gravità per il cliente. Se il bug non è stato segnalato da un cliente, la gravità non è necessaria.
<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>
Definizione di un elenco di selezione condizionale
L'esempio seguente dimostra un elenco di selezione condizionale in cui i valori consentiti per il campo Problem Type sono limitati e dipendono dall'impostazione o meno del campo ProblemCharacteristic su 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>
Definizione di un campo quando l'utente modifica un altro campo (WHENCHANGED)
Nell'esempio seguente, quando un utente modifica il valore del campo MyCorp.State, il campo MyCorp.StateDate viene impostato sulla data e ora corrente come mostrato dal clock del server.
<FIELD refname="MyCorp.StateDate" name="Date Of Last State Change" type="DateTime">
<WHENCHANGED field="MyCorp.State">
<COPY from="clock" />
</WHENCHANGED>
</FIELD>
Nell'esempio seguente, quando un utente modifica il valore del campo MyCorp.State, il valore del campo MyCorp.Status viene cancellato.
<!-- 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>
Definizione di un valore di campo basato sulla mancata modifica di un campo da parte di un utente (WHENNOTCHANGED)
Nell'esempio seguente, quando un utente non modifica il valore del campo MyCorp.State, il campo MyCorp.StateDate diventa di sola lettura.
<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>