{{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