Atribuindo regras e valores baseados em condicional

Você pode definir regras que são executadas condicionalmente, usando o WHEN, WHENNOT, WHENCHANGED, e WHENNOTCHANGED elementos. Use essas regras para definir quais elementos são executados quando a cláusula definida é True. Você pode definir condições que sejam baseiam em qual valor é atribuído a um campo específico ou se um usuário modifica um campo específico. Por exemplo, você pode criar uma lista de seleção dependentes para fornecer segurança detalhada ou comportamento personalizado.

Condições de campo são elementos adicionais que você listar dentro de um FIELD o elemento de (definição) ou o FIELD (fluxo de trabalho) de elemento. Para obter mais informações sobre esses elementos, consulte Elemento FIELD (definição) e Elemento FIELD (fluxo de trabalho).

O código a seguir é um exemplo simples de WHEN cláusula:

<FIELD . . . >

    <WHEN field="referenceName" value="yyy">

</FIELD>

Essa cláusula significa que qualquer coisa dentro deste elemento de campo é aplicável desde que o campo refname tem o valor "yyy". O campo deve ser um nome de referência de campo válido. Para obter mais informações, consulte Convenções de nomenclatura para objetos de rastreamento de Item de trabalho.

ObservaçãoObservação

O atributo value não diferencia maiúsculas de minúsculas. Portanto, se o nome de referência de campo contém "yyy", correspondências incluir os valores "yyy" e "yyy".

Neste tópico

  • Estrutura de sintaxe para elementos condicionais

  • Definir dependente de um campo obrigatório

  • A definição de uma lista de seleção condicional

  • Definir um campo quando o usuário altera a outro campo (WHENCHANGED)

  • Definindo o valor de um campo com base em um usuário não modificar um campo (WHENNOTCHANGED)

Estrutura de sintaxe para elementos condicionais

A tabela a seguir descreve regras condicional, você pode especificar como os elementos filho da FIELD o elemento de (definição) ou FIELD (fluxo de trabalho) de elemento. Esses elementos aceitam um ou mais dos seguintes atributos:

  • field: Uma seqüência de caracteres que descreve o campo. Deve conter 1 a 255 caracteres.

  • value: Quando o campo especificado tem esse valor, as regras de WHEN e WHENNOT elementos são aplicados ao campo atual.

Elemento

Sintaxe

Descrição

WHEN

<WHEN field="fieldReferenceName" value="value">
    <ALLOWEDVALUES> . . . </ALLOWEDVALUES>
    <ALLOWEXISTINGVALUE> . . . <ALLOWEXISTINGVALUE>
    <CANNOTLOSEVALUE> . . . </CANNOTLOSEVALUE>
    <COPY> . . . </COPY>
    <DEFAULT> . . . </DEFAULT>
    <EMPTY> . . . </EMPTY>
    <FROZEN> . . . </FROZEN>
    <MATCH> . . . </MATCH>
    <NOTSAMEAS> . . . </NOTSAMEAS>
    <PROHIBITEDVALUES> . . . </PROHIBITEDVALUES>
    <READONLY> . . . </READONLY>
    <REQUIRED> . . . </REQUIRED>
    <SERVERDEFAULT> . . . </SERVERDEFAULT>        
    <SUGGESTEDVALUES> . . . </SUGGESTEDVALUES>
    <VALIDUSER> . . . </VALIDUSER>
</WHEN>

Especifica uma ou mais regras para aplicar ao campo atual quando outro campo tem um valor específico. O elemento pai define o campo atual.

Quando o campo especificado tem o valor especificado, as regras nesse elemento são aplicadas ao campo atual.

WHENNOT

<WHENNOT field="fieldReferenceName" value="value">
    <ALLOWEDVALUES> . . . </ALLOWEDVALUES>
    <ALLOWEXISTINGVALUE> . . . <ALLOWEXISTINGVALUE>
    <CANNOTLOSEVALUE> . . . </CANNOTLOSEVALUE>
    <COPY> . . . </COPY>
    <DEFAULT> . . . </DEFAULT>
    <EMPTY> . . . </EMPTY>
    <FROZEN> . . . </FROZEN>
    <MATCH> . . . </MATCH>
    <NOTSAMEAS> . . . </NOTSAMEAS>
    <PROHIBITEDVALUES> . . . </PROHIBITEDVALUES>
    <READONLY> . . . </READONLY>
    <REQUIRED> . . . </REQUIRED>
    <SERVERDEFAULT> . . . </SERVERDEFAULT>        
    <SUGGESTEDVALUES> . . . </SUGGESTEDVALUES>
    <VALIDUSER> . . . </VALIDUSER>
</WHENNOT>

Especifica uma condição sob a qual aplicar uma ou mais regras para o campo atual. As regras se aplicam ao campo atual quando o valor de outro campo alterado. O elemento pai define o campo atual.

Quando o campo especificado não contém o valor especificado, as regras nesse elemento são aplicadas ao campo atual.

WHENCHANGED

<WHENCHANGED field="fieldReferenceName" >
    <ALLOWEDVALUES> . . . </ALLOWEDVALUES>
    <ALLOWEXISTINGVALUE> . . . <ALLOWEXISTINGVALUE>
    <CANNOTLOSEVALUE> . . . </CANNOTLOSEVALUE>
    <COPY> . . . </COPY>
    <DEFAULT> . . . </DEFAULT>
    <EMPTY> . . . </EMPTY>
    <FROZEN> . . . </FROZEN>
    <MATCH> . . . </MATCH>
    <NOTSAMEAS> . . . </NOTSAMEAS>
    <PROHIBITEDVALUES> . . . </PROHIBITEDVALUES>
    <READONLY> . . . </READONLY>
    <REQUIRED> . . . </REQUIRED>
    <SERVERDEFAULT> . . . </SERVERDEFAULT>        
    <SUGGESTEDVALUES> . . . </SUGGESTEDVALUES>
    <VALIDUSER> . . . </VALIDUSER>      
</WHENCHANGED>

Especifica uma condição sob a qual aplicar uma ou mais regras para o campo atual. As regras se aplicam ao campo atual quando o valor de outro campo é alterado em uma revisão para um item de trabalho. O elemento pai define o campo atual.

WHENNOTCHANGED

<WHENNOTCHANGED field="fieldReferenceName">
    <ALLOWEDVALUES> . . . </ALLOWEDVALUES>
    <ALLOWEXISTINGVALUE> . . . <ALLOWEXISTINGVALUE>
    <CANNOTLOSEVALUE> . . . </CANNOTLOSEVALUE>
    <COPY> . . . </COPY>
    <DEFAULT> . . . </DEFAULT>
    <EMPTY> . . . </EMPTY>
    <FROZEN> . . . </FROZEN>
    <MATCH> . . . </MATCH>
    <NOTSAMEAS> . . . </NOTSAMEAS>
    <PROHIBITEDVALUES> . . . </PROHIBITEDVALUES>
    <READONLY> . . . </READONLY>
    <REQUIRED> . . . </REQUIRED>
    <SERVERDEFAULT> . . . </SERVERDEFAULT>        
    <SUGGESTEDVALUES> . . . </SUGGESTEDVALUES>
    <VALIDUSER> . . . </VALIDUSER>
</WHENNOTCHANGED>

Especifica uma condição sob a qual aplicar uma ou mais regras para o campo atual. As regras se aplicam ao campo atual quando o valor de outro campo não é alterado em uma revisão para um item de trabalho. O elemento pai define o campo atual.

A tabela a seguir descreve como cada regra opcional, com base em condicional é aplicada ao pai do campo quando a cláusula condicional que você especificar usando um WHEN, WHENNOT, WHENCHANGED, ou WHENNOTCHANGED elemento é true. Para obter mais informações, consulte Definindo as condições em um campo de Item de trabalho.

Elemento

Descrição

ALLOWEDVALUES

O campo pai deve ter um valor que vem da lista de valores especificada.

ALLOWEXISTINGVALUE

O valor do campo pai que já existe será permitido, mesmo se ela viola a outras regras. Este elemento não é aplicável se o valor do campo pai é alterado.

CANNOTLOSEVALUE

Os usuários podem alterar o valor do campo pai como NULL, mas eles não podem alterá-lo para qualquer outro valor.

CÓPIA

O valor de um terceiro campo é automaticamente copiado para o campo pai. Especifique o terceiro campo no COPY elemento.

PADRÃO

Este elemento Especifica o valor padrão do campo pai.

VAZIO

O campo pai não deve conter um valor.

CONGELADO

O campo pai está congelado. Quando um campo está congelado, você pode alterar seu valor como nulo, mas você não pode alterá-lo para qualquer outro valor.

CORRESPONDÊNCIA

O valor do campo pai deve corresponder ao padrão que você especificar.

NOTSAMEAS

O valor do campo pai não pode corresponder ao valor de um campo de terceiro. Especifique o terceiro campo no NOTSAMEAS elemento.

PROHIBITEDVALUES

O campo pai não pode conter quaisquer valores na lista enumerada.

READONLY

O campo pai é somente leitura.

NECESSÁRIO

O campo pai deve conter um valor que não é nulo.

SERVERDEFAULT

O campo pai leva seu valor do componente de servidor especificado. Os componentes de servidor válido são relógio, que é o tempo quando o item de trabalho é atualizado, e currentuser, que é a identidade do usuário que atualizou o item de trabalho.

SUGGESTEDVALUES

Lista enumerada contém os valores sugeridos para o campo pai.

VALIDUSER

Somente os usuários especificados podem modificar o campo pai.

Voltar ao topo

Definir dependente de um campo obrigatório

Você pode especificar que um campo é necessário somente quando o outro campo contém um valor específico. No exemplo a seguir, quando um cliente relata um bug, a severidade do cliente deve ser especificada. Se o erro não foi relatado por um cliente, a gravidade de uma cliente não é necessária.

<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>

A definição de uma lista de seleção condicional

O exemplo a seguir demonstra uma lista condicional na qual os valores permitidos para o campo tipo de problema são limitados, com base no que se o valor do campo ProblemCharacteristic é definido para a documentação.

<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>

Definir um campo quando o usuário altera a outro campo (WHENCHANGED)

No exemplo a seguir, quando um usuário altera o valor do campo MyCorp.State, o campo MyCorp.StateDate é definido para a data e hora atuais, como mostra o relógio do servidor.

<FIELD refname="MyCorp.StateDate" name="Date Of Last State Change" type="DateTime">
    <WHENCHANGED field="MyCorp.State">
        <COPY from="clock" />
    </WHENCHANGED>
</FIELD>

No exemplo a seguir, quando um usuário altera o valor do campo MyCorp.State, o valor do campo MyCorp.Status está desmarcado.

<!-- 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>

Definindo o valor de um campo com base em um usuário não modificar um campo (WHENNOTCHANGED)

No exemplo a seguir, quando um usuário altera o valor do campo MyCorp.State, se o campo MyCorp.StateDate torna somente leitura.

<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>

Consulte também

Conceitos

Todas as referências de elementos do campo XML

Outros recursos

Definindo as condições em um campo de Item de trabalho

Trabalhando com regras do campo

Histórico de alterações

Date

History

Motivo

Janeiro de 2011

Adicionado a estrutura condicionais todos os elementos e conteúdo reorganizado para realçar os exemplos de sintaxe.

Aprimoramento de informações.