Escritura de una regla con una cláusula de acción else

Al escribir una regla con una cláusula de acción else, utilice la sintaxis del lenguaje de reglas ILOG ®.

Acerca de esta tarea

Cuando la parte de condición de una regla finaliza con una evaluación, la parte de acción de la regla puede incluir una cláusula else . La última evaluación dentro de la parte de condición actúa como discriminador para elegir entre las ramas de ejecución then o else . Si la expresión de evaluación es true, se ejecuta la parte then . Si es false, se ejecuta la parte else .

Si la regla finaliza con varias evaluaciones, sólo se utiliza la última como discriminador. La cláusula else es opcional y no se puede utilizar cuando no hay ninguna evaluación al final de la parte de condición.

Procedimiento

Para escribir una regla con una cláusula de acción else , utilice el patrón siguiente:
rule rulename {
   when {
      // conditions:
      <condition>;
      [<condition>;]*
      evaluate (<then/else discrimination test>);
   }
   then {
      // “then” actions
      [<action>;]*
   }
   else {
      // “else” actions
      [<action>;]*
   }
}

Ejemplo

En este ejemplo, si la expresión de evaluación es true, la regla ejecuta la acción then y carga una penalización. Si la evaluación es falsa, la regla ejecuta la acción else y calcula una bonificación.

rule financial.rules.CheckBalance {
   when {
     account: Account();
   evaluate (account.getBalance() < 0 );
   }
   then {
			account.chargePenalty();
   }
   else {
			account.computeBonus();
   }
};