Como as regras são avaliadas
Você pode obter alguma idéia de como as regras são avaliadas quando você aplicar várias regras a um campo.Como as regras são avaliadas não não totalmente determinista.Esta seção descreve o comportamento esperado e interações, quando você estiver usando o < quando * >, <DEFAULT> e <COPY> regras.
As seguintes etapas de slides, na correta sequência, as interações que são executadas por Team Foundation Server e pelo usuário de um trabalho -itemformulário. Somente as etapas 1, 8 e 13 são executadas pelo usuário.
Usando o Visual Studio usuáriointerface, o usuário cria um novo item de trabalho ou edita um itemde de trabalho existente.
Preencha o campo padrões.Para todos os campos, use qualquer <DEFAULT> regras que estão fora do < quando * > regras.
Copie os valores de campo .Para todos os campos, use qualquer <COPY> regras que estão fora do < quando * > cláusulas.
Para todos os campos com um <WHEN> regra correspondente, primeiro <DEFAULT> e, em seguida <COPY> regras pré-definidas.
Para todos os campos com um <WHENNOT> regra correspondente, primeiro <DEFAULT> e, em seguida <COPY> regras pré-definidas.
Observação O Team Foundation Server sempre processa <WHEN> regras antes de <WHENNOT> regras.
Para todos os campos que tiveram seus valores alterados desde a etapa 1 e que contenham <WHENCHANGED> regras, primeiro o <DEFAULT> e, em seguida <COPY> regras pré-definidas.
Permitir ao usuário iniciar a edição.
O usuário altera o valor de um campo e, em seguida, move o foco do campo.
Elevar a qualquer <WHEN> regras para esse campo que corresponde ao novo valor.
Elevar a qualquer <WHENNOT> regras para esse campo que corresponde ao novo valor.
Elevar a qualquer <WHENCHANGED> regras para esse campo que corresponde ao novo valor.
Retorne a capacidade de edição para o usuário.
O usuário salva as alterações para o banco de dados.
Para todos os campos, execute <SERVERDEFAULT> operações que são definidas para o campo direta ou indiretamente em <WHEN> ou <WHENNOT> regra.
Processamento de pressionamento de tecla
Quando um usuário utiliza ainterface gráfica do usuáriopara modificar um trabalho -itemformulário, um novo valor é definido sempre que um pressionamento de tecla seja inserido em um campo. Isso significa que um < quando * > regra pode ocorrer inesperadamente sempre que as condições de pré-requisito da regra forem atendidas.
No exemplo XML a seguir, será esvaziada SubStatus conforme você digita "Aprovado novamente" no campo Status porque o < quando * > regra ocorre assim que o usuário digita a letra "e" aprovado, mesmo se o valor final desejado não for "Aprovar".Por esse motivo, pense com cuidado quando você estiver usando regras condicional.
<FIELD refname="MyCorp.SubStatus" />
<WHEN field="MyCorp.Status" value="Approve" >
<EMPTY />
</WHEN>
</FIELD>