Quando si definisce una variabile, utilizzare la sintassi ILOG ® Rule Language.
Procedura
- Per definire una variabile di condizione di classe semplice, utilizzare la sintassi seguente nella parte della condizione della regola:
variable : ClassName();
Definisce una variabile di tipo ClassName. Questa variabile è mai null e il suo valore viene visualizzato nella tupla dell'istanza della regola. L'ambito di questa variabile è l'intera regola.
- Per definire una variabile semplice in una condizione, utilizzare la sintassi seguente nella parte test di una condizione:
variable : <value>
Per utilizzare questa sintassi in una condizione di classe, seguire questo modello: ClassName (variable :
<value>). Per utilizzare questa sintassi in una condizione di valutazione, seguire questo pattern: evaluate (variable : <value>). Definisce una variabile che ha il tipo del valore. Il valore della variabile può essere null. L'ambito di questa variabile dipende dalla condizione in cui è definita: se la variabile è definita in una condizione esistenziale, il suo ambito è limitato a questa condizione. Se la variabile è definita in qualsiasi altro tipo di condizione, il relativo ambito è l'intera regola.
- Per definire una variabile semplice nella parte azione della regola, utilizzare la sintassi seguente:
int variable = <value>;
Definisce una variabile. L'ambito della variabile segue le regole di ambito del linguaggio Java™ .
Esempio
In questo esempio, le variabili del conto e del contratto si riferiscono agli oggetti nella memoria di lavoro, agli oggetti della classe BOM del conto e agli oggetti della classe BOM del contratto. Il saldo è definito come il saldo di un conto nella parte condizione del codice. Allo stesso modo, la scadenza è definita come la data di scadenza del contratto. La variabile b è un esempio di una variabile definita nella parte azione della regola.
when {
account: Account(balance : getBalance());
contract: Contract(expiration : getExpirationDate());
}
then {
int b = balance;
System.out.println(contract + expiration);
System.out.println(account + b);
}
Questa regola genera un elenco di tutte le istanze disponibili di ciascun contratto e della relativa data di scadenza e di ciascun account e relativo saldo.