Rule is defined as follows:
IF (RuleCondition) THEN ActionList ELSE ActionList
where RuleCondition
defines one or more conditions that have to hold true before the specified ActionList
is executed. IF
and ELSE
statements are optional, so it is possible to have a rule which only has action statement(s) – such rules are called unconditional rules. It is also possible to include IF statement within ELSE:
IF (RuleCondition) THEN ActionList ELSE IF (RuleCondition) THEN ActionList ELSE ActionList
Rules operate on business objects and/or their attributes, i.e. both the condition and action parts of a rule may refer to a business object and its attribute. Business objects are referred to by name, for example Account. Attributes of a business object are referred to by the attribute name where the name of the attribute is separated from the name of the business object by the dot symbol, for example Account.State
.
Examples of rules:
IF Account.State='CLOSED' AND Account.Balance<>0 THEN REPORT ERROR 'Account with non-zero balance cannot be closed'
CreditAccount.AvailableFunds = CreditAccount.CreditLimit+CreditAccount.Balance-CreditAccount.NonClearedFunds
IF Account.Type IS UNDEFINED THEN FIND AccountType WHERE AccountType.Name='Credit' Account.Type=AccountType