Rule Parsing & Recursion

Rule Parsing

Directives are case insensitive.

Conditional statements are case insensitive.

VALUE_IDENTIFIERS are case sensitive, and generally expected to be uppercase.

Values are generally display titles, and are case sensitive. A reverse lookup is done on the value to determine it’s internal value if it a lookup type (list, popup, etc.). An exception is for user fields, which are assumed to be ExtraView User Ids, and are case insensitive.

Recursion

Programmers will be familiar with the topic of recursion. With rules, it is possible to write a rule that causes an update to happen, and when an associated rule fires, it causes the same or a different rule to fire that then causes another update to occur. This can happen in a repeatable cycle with no way for ExtraView to recognize that this is happening. The rules may continue firing on the server with no indication to the user that an endless cycle has started. For this reason, your rules should be examined carefully, especially those which add or update issues with the postupdate directive. If you accidentally set an infinite loop running, you should immediately restart the application server and then change your rule to prevent this happening again.