Elemento variable

O elemento <variable> define uma variável e contém informações em uma forma que pode ser referenciada por expressões. Uma variável pode ser definida no nível do conjunto de regras, de um bloco de regra ou de uma regra.

Detalhes

variável do conjunto de regras
Aplica-se globalmente ao conjunto de regras e pode ser referenciada por qualquer expressão nesse conjunto de regras.
variável do bloco de regra
Aplica-se apenas no bloco de regra (e em qualquer bloco de regra contido) e pode ser referenciada por qualquer expressão nesse bloco de regra.
variável da regra
Aplica-se apenas a expressões nessa regra.

As variáveis podem ter o mesmo nome em níveis diferentes na hierarquia da regra. Quando uma variável é acessada, é utilizada sua definição mais local. Por exemplo, se uma variável for definida no nível do conjunto de regras, nível do bloco de regra e nível de regra com o mesmo nome, a definição da variável no nível de regra será utilizada pelas expressões dessa regra.

Quando as variáveis forem definidas no nível do conjunto de regras ou do bloco de regra, várias regras obterão e definirão essas variáveis em momentos diferentes. Portanto, para assegurar que os valores das variáveis sejam mantidos corretamente, preste atenção em como codificará as interações entre as variáveis no conjunto de regras.

Se a variável for definida no nível do conjunto de regras ou do bloco de regra, ela não será reinicializada depois que o padrão de regra for correspondido.

Em uma das condições a seguir, utilize o bloqueio na obtenção e na configuração do conjunto de regras e das variáveis do bloco de regra para evitar a configuração incorreta dos valores de variáveis:
  • Se a regra do cronômetro obtiver ou configurar uma variável durante uma ação <onTimeOut>
  • Se o aplicativo no qual o mecanismo da Tecnologia ACT estiver incorporado, for multiencadeado

Se uma regra for definida com uma chave de agrupamento, as variáveis de regra definidas pelo elemento <variable> não serão válidas nas ações do ciclo de vida ou em um elemento <filteringPredicate> contido em um elemento <activateOnEvent> ou <deactivateOnEvent> contido em um elemento <activationInterval>. Isso ocorre porque, nesse caso, as variáveis da regra são aplicadas somente a uma instância da regra e as instâncias de regras não existem na hora em que essas expressões são executadas.

Atributos

<variable> possui os seguintes atributos:

Tabela 1. Atributos do Elemento <variable>
Nome Descrição Tipo de dado Obrigatório?
name Identifica uma variável específica. Uma variável é referenciada por seu nome. xsd:NMTOKEN Sim
dataType Identifica o tipo de informações que uma variável contém. Deve ser um tipo de dado completo, como java.lang.String. xsd:NMTOKEN Sim

Restrições de Nomes para Variáveis

Os nomes de variáveis possuem certas restrições. Portanto, o valor do atributo name no elemento <variable> possui as seguintes restrições:
  • Pode incluir apenas os seguintes caracteres:
    • Letras latinas A-Z em ASCII maiúsculas. A representação em Unicode é \u0041-\u005a.
    • Letras latinas a-z em ASCII minúsculas. A representação em Unicode é \u0061-\u007a.
    • O sublinhado em ASCII (_). A representação em Unicode é \u005f.
    • O sinal de dólar ($). A representação em Unicode é \u0024.
    • Os dígitos ASCII de 0 a 9. A representação em Unicode é \u0030-\u0039.
  • Não pode ser nulo.
  • Não pode ser uma cadeia vazia.
  • Não pode conter espaços em branco.
  • Não pode conter um ponto.
  • Não pode iniciar com act_ em nenhuma forma (letras maiúsculas, minúsculas ou misturadas).

Contido em

Contém

<variable> contém os elementos a seguir.

Os elementos devem ser codificados na ordem mostrada. Se um elemento for opcional, ele não precisará ser codificado, mas todos os elementos que forem codificados deverão seguir a ordem correta.

Tabela 2. Elementos Contidos no Elemento <variable>
Elemento Obrigatório ou opcional?
<comment> Opcional. 0 ou 1 ocorrência é permitida.
<varInitializer> Obrigatório. 1 ocorrência é permitida.
Conceitos relacionados
Variáveis