Définition d'une variable

Lorsque vous définissez une variable, utilisez la syntaxe ILOG ® Rule Language.

Procédure

  • Pour définir une variable de condition de classe simple, utilisez la syntaxe suivante dans la partie condition de la règle: variable : ClassName();

    Il définit une variable de type ClassName. Cette variable n'est jamais Null et sa valeur apparaît dans le tuple d'instances de règle. Sa portée est la règle entière.

  • Pour définir une variable simple dans une condition, utilisez la syntaxe suivante dans la partie test d'une condition: variable : <value>

    Pour utiliser cette syntaxe dans une condition de classe, suivez le modèle suivant: ClassName (variable : <value>). Pour utiliser cette syntaxe dans une condition d'évaluation, suivez le modèle suivant: evaluate (variable : <value>). Elle définit une variable dont le type est celui de la valeur. La valeur de la variable peut être Null. La portée de cette variable dépend de la condition dans laquelle elle est définie : si la variable est définie dans une condition existentielle, sa portée est limitée à cette condition. Si la variable est définie dans un autre type de condition, sa portée est la règle entière.

  • Pour définir une variable simple dans la partie action de la règle, utilisez la syntaxe suivante: int variable = <value>;

    Elle définit une variable. La portée de la variable suit les règles de portée du langage Java™ .

Exemple

Dans cet exemple, les variables account et contract font référence à des objets dans la mémoire de travail, objets dont l'un est de la classe BOM Account et l'autre, de la classe BOM Contract. La variable balance est définie comme le solde d'un compte dans la partie condition du code. De même, la variable expiration est définie comme la date d'expiration du contrat. La variable b est un exemple de variable définie dans la partie action de la règle.

when {
   account: Account(balance : getBalance());
   contract: Contract(expiration : getExpirationDate());
}
then {
  int b = balance;
  System.out.println(contract + expiration);
  System.out.println(account + b);
}

Cette règle génère la liste de toutes les instances disponibles de chaque contrat avec sa date d'expiration, et de chaque compte avec son solde.