Tipos de Variáveis de Regras
É possível designar tipos de valores diferentes às variáveis de regras.
Uma variável de regra pode representar uma constante, uma expressão, um termo de
negócios ou uma coleção de termos de negócios. Uma variável de regra é definida
fornecendo a ela um nome e um valor. Você escolhe o nome, e o valor
pode ser texto, um número ou uma expressão aritmética. O valor também pode ser um termo de negócio predefinido que já está em sua regra (por exemplo, customer). Depois de configurar uma variável, você pode usá-la em qualquer parte da regra que declare a variável.
Variáveis de Regras que Definem Constantes
O uso mais simples de uma variável de regra é declarar um valor constante.
Por
exemplo, a variável maxAmount facilita
o entendimento da seguinte regra e assegura que as partes if e then
da regra usem o mesmo valor:
definições set maxAmount to 1000000; se the amount of 'the loan' is at least maxAmount então in 'the loan report', reject the data with the message "The loan cannot exceed " + maxAmount;
Restrições nas Variáveis de Regras
É possível restringir mais uma variável na parte definitions de uma regra usando o operador where.
Exemplo
Na seguinte regra, where restringe a variável loyal customer a clientes
na categoria Ouro:
definições set 'loyal customer' to a customer em que a categoria desse cliente é Gold; se the value of the shopping cart of 'loyal customer' is more than $200 então apply the super discount;
Exemplo
A
seguinte regra declara que a variável senior
Gold customer deve ser um cliente que esteja na categoria
Ouro e que tenha pelo menos 65 anos:
definições set 'senior Gold customer' to a customer where all the following conditions are true: - the category of this customer is Gold - the age of this customer is at least 65;
Variáveis de Regras que Consultam mais de Uma Ocorrência de um Termo de Negócios
Se um termo de negócios tiver mais de uma definição em uma regra, você deverá definir as diferentes definições.
Quando os desenvolvedores ativam a variável automática para
um termo de negócios, a palavra the identifica
a variável automática nos códigos de idioma que usam esse tipo de artigo. Por
exemplo, se você usar a palavra cliente
como um termo de negócios nas
regras, os desenvolvedores poderão definir uma variável automática chamada the customer, à qual você poderá se referir nas regras.
Se houver uma regra que requeira a consulta
a mais de uma ocorrência de um cliente, você deverá definir as outras
ocorrências na parte definitions
da regra, por exemplo:
definições conjunto de candidatos para um cliente. set 'loyal customer' to a customer; se all of the following conditions are true: - applicant is married to 'loyal customer' - 'loyal customer' is insured então upgrade applicant's rating;
Variáveis são úteis em regras que se refiram a relacionamentos entre duas ou mais coisas do mesmo tipo.
Por exemplo, a seguinte condição envolve dois clientes diferentes:
se ’customer 1’ is married to ’customer 2’
A condição identifica
e nomeia dois clientes diferentes: customer
1 e customer 2. O termo de negócios "customer" varia e é possível definir duas variáveis de
cliente para gravar uma regra, como a seguinte:
definições set ’customer 1’ to a customer; set ’customer 2’ to a customer; se ’customer 1’ is married to ’customer 2’ and ’customer 2’ is insured então upgrade ’customer 1’’s rating;
Variáveis de Regras que Recuperam todas as Ocorrências de um Termo de Negócios
É possível usar o operador BAL all <...> para criar uma variável
que recupere uma lista de todas as ocorrências de um termo de negócios, por
exemplo:
definições set 'gold customers' to all customers where the category of this customer is gold; set 'junior gold customer' to a customer in 'gold customers' where the age of this customer is at most 15; set 'senior gold customer' to a customer in 'gold customers' where the age of this customer is at least 65;
O exemplo cria três variáveis:
gold customers: Uma lista dos clientes na categoria ouro.junior gold customer: Um cliente da lista de clientes ouro cuja idade máxima é de 15 anos.senior gold customer: Um cliente da lista de clientes ouro cuja idade é ao menos 65 anos.