Definindo uma variável

Ao definir uma variável, use a sintaxe do ILOG ® Rule Language.

Procedimento

  • Para definir uma variável de condição de classe simples, use a sintaxe a seguir na parte da condição da regra: variable : ClassName();

    Ele define uma variável do tipo ClassName. Esta variável nunca é nula e seu valor é mostrado na tupla de instância de regra. O escopo desta variável é a regra inteira.

  • Para definir uma variável simples em uma condição, use a sintaxe a seguir na parte de teste de uma condição: variable : <value>

    Para usar esta sintaxe em uma condição de classe, siga este padrão: ClassName (variable : <value>). Para usar esta sintaxe em uma condição de avaliação, siga este padrão: evaluate (variable : <value>). Ele define uma variável que tem o tipo do valor. O valor da variável pode ser nulo. O escopo desta variável depende da condição em que é definido: Se a variável for definida em uma condição existencial, seu escopo é limitado a esta condição. Se a variável for definida em qualquer outro tipo de condição, seu escopo é a regra inteira.

  • Para definir uma variável simples na parte de ação da regra, use a sintaxe a seguir: int variable = <value>;

    Ele define uma variável. O escopo da variável segue as regras de scoping de linguagem Java™ .

Exemplo:

Neste exemplo, as variáveis da conta e do contrato referem-se a objetos na memória de trabalho, objetos da classe BOM da Conta e objetos da classe BOM do Contrato. O saldo é definido como o saldo de uma conta na condição de parte do código. Da mesma forma, a expiração é definida como a data de expiração do contrato. A variável b é um exemplo de uma variável definida na ação parte da regra.

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

Essa regra gera uma lista de todas as instâncias disponíveis de cada contrato e sua data de validade, além de cada conta e seu saldo.