Verwenden Sie beim Definieren einer Variablen die ILOG ® Rule Language-Syntax.
Vorgehensweise
- Verwenden Sie zum Definieren einer einfachen Klassenbedingungsvariablen die folgende Syntax im Bedingungsteil der Regel:
variable : ClassName();
Sie definiert eine Variable des Typs ClassName. Diese Variable ist niemals null und ihr Wert wird im Regelinstanztupel
angezeigt. Der Geltungsbereich der Variablen erstreckt sich auf die gesamte Regel.
- Verwenden Sie die folgende Syntax im Testteil einer Bedingung, um eine einfache Variable in einer Bedingung zu definieren:
variable : <value>
Wenn Sie diese Syntax in einer Klassenbedingung verwenden möchten, folgen Sie dem folgenden Muster: ClassName (variable :
<value>) Wenn Sie diese Syntax in einer Auswertungsbedingung verwenden möchten, verwenden Sie das folgende Muster: evaluate (variable : <value>) Darin wird eine Variable definiert,
die den Typ des Werts enthält. Der Wert der Variablen kann null sein. Der Geltungsbereich dieser Variablen richtet sich nach der Bedingung, in der sie definiert ist.
Ist die Variable in einer existentiellen Bedingung definiert, ist ihr
Geltungsbereich auf diese Bedingung beschränkt. Ist die Variable in einem anderen Typ von Bedingung definiert,
erstreckt sich ihr Geltungsbereich auf die gesamte Regel.
- Verwenden Sie die folgende Syntax, um eine einfache Variable im Aktionsteil der Regel zu definieren:
int variable = <value>;
Sie definiert eine Variable. Der Geltungsbereich der Variablen folgt den Regeln für das Java™ -Sprachscoping.
Beispiel
In diesem Beispiel beziehen sich die Variablen "account" und "contract"
auf Objekte im Arbeitsspeicher bzw. auf Objekte der
BOM-Klasse "Account" und Objekte der BOM-Klasse "Contract". "balance" ist als Saldo eines Kontos im Bedingungsteil des Codes
definiert. Ebenso ist "expiration" als Ablaufdatum des Vertrags
definiert. Die Variable "b" ist ein Beispiel für eine im Aktionsteil der Regel definierte
Variable.
when {
account: Account(balance : getBalance());
contract: Contract(expiration : getExpirationDate());
}
then {
int b = balance;
System.out.println(contract + expiration);
System.out.println(account + b);
}
Diese Regel generiert eine Liste aller verfügbaren Instanzen jedes Vertrags, einschließlich des Ablaufdatums, und
jedes Kontos, einschließlich des Kontostands.