The primary areas where variables can be utilized are:
- Isolating external references—rule sets often reference external resources such as email addresses, network shares, and data file names. Each of these resources may change over time. Servers get replaced; employees leave the company; and so on. If these resources are referenced in multiple rules across multiple rule sets, it can be a difficult and time-consuming process to identify all the references that need to be updated when changes are required. If variables are used to hold the references, only the variable values will need to be updated and any rules which reference them will automatically get the new values.
- Simplifying complex event property references—RBA uses a relative addressing model where previous events in a rule chain can be referenced from the current action by following the Previous event references. While this is an effective method of referencing previous events, it can become cumbersome in long rule chains. For example:
%triggerEvent.Previous.Previous.Previous.Previous.Intent.Job.JobHomeServer%
. Variables can be used to store event property values at the start of a rule chain and then later in the chain, you reference them using much simpler direct reference syntax. - Persisting processing or execution state—one common problem new users run into is trying to referencing the Process property of a previous event across a long running timer. By the time the timer completes the process, information has been purged from the system and is therefore no longer available to be referenced. Variables can be used to persist the needed information so that it will still be available and can be referenced when the timer completes.
Variables can also be used to track information of how frequently a rule set is invoked, and to track statistics about a specific process such as the number of pages proofed or plates output.