Elément variable

L'élément <variable> définit une variable et contient des informations sous une forme qui peut être référencée par expressions. Une variable peut être définie au niveau du jeu de règles, d'un bloc de règles ou d'une règle.

Détails

variable de jeu de règles
S'applique de façon globale au jeu de règles et peut être référencée par toute expression présente dans ce jeu de règles.
variable de bloc de règles
S'applique uniquement à l'intérieur du bloc de règles (et à l'intérieur de tout bloc de règles contenu) et peut être référencée par toute expression présente dans ce bloc de règles.
variable de règle
S'applique uniquement aux expressions présentes dans cette règle.

Plusieurs variables peuvent avoir le même nom si elles se trouvent à différents niveaux de la hiérarchie de règles. Lorsqu'on accède à une variable, la définition la plus locale de la variable est utilisée. Par exemple, si une variable de même nom est définie au niveau du jeu de règles, au niveau d'un bloc de règles et au niveau d'une règle, c'est la définition de la variable au niveau de la règle qui est utilisée par les expressions présentes dans cette règle.

Lorsque des variables sont définies au niveau du jeu de règles ou au niveau d'un bloc de règles, plusieurs règles extraient et définissent ces variables à différents moments. Pour assurer une gestion correcte des valeurs de variable, apportez donc un soin particulier à la façon dont vous codez les interactions entre variables dans le jeu de règles.

Si la variable est définie au niveau du jeu de règles ou au niveau d'un bloc de règles, elle n'est pas réinitialisée après que le modèle de règle a trouvé une correspondance.

Dans les deux cas évoqués ci-après, utilisez un verrouillage sur l'extraction et la définition de variables de jeu de règles et de bloc de règles pour éviter que les valeurs de variable soient définies de façon incorrecte :
  • Si la règle temporisée extrait ou définit une variable au cours d'une action <onTimeOut>
  • Si l'application dans laquelle le moteur Active Correlation Technology est imbriqué est de type multiprocessus

Si une règle est définie avec une clé de groupement, des variables de règle définies par l'élément <variable> ne sont pas valables dans des actions de cycle de vie ou dans un élément <filteringPredicate> contenu dans un élément <activateOnEvent>, ou encore dans un élément <deactivateOnEvent> contenu dans un élément <activationInterval>. En effet, dans ce cas, les variables de règle s'appliquent uniquement à une instance de règle et il n'existe pas d'instance de règle au moment où ces expressions sont exécutées.

Attributs

<variable> a les attributs suivants :

Tableau 1. Attributs de l'élément <variable>
Nom Description Type de données Obligatoire ?
name Identifie une variable spécifique. Une variable est référencée par son nom. xsd:NMTOKEN Oui
dataType Identifie le type d'informations contenues dans une variable. Il doit s'agir d'un type de données complet tel que java.lang.String. xsd:NMTOKEN Oui

Règles de dénomination des variables

L'attribution des noms de variable doit obéir à certaines règles. Ainsi, la valeur de l'attribut de nom de l'élément <variable> doit respecter les règles suivantes :
  • Seuls les caractères suivants sont autorisés :
    • Lettres majuscules A à Z de l'alphabet latin, format ASCII. Représentation Unicode : \u0041-\u005a.
    • Lettres minuscules a à z de l'alphabet latin, format ASCII. Représentation Unicode : \u0061-\u007a.
    • Trait de soulignement ASCII (_). Représentation Unicode : \u005f.
    • Symbole du dollar ($). Représentation Unicode : \u0024.
    • Chiffres 0 à 9, format ASCII. Représentation Unicode : \u0030-\u0039.
  • La valeur ne peut pas être de type NULL.
  • Elle ne peut pas être une chaîne vide.
  • Elle ne peut pas comporter d'espaces.
  • Elle ne peut pas comporter de point.
  • Le nom ne peut pas commencer par act_, sous quelque format que ce soit (ni en majuscules, ni en minuscules, ni dans un mélange de majuscules et de minuscules).

Contenu dans

Contient

L'élément <variable> contient les éléments suivants.

Ces éléments doivent être codés dans l'ordre indiqué. Il n'est pas nécessaire de coder les éléments facultatifs, mais tous les éléments codés doivent être placés dans le bon ordre.

Tableau 2. Eléments contenus dans l'élément <variable>
Elément Obligatoire ou facultatif ?
<comment> Facultatif. Le nombre d'occurrences autorisé est de 0 ou 1.
<varInitializer> Obligatoire. Une occurrence autorisée.
Concepts associés
Variables