The AR System server processes filters in an execution order you specify. As the AR System server considers actions in each filter, it categorizes those actions into one of three phases. (See Filter phases.) In general, actions are carried out such that database operations are deferred until after all actions that modify the database have been performed. At that point, a single database transaction is opened and all the database operations are performed. This keeps transaction time and table and row locks in the database to a minimum.
Some complex applications, however, require database operations to be performed immediately. For example, an application might be used as a subsystem of another application, where the results of the subsystem's work are needed immediately by the calling application. For more information, see Overriding filter processing phasing.
You can combine the Filter, SQL, and API logs to "see" how AR System interacts with the database and how the different phases interact with each other, especially if you are creating complicated workflow. For more information, see Server logging modes.
The following figure illustrates how AR System server processes filters.
When you create a filter, you assign it an execution order value. If one filter has a lower execution order than another, the actions for the first filter are executed or queued before the actions for the second one. When filters have the same execution order, you cannot determine which order the filters will run. The order may change over time. If you require a specific sequencing for filters, use different order numbers.
For more information about filter processing, see these topics: