Elemento variable

El elemento <variable> define una variable y contiene información en una forma que puede ser referenciada por expresiones. Una variable se puede definir a nivel de conjunto de reglas, de bloque de reglas o de regla.

Detalles

variable de conjunto de reglas
Se aplica globalmente al conjunto de reglas y puede ser referenciada por cualquier expresión dentro del conjunto de reglas.
variable de bloque de reglas
Se aplica sólo dentro del bloque de reglas (y de los otros posibles bloques de reglas que contenga) y puede ser referenciada por cualquier expresión dentro de ese bloque de reglas.
variable de regla
Se aplica sólo a expresiones dentro de esa regla.

Las variables pueden tener el mismo nombre si se encuentran a distintos niveles dentro de la jerarquía de reglas. Cuando se accede a una variable, se utiliza la definición más local de esa variable. Por ejemplo, si se define una variable con el mismo nombre a nivel del conjunto de reglas, del bloque de reglas y de la regla, la expresión dentro de la regla utilizará la definición de esa variable a nivel se regla.

Cuando se definen variables a nivel de conjunto de reglas o de bloque de reglas, varias reglas obtienen y establecen esas variables en distintos momentos. Por lo tanto, para garantizar que los valores de las variables se mantienen correctamente, tenga cuidado en cómo codifica las interacciones entre variables en el conjunto de reglas.

Si la variable está definida a nivel de conjunto de reglas o de bloque de reglas, no se reinicializa una vez se ha encontrado una coincidencia con el patrón de la regla.

En cualquiera de las condiciones siguientes, utilice el bloqueo de la obtención y establecimiento de variables de conjunto de reglas y de bloque de reglas para evitar que los valores de las variables se establezcan incorrectamente:
  • Si la regla de temporizador obtiene o establece una variable durante una acción <onTimeOut>
  • Si la aplicación en la que está incluido el motor de Active Correlation Technology se adjunta como multihebra

Si una regla se define con una clave de agrupación, las variables de reglas definidas por el elemento <variable> no son válidas dentro de las acciones de ciclo de vida o dentro de un elemento <filteringPredicate> contenido en un elemento <activateOnEvent>, o dentro de un elemento <deactivateOnEvent> contenido en un elemento <activationInterval>. Esto es así porque en este caso, las variables de regla se aplican sólo a una instancia de regla, y en el momento de la ejecución de estas expresiones no existen instancias de reglas.

Atributos

<variable> tiene los siguientes atributos:

Tabla 1. Atributos del elemento <variable>
Nombre Descripción Tipo de datos ¿Obligatorio?
name Identifica una variable específica. Se hace referencia una variable por su nombre. xsd:NMTOKEN
dataType Identifica el tipo de información que contiene una variable. Debe ser un tipo de datos completo, como por ejemplo java.lang.String. xsd:NMTOKEN

Restricciones para los nombres de las variables

Los nombres de variable tienen ciertas restricciones. Así pues, el valor del atributo name del elemento <variable> tiene las siguientes restricciones:
  • Puede incluir únicamente los siguientes caracteres:
    • Caracteres ASCII latinos A-Z en mayúscula. La representación en Unicode es \u0041-\u005a.
    • Caracteres ASCII latinos a-z en minúscula. La representación en Unicode es \u0061-\u007a.
    • El carácter ASCII de subrayado (_). La representación en Unicode es \u005f.
    • El signo del dólar ($). La representación en Unicode es \u0024.
    • Los dígitos ASCII 0 - 9. La representación en Unicode es \u0030-\u0039.
  • No puede ser un valor nulo.
  • No puede ser una serie vacía.
  • No puede contener espacios en blanco.
  • No puede contener un punto.
  • No puede empezar por act_ de ninguna forma (ni mayúsculas, ni minúsculas ni en combinación de mayúsculas y minúsculas).

Contenido en

Contiene

<variable> contiene los siguientes elementos.

Los elementos deben ser codificados en el orden que se muestra. Si un elemento es opcional, no es necesario que se codifique, pero todos los elementos que se codifiquen deben seguir el orden correcto.

Tabla 2. Elementos contenidos en el elemento <variable>
Elemento ¿Obligatorio u opcional?
<comment> Opcional. Se permiten 0 o 1 ocurrencias.
<varInitializer> Obligatorio. Se permite 1 ocurrencia.
Conceptos relacionados
Variables