{{tag>Manuals Rule_Language}}
[<10>]
====== Rule Definition ======
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