Compartilhar via


Atribuir regras e valores baseados em condicionais

Você pode definir regras que são executadas condicionalmente usando o WHEN, WHENNOT, WHENCHANGED, e WHENNOTCHANGED elementos. Usar essas regras para definir quais elementos são executados quando a cláusula definida é True. Você pode definir condições que são baseadas 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 opções dependentes para fornecer segurança detalhada ou comportamento personalizado.

Condições de campo são elementos adicionais que você listar dentro de um FIELD elemento (definição) ou o FIELD elemento (fluxo de trabalho). Para obter mais informações sobre esses elementos, consulte Referência de elemento FIELD (definição) e Referência de 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, enquanto o campo refname possui o valor "yyy". O campo deve ser um nome de referência de campo válido. Para obter mais informações, consulte As convenções de nomenclatura para objetos de rastreamento de Item de trabalho.

Dica

O atributo de valor diferencia maiúsculas de minúsculas.Portanto, se o nome de referência do campo contém "YYY", correspondências incluem os valores "yyy" e "YYY".

Neste tópico

  • Estrutura de sintaxe para elementos condicionais

  • Definir um dependente campo obrigatório

  • Definir uma lista de opções condicional

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

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

Estrutura de sintaxe para elementos condicionais

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

  • field: Uma cadeia de caracteres que descreve o campo. Deve conter caracteres de 1 a 255.

  • 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 neste 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 deseja 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 neste 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 deseja 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 deseja 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 campo quando a cláusula condicional que você especificar usando um WHEN, WHENNOT, WHENCHANGED, ou WHENNOTCHANGED elemento for true. Para obter mais informações, consulte Aplicar uma regra a um campo do item de trabalho.

Elemento

Descrição

ALLOWEDVALUES

O campo pai deve ter um valor que aparece na lista especificada de valores.

ALLOWEXISTINGVALUE

O valor do campo pai já existente será permitido, mesmo se violar outras regras. Este elemento não será 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

Esse 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 é congelado, você pode alterar seu valor como NULL, mas você não pode alterá-lo para qualquer outro valor.

CORRESPONDÊNCIA

O valor do campo pai deve corresponder ao padrão especificado.

NOTSAMEAS

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

PROHIBITEDVALUES

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

SOMENTE LEITURA

O campo pai é somente leitura.

NECESSÁRIO

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

SERVERDEFAULT

O campo pai obtém 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

A lista enumerada contém valores sugeridos para o campo pai.

VALIDUSER

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

Voltar ao início

Definir um dependente campo obrigatório

Você pode especificar que um campo é necessário somente quando outro campo contém um valor específico. No exemplo a seguir, quando um cliente relata um erro, uma severidade de cliente deve ser especificada. Se o erro não foi relatado por um cliente, uma severidade de cliente não será 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>

Definir uma lista de opções condicional

O exemplo a seguir demonstra uma lista de opções condicional na qual os valores permitidos para o campo de tipo de problema limitam, com base em 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>

Definindo 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 como a data e hora atuais, como mostra o relógio de 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 um valor de campo com base em um usuário não modificando um campo (WHENNOTCHANGED)

No exemplo a seguir, quando um usuário não altera o valor do campo MyCorp.State, o campo MyCorp.StateDate torna-se 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

Outros recursos

Aplicar uma regra a um campo do item de trabalho

Aplicar uma regra a um campo do item de trabalho