Condividi tramite


Modalità di valutazione delle regole

È possibile farsi un'idea di come vengono valutate le regole quando si applicano più regole a un campo. La modalità di valutazione delle regole non è completamente deterministica. In questa sezione vengono descritti il comportamento e le interazioni previsti durante l'utilizzo delle regole <WHEN*>, <DEFAULT> e <COPY>.

Nei passaggi riportati di seguito sono mostrate, nella sequenza corretta, le interazioni eseguite da Team Foundation Server e dall'utente di un form relativo a un elemento di lavoro. Solo i passaggi 1, 8 e 13 vengono eseguiti dall'utente.

  1. Mediante l'interfaccia utente Visual Studio, l'utente crea un nuovo elemento di lavoro o ne modifica uno esistente.

  2. Riempire i campi predefiniti. Per tutti i campi, utilizzare le regole <DEFAULT> esterne alle regole <WHEN*>.

  3. Copiare i valori dei campi. Per tutti i campi, utilizzare le regole <COPY> esterne alle clausole <WHEN*>.

  4. Per tutti i campi con una regola <WHEN> corrispondente, creare prima una regola <DEFAULT> e quindi inserirvi regole <COPY>.

  5. Per tutti i campi con una regola <WHENNOT> corrispondente, creare prima una regola <DEFAULT> e quindi inserirvi regole <COPY>.

    Nota

    Team Foundation Server elabora sempre le regole <WHEN> prima delle regole <WHENNOT>.

  6. Per tutti i campi i cui valori sono stati modificati dopo il passaggio 1 e che contengono regole <WHENCHANGED>, creare prima una regola <DEFAULT> e quindi inserirvi regole <COPY>.

  7. Consentire all'utente di iniziare le modifiche.

  8. L'utente modifica un valore di un campo e quindi sposta lo stato attivo dal campo.

  9. Generare regole <WHEN> per tale campo che corrispondano al nuovo valore.

  10. Generare regole <WHENNOT> per tale campo che corrispondano al nuovo valore.

  11. Generare regole <WHENCHANGED> per tale campo che corrispondano al nuovo valore.

  12. Restituire la possibilità di modifica all'utente.

  13. L'utente salva le modifiche nel database.

  14. Per tutti i campi, eseguire operazioni <SERVERDEFAULT> definite per il campo in modo diretto o indiretto in una regola <WHEN> o <WHENNOT>.

Elaborazione delle pressioni dei tasti

Quando un utente utilizza l'interfaccia utente grafica per modificare un form relativo a un elemento di lavoro, ogni volta che viene premuto un tasto per un campo, viene impostato un nuovo valore. In altre parole, una regola <WHEN*> può essere attivata in modo imprevisto ogni volta che vengono soddisfatti i prerequisiti della regola.

Nell'esempio XML riportato di seguito, il valore di SubStatus viene annullato quando si digita "Approved Again" nel campo Status, in quanto la regola <WHEN*> viene attivata appena l'utente digita la lettera "e" di Approved, anche se il valore finale desiderato non è "Approve". Per questo motivo, valutare attentamente l'utilizzo delle regole condizionali.

<FIELD refname="MyCorp.SubStatus" />
<WHEN field="MyCorp.Status" value="Approve" >
<EMPTY />
</WHEN>
</FIELD>

Vedere anche

Concetti

Riferimento a tutti gli elementi XML FIELD

Assegnazione di valori e regole condizionali