Como as regras são avaliadas
Você pode obter alguma idéia de como as regras são avaliadas quando você aplica várias regras de 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 mostram, na seqüência correta, as interações que são executadas por Team Foundation Server e pelo usuário de um formulário de item de trabalho. Somente as etapas 1, 8 e 13 são executadas pelo usuário.
Usando o Visual Studio interface de usuário, o usuário cria um novo item de trabalho ou edita um item 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 <WHEN> regra correspondente primeiro <DEFAULT> e, em seguida, <COPY> regras pré-definidas.
Para todos os campos com <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 <DEFAULT> e, em seguida, <COPY> regras pré-definidas.
Permitir ao usuário iniciar a edição.
O usuário altera um valor de campo e, em seguida, move o foco do campo.
Elevar a qualquer <WHEN> regras para esse campo corresponde ao novo valor.
Elevar a qualquer <WHENNOT> regras para esse campo corresponde ao novo valor.
Elevar a qualquer <WHENCHANGED> regras para esse campo corresponde ao novo valor.
Retorne a capacidade de edição para o usuário.
O usuário salva as alterações no 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 a interface gráfica do usuário para modificar um formulário de item de trabalho, um novo valor é definido sempre que um pressionamento de tecla é inserido para 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" Status de campo porque < quando * > regra ocorre assim que o usuário digita a letra "e" em aprovado, mesmo se o valor final desejado é não "Aprovar". Por esse motivo, pense cuidadosamente quando você estiver usando regras condicional.
<FIELD refname="MyCorp.SubStatus" />
<WHEN field="MyCorp.Status" value="Approve" >
<EMPTY />
</WHEN>
</FIELD>